[PATCH] ARM: keystone2: enable initrd fixup for LPAE addressing

Tom Rini trini at konsulko.com
Wed Feb 12 14:04:59 CET 2020


On Wed, Feb 12, 2020 at 09:37:46AM +0530, Lokesh Vutla wrote:
> Hi Tom,
> 
> On 11/02/20 8:31 PM, Tom Rini wrote:
> > On Tue, Feb 11, 2020 at 09:25:52AM +0530, Lokesh Vutla wrote:
> > 
> >> From: Tero Kristo <t-kristo at ti.com>
> >>
> >> Keystone2 u-boot loads the initrd image into non-LPAE addressed memory
> >> but linux kernel is running in LPAE. This causes a conflict as kernel
> >> detects that non-memory address is passed and kernel ignores initrd.
> >> There is an existing fixup logic to modify the address in the proper
> >> configuration, but this is disabled at the moment. Enable the fixup
> >> by setting the env variable for this so that initrd can be used
> >> properly.
> >>
> >> Signed-off-by: Tero Kristo <t-kristo at ti.com>
> >> Signed-off-by: Lokesh Vutla <lokeshvutla at ti.com>
> >> ---
> >> - This fixes boot on k2g platforms.
> >>
> >>  include/configs/ti_armv7_keystone2.h | 1 +
> >>  1 file changed, 1 insertion(+)
> >>
> >> diff --git a/include/configs/ti_armv7_keystone2.h b/include/configs/ti_armv7_keystone2.h
> >> index ba12428dbe..1b014c1022 100644
> >> --- a/include/configs/ti_armv7_keystone2.h
> >> +++ b/include/configs/ti_armv7_keystone2.h
> >> @@ -213,6 +213,7 @@
> >>  	"tftp_root=/\0"							\
> >>  	"nfs_root=/export\0"						\
> >>  	"mem_lpae=1\0"							\
> >> +	"uinitrd_fixup=1\0"						\
> >>  	"addr_ubi=0x82000000\0"						\
> >>  	"addr_secdb_key=0xc000000\0"					\
> >>  	"name_kern=zImage\0"						\
> > 
> > OK, hold up.  Why is any of this code needed and can't the normal
> > bootm_size / bootm_low / etc as documented in the README enforce these
> > constraints?  Thanks!
> > 
> 
> K2 platforms has a special scenario. DDR view for U-Boot is starting from
> 0x8000_0000 - 0xFFFF_FFFF. Wheres as for kernel, the DDR view gets shifted to
> 0x8_0000_0000 - 0x8_7FFF_FFFF. This is a hardware limitation to ensure coherency
> among different master in the SoC. In kernel all the page tables are fixed up by
> the Kconfig CONFIG_ARM_PV_FIXUP. But the expectation is to pass the right
> information in DTB. U-Boot already fixes up the memory address nodes in
> ft_board_setup() but missed updating the linux-initrd. This patch enables the
> fixup for initrd.

OK, thanks.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200212/7b289eec/attachment.sig>


More information about the U-Boot mailing list