add mvebu generic distro boot support

This commit is contained in:
Peter Robinson 2016-02-16 10:15:37 +00:00
parent f60ebada14
commit 825a3f192a
2 changed files with 142 additions and 0 deletions

View File

@ -0,0 +1,141 @@
From patchwork Fri Jan 15 01:20:50 2016
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot] arm: mvebu: enable generic distro boot config
From: Dennis Gilmore <dennis@ausil.us>
X-Patchwork-Id: 567887
Message-Id: <1452820850-12020-1-git-send-email-dennis@ausil.us>
To: u-boot@lists.denx.de, sr@denx.de, thomas@wytron.com.tw,
bmeng.cn@gmail.com, sjg@chromium.org, nikita@compulab.co.il
Cc: Dennis Gilmore <dennis@ausil.us>, Dennis Gilmore <dgilmore@redhat.com>
Date: Thu, 14 Jan 2016 19:20:50 -0600
Switch all of the mvebu boards to support disto generic booting
This will enable Fedora, Debian and other distros to support
mvebu systems easier. Tested on SolidRun ClearFog
Signed-off-by: Dennis Gilmore <dgilmore@redhat.com>
---
include/configs/clearfog.h | 5 ---
include/configs/mv-common.h | 86 ++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 85 insertions(+), 6 deletions(-)
diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h
index f0de827..926b3c5 100644
--- a/include/configs/clearfog.h
+++ b/include/configs/clearfog.h
@@ -104,11 +104,6 @@
#define CONFIG_SYS_CONSOLE_INFO_QUIET /* don't print console @ startup */
#define CONFIG_SYS_ALT_MEMTEST
-/* Keep device tree and initrd in lower memory so the kernel can access them */
-#define CONFIG_EXTRA_ENV_SETTINGS \
- "fdt_high=0x10000000\0" \
- "initrd_high=0x10000000\0"
-
/* SPL */
/*
* Select the boot device here
diff --git a/include/configs/mv-common.h b/include/configs/mv-common.h
index d12d725..e219243 100644
--- a/include/configs/mv-common.h
+++ b/include/configs/mv-common.h
@@ -57,7 +57,7 @@
#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, \
115200,230400, 460800, 921600 }
/* auto boot */
-#define CONFIG_BOOTDELAY 3 /* default enable autoboot */
+#define CONFIG_BOOTDELAY 2 /* default enable autoboot */
#define CONFIG_PREBOOT
#define CONFIG_OF_LIBFDT /* Device tree support */
@@ -152,4 +152,88 @@
#define CONFIG_LZO
#endif
+#ifndef CONFIG_SPL_BUILD
+#include <config_distro_defaults.h>
+
+/*
+* 160M RAM (256M minimum minus 64MB heap + 32MB for u-boot, stack, fb, etc.
+* 32M uncompressed kernel, 16M compressed kernel, 1M fdt,
+* 1M script, 1M pxe and the ramdisk at the end.
+*/
+#define SDRAM_OFFSET(x) 0x0##x
+
+#define KERNEL_ADDR_R __stringify(SDRAM_OFFSET(2000000))
+#define FDT_ADDR_R __stringify(SDRAM_OFFSET(3000000))
+#define SCRIPT_ADDR_R __stringify(SDRAM_OFFSET(3100000))
+#define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(3200000))
+#define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(3300000))
+
+#define MEM_LAYOUT_ENV_SETTINGS \
+ "bootm_size=0xa000000\0" \
+ "kernel_addr_r=" KERNEL_ADDR_R "\0" \
+ "fdt_addr_r=" FDT_ADDR_R "\0" \
+ "scriptaddr=" SCRIPT_ADDR_R "\0" \
+ "pxefile_addr_r=" PXEFILE_ADDR_R "\0" \
+ "ramdisk_addr_r=" RAMDISK_ADDR_R "\0"
+
+#ifdef CONFIG_MMC
+#define BOOT_TARGET_DEVICES_MMC(func) func(MMC, mmc, 0)
+#else
+#define BOOT_TARGET_DEVICES_MMC(func)
+#endif
+
+#ifdef CONFIG_CMD_SATA
+#define BOOT_TARGET_DEVICES_SATA(func) func(SATA, sata, 0) func(SATA, sata, 1)
+#define CONFIG_PREBOOT "sata init"
+#else
+#define BOOT_TARGET_DEVICES_SATA(func)
+#endif
+
+#ifdef CONFIG_USB_STORAGE
+#define BOOT_TARGET_DEVICES_USB(func) func(USB, usb, 0)
+#else
+#define BOOT_TARGET_DEVICES_USB(func)
+#endif
+
+#define BOOT_TARGET_DEVICES(func) \
+ BOOT_TARGET_DEVICES_MMC(func) \
+ BOOT_TARGET_DEVICES_SATA(func) \
+ BOOT_TARGET_DEVICES_USB(func) \
+ func(PXE, pxe, na)
+
+#include <config_distro_bootcmd.h>
+
+#ifdef CONFIG_USB_KEYBOARD
+#define CONSOLE_STDIN_SETTINGS \
+ "preboot=usb start\0" \
+ "stdin=serial,usbkbd\0"
+#else
+#define CONSOLE_STDIN_SETTINGS \
+ "stdin=serial\0"
+#endif
+
+#ifdef CONFIG_VIDEO
+#define CONSOLE_STDOUT_SETTINGS \
+ "stdout=serial,vga\0" \
+ "stderr=serial,vga\0"
+#else
+#define CONSOLE_STDOUT_SETTINGS \
+ "stdout=serial\0" \
+ "stderr=serial\0"
+#endif
+
+#define CONSOLE_ENV_SETTINGS \
+ CONSOLE_STDIN_SETTINGS \
+ CONSOLE_STDOUT_SETTINGS
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ CONSOLE_ENV_SETTINGS \
+ MEM_LAYOUT_ENV_SETTINGS \
+ "fdtfile=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \
+ "console=ttyS0,115200\0" \
+ BOOTENV
+#else /* ifndef CONFIG_SPL_BUILD */
+#define CONFIG_EXTRA_ENV_SETTINGS
+#endif
+
#endif /* _MV_COMMON_H */

View File

@ -14,6 +14,7 @@ Source1: armv7-boards
Patch1: 0004-Add-BOOTENV_INIT_COMMAND-for-commands-that-may-be-ne.patch
Patch2: 0005-port-utilite-to-distro-generic-boot-commands.patch
Patch3: 0001-Copy-gcc5-over-to-compiler-gcc6.h-as-a-beginning-of-.patch
Patch4: mvebu-enable-generic-distro-boot-config.patch
BuildRequires: bc
BuildRequires: dtc