Dear Marcel,
> Hi,
>
> I updated my u-boot-usb to continue my work on the SAM9 USB parts, but got
> stuck with the following issue :
>
> There seems to be a new relocation scheme. I also added some stuff to make it
> detect the SDRAM, but than I get stuck.
>
>   int dram_init(void)
> {
>          gd->bd->bi_dram[0].start = PHYS_SDRAM;
>          gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
This is accessing bss before relocation. BSS does not exist then.
>          /* dram_init must store complete ramsize in gd->ram_size */
>          gd->ram_size = get_ram_size((volatile void *)PHYS_SDRAM,
> PHYS_SDRAM_SIZE);
>          dram_init_banksize();
This function, if defined, is called automagically. Normally, with single
DRAM bank AT91SAM9 designs the default weak function provided by u-boot is
sufficient:
void __dram_init_banksize(void)
{
        gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
        gd->bd->bi_dram[0].size =  gd->ram_size;
}
void dram_init_banksize(void)
        __attribute__((weak, alias("__dram_init_banksize")));

Don't define this function in your board file!!!
>          return 0;
> }
Please have a look at the emk/top9000 board for what is needed:

int dram_init(void)
{
        gd->ram_size = get_ram_size(
                (void *)CONFIG_SYS_SDRAM_BASE,
                CONFIG_SYS_SDRAM_SIZE);
        return 0;
}

/* NO dram_init_banksize() !!! */

Note also that the defines have changed to have a CONFIG_SYS_ prefix.
Change your board definition accordingly.

Best Regards,
Reinhard
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to