
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@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@ti.com Signed-off-by: Lokesh Vutla lokeshvutla@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.