diff options
author | Denys Dmytriyenko <denys@ti.com> | 2014-04-17 15:05:33 -0400 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-04-19 10:26:05 +0100 |
commit | cd495307d233b81ebeb43198d13bbd4b3ad7407f (patch) | |
tree | 676a5b02f15dca0eb501e1036c4c0b5478ae9be8 /meta/recipes-bsp/u-boot | |
parent | 26eb3f4cd15227d67b65bdcaac465a11277b2b9d (diff) | |
download | openembedded-core-cd495307d233b81ebeb43198d13bbd4b3ad7407f.tar.gz openembedded-core-cd495307d233b81ebeb43198d13bbd4b3ad7407f.tar.bz2 openembedded-core-cd495307d233b81ebeb43198d13bbd4b3ad7407f.zip |
u-boot: fix beaglebone boot issue with large kernel images
Fix beaglebone boot issue with large kernel images overwriting Device Tree.
See very detailed comments inside the patch.
The original patch is being reviewed upstream and is targeting mainline U-boot
version 2014.07. This is the adaptation of the patch for 2013.07 version we use
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-bsp/u-boot')
-rw-r--r-- | meta/recipes-bsp/u-boot/files/0001-am335x_evm.h-Add-use-DEFAULT_LINUX_BOOT_ENV-environm.patch | 74 | ||||
-rw-r--r-- | meta/recipes-bsp/u-boot/u-boot_2013.07.bb | 4 |
2 files changed, 77 insertions, 1 deletions
diff --git a/meta/recipes-bsp/u-boot/files/0001-am335x_evm.h-Add-use-DEFAULT_LINUX_BOOT_ENV-environm.patch b/meta/recipes-bsp/u-boot/files/0001-am335x_evm.h-Add-use-DEFAULT_LINUX_BOOT_ENV-environm.patch new file mode 100644 index 0000000000..77e35bbc7c --- /dev/null +++ b/meta/recipes-bsp/u-boot/files/0001-am335x_evm.h-Add-use-DEFAULT_LINUX_BOOT_ENV-environm.patch @@ -0,0 +1,74 @@ +From 5701384cea4a829b772bf7a96a74825b58c22385 Mon Sep 17 00:00:00 2001 +From: Denys Dmytriyenko <denys@ti.com> +Date: Thu, 17 Apr 2014 12:25:40 -0400 +Subject: [PATCH] am335x_evm.h: Add, use DEFAULT_LINUX_BOOT_ENV environment + string + +Modified version of the patch currently being reviewed for mainline: +http://patchwork.ozlabs.org/patch/334861/ + +To deal with a reoccurring problem properly we need to specify addresses +for the Linux kernel, Flatted Device Tree and ramdisk that obey the +constraints within the kernel's Documentation/arm/Booting file but also +make sure that we relocate things within a valid address range. + +Signed-off-by: Denys Dmytriyenko <denys@ti.com> +Signed-off-by: Tom Rini <trini@ti.com> + +Upstream-Status: Pending +--- + include/configs/am335x_evm.h | 31 ++++++++++++++++++++++++++----- + 1 file changed, 26 insertions(+), 5 deletions(-) + +diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h +index c5a6d4b..01e32b3 100644 +--- a/include/configs/am335x_evm.h ++++ b/include/configs/am335x_evm.h +@@ -54,10 +54,7 @@ + #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG + #ifndef CONFIG_SPL_BUILD + #define CONFIG_EXTRA_ENV_SETTINGS \ +- "loadaddr=0x80200000\0" \ +- "fdtaddr=0x80F80000\0" \ +- "fdt_high=0xffffffff\0" \ +- "rdaddr=0x81000000\0" \ ++ DEFAULT_LINUX_BOOT_ENV \ + "bootdir=/boot\0" \ + "bootfile=uImage\0" \ + "fdtfile=undefined\0" \ +@@ -197,7 +194,31 @@ + #define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START \ + + (8 * 1024 * 1024)) + +-#define CONFIG_SYS_LOAD_ADDR 0x81000000 /* Default load address */ ++/* ++ * Our DDR memory always starts at 0x80000000 and U-Boot shall have ++ * relocated itself to higher in memory by the time this value is used. ++ * However, set this to a 32MB offset to allow for easier Linux kernel ++ * booting as the default is often used as the kernel load address. ++ */ ++#define CONFIG_SYS_LOAD_ADDR 0x82000000 /* Default load address */ ++ ++/* ++ * We setup defaults based on constraints from the Linux kernel, which should ++ * also be safe elsewhere. We have the default load at 32MB into DDR (for ++ * the kernel), FDT above 128MB (the maximum location for the end of the ++ * kernel), and the ramdisk 512KB above that (allowing for hopefully never ++ * seen large trees). We say all of this must be within the first 256MB ++ * as that will normally be within the kernel lowmem and thus visible via ++ * bootm_size and we only run on platforms with 256MB or more of memory. ++ */ ++#define DEFAULT_LINUX_BOOT_ENV \ ++ "loadaddr=0x82000000\0" \ ++ "kernel_addr_r=0x82000000\0" \ ++ "fdtaddr=0x88000000\0" \ ++ "fdt_addr_r=0x88000000\0" \ ++ "rdaddr=0x88080000\0" \ ++ "ramdisk_addr_r=0x88080000\0" \ ++ "bootm_size=0x10000000\0" + + #define CONFIG_MMC + #define CONFIG_GENERIC_MMC +-- +1.9.2 + diff --git a/meta/recipes-bsp/u-boot/u-boot_2013.07.bb b/meta/recipes-bsp/u-boot/u-boot_2013.07.bb index 3141a2dd06..f8a88568d2 100644 --- a/meta/recipes-bsp/u-boot/u-boot_2013.07.bb +++ b/meta/recipes-bsp/u-boot/u-boot_2013.07.bb @@ -16,7 +16,9 @@ SRCREV = "62c175fbb8a0f9a926c88294ea9f7e88eb898f6c" PV = "v2013.07+git${SRCPV}" -SRC_URI = "git://git.denx.de/u-boot.git;branch=master" +SRC_URI = "git://git.denx.de/u-boot.git;branch=master \ + file://0001-am335x_evm.h-Add-use-DEFAULT_LINUX_BOOT_ENV-environm.patch \ +" S = "${WORKDIR}/git" |