On Mon, Jun 13, 2016 at 10:55 AM, Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> wrote: > On Mon, Jun 13, 2016 at 09:44:24AM +0200, Yegor Yefremov wrote: >> On Wed, Jun 1, 2016 at 9:08 AM, Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> wrote: >> > On Mon, May 30, 2016 at 04:43:50PM +0200, yegorslists@xxxxxxxxxxxxxx wrote: >> >> From: Yegor Yefremov <yegorslists@xxxxxxxxxxxxxx> >> >> >> >> OnRISC Baltos devices are based on a am335x SoC and can be booted >> >> either from MMC or NAND. >> >> >> >> Signed-off-by: Yegor Yefremov <yegorslists@xxxxxxxxxxxxxx> >> >> --- >> >> Changes: >> >> v2: - remove typedef >> >> - rework invalid EEPROM content handling >> >> - add mmc0 as boot device for MMC boot source >> >> >> >> +static int baltos_mem_init(void) >> >> +{ >> >> + uint32_t sdram_size; >> >> + >> >> + if (!of_machine_is_compatible("vscom,onrisc")) >> >> + return 0; >> >> + >> >> + sdram_size = SZ_256M; >> >> + >> >> + arm_add_mem_device("ram0", 0x80000000, sdram_size); >> >> + >> >> + return 0; >> >> +} >> >> +mem_initcall(baltos_mem_init); >> > >> > This shouldn't be necessary. See arch/arm/mach-omap/am33xx_scrm.c, here >> > the correct amount of memory should be registered. >> >> ACK >> >> >> +ENTRY_FUNCTION(start_am33xx_baltos_sdram, r0, r1, r2) >> >> +{ >> >> + uint32_t sdram_size; >> >> + void *fdt; >> >> + >> >> + sdram_size = SZ_256M; >> >> + fdt = __dtb_am335x_baltos_minimal_start; >> >> + >> >> + fdt -= get_runtime_offset(); >> >> + >> >> + barebox_arm_entry(0x80000000, sdram_size, fdt); >> > >> > am335x_barebox_entry() calculates the SDRAM size automatically for you. >> > >> > Doing this has the advantage that you can configure your SDRAM as you >> > like without having to bother that all other locations where the SDRAM >> > size is needed are correct. >> >> This is not working for me. As soon as barebox.bin starts I can see only >> >> barebox 2016.05.0 #3 Mon Jun 13 09:32:01 CEST 2016 >> >> Board: OnRISC Baltos >> >> I don't know why, but am335x_sdram_size() always finds 0x20000000 i.e. >> 512MB on both 256MB modules and 512MB. > > Could it be that you use the 512MB settings for both variants and in the > 256MB case you simply only use half of it? In this case > am335x_sdram_size() cannot work properly. You either have to fix the > settings in the controller after you detected that you have 256MB or you > have to stick to the current static setup. There's also get_ram_size() > that tests the given address space for mirrors and returns the real ram > size. OK. Then I'll remove mem_init from board.c and stick to the static setup. Yegor _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox