[PATCH] ARM: keystone2: enable initrd fixup for LPAE addressing
Lokesh Vutla
lokeshvutla at ti.com
Wed Feb 12 05:07:46 CET 2020
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.
Thanks and regards,
Lokesh
More information about the U-Boot
mailing list