am335x questions
Yegor Yefremov
yegorslists at googlemail.com
Fri May 27 06:52:25 PDT 2016
On Thu, May 26, 2016 at 4:44 PM, Sascha Hauer <s.hauer at pengutronix.de> wrote:
> Hi Yegor,
>
> On Thu, May 26, 2016 at 03:41:46PM +0200, Yegor Yefremov wrote:
>> I'm porting an am335x based board. We have systems either with 256MB
>> or 512MB RAM. Currently I'm using following code:
>>
>> 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);
>> }
>>
>> This way I always have 256MB "detected" regardless of the used
>> hardware. Is it possible to let Barebox autodetect RAM size like it is
>> done in U-Boot?
>
> Try am335x_barebox_entry() instead of barebox_arm_entry(), it will
> read back the configured SDRAM size from the SDRAM controller. Make sure
> you don't have a /memory node in your device tree conflicting with the
> real amount of RAM (i.e. when you have a board with 512MiB and your
> device tree contains a /memory node with 256MiB then you will have
> conflicts during startup, most likely barebox will bail out in the MMU
> startup). Just delete the /memory node from the device tree, barebox
> will create it automatically later.
>
> For a full runtime SDRAM size detection you could call
> am335x_sdram_init() with different setups and call get_ram_size()
> afterwards. I'm not aware of other tricks on AM335x. How does U-Boot do
> it?
I haven't looked at U-Boot solution closely as detection was working
from the very beginning. I'll look at am335x_barebox_entry().
>>
>> Another question concerns booting medium. Whether I start from NAND or
>> MMC I always want to be able to boot from MMC too. Now, if I boot
>> Barebox from NAND I can see following in devinfo output:
>>
>> `-- 48060000.mmc
>> `-- mmc0
>>
>> How can I make system enumerate MMC partition, so that I can mount
>> them? "detect mmc0" doesn't help.
>
> "detect mmc0" should generally work. If it doesn't my guess is that the
> pinmux is not configured correctly. When you boot from MMC then the ROM
> configures the pinmux and the SD card works in barebox aswell. When you
> boot from Nand then the pinmux is missing. Just a guess, could be clocks
> aswell or something else.
You're right. Missing pinmux was the problem.
Yegor
More information about the barebox
mailing list