Packages
nerves_system_bbb
2.1.2
2.30.0
2.29.5
2.29.4
2.29.3
2.29.2
2.29.1
2.29.0
2.28.0
2.27.3
2.27.2
2.27.1
2.27.0
2.26.1
2.26.0
2.25.1
2.25.0
2.24.0
2.23.0
2.22.1
2.22.0
2.21.0
2.20.2
2.20.1
2.20.0
2.19.1
2.19.0
2.18.2
2.18.1
2.18.0
2.17.2
2.17.1
2.17.0
2.16.2
2.16.1
2.16.0
2.15.3
2.15.2
2.15.1
2.15.0
retired
2.14.0
2.13.4
2.13.3
2.13.2
2.13.1
2.13.0
2.12.3
2.12.2
2.12.1
2.12.0
2.11.2
2.11.1
2.11.0
2.10.1
2.10.0
2.9.0
2.8.3
2.8.2
2.8.1
2.8.0
2.7.2
2.7.1
2.7.0
2.6.2
2.6.1
2.6.0
2.5.2
2.5.1
2.5.0
2.4.2
2.4.1
2.4.0
2.3.2
2.3.1
2.3.0
2.2.2
2.2.1
2.2.0
2.1.3
2.1.2
2.1.1
2.1.0
2.0.0
2.0.0-rc.0
1.4.0
1.3.0
1.2.1
1.2.0
1.1.1
1.1.0
1.0.0
1.0.0-rc.1
1.0.0-rc.0
0.20.0
0.18.0
0.17.1
0.17.0
0.16.1
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.0
0.7.1
0.7.0
0.6.2
0.6.1
0.6.0
0.5.0
Nerves System - BeagleBone Black, BeagleBone Green, PocketBeagle and more
Current section
Files
Jump to
Current section
Files
uboot/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
From ed17dca5c434755e53ac6bc3f8df345c2dc83948 Mon Sep 17 00:00:00 2001
From: Robert Nelson <robertcnelson@gmail.com>
Date: Wed, 20 Jun 2018 15:39:57 -0500
Subject: [PATCH] am335x_evm: uEnv.txt, bootz, n fixes
Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
---
.../include/asm/arch-am33xx/hardware_am33xx.h | 1 +
arch/arm/include/asm/arch-am33xx/sys_proto.h | 1 +
arch/arm/mach-omap2/am33xx/board.c | 22 +-
arch/arm/mach-omap2/hwinit-common.c | 10 +
board/ti/am335x/board.c | 103 +++++-
board/ti/am335x/board.h | 43 ++-
board/ti/am335x/mux.c | 15 +-
configs/am335x_boneblack_defconfig | 12 +-
configs/am335x_evm_defconfig | 46 ++-
env/common.c | 2 +
include/configs/am335x_evm.h | 99 +++++-
include/configs/ti_armv7_common.h | 299 ++++++++++++++++++
include/environment/ti/mmc.h | 67 +++-
13 files changed, 654 insertions(+), 66 deletions(-)
diff --git a/arch/arm/include/asm/arch-am33xx/hardware_am33xx.h b/arch/arm/include/asm/arch-am33xx/hardware_am33xx.h
index 878ef3e..b42c7e6 100644
--- a/arch/arm/include/asm/arch-am33xx/hardware_am33xx.h
+++ b/arch/arm/include/asm/arch-am33xx/hardware_am33xx.h
@@ -60,6 +60,7 @@
/* RTC base address */
#define RTC_BASE 0x44E3E000
+#define RTC_OSC (RTC_BASE + 0x0054)
/* OTG */
#define USB0_OTG_BASE 0x47401000
diff --git a/arch/arm/include/asm/arch-am33xx/sys_proto.h b/arch/arm/include/asm/arch-am33xx/sys_proto.h
index be17aad..ebbf443 100644
--- a/arch/arm/include/asm/arch-am33xx/sys_proto.h
+++ b/arch/arm/include/asm/arch-am33xx/sys_proto.h
@@ -46,4 +46,5 @@ int am335x_get_tps65910_mpu_vdd(int sil_rev, int frequency);
void enable_usb_clocks(int index);
void disable_usb_clocks(int index);
void do_board_detect(void);
+void rtc32k_enable(void);
u32 get_sys_clk_index(void);
diff --git a/arch/arm/mach-omap2/am33xx/board.c b/arch/arm/mach-omap2/am33xx/board.c
index f5f2bd5..5b2596e 100644
--- a/arch/arm/mach-omap2/am33xx/board.c
+++ b/arch/arm/mach-omap2/am33xx/board.c
@@ -326,17 +326,17 @@ __weak void am33xx_spl_board_init(void)
{
}
-#if defined(CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC)
-static void rtc32k_enable(void)
-{
- struct davinci_rtc *rtc = (struct davinci_rtc *)RTC_BASE;
-
- rtc32k_unlock(rtc);
-
- /* Enable the RTC 32K OSC by setting bits 3 and 6. */
- writel((1 << 3) | (1 << 6), &rtc->osc);
-}
-#endif
+//#if defined(CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC)
+//static void rtc32k_enable(void)
+//{
+// struct davinci_rtc *rtc = (struct davinci_rtc *)RTC_BASE;
+//
+// rtc32k_unlock(rtc);
+//
+// /* Enable the RTC 32K OSC by setting bits 3 and 6. */
+// writel((1 << 3) | (1 << 6), &rtc->osc);
+//}
+//#endif
static void uart_soft_reset(void)
{
diff --git a/arch/arm/mach-omap2/hwinit-common.c b/arch/arm/mach-omap2/hwinit-common.c
index 1a24acb..91f5985 100644
--- a/arch/arm/mach-omap2/hwinit-common.c
+++ b/arch/arm/mach-omap2/hwinit-common.c
@@ -130,6 +130,16 @@ void __weak do_board_detect(void)
{
}
+/**
+ * rtc32k_enable() - Detect board description
+ *
+ * Function to detect board description. This is expected to be
+ * overridden in the SoC family board file where desired.
+ */
+void __weak rtc32k_enable(void)
+{
+}
+
/**
* vcores_init() - Assign omap_vcores based on board
*
diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
index 147ff0b..ca03925 100644
--- a/board/ti/am335x/board.c
+++ b/board/ti/am335x/board.c
@@ -28,6 +28,7 @@
#include <asm/omap_common.h>
#include <asm/omap_sec_common.h>
#include <asm/omap_mmc.h>
+#include <asm/davinci_rtc.h>
#include <i2c.h>
#include <miiphy.h>
#include <cpsw.h>
@@ -83,6 +84,8 @@ struct serial_device *default_serial_console(void)
{
if (board_is_icev2())
return &eserial4_device;
+ else if (board_is_beaglelogic())
+ return &eserial5_device;
else
return &eserial1_device;
}
@@ -265,7 +268,7 @@ const struct dpll_params *get_dpll_ddr_params(void)
if (board_is_evm_sk())
return &dpll_ddr3_303MHz[ind];
- else if (board_is_pb() || board_is_bone_lt() || board_is_icev2())
+ else if (board_is_pb() || board_is_bone_lt() || board_is_icev2() || board_is_beaglelogic())
return &dpll_ddr3_400MHz[ind];
else if (board_is_evm_15_or_later())
return &dpll_ddr3_303MHz[ind];
@@ -296,7 +299,7 @@ const struct dpll_params *get_dpll_mpu_params(void)
if (bone_not_connected_to_ac_power())
freq = MPUPLL_M_600;
- if (board_is_pb() || board_is_bone_lt())
+ if (board_is_pb() || board_is_bone_lt() || board_is_beaglelogic())
freq = MPUPLL_M_1000;
switch (freq) {
@@ -342,7 +345,7 @@ static void scale_vcores_bone(int freq)
* Override what we have detected since we know if we have
* a Beaglebone Black it supports 1GHz.
*/
- if (board_is_pb() || board_is_bone_lt())
+ if (board_is_pb() || board_is_bone_lt() || board_is_beaglelogic())
freq = MPUPLL_M_1000;
switch (freq) {
@@ -473,7 +476,11 @@ void scale_vcores(void)
void set_uart_mux_conf(void)
{
#if CONFIG_CONS_INDEX == 1
- enable_uart0_pin_mux();
+ if (board_is_beaglelogic())
+ enable_uart4_pin_mux();
+ else
+ enable_uart0_pin_mux();
+
#elif CONFIG_CONS_INDEX == 2
enable_uart1_pin_mux();
#elif CONFIG_CONS_INDEX == 3
@@ -543,7 +550,7 @@ void sdram_init(void)
if (board_is_evm_sk())
config_ddr(303, &ioregs_evmsk, &ddr3_data,
&ddr3_cmd_ctrl_data, &ddr3_emif_reg_data, 0);
- else if (board_is_pb() || board_is_bone_lt())
+ else if (board_is_pb() || board_is_bone_lt() || board_is_beaglelogic())
config_ddr(400, &ioregs_bonelt,
&ddr3_beagleblack_data,
&ddr3_beagleblack_cmd_ctrl_data,
@@ -608,11 +615,60 @@ static struct clk_synth cdce913_data = {
};
#endif
+#if defined(CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC)
+void rtc32k_enable(void)
+{
+ struct davinci_rtc *rtc = (struct davinci_rtc *)RTC_BASE;
+
+ /*
+ * Unlock the RTC's registers. For more details please see the
+ * RTC_SS section of the TRM. In order to unlock we need to
+ * write these specific values (keys) in this order.
+ */
+ writel(RTC_KICK0R_WE, &rtc->kick0r);
+ writel(RTC_KICK1R_WE, &rtc->kick1r);
+
+ if (board_is_pb() || board_is_blue()) {
+ /* 6: EN_32KCLK */
+ /* 3: SEL_32KCLK_SRC 0: internal, 1: external */
+ writel((0 << 3) | (1 << 6), &rtc->osc);
+ } else {
+ /* Enable the RTC 32K OSC by setting bits 3 and 6. */
+ writel((1 << 3) | (1 << 6), &rtc->osc);
+ }
+}
+#endif
+
/*
* Basic board specific setup. Pinmux has been handled already.
*/
int board_init(void)
{
+ u32 sys_reboot, sys_rtc_osc;
+
+ sys_reboot = readl(PRM_RSTST);
+ if (sys_reboot & (1 << 9))
+ puts("Reset Source: IcePick reset has occurred.\n");
+
+ if (sys_reboot & (1 << 5))
+ puts("Reset Source: Global external warm reset has occurred.\n");
+
+ if (sys_reboot & (1 << 4))
+ puts("Reset Source: watchdog reset has occurred.\n");
+
+ if (sys_reboot & (1 << 1))
+ puts("Reset Source: Global warm SW reset has occurred.\n");
+
+ if (sys_reboot & (1 << 0))
+ puts("Reset Source: Power-on reset has occurred.\n");
+
+ sys_rtc_osc = readl(RTC_OSC);
+ if (sys_rtc_osc & (1 << 3)) {
+ puts("RTC 32KCLK Source: External.\n");
+ } else {
+ puts("RTC 32KCLK Source: Internal.\n");
+ }
+
#if defined(CONFIG_HW_WATCHDOG)
hw_watchdog_init();
#endif
@@ -709,6 +765,8 @@ int board_late_init(void)
char *name = NULL;
if (board_is_bone_lt()) {
+ puts("Board: BeagleBone Black\n");
+ name = "A335BNLT";
/* BeagleBoard.org BeagleBone Black Wireless: */
if (!strncmp(board_ti_get_rev(), "BWA", 3)) {
name = "BBBW";
@@ -721,10 +779,29 @@ int board_late_init(void)
if (!strncmp(board_ti_get_rev(), "BLA", 3)) {
name = "BBBL";
}
+ /* SanCloud BeagleBone Enhanced */
+ if (!strncmp(board_ti_get_rev(), "SE", 2)) {
+ puts("Model: SanCloud BeagleBone Enhanced\n");
+ name = "SBBE";
+ }
+ /* Octavo Systems OSD3358-SM-RED */
+ if (!strncmp(board_ti_get_rev(), "OS00", 4)) {
+ puts("Model: Octavo Systems OSD3358-SM-RED\n");
+ name = "OS00";
+ }
}
if (board_is_bbg1())
name = "BBG1";
+
+ if (board_is_pb()) {
+ puts("Model: BeagleBoard.org PocketBeagle\n");
+ }
+
+ if (board_is_beaglelogic()) {
+ puts("Model: BeagleLogic\n");
+ }
+
set_board_info_env(name);
/*
@@ -870,18 +947,22 @@ int board_eth_init(bd_t *bis)
(defined(CONFIG_SPL_ETH_SUPPORT) && defined(CONFIG_SPL_BUILD))
#ifdef CONFIG_DRIVER_TI_CPSW
- if (board_is_bone() || board_is_bone_lt() ||
- board_is_idk()) {
+if (!board_is_pb()) {
+ if (board_is_bone() || (board_is_bone_lt() && !board_is_bone_lt_enhanced() && !board_is_m10a()) ||
+ board_is_idk() || board_is_beaglelogic()) {
+ puts("eth0: MII MODE\n");
writel(MII_MODE_ENABLE, &cdev->miisel);
cpsw_slaves[0].phy_if = cpsw_slaves[1].phy_if =
PHY_INTERFACE_MODE_MII;
} else if (board_is_icev2()) {
+ puts("eth0: icev2: RGMII MODE\n");
writel(RMII_MODE_ENABLE | RMII_CHIPCKL_ENABLE, &cdev->miisel);
cpsw_slaves[0].phy_if = PHY_INTERFACE_MODE_RMII;
cpsw_slaves[1].phy_if = PHY_INTERFACE_MODE_RMII;
cpsw_slaves[0].phy_addr = 1;
cpsw_slaves[1].phy_addr = 3;
} else {
+ puts("eth0: RGMII MODE\n");
writel((RGMII_MODE_ENABLE | RGMII_INT_DELAY), &cdev->miisel);
cpsw_slaves[0].phy_if = cpsw_slaves[1].phy_if =
PHY_INTERFACE_MODE_RGMII;
@@ -892,6 +973,7 @@ int board_eth_init(bd_t *bis)
printf("Error %d registering CPSW switch\n", rv);
else
n += rv;
+}
#endif
/*
@@ -906,7 +988,7 @@ int board_eth_init(bd_t *bis)
#define AR8051_DEBUG_RGMII_CLK_DLY_REG 0x5
#define AR8051_RGMII_TX_CLK_DLY 0x100
- if (board_is_evm_sk() || board_is_gp_evm()) {
+ if (board_is_evm_sk() || board_is_gp_evm() || board_is_bone_lt_enhanced() || board_is_m10a()) {
const char *devname;
devname = miiphy_get_current_dev();
@@ -936,8 +1018,13 @@ int board_eth_init(bd_t *bis)
#ifdef CONFIG_SPL_LOAD_FIT
int board_fit_config_name_match(const char *name)
{
+ //FIME: we currently dont use this, yet...
if (board_is_gp_evm() && !strcmp(name, "am335x-evm"))
return 0;
+ else if (board_is_beaglelogic() && !strcmp(name, "am335x-beaglelogic"))
+ return 0;
+ else if (board_is_os00() && !strcmp(name, "am335x-boneblack"))
+ return 0;
else if (board_is_bone() && !strcmp(name, "am335x-bone"))
return 0;
else if (board_is_bone_lt() && !strcmp(name, "am335x-boneblack"))
diff --git a/board/ti/am335x/board.h b/board/ti/am335x/board.h
index 652b10b..b658914 100644
--- a/board/ti/am335x/board.h
+++ b/board/ti/am335x/board.h
@@ -23,6 +23,11 @@
#define EMIF_OCP_CONFIG_BEAGLEBONE_BLACK 0x00141414
#define EMIF_OCP_CONFIG_AM335X_EVM 0x003d3d3d
+static inline int board_is_beaglelogic(void)
+{
+ return board_ti_is("A335BLGC");
+}
+
static inline int board_is_bone(void)
{
return board_ti_is("A335BONE");
@@ -38,14 +43,50 @@ static inline int board_is_pb(void)
return board_ti_is("A335PBGL");
}
+static inline int board_is_bbbw(void)
+{
+ return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "BW", 2);
+}
+
+static inline int board_is_blue(void)
+{
+ return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "BLA", 3);
+}
+
static inline int board_is_bbg1(void)
{
return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "BBG1", 4);
}
+static inline int board_is_bone_lt_enhanced(void)
+{
+ return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "SE", 2);
+}
+
+static inline int board_is_m10a(void)
+{
+ return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "M10A", 4);
+}
+
+//Element14 BeagleBone Black Industrial:
+static inline int board_is_e14bbbi(void)
+{
+ return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "EIA0", 4);
+}
+
+static inline int board_is_marsboard(void)
+{
+ return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "00A5", 4);
+}
+
+static inline int board_is_os00(void)
+{
+ return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "OS00", 4);
+}
+
static inline int board_is_beaglebonex(void)
{
- return board_is_pb() || board_is_bone() || board_is_bone_lt() || board_is_bbg1();
+ return board_is_pb() || board_is_bone() || (board_is_bone_lt() && !board_is_marsboard()) || board_is_e14bbbi() || board_is_bbg1() || board_is_beaglelogic() || board_is_os00();
}
static inline int board_is_evm_sk(void)
diff --git a/board/ti/am335x/mux.c b/board/ti/am335x/mux.c
index aa18760..dc0189a 100644
--- a/board/ti/am335x/mux.c
+++ b/board/ti/am335x/mux.c
@@ -341,7 +341,11 @@ static unsigned short detect_daughter_board_profile(void)
void enable_board_pin_mux(void)
{
/* Do board-specific muxes. */
- if (board_is_bone()) {
+ if (board_is_beaglelogic()) {
+ /* BeagleLogic pinmux */
+ configure_module_pin_mux(mii1_pin_mux);
+ configure_module_pin_mux(mmc0_pin_mux);
+ } else if (board_is_bone()) {
/* Beaglebone pinmux */
configure_module_pin_mux(mii1_pin_mux);
configure_module_pin_mux(mmc0_pin_mux);
@@ -381,7 +385,14 @@ void enable_board_pin_mux(void)
configure_module_pin_mux(mmc0_pin_mux_sk_evm);
} else if (board_is_bone_lt()) {
/* Beaglebone LT pinmux */
- configure_module_pin_mux(mii1_pin_mux);
+ if(board_is_bone_lt_enhanced() || board_is_m10a()) {
+ /* SanCloud Beaglebone LT Enhanced pinmux */
+ configure_module_pin_mux(rgmii1_pin_mux);
+ }
+ else {
+ /* Beaglebone LT pinmux */
+ configure_module_pin_mux(mii1_pin_mux);
+ }
configure_module_pin_mux(mmc0_pin_mux);
#if defined(CONFIG_NAND) && defined(CONFIG_EMMC_BOOT)
configure_module_pin_mux(nand_pin_mux);
diff --git a/configs/am335x_boneblack_defconfig b/configs/am335x_boneblack_defconfig
index 732cb64..70e97f3 100644
--- a/configs/am335x_boneblack_defconfig
+++ b/configs/am335x_boneblack_defconfig
@@ -4,7 +4,6 @@ CONFIG_TI_COMMON_CMD_OPTIONS=y
CONFIG_AM33XX=y
CONFIG_SPL=y
CONFIG_DISTRO_DEFAULTS=y
-CONFIG_SYS_EXTRA_OPTIONS="EMMC_BOOT"
CONFIG_BOOTCOMMAND="if test ${boot_fit} -eq 1; then run update_to_fit; fi; run findfdt; run init_console; run envboot; run distro_bootcmd"
CONFIG_SYS_CONSOLE_INFO_QUIET=y
CONFIG_VERSION_VARIABLE=y
@@ -18,9 +17,14 @@ CONFIG_AUTOBOOT_DELAY_STR="d"
CONFIG_AUTOBOOT_STOP_STR=" "
CONFIG_CMD_SPL=y
# CONFIG_CMD_FLASH is not set
-# CONFIG_CMD_SETEXPR is not set
-CONFIG_ENV_IS_IN_MMC=y
+CONFIG_CMD_SETEXPR=y
+CONFIG_CMD_BTRFS=y
+# CONFIG_ENV_IS_IN_FAT is not set
+CONFIG_ENV_IS_IN_EXT4=y
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_ENV_EXT4_INTERFACE="mmc"
+CONFIG_ENV_EXT4_DEVICE_AND_PART="0:1"
+CONFIG_ENV_EXT4_FILE="/boot/uboot.env"
CONFIG_BOOTCOUNT_LIMIT=y
CONFIG_DFU_TFTP=y
CONFIG_DFU_MMC=y
@@ -33,6 +37,7 @@ CONFIG_MMC_OMAP_HS=y
CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DRIVER_TI_CPSW=y
+CONFIG_PHY_MSCC=y
CONFIG_SYS_NS16550=y
CONFIG_SPI=y
CONFIG_OMAP3_SPI=y
@@ -47,5 +52,6 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x0451
CONFIG_USB_GADGET_PRODUCT_NUM=0xd022
CONFIG_USB_ETHER=y
CONFIG_USBNET_HOST_ADDR="de:ad:be:af:00:00"
+CONFIG_FS_BTRFS=y
CONFIG_LZO=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig
index c982bed..70e97f3 100644
--- a/configs/am335x_evm_defconfig
+++ b/configs/am335x_evm_defconfig
@@ -3,54 +3,47 @@ CONFIG_ARCH_OMAP2PLUS=y
CONFIG_TI_COMMON_CMD_OPTIONS=y
CONFIG_AM33XX=y
CONFIG_SPL=y
-CONFIG_DEFAULT_DEVICE_TREE="am335x-evm"
CONFIG_DISTRO_DEFAULTS=y
-CONFIG_SPL_LOAD_FIT=y
CONFIG_BOOTCOMMAND="if test ${boot_fit} -eq 1; then run update_to_fit; fi; run findfdt; run init_console; run envboot; run distro_bootcmd"
CONFIG_SYS_CONSOLE_INFO_QUIET=y
CONFIG_VERSION_VARIABLE=y
CONFIG_ARCH_MISC_INIT=y
-CONFIG_SPL_MTD_SUPPORT=y
CONFIG_SPL_MUSB_NEW_SUPPORT=y
+# CONFIG_SPL_NAND_SUPPORT is not set
CONFIG_SPL_OS_BOOT=y
+CONFIG_AUTOBOOT_KEYED=y
+CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
+CONFIG_AUTOBOOT_DELAY_STR="d"
+CONFIG_AUTOBOOT_STOP_STR=" "
CONFIG_CMD_SPL=y
-CONFIG_CMD_SPL_NAND_OFS=0x00080000
# CONFIG_CMD_FLASH is not set
-CONFIG_CMD_NAND=y
-# CONFIG_CMD_SETEXPR is not set
-CONFIG_CMD_MTDPARTS=y
-CONFIG_MTDIDS_DEFAULT="nand0=nand.0"
-CONFIG_MTDPARTS_DEFAULT="mtdparts=nand.0:128k(NAND.SPL),128k(NAND.SPL.backup1),128k(NAND.SPL.backup2),128k(NAND.SPL.backup3),256k(NAND.u-boot-spl-os),1m(NAND.u-boot),128k(NAND.u-boot-env),128k(NAND.u-boot-env.backup1),8m(NAND.kernel),-(NAND.file-system)"
-# CONFIG_SPL_EFI_PARTITION is not set
-CONFIG_OF_CONTROL=y
-CONFIG_OF_LIST="am335x-evm am335x-bone am335x-boneblack am335x-evmsk am335x-bonegreen am335x-icev2"
+CONFIG_CMD_SETEXPR=y
+CONFIG_CMD_BTRFS=y
+# CONFIG_ENV_IS_IN_FAT is not set
+CONFIG_ENV_IS_IN_EXT4=y
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
-# CONFIG_BLK is not set
+CONFIG_ENV_EXT4_INTERFACE="mmc"
+CONFIG_ENV_EXT4_DEVICE_AND_PART="0:1"
+CONFIG_ENV_EXT4_FILE="/boot/uboot.env"
CONFIG_BOOTCOUNT_LIMIT=y
+CONFIG_DFU_TFTP=y
CONFIG_DFU_MMC=y
-CONFIG_DFU_NAND=y
CONFIG_DFU_RAM=y
CONFIG_USB_FUNCTION_FASTBOOT=y
-CONFIG_DM_I2C=y
-CONFIG_MISC=y
-CONFIG_DM_MMC=y
+CONFIG_FASTBOOT_FLASH=y
+CONFIG_FASTBOOT_FLASH_MMC_DEV=1
+CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
CONFIG_MMC_OMAP_HS=y
-CONFIG_NAND=y
CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_WINBOND=y
-CONFIG_DM_ETH=y
CONFIG_DRIVER_TI_CPSW=y
-CONFIG_PHY_GIGE=y
+CONFIG_PHY_MSCC=y
CONFIG_SYS_NS16550=y
CONFIG_SPI=y
CONFIG_OMAP3_SPI=y
-CONFIG_TIMER=y
-CONFIG_OMAP_TIMER=y
CONFIG_USB=y
-CONFIG_DM_USB=y
CONFIG_USB_MUSB_HOST=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_USB_MUSB_TI=y
CONFIG_USB_MUSB_DSPS=y
CONFIG_USB_STORAGE=y
CONFIG_USB_GADGET=y
@@ -58,6 +51,7 @@ CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
CONFIG_USB_GADGET_VENDOR_NUM=0x0451
CONFIG_USB_GADGET_PRODUCT_NUM=0xd022
CONFIG_USB_ETHER=y
-CONFIG_DYNAMIC_CRC_TABLE=y
-CONFIG_RSA=y
+CONFIG_USBNET_HOST_ADDR="de:ad:be:af:00:00"
+CONFIG_FS_BTRFS=y
CONFIG_LZO=y
+CONFIG_OF_LIBFDT=y
diff --git a/env/common.c b/env/common.c
index dc8a14f..7f51b1e 100644
--- a/env/common.c
+++ b/env/common.c
@@ -203,6 +203,7 @@ int env_import_redund(const char *buf1, int buf1_read_fail,
/* Export the environment and generate CRC for it. */
int env_export(env_t *env_out)
{
+#if !defined(CONFIG_SPL_BUILD)
char *res;
ssize_t len;
@@ -217,6 +218,7 @@ int env_export(env_t *env_out)
#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT
env_out->flags = ++env_flags; /* increase the serial */
+#endif
#endif
return 0;
diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
index ff87adc..e55736e 100644
--- a/include/configs/am335x_evm.h
+++ b/include/configs/am335x_evm.h
@@ -58,9 +58,14 @@
#define BOOTENV_DEV_LEGACY_MMC(devtypeu, devtypel, instance) \
"bootcmd_" #devtypel #instance "=" \
+ "gpio clear 56; " \
+ "gpio clear 55; " \
+ "gpio clear 54; " \
+ "gpio set 53; " \
+ "setenv devtype mmc; " \
"setenv mmcdev " #instance"; "\
- "setenv bootpart " #instance":2 ; "\
- "run mmcboot\0"
+ "setenv bootpart " #instance":1 ; "\
+ "run boot\0"
#define BOOTENV_DEV_NAME_LEGACY_MMC(devtypeu, devtypel, instance) \
#devtypel #instance " "
@@ -89,7 +94,6 @@
func(LEGACY_MMC, legacy_mmc, 0) \
func(MMC, mmc, 1) \
func(LEGACY_MMC, legacy_mmc, 1) \
- func(NAND, nand, 0) \
BOOT_TARGET_PXE(func) \
BOOT_TARGET_DHCP(func)
@@ -106,6 +110,7 @@
"bootpart=0:2\0" \
"bootdir=/boot\0" \
"bootfile=zImage\0" \
+ "board_eeprom_header=undefined\0" \
"fdtfile=undefined\0" \
"console=ttyO0,115200n8\0" \
"partitions=" \
@@ -135,14 +140,67 @@
"sf probe ${spibusno}:0; " \
"sf read ${loadaddr} ${spisrcaddr} ${spiimgsize}; " \
"bootz ${loadaddr}\0" \
+ "pb_eeprom_hdr=" \
+ "mw 82001000 ee3355aa; " \
+ "mw 82001004 35333341; " \
+ "mw 82001008 4c474250\0" \
+ "serverip=192.168.1.1\0" \
+ "ipaddr=192.168.1.2\0" \
+ "if_netconsole=ping $serverip\0" \
+ "start_netconsole=" \
+ "setenv ncip $serverip; " \
+ "setenv bootdelay 10; " \
+ "setenv stdin serial,nc; " \
+ "setenv stdout serial,nc; " \
+ "setenv stderr serial,nc; " \
+ "version\0" \
+ "preboot=run if_netconsole start_netconsole\0"\
+ "eeprom_program="\
+ "if test $board_eeprom_header = bbb_blank; then " \
+ "run eeprom_dump; run eeprom_blank; run eeprom_bbb_header; run eeprom_dump; reset; fi; " \
+ "if test $board_eeprom_header = bbbl_blank; then " \
+ "run eeprom_dump; run eeprom_blank; run eeprom_bbb_header; run eeprom_bbbl_footer; run eeprom_dump; reset; fi; " \
+ "if test $board_eeprom_header = bbbw_blank; then " \
+ "run eeprom_dump; run eeprom_blank; run eeprom_bbb_header; run eeprom_bbbw_footer; run eeprom_dump; reset; fi; " \
+ "if test $board_eeprom_header = os00_blank; then " \
+ "run eeprom_dump; run eeprom_blank; run eeprom_bbb_header; run eeprom_os00_footer; run eeprom_dump; reset; fi; " \
+ "if test $board_eeprom_header = beaglelogic_blank; then " \
+ "run eeprom_dump; run eeprom_blank; run eeprom_beaglelogic; run eeprom_dump; reset; fi; \0" \
"ramboot=echo Booting from ramdisk ...; " \
"run ramargs; " \
"bootz ${loadaddr} ${rdaddr} ${fdtaddr}\0" \
"findfdt="\
+ "echo board_name=[$board_name] ...; " \
+ "if test $board_name = A335BLGC; then " \
+ "setenv fdtfile am335x-beaglelogic.dtb; fi; " \
"if test $board_name = A335BONE; then " \
"setenv fdtfile am335x-bone.dtb; fi; " \
"if test $board_name = A335BNLT; then " \
- "setenv fdtfile am335x-boneblack.dtb; fi; " \
+ "echo board_rev=[$board_rev] ...; " \
+ "if test $board_rev = GH01; then " \
+ "setenv fdtfile am335x-boneblack.dtb; " \
+ "elif test $board_rev = BBG1; then " \
+ "setenv fdtfile am335x-bonegreen.dtb; " \
+ "elif test $board_rev = BP00; then " \
+ "setenv fdtfile am335x-pocketbone.dtb; " \
+ "elif test $board_rev = GW1A; then " \
+ "setenv fdtfile am335x-bonegreen-wireless.dtb; " \
+ "elif test $board_rev = AIA0; then " \
+ "setenv fdtfile am335x-abbbi.dtb; " \
+ "elif test $board_rev = EIA0; then " \
+ "setenv fdtfile am335x-boneblack.dtb; " \
+ "elif test $board_rev = SE0A; then " \
+ "setenv fdtfile am335x-sancloud-bbe.dtb; " \
+ "elif test $board_rev = ME06; then " \
+ "setenv fdtfile am335x-bonegreen.dtb; " \
+ "elif test $board_rev = M10A; then " \
+ "setenv fdtfile am335x-vsc8531bbb.dtb; " \
+ "elif test $board_rev = OS00; then " \
+ "setenv fdtfile am335x-osd3358-sm-red.dtb; " \
+ "else " \
+ "setenv fdtfile am335x-boneblack.dtb; " \
+ "fi; " \
+ "fi; " \
"if test $board_name = A335PBGL; then " \
"setenv fdtfile am335x-pocketbeagle.dtb; fi; " \
"if test $board_name = BBBW; then " \
@@ -153,6 +211,10 @@
"setenv fdtfile am335x-bonegreen-wireless.dtb; fi; " \
"if test $board_name = BBBL; then " \
"setenv fdtfile am335x-boneblue.dtb; fi; " \
+ "if test $board_name = SBBE; then " \
+ "setenv fdtfile am335x-sancloud-bbe.dtb; fi; " \
+ "if test $board_name = OS00; then " \
+ "setenv fdtfile am335x-osd3358-sm-red.dtb; fi; " \
"if test $board_name = A33515BB; then " \
"setenv fdtfile am335x-evm.dtb; fi; " \
"if test $board_name = A335X_SK; then " \
@@ -160,13 +222,22 @@
"if test $board_name = A335_ICE; then " \
"setenv fdtfile am335x-icev2.dtb; fi; " \
"if test $fdtfile = undefined; then " \
- "echo WARNING: Could not determine device tree to use; fi; \0" \
+ "setenv board_name A335BNLT; " \
+ "setenv board_rev EMMC; " \
+ "setenv fdtfile am335x-boneblack-emmc-overlay.dtb; " \
+ "fi; \0" \
"init_console=" \
"if test $board_name = A335_ICE; then "\
"setenv console ttyO3,115200n8;" \
+ "elif test $board_name = A335BLGC; then " \
+ "setenv console ttyO4,115200n8;" \
"else " \
"setenv console ttyO0,115200n8;" \
"fi;\0" \
+ EEWIKI_NFS \
+ EEWIKI_BOOT \
+ EEWIKI_UNAME_BOOT \
+ EEPROM_PROGRAMMING \
NANDARGS \
NETARGS \
DFUARGS \
@@ -240,9 +311,14 @@
*/
#define CONFIG_USB_MUSB_DISABLE_BULK_COMBINE_SPLIT
#define CONFIG_AM335X_USB0
-#define CONFIG_AM335X_USB0_MODE MUSB_PERIPHERAL
#define CONFIG_AM335X_USB1
+#ifdef CONFIG_AM335X_USB_SWAP
+#define CONFIG_AM335X_USB0_MODE MUSB_HOST
+#define CONFIG_AM335X_USB1_MODE MUSB_PERIPHERAL
+#else
+#define CONFIG_AM335X_USB0_MODE MUSB_PERIPHERAL
#define CONFIG_AM335X_USB1_MODE MUSB_HOST
+#endif
/*
* Disable MMC DM for SPL build and can be re-enabled after adding
@@ -294,6 +370,17 @@
#define CONFIG_ENV_OFFSET_REDUND (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)
#define CONFIG_SYS_REDUNDAND_ENVIRONMENT
#define CONFIG_SYS_MMC_MAX_DEVICE 2
+#elif defined(CONFIG_SD_BOOT)
+#define CONFIG_ENV_IS_IN_FAT
+#define FAT_ENV_INTERFACE "mmc"
+#define FAT_ENV_DEVICE_AND_PART "0:1"
+#define FAT_ENV_FILE "uboot.env"
+#ifndef CONFIG_FAT_WRITE
+#define CONFIG_FAT_WRITE
+#endif
+#define FAT_ENV_DEVICE 0
+#define FAT_ENV_PART 1
+#define CONFIG_BOOT_PARTITION_ACCESS
#elif defined(CONFIG_NOR_BOOT)
#define CONFIG_ENV_SECT_SIZE (128 << 10) /* 128 KiB */
#define CONFIG_ENV_OFFSET (512 << 10) /* 512 KiB */
diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h
index 9257e2b..b0f517c 100644
--- a/include/configs/ti_armv7_common.h
+++ b/include/configs/ti_armv7_common.h
@@ -119,6 +119,305 @@
/* Boot Argument Buffer Size */
#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
+#define EEPROM_PROGRAMMING \
+ "eeprom_dump=i2c dev 0; " \
+ "i2c md 0x50 0x00.2 20; " \
+ "\0" \
+ "eeprom_blank=i2c dev 0; " \
+ "i2c mw 0x50 0x00.2 ff; " \
+ "i2c mw 0x50 0x01.2 ff; " \
+ "i2c mw 0x50 0x02.2 ff; " \
+ "i2c mw 0x50 0x03.2 ff; " \
+ "i2c mw 0x50 0x04.2 ff; " \
+ "i2c mw 0x50 0x05.2 ff; " \
+ "i2c mw 0x50 0x06.2 ff; " \
+ "i2c mw 0x50 0x07.2 ff; " \
+ "i2c mw 0x50 0x08.2 ff; " \
+ "i2c mw 0x50 0x09.2 ff; " \
+ "i2c mw 0x50 0x0a.2 ff; " \
+ "i2c mw 0x50 0x0b.2 ff; " \
+ "i2c mw 0x50 0x0c.2 ff; " \
+ "i2c mw 0x50 0x0d.2 ff; " \
+ "i2c mw 0x50 0x0e.2 ff; " \
+ "i2c mw 0x50 0x0f.2 ff; " \
+ "i2c mw 0x50 0x10.2 ff; " \
+ "i2c mw 0x50 0x11.2 ff; " \
+ "i2c mw 0x50 0x12.2 ff; " \
+ "i2c mw 0x50 0x13.2 ff; " \
+ "i2c mw 0x50 0x14.2 ff; " \
+ "i2c mw 0x50 0x15.2 ff; " \
+ "i2c mw 0x50 0x16.2 ff; " \
+ "i2c mw 0x50 0x17.2 ff; " \
+ "i2c mw 0x50 0x18.2 ff; " \
+ "i2c mw 0x50 0x19.2 ff; " \
+ "i2c mw 0x50 0x1a.2 ff; " \
+ "i2c mw 0x50 0x1b.2 ff; " \
+ "i2c mw 0x50 0x1c.2 ff; " \
+ "i2c mw 0x50 0x1d.2 ff; " \
+ "i2c mw 0x50 0x1e.2 ff; " \
+ "i2c mw 0x50 0x1f.2 ff; " \
+ "\0" \
+ "eeprom_bbb_header=i2c dev 0; " \
+ "i2c mw 0x50 0x00.2 aa; " \
+ "i2c mw 0x50 0x01.2 55; " \
+ "i2c mw 0x50 0x02.2 33; " \
+ "i2c mw 0x50 0x03.2 ee; " \
+ "i2c mw 0x50 0x04.2 41; " \
+ "i2c mw 0x50 0x05.2 33; " \
+ "i2c mw 0x50 0x06.2 33; " \
+ "i2c mw 0x50 0x07.2 35; " \
+ "i2c mw 0x50 0x08.2 42; " \
+ "i2c mw 0x50 0x09.2 4e; " \
+ "i2c mw 0x50 0x0a.2 4c; " \
+ "i2c mw 0x50 0x0b.2 54; " \
+ "\0" \
+ "eeprom_bbbl_footer= " \
+ "i2c mw 0x50 0x0c.2 42; " \
+ "i2c mw 0x50 0x0d.2 4c; " \
+ "i2c mw 0x50 0x0e.2 41; " \
+ "i2c mw 0x50 0x0f.2 32; " \
+ "\0" \
+ "eeprom_bbbw_footer= " \
+ "i2c mw 0x50 0x0c.2 42; " \
+ "i2c mw 0x50 0x0d.2 57; " \
+ "i2c mw 0x50 0x0e.2 41; " \
+ "i2c mw 0x50 0x0f.2 35; " \
+ "\0" \
+ "eeprom_os00_footer= " \
+ "i2c mw 0x50 0x0c.2 4F; " \
+ "i2c mw 0x50 0x0d.2 53; " \
+ "i2c mw 0x50 0x0e.2 30; " \
+ "i2c mw 0x50 0x0f.2 30; " \
+ "\0" \
+ "eeprom_beaglelogic= " \
+ "i2c mw 0x50 0x00.2 aa; " \
+ "i2c mw 0x50 0x01.2 55; " \
+ "i2c mw 0x50 0x02.2 33; " \
+ "i2c mw 0x50 0x03.2 ee; " \
+ "i2c mw 0x50 0x04.2 41; " \
+ "i2c mw 0x50 0x05.2 33; " \
+ "i2c mw 0x50 0x06.2 33; " \
+ "i2c mw 0x50 0x07.2 35; " \
+ "i2c mw 0x50 0x08.2 42; " \
+ "i2c mw 0x50 0x09.2 4c; " \
+ "i2c mw 0x50 0x0a.2 47; " \
+ "i2c mw 0x50 0x0b.2 43; " \
+ "i2c mw 0x50 0x0c.2 30; " \
+ "i2c mw 0x50 0x0d.2 30; " \
+ "i2c mw 0x50 0x0e.2 30; " \
+ "i2c mw 0x50 0x0f.2 41; " \
+ "\0" \
+
+
+#define EEWIKI_NFS \
+ "server_ip=192.168.1.100\0" \
+ "gw_ip=192.168.1.1\0" \
+ "netmask=255.255.255.0\0" \
+ "hostname=\0" \
+ "device=eth0\0" \
+ "autoconf=off\0" \
+ "root_dir=/home/userid/targetNFS\0" \
+ "tftp_dir=\0" \
+ "nfs_options=,vers=3\0" \
+ "nfsrootfstype=ext4 rootwait fixrtc\0" \
+ "nfsargs=setenv bootargs console=${console} " \
+ "${optargs} " \
+ "${cape_disable} " \
+ "${cape_enable} " \
+ "${cape_uboot} " \
+ "root=/dev/nfs rw " \
+ "rootfstype=${nfsrootfstype} " \
+ "nfsroot=${nfsroot} " \
+ "ip=${ip} " \
+ "${cmdline}\0" \
+ "nfsboot=echo Booting from ${server_ip} ...; " \
+ "setenv nfsroot ${server_ip}:${root_dir}${nfs_options}; " \
+ "setenv ip ${client_ip}:${server_ip}:${gw_ip}:${netmask}:${hostname}:${device}:${autoconf}; " \
+ "setenv autoload no; " \
+ "setenv serverip ${server_ip}; " \
+ "setenv ipaddr ${client_ip}; " \
+ "tftp ${loadaddr} ${tftp_dir}${bootfile}; " \
+ "tftp ${fdtaddr} ${tftp_dir}dtbs/${fdtfile}; " \
+ "run nfsargs; " \
+ "bootz ${loadaddr} - ${fdtaddr}\0" \
+ "nfsboot_uname_r=echo Booting from ${server_ip} ...; " \
+ "setenv nfsroot ${server_ip}:${root_dir}${nfs_options}; " \
+ "setenv ip ${client_ip}:${server_ip}:${gw_ip}:${netmask}:${hostname}:${device}:${autoconf}; " \
+ "setenv autoload no; " \
+ "setenv serverip ${server_ip}; " \
+ "setenv ipaddr ${client_ip}; " \
+ "tftp ${loadaddr} ${tftp_dir}vmlinuz-${uname_r}; " \
+ "tftp ${fdtaddr} ${tftp_dir}dtbs/${uname_r}/${fdtfile}; " \
+ "run nfsargs; " \
+ "bootz ${loadaddr} - ${fdtaddr}\0" \
+
+#define EEWIKI_BOOT \
+ "boot=${devtype} dev ${mmcdev}; " \
+ "if ${devtype} rescan; then " \
+ "gpio set 54;" \
+ "setenv bootpart ${mmcdev}:1; " \
+ "if test -e ${devtype} ${bootpart} /etc/fstab; then " \
+ "setenv mmcpart 1;" \
+ "fi; " \
+ "echo Checking for: /uEnv.txt ...;" \
+ "if test -e ${devtype} ${bootpart} /uEnv.txt; then " \
+ "if run loadbootenv; then " \
+ "gpio set 55;" \
+ "echo Loaded environment from /uEnv.txt;" \
+ "run importbootenv;" \
+ "fi;" \
+ "echo Checking if uenvcmd is set ...;" \
+ "if test -n ${uenvcmd}; then " \
+ "gpio set 56; " \
+ "echo Running uenvcmd ...;" \
+ "run uenvcmd;" \
+ "fi;" \
+ "echo Checking if client_ip is set ...;" \
+ "if test -n ${client_ip}; then " \
+ "if test -n ${dtb}; then " \
+ "setenv fdtfile ${dtb};" \
+ "echo using ${fdtfile} ...;" \
+ "fi;" \
+ "gpio set 56; " \
+ "if test -n ${uname_r}; then " \
+ "echo Running nfsboot_uname_r ...;" \
+ "run nfsboot_uname_r;" \
+ "fi;" \
+ "echo Running nfsboot ...;" \
+ "run nfsboot;" \
+ "fi;" \
+ "fi; " \
+ "echo Checking for: /${script} ...;" \
+ "if test -e ${devtype} ${bootpart} /${script}; then " \
+ "gpio set 55;" \
+ "setenv scriptfile ${script};" \
+ "run loadbootscript;" \
+ "echo Loaded script from ${scriptfile};" \
+ "gpio set 56; " \
+ "run bootscript;" \
+ "fi; " \
+ "echo Checking for: /boot/${script} ...;" \
+ "if test -e ${devtype} ${bootpart} /boot/${script}; then " \
+ "gpio set 55;" \
+ "setenv scriptfile /boot/${script};" \
+ "run loadbootscript;" \
+ "echo Loaded script from ${scriptfile};" \
+ "gpio set 56; " \
+ "run bootscript;" \
+ "fi; " \
+ "echo Checking for: /boot/uEnv.txt ...;" \
+ "for i in 1 2 3 4 5 6 7 ; do " \
+ "setenv mmcpart ${i};" \
+ "setenv bootpart ${mmcdev}:${mmcpart};" \
+ "if test -e ${devtype} ${bootpart} /boot/uEnv.txt; then " \
+ "gpio set 55;" \
+ "load ${devtype} ${bootpart} ${loadaddr} /boot/uEnv.txt;" \
+ "env import -t ${loadaddr} ${filesize};" \
+ "echo Loaded environment from /boot/uEnv.txt;" \
+ "if test -n ${dtb}; then " \
+ "echo debug: [dtb=${dtb}] ... ;" \
+ "setenv fdtfile ${dtb};" \
+ "echo Using: dtb=${fdtfile} ...;" \
+ "fi;" \
+ "echo Checking if uname_r is set in /boot/uEnv.txt...;" \
+ "if test -n ${uname_r}; then " \
+ "gpio set 56; " \
+ "setenv oldroot /dev/mmcblk${mmcdev}p${mmcpart};" \
+ "echo Running uname_boot ...;" \
+ "run uname_boot;" \
+ "fi;" \
+ "fi;" \
+ "done;" \
+ "fi;\0" \
+
+#define EEWIKI_UNAME_BOOT \
+ "uname_boot="\
+ "setenv bootdir /boot; " \
+ "setenv bootfile vmlinuz-${uname_r}; " \
+ "if test -e ${devtype} ${bootpart} ${bootdir}/${bootfile}; then " \
+ "echo loading ${bootdir}/${bootfile} ...; "\
+ "run loadimage;" \
+ "setenv fdtdir /boot/dtbs/${uname_r}; " \
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
+ "run loadfdt;" \
+ "else " \
+ "setenv fdtdir /usr/lib/linux-image-${uname_r}; " \
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
+ "run loadfdt;" \
+ "else " \
+ "setenv fdtdir /lib/firmware/${uname_r}/device-tree; " \
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
+ "run loadfdt;" \
+ "else " \
+ "setenv fdtdir /boot/dtb-${uname_r}; " \
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
+ "run loadfdt;" \
+ "else " \
+ "setenv fdtdir /boot/dtbs; " \
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
+ "run loadfdt;" \
+ "else " \
+ "setenv fdtdir /boot/dtb; " \
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
+ "run loadfdt;" \
+ "else " \
+ "setenv fdtdir /boot; " \
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
+ "run loadfdt;" \
+ "else " \
+ "if test -e ${devtype} ${bootpart} ${fdtfile}; then " \
+ "run loadfdt;" \
+ "else " \
+ "echo; echo unable to find [dtb=${fdtfile}] did you name it correctly? ...; " \
+ "run failumsboot;" \
+ "fi;" \
+ "fi;" \
+ "fi;" \
+ "fi;" \
+ "fi;" \
+ "fi;" \
+ "fi;" \
+ "fi; " \
+ "setenv rdfile initrd.img-${uname_r}; " \
+ "if test -e ${devtype} ${bootpart} ${bootdir}/${rdfile}; then " \
+ "echo loading ${bootdir}/${rdfile} ...; "\
+ "run loadrd;" \
+ "if test -n ${netinstall_enable}; then " \
+ "run args_netinstall; run message;" \
+ "echo debug: [${bootargs}] ... ;" \
+ "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
+ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
+ "fi;" \
+ "if test -n ${uenv_root}; then " \
+ "run args_uenv_root;" \
+ "echo debug: [${bootargs}] ... ;" \
+ "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
+ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
+ "fi;" \
+ "if test -n ${uuid}; then " \
+ "run args_mmc_uuid;" \
+ "echo debug: [${bootargs}] ... ;" \
+ "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
+ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
+ "fi;" \
+ "run args_mmc_old;" \
+ "echo debug: [${bootargs}] ... ;" \
+ "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}] ... ;" \
+ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
+ "else " \
+ "if test -n ${uenv_root}; then " \
+ "run args_uenv_root;" \
+ "echo debug: [${bootargs}] ... ;" \
+ "echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;" \
+ "bootz ${loadaddr} - ${fdtaddr}; " \
+ "fi;" \
+ "run args_mmc_old;" \
+ "echo debug: [${bootargs}] ... ;" \
+ "echo debug: [bootz ${loadaddr} - ${fdtaddr}] ... ;" \
+ "bootz ${loadaddr} - ${fdtaddr}; " \
+ "fi;" \
+ "fi;\0" \
+
/*
* When we have SPI, NOR or NAND flash we expect to be making use of
* mtdparts, both for ease of use in U-Boot and for passing information
diff --git a/include/environment/ti/mmc.h b/include/environment/ti/mmc.h
index 785fc15..110c426 100644
--- a/include/environment/ti/mmc.h
+++ b/include/environment/ti/mmc.h
@@ -11,20 +11,65 @@
#define DEFAULT_MMC_TI_ARGS \
"mmcdev=0\0" \
"mmcrootfstype=ext4 rootwait\0" \
- "finduuid=part uuid mmc ${bootpart} uuid\0" \
+ "finduuid=part uuid ${devtype} ${bootpart} uuid\0" \
"args_mmc=run finduuid;setenv bootargs console=${console} " \
+ "${cape_disable} " \
+ "${cape_enable} " \
+ "${cape_uboot} " \
+ "root=PARTUUID=${uuid} ro " \
+ "rootfstype=${mmcrootfstype} " \
+ "${uboot_detected_capes} " \
+ "${cmdline}\0" \
+ "args_mmc_old=setenv bootargs console=${console} " \
"${optargs} " \
- "root=PARTUUID=${uuid} rw " \
- "rootfstype=${mmcrootfstype}\0" \
- "loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr\0" \
- "bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
+ "${cape_disable} " \
+ "${cape_enable} " \
+ "${cape_uboot} " \
+ "root=${oldroot} ro " \
+ "rootfstype=${mmcrootfstype} " \
+ "${uboot_detected_capes} " \
+ "${cmdline}\0" \
+ "args_mmc_uuid=setenv bootargs console=${console} " \
+ "${optargs} " \
+ "${cape_disable} " \
+ "${cape_enable} " \
+ "${cape_uboot} " \
+ "root=UUID=${uuid} ro " \
+ "rootfstype=${mmcrootfstype} " \
+ "${uboot_detected_capes} " \
+ "${cmdline}\0" \
+ "args_uenv_root=setenv bootargs console=${console} " \
+ "${optargs} " \
+ "${cape_disable} " \
+ "${cape_enable} " \
+ "${cape_uboot} " \
+ "root=${uenv_root} ro " \
+ "rootfstype=${mmcrootfstype} " \
+ "${uboot_detected_capes} " \
+ "${cmdline}\0" \
+ "args_netinstall=setenv bootargs ${netinstall_bootargs} " \
+ "${optargs} " \
+ "${cape_disable} " \
+ "${cape_enable} " \
+ "${cape_uboot} " \
+ "root=/dev/ram rw " \
+ "${uboot_detected_capes} " \
+ "${cmdline}\0" \
+ "script=boot.scr\0" \
+ "scriptfile=${script}\0" \
+ "loadbootscript=load ${devtype} ${bootpart} ${loadaddr} ${scriptfile};\0" \
+ "bootscript=echo Running bootscript from mmc${bootpart} ...; " \
"source ${loadaddr}\0" \
"bootenvfile=uEnv.txt\0" \
- "importbootenv=echo Importing environment from mmc${mmcdev} ...; " \
+ "bootenv=uEnv.txt\0" \
+ "importbootenv=echo Importing environment from ${devtype} ...; " \
"env import -t ${loadaddr} ${filesize}\0" \
- "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}\0" \
+ "loadbootenv=load ${devtype} ${bootpart} ${loadaddr} ${bootenvfile}\0" \
"loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
- "loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \
+ "loadrd=load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/${rdfile}; setenv rdsize ${filesize}\0" \
+ "loadfdt=echo loading ${fdtdir}/${fdtfile} ...; load ${devtype} ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile}\0" \
+ "failumsboot=echo; echo FAILSAFE: U-Boot UMS (USB Mass Storage) enabled, media now available over the usb slave port ...; " \
+ "ums 0 ${devtype} 1;\0" \
"envboot=mmc dev ${mmcdev}; " \
"if mmc rescan; then " \
"echo SD/MMC found on device ${mmcdev};" \
@@ -44,7 +89,11 @@
"mmcloados=run args_mmc; " \
"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
"if run loadfdt; then " \
- "bootz ${loadaddr} - ${fdtaddr}; " \
+ "if test -n ${uname_r}; then " \
+ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
+ "else " \
+ "bootz ${loadaddr} - ${fdtaddr}; " \
+ "fi; " \
"else " \
"if test ${boot_fdt} = try; then " \
"bootz; " \
--
2.17.1