[U-Boot] [PATCH v4 3/6] arm: uniphier: add UniPhier SoC support code

Simon Glass sjg at chromium.org
Sat Sep 6 18:39:24 CEST 2014


Hi Masahiro,

On 6 September 2014 09:34, Masahiro YAMADA <yamada.m at jp.panasonic.com> wrote:
> Hi Simon,
>
>
>
> 2014-09-06 3:59 GMT+09:00 Simon Glass <sjg at chromium.org>:
>> Hi Masahiro,
>>
>> On 4 September 2014 23:50, Masahiro Yamada <yamada.m at jp.panasonic.com> wrote:
>>> init_page_table
>>
>> Why do you need a full page table in this code? Can you not use the
>> existing page table features in U-Boot?
>
>
> I assume you mentioned  mmu_setup() function in arch/arm/lib/cache-cp15.c.
> I do know it and actually my boards are using it too.
>
> The hardware specification of UniPhier platform is a little special
> and unfortunate in terms of RAM / Cache handling.
> UniPhier SoCs have no on-chip SRAM!
>
> Let's assume U-boot is booting from NOR Flash.
>
> We have to setup the stack before junping to board_f(),
> but there is no writable memory at this moment on our SoCs.
> (UniPhier has SDRAMs, of course, but it is intialized
> in board_f().)
>
> To solve the problem, our SoCs use a trick to have stack on L2Cache.
> To use cache, MMU must be turned on. (This is ARM specification)
>
> That's why hard-coded, full page table must be placed in the code.
>
> When SDRAM is available, the page table is switched to the one
> created in arch/arm/lib/cached-cp15.c,  but which is much lator
> (board_r() func.)

OK I see. It is a big hassle not having any SRAM available. Yes maybe
this is better than a macro/loop in an assembler file.

Regards,
Simon


More information about the U-Boot mailing list