[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] error updating bitstream (porting uClinux_autoto Xilinx ML401)



Hi again,

John Williams wrote:

>> ERROR:MDT - ERROR FROM TCL:- uclinux () - expected integer but got ""
>>        while executing
>>    "format "0x%08x" $eram_start"
>>        (procedure "::sw_uclinux_v1_00_a::generate" line 28)
>>        invoked from within
>>    "::sw_uclinux_v1_00_a::generate 38741024" 
> 
> 
> OK, so you've hit the first limitation of the uclinux BSP - it doesn't 
> play nicely with the most recent DDR controller (v1.10.a).  That core 
> uses / supports multiple banks of memory, but the BSP isn't able to 
> decipher that yet to work out the main memory range.
> 
> The solution is to use the earlier DDR controller core, 1.00.a. 
> Translating between the two isn't hard, most of the parameters are the 
> same.

I've added (experimental) support in the uclinux BSP for "banked" memory 
controllers, like the new ddr controller.

Try the following if you're willing:

Copy the attached tcl script and MLD files into bsp/uclinux_v1_00_a/data 
(overwrite the existing ones).

Then, in your MSS file, place the following in the "OS" section, under 
the existing line "MAIN_MEMORY=..."

MAIN_MEMORY_BANK = 0

This tells the BSP subsystem which bank on the memory controller should 
be considerd as main memory - in most cases it will be bank zero.

If you are using a non-banked controller, like the old ddr_1_00_b, then 
don't specify the BANK parameter.

Please let me know how this goes for you.

Thanks,

John

Attachment: uclinux_v2_1_0.tcl
Description: Tcl script

# (c) Copyright 2003 Xilinx Inc.
# All rights reserved.

OPTION psf_version = 2.1;

BEGIN OS uclinux

OPTION DRC = uclinux_drc;
OPTION SUPPORTED_PERIPHERALS = (microblaze);
OPTION DESC = "Generate uClinux BSP for linux kernel 2.4";
OPTION copyfiles = all;


PARAMETER name = TARGET_DIR, desc = "Destination directory for uClinux BSP (auto-config.in)", type = string;

PARAMETER name = stdout, desc = "stdout peripheral for bootloader", type = peripheral_instance, requires_interface=stdout, default = none;
PARAMETER name = stdin, desc = "stdin peripheral for bootloader", type = peripheral_instance, requires_interface=stdin, default = none;

PARAMETER name = main_memory, desc ="Name of Main Memory used with uClinux", type = peripheral_instance, default = none;
PARAMETER name = main_memory_bank, desc="Bank Nr. within memory controller of main memory", type = integer, default = -1;

PARAMETER name = flash_memory, desc ="Name of Flash Memory Controller used with uClinux", type = peripheral_instance, default = none;
PARAMETER name = flash_memory_bank, desc="Bank Nr. within memory controller of flash memory", type = integer, default = -1;

PARAMETER name = lmb_memory, desc = "Name of LMB Memory used with uClinux", type = peripheral_instance, default = none;

END OS