u-boot: Update to 2015.10 release

The U-Boot 2015.10 has been released at October 20th 2015. This also
removes the GCC workaround, for the inline behavior, as this version
properlu supports the GCC 5.2 as compiler.

(From OE-Core rev: aebd1a87bbf960e69301bd29137aabb5dfab05fc)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Otavio Salvador 2015-11-10 09:01:42 -02:00 committed by Richard Purdie
parent e67c5b0ccf
commit a59d019372
10 changed files with 1657 additions and 25 deletions

View File

@ -4,12 +4,12 @@ LIC_FILES_CHKSUM = "file://Licenses/README;md5=0507cd7da8e7ad6d6701926ec9b84c95"
SECTION = "bootloader"
DEPENDS = "mtd-utils"
# This revision corresponds to the tag "v2015.07"
# This revision corresponds to the tag "v2015.10"
# We use the revision in order to avoid having to fetch it from the
# repo during parse
SRCREV = "33711bdd4a4dce942fb5ae85a68899a8357bdd94"
SRCREV = "5ec0003b19cbdf06ccd6941237cbc0d1c3468e2d"
PV = "v2015.07+git${SRCPV}"
PV = "v2015.10+git${SRCPV}"
SRC_URI = "git://git.denx.de/u-boot.git;branch=master"

View File

@ -5,12 +5,12 @@ SECTION = "bootloader"
DEPENDS = "openssl"
# This revision corresponds to the tag "v2015.07"
# This revision corresponds to the tag "v2015.10"
# We use the revision in order to avoid having to fetch it from the
# repo during parse
SRCREV = "33711bdd4a4dce942fb5ae85a68899a8357bdd94"
SRCREV = "5ec0003b19cbdf06ccd6941237cbc0d1c3468e2d"
PV = "v2015.07+git${SRCPV}"
PV = "v2015.10+git${SRCPV}"
SRC_URI = "git://git.denx.de/u-boot.git;branch=master"

View File

@ -1,7 +1,7 @@
From 92598e1515b2ec3851af1f064075d0457f01272d Mon Sep 17 00:00:00 2001
From 47092c85a2d3dea6fb3ffa59ae6fe737112db93e Mon Sep 17 00:00:00 2001
From: Zhenhua Luo <zhenhua.luo@freescale.com>
Date: Mon, 9 Feb 2015 18:33:56 +0800
Subject: [PATCH] powerpc/cpu/*/u-boot*.lds: remove _GLOBAL_OFFSET_TABLE_
Subject: [PATCH 1/6] powerpc/cpu/*/u-boot*.lds: remove _GLOBAL_OFFSET_TABLE_
definition
Organization: O.S. Systems Software LTDA.
@ -17,9 +17,10 @@ section should be used(https://sourceware.org/ml/binutils/2008-09/msg00122.html)
Fixed the following build errors with binutils-2.25:
| powerpc-poky-linux-gnuspe-ld.bfd: _GLOBAL_OFFSET_TABLE_ not defined in linker created .got
Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
Upstream-Status: Pending
Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
arch/powerpc/cpu/mpc512x/u-boot.lds | 1 -
arch/powerpc/cpu/mpc5xx/u-boot.lds | 1 -
@ -180,5 +181,5 @@ index 1980508..55dd4e1 100644
KEEP(*(.fixup))
}
--
2.4.6
2.6.2

View File

@ -0,0 +1,36 @@
From 0a8c59720155c30f01d4cd1c53da3647a3f4decd Mon Sep 17 00:00:00 2001
From: Tom Rini <trini@konsulko.com>
Date: Tue, 27 Oct 2015 19:04:40 -0400
Subject: [PATCH 2/6] image.c: Fix non-Android booting with ramdisk and/or
device tree
Organization: O.S. Systems Software LTDA.
In 1fec3c5 I added a check that if we had an Android image we default to
trying the kernel address for a ramdisk. However when we don't have an
Android image buf is NULL and we oops here. Ensure that we have 'buf'
to check first.
Upstream-Status: Backport [2016.01]
Reported-by: elipe Balbi <balbi@ti.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
---
common/image.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/common/image.c b/common/image.c
index e607109..85c4f39 100644
--- a/common/image.c
+++ b/common/image.c
@@ -913,7 +913,7 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,
* Look for an Android boot image.
*/
buf = map_sysmem(images->os.start, 0);
- if (genimg_get_format(buf) == IMAGE_FORMAT_ANDROID)
+ if (buf && genimg_get_format(buf) == IMAGE_FORMAT_ANDROID)
select = argv[0];
#endif
--
2.6.2

View File

@ -0,0 +1,59 @@
From e5ebba40a3b8a1405e48d49dc873ffe2fa1963a1 Mon Sep 17 00:00:00 2001
From: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Date: Sun, 1 Nov 2015 17:36:13 +0100
Subject: [PATCH 3/6] common/board_f: enable setup_board_part1() for MIPS
Organization: O.S. Systems Software LTDA.
The variables bd_t:bi_memstart and bd_t:bi_memsize have to be
initialized also on MIPS. Otherwise LMB and cmd_bdinfo do not
correctly work. This currently breaks the booting of FIT images
on MIPS. Enable the board_init_f hook setup_board_part1()
for MIPS to fix this.
Upstream-Status: Backport [2016.01]
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
common/board_f.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/common/board_f.c b/common/board_f.c
index 613332e..33cc5c0 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -551,7 +551,7 @@ static int display_new_sp(void)
return 0;
}
-#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
+#if defined(CONFIG_PPC) || defined(CONFIG_M68K) || defined(CONFIG_MIPS)
static int setup_board_part1(void)
{
bd_t *bd = gd->bd;
@@ -580,7 +580,9 @@ static int setup_board_part1(void)
return 0;
}
+#endif
+#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
static int setup_board_part2(void)
{
bd_t *bd = gd->bd;
@@ -933,8 +935,10 @@ static init_fnc_t init_sequence_f[] = {
reserve_stacks,
setup_dram_config,
show_dram_config,
-#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
+#if defined(CONFIG_PPC) || defined(CONFIG_M68K) || defined(CONFIG_MIPS)
setup_board_part1,
+#endif
+#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
INIT_FUNC_WATCHDOG_RESET
setup_board_part2,
#endif
--
2.6.2

View File

@ -0,0 +1,254 @@
From da9d99765476b10fe0a75140a2d4c1f284ffc333 Mon Sep 17 00:00:00 2001
From: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Date: Sun, 1 Nov 2015 17:36:14 +0100
Subject: [PATCH 4/6] MIPS: bootm: rework and fix broken bootm code
Organization: O.S. Systems Software LTDA.
The move to 'generic board' as well as changes in the generic
bootm code broke the boot of FIT uImage's. Especially uImage's
with additional initramfs images or FDT's do not work anymore.
Refactor the bootm code to work again with the generic bootm code.
Always relocate ramdisk and FDT in step 'bootm prep' because the
generic bootm code does this only for legacy uImage's.
Move the step 'bootm cmdline' to 'bootm prep' because the Linux
kernel parameters rd_start and rd_size have to be initialized after
the relocation of the ramdisk.
Furthermore support the step 'bootm fake'.
Upstream-Status: Backport [2016.01]
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
arch/mips/lib/bootm.c | 163 ++++++++++++++++++++++++--------------------------
1 file changed, 78 insertions(+), 85 deletions(-)
diff --git a/arch/mips/lib/bootm.c b/arch/mips/lib/bootm.c
index 9c647aa..a7eddd3 100644
--- a/arch/mips/lib/bootm.c
+++ b/arch/mips/lib/bootm.c
@@ -21,18 +21,6 @@ DECLARE_GLOBAL_DATA_PTR;
#define mips_boot_malta 0
#endif
-#if defined(CONFIG_MIPS_BOOT_CMDLINE_LEGACY)
-#define mips_boot_cmdline_legacy 1
-#else
-#define mips_boot_cmdline_legacy 0
-#endif
-
-#if defined(CONFIG_MIPS_BOOT_ENV_LEGACY)
-#define mips_boot_env_legacy 1
-#else
-#define mips_boot_env_legacy 0
-#endif
-
static int linux_argc;
static char **linux_argv;
static char *linux_argp;
@@ -62,50 +50,6 @@ void arch_lmb_reserve(struct lmb *lmb)
lmb_reserve(lmb, sp, CONFIG_SYS_SDRAM_BASE + gd->ram_size - sp);
}
-static int boot_setup_linux(bootm_headers_t *images)
-{
- int ret;
- ulong rd_len;
-
- rd_len = images->rd_end - images->rd_start;
- ret = boot_ramdisk_high(&images->lmb, images->rd_start,
- rd_len, &images->initrd_start, &images->initrd_end);
- if (ret)
- return ret;
-
-#if defined(CONFIG_MIPS_BOOT_FDT) && defined(CONFIG_OF_LIBFDT)
- if (images->ft_len) {
- boot_fdt_add_mem_rsv_regions(&images->lmb, images->ft_addr);
-
- ret = boot_relocate_fdt(&images->lmb, &images->ft_addr,
- &images->ft_len);
- if (ret)
- return ret;
- }
-#endif
-
- return 0;
-}
-
-static void boot_setup_fdt(bootm_headers_t *images)
-{
-#if defined(CONFIG_MIPS_BOOT_FDT) && defined(CONFIG_OF_LIBFDT)
- u64 mem_start = 0;
- u64 mem_size = gd->ram_size;
-
- debug("## setup FDT\n");
-
- fdt_chosen(images->ft_addr);
- fdt_fixup_memory_banks(images->ft_addr, &mem_start, &mem_size, 1);
- fdt_fixup_ethernet(images->ft_addr);
- fdt_initrd(images->ft_addr, images->initrd_start, images->initrd_end);
-
-#if defined(CONFIG_OF_BOARD_SETUP)
- ft_board_setup(images->ft_addr, gd->bd);
-#endif
-#endif
-}
-
static void linux_cmdline_init(void)
{
linux_argc = 1;
@@ -197,18 +141,6 @@ static void linux_cmdline_append(bootm_headers_t *images)
}
}
-static void boot_cmdline_linux(bootm_headers_t *images)
-{
- if (mips_boot_cmdline_legacy && !images->ft_len) {
- linux_cmdline_legacy(images);
-
- if (!mips_boot_env_legacy)
- linux_cmdline_append(images);
-
- linux_cmdline_dump();
- }
-}
-
static void linux_env_init(void)
{
linux_env = (char **)(((ulong) linux_argp + 15) & ~15);
@@ -288,13 +220,81 @@ static void linux_env_legacy(bootm_headers_t *images)
}
}
+static int boot_reloc_ramdisk(bootm_headers_t *images)
+{
+ ulong rd_len = images->rd_end - images->rd_start;
+
+ /*
+ * In case of legacy uImage's, relocation of ramdisk is already done
+ * by do_bootm_states() and should not repeated in 'bootm prep'.
+ */
+ if (images->state & BOOTM_STATE_RAMDISK) {
+ debug("## Ramdisk already relocated\n");
+ return 0;
+ }
+
+ return boot_ramdisk_high(&images->lmb, images->rd_start,
+ rd_len, &images->initrd_start, &images->initrd_end);
+}
+
+static int boot_reloc_fdt(bootm_headers_t *images)
+{
+ /*
+ * In case of legacy uImage's, relocation of FDT is already done
+ * by do_bootm_states() and should not repeated in 'bootm prep'.
+ */
+ if (images->state & BOOTM_STATE_FDT) {
+ debug("## FDT already relocated\n");
+ return 0;
+ }
+
+#if CONFIG_IS_ENABLED(MIPS_BOOT_FDT) && CONFIG_IS_ENABLED(OF_LIBFDT)
+ boot_fdt_add_mem_rsv_regions(&images->lmb, images->ft_addr);
+ return boot_relocate_fdt(&images->lmb, &images->ft_addr,
+ &images->ft_len);
+#else
+ return 0;
+#endif
+}
+
+int arch_fixup_memory_node(void *blob)
+{
+#if CONFIG_IS_ENABLED(MIPS_BOOT_FDT) && CONFIG_IS_ENABLED(OF_LIBFDT)
+ u64 mem_start = 0;
+ u64 mem_size = gd->ram_size;
+
+ return fdt_fixup_memory_banks(blob, &mem_start, &mem_size, 1);
+#else
+ return 0;
+#endif
+}
+
+static int boot_setup_fdt(bootm_headers_t *images)
+{
+ return image_setup_libfdt(images, images->ft_addr, images->ft_len,
+ &images->lmb);
+}
+
static void boot_prep_linux(bootm_headers_t *images)
{
- if (mips_boot_env_legacy && !images->ft_len)
- linux_env_legacy(images);
+ boot_reloc_ramdisk(images);
- if (images->ft_len)
+ if (CONFIG_IS_ENABLED(MIPS_BOOT_FDT) && images->ft_len) {
+ boot_reloc_fdt(images);
boot_setup_fdt(images);
+ } else {
+ if (CONFIG_IS_ENABLED(CONFIG_MIPS_BOOT_ENV_LEGACY))
+ linux_env_legacy(images);
+
+ if (CONFIG_IS_ENABLED(MIPS_BOOT_CMDLINE_LEGACY)) {
+ linux_cmdline_legacy(images);
+
+ if (!CONFIG_IS_ENABLED(CONFIG_MIPS_BOOT_ENV_LEGACY))
+ linux_cmdline_append(images);
+
+ linux_cmdline_dump();
+ }
+ }
}
static void boot_jump_linux(bootm_headers_t *images)
@@ -327,35 +327,28 @@ static void boot_jump_linux(bootm_headers_t *images)
int do_bootm_linux(int flag, int argc, char * const argv[],
bootm_headers_t *images)
{
- int ret;
-
/* No need for those on MIPS */
if (flag & BOOTM_STATE_OS_BD_T)
return -1;
- if (flag & BOOTM_STATE_OS_CMDLINE) {
- boot_cmdline_linux(images);
+ /*
+ * Cmdline init has been moved to 'bootm prep' because it has to be
+ * done after relocation of ramdisk to always pass correct values
+ * for rd_start and rd_size to Linux kernel.
+ */
+ if (flag & BOOTM_STATE_OS_CMDLINE)
return 0;
- }
if (flag & BOOTM_STATE_OS_PREP) {
boot_prep_linux(images);
return 0;
}
- if (flag & BOOTM_STATE_OS_GO) {
+ if (flag & (BOOTM_STATE_OS_GO | BOOTM_STATE_OS_FAKE_GO)) {
boot_jump_linux(images);
return 0;
}
- ret = boot_setup_linux(images);
- if (ret)
- return ret;
-
- boot_cmdline_linux(images);
- boot_prep_linux(images);
- boot_jump_linux(images);
-
/* does not return */
return 1;
}
--
2.6.2

View File

@ -0,0 +1,93 @@
From ebaf1eda6f3b8a339837bc0dbcbb9002d751ab75 Mon Sep 17 00:00:00 2001
From: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Date: Sun, 1 Nov 2015 17:36:15 +0100
Subject: [PATCH 5/6] MIPS: bootm: use CONFIG_IS_ENABLED() everywhere
Organization: O.S. Systems Software LTDA.
Upstream-Status: Backport [2016.01]
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
---
arch/mips/lib/bootm.c | 33 ++++++++++++++-------------------
1 file changed, 14 insertions(+), 19 deletions(-)
diff --git a/arch/mips/lib/bootm.c b/arch/mips/lib/bootm.c
index a7eddd3..eed159c 100644
--- a/arch/mips/lib/bootm.c
+++ b/arch/mips/lib/bootm.c
@@ -15,12 +15,6 @@ DECLARE_GLOBAL_DATA_PTR;
#define LINUX_MAX_ENVS 256
#define LINUX_MAX_ARGS 256
-#if defined(CONFIG_MALTA)
-#define mips_boot_malta 1
-#else
-#define mips_boot_malta 0
-#endif
-
static int linux_argc;
static char **linux_argv;
static char *linux_argp;
@@ -157,7 +151,7 @@ static void linux_env_set(const char *env_name, const char *env_val)
strcpy(linux_env_p, env_name);
linux_env_p += strlen(env_name);
- if (mips_boot_malta) {
+ if (CONFIG_IS_ENABLED(MALTA)) {
linux_env_p++;
linux_env[++linux_env_idx] = linux_env_p;
} else {
@@ -178,14 +172,15 @@ static void linux_env_legacy(bootm_headers_t *images)
const char *cp;
ulong rd_start, rd_size;
-#ifdef CONFIG_MEMSIZE_IN_BYTES
- sprintf(env_buf, "%lu", (ulong)gd->ram_size);
- debug("## Giving linux memsize in bytes, %lu\n", (ulong)gd->ram_size);
-#else
- sprintf(env_buf, "%lu", (ulong)(gd->ram_size >> 20));
- debug("## Giving linux memsize in MB, %lu\n",
- (ulong)(gd->ram_size >> 20));
-#endif /* CONFIG_MEMSIZE_IN_BYTES */
+ if (CONFIG_IS_ENABLED(MEMSIZE_IN_BYTES)) {
+ sprintf(env_buf, "%lu", (ulong)gd->ram_size);
+ debug("## Giving linux memsize in bytes, %lu\n",
+ (ulong)gd->ram_size);
+ } else {
+ sprintf(env_buf, "%lu", (ulong)(gd->ram_size >> 20));
+ debug("## Giving linux memsize in MB, %lu\n",
+ (ulong)(gd->ram_size >> 20));
+ }
rd_start = UNCACHED_SDRAM(images->initrd_start);
rd_size = images->initrd_end - images->initrd_start;
@@ -214,7 +209,7 @@ static void linux_env_legacy(bootm_headers_t *images)
if (cp)
linux_env_set("eth1addr", cp);
- if (mips_boot_malta) {
+ if (CONFIG_IS_ENABLED(MALTA)) {
sprintf(env_buf, "%un8r", gd->baudrate);
linux_env_set("modetty0", env_buf);
}
@@ -307,13 +302,13 @@ static void boot_jump_linux(bootm_headers_t *images)
bootstage_mark(BOOTSTAGE_ID_RUN_OS);
- if (mips_boot_malta)
+ if (CONFIG_IS_ENABLED(MALTA))
linux_extra = gd->ram_size;
-#ifdef CONFIG_BOOTSTAGE_FDT
+#if CONFIG_IS_ENABLED(BOOTSTAGE_FDT)
bootstage_fdt_add_report();
#endif
-#ifdef CONFIG_BOOTSTAGE_REPORT
+#if CONFIG_IS_ENABLED(BOOTSTAGE_REPORT)
bootstage_report();
#endif
--
2.6.2

View File

@ -1,14 +0,0 @@
require u-boot.inc
DEPENDS += "dtc-native"
# This revision corresponds to the tag "v2015.07"
# We use the revision in order to avoid having to fetch it from the
# repo during parse
SRCREV = "33711bdd4a4dce942fb5ae85a68899a8357bdd94"
SRC_URI += "file://0001-u-boot-mpc85xx-u-boot-.lds-remove-_GLOBAL_OFFSET_TAB.patch"
PV = "v2015.07+git${SRCPV}"
EXTRA_OEMAKE_append = " KCFLAGS=-fgnu89-inline"

View File

@ -0,0 +1,19 @@
require u-boot.inc
DEPENDS += "dtc-native"
# This revision corresponds to the tag "v2015.10"
# We use the revision in order to avoid having to fetch it from the
# repo during parse
SRCREV = "5ec0003b19cbdf06ccd6941237cbc0d1c3468e2d"
SRC_URI += " \
file://0001-powerpc-cpu-u-boot-.lds-remove-_GLOBAL_OFFSET_TABLE_.patch \
file://0002-image.c-Fix-non-Android-booting-with-ramdisk-and-or-.patch \
file://0003-common-board_f-enable-setup_board_part1-for-MIPS.patch \
file://0004-MIPS-bootm-rework-and-fix-broken-bootm-code.patch \
file://0005-MIPS-bootm-use-CONFIG_IS_ENABLED-everywhere.patch \
file://0006-Replace-extern-inline-with-static-inline.patch \
"
PV = "v2015.10+git${SRCPV}"