summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README19
-rw-r--r--arch/arm/cpu/armv8/fsl-layerscape/Kconfig3
-rw-r--r--arch/arm/lib/bootm-fdt.c12
-rw-r--r--arch/powerpc/cpu/mpc85xx/Kconfig33
-rw-r--r--board/freescale/ls1046ardb/eth.c51
-rw-r--r--common/fdt_support.c25
-rw-r--r--configs/TWR-P1025_defconfig1
-rw-r--r--configs/UCP1020_SPIFLASH_defconfig1
-rw-r--r--configs/UCP1020_defconfig1
-rw-r--r--configs/adp-ae3xx_defconfig1
-rw-r--r--configs/qemu-ppce500_defconfig1
-rw-r--r--configs/tricorder_defconfig1
-rw-r--r--configs/tricorder_flash_defconfig1
-rw-r--r--configs/uniphier_ld4_sld8_defconfig1
-rw-r--r--configs/uniphier_v7_defconfig1
-rw-r--r--configs/uniphier_v8_defconfig1
-rw-r--r--configs/xpedite517x_defconfig1
-rw-r--r--configs/xpedite520x_defconfig1
-rw-r--r--configs/xpedite537x_defconfig1
-rw-r--r--configs/xpedite550x_defconfig1
-rw-r--r--include/configs/B4860QDS.h1
-rw-r--r--include/configs/C29XPCIE.h1
-rw-r--r--include/configs/MPC8536DS.h1
-rw-r--r--include/configs/MPC8544DS.h1
-rw-r--r--include/configs/MPC8572DS.h1
-rw-r--r--include/configs/P1010RDB.h1
-rw-r--r--include/configs/P1023RDB.h2
-rw-r--r--include/configs/P2041RDB.h1
-rw-r--r--include/configs/T102xQDS.h1
-rw-r--r--include/configs/T102xRDB.h1
-rw-r--r--include/configs/T1040QDS.h1
-rw-r--r--include/configs/T104xRDB.h1
-rw-r--r--include/configs/T4240RDB.h1
-rw-r--r--include/configs/UCP1020.h1
-rw-r--r--include/configs/adp-ae3xx.h1
-rw-r--r--include/configs/corenet_ds.h1
-rw-r--r--include/configs/cyrus.h1
-rw-r--r--include/configs/ls1012a_common.h1
-rw-r--r--include/configs/ls1046ardb.h2
-rw-r--r--include/configs/ls1088a_common.h2
-rw-r--r--include/configs/ls2080a_common.h2
-rw-r--r--include/configs/p1_p2_rdb_pc.h1
-rw-r--r--include/configs/p1_twr.h1
-rw-r--r--include/configs/qemu-ppce500.h1
-rw-r--r--include/configs/t4qds.h1
-rw-r--r--include/configs/tricorder.h1
-rw-r--r--include/configs/uniphier.h2
-rw-r--r--include/configs/xpedite517x.h1
-rw-r--r--include/configs/xpedite520x.h1
-rw-r--r--include/configs/xpedite537x.h1
-rw-r--r--include/configs/xpedite550x.h1
-rw-r--r--include/configs/xtfpga.h4
-rw-r--r--include/fdt_support.h3
-rw-r--r--lib/Kconfig10
54 files changed, 158 insertions, 52 deletions
diff --git a/README b/README
index 93c7ea96658..06f3ed057d5 100644
--- a/README
+++ b/README
@@ -1603,6 +1603,15 @@ The following options need to be configured:
See doc/README.link-local for more information.
+ - MAC address from environment variables
+
+ FDT_SEQ_MACADDR_FROM_ENV
+
+ Fix-up device tree with MAC addresses fetched sequentially from
+ environment variables. This config work on assumption that
+ non-usable ethernet node of device-tree are either not present
+ or their status has been marked as "disabled".
+
- CDP Options:
CONFIG_CDP_DEVICE_ID
@@ -2168,16 +2177,6 @@ The following options need to be configured:
currently only supports clearing the memory.
- Error Recovery:
- CONFIG_PANIC_HANG
-
- Define this variable to stop the system in case of a
- fatal error, so that you have to reset it manually.
- This is probably NOT a good idea for an embedded
- system where you want the system to reboot
- automatically as fast as possible, but it may be
- useful during development since you can try to debug
- the conditions that lead to the situation.
-
CONFIG_NET_RETRY_COUNT
This variable defines the number of retries for
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
index 66bc32cc851..6c03dfb1d58 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
+++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
@@ -11,6 +11,7 @@ config ARCH_LS1012A
select SYS_FSL_ERRATUM_A009008
select ARCH_EARLY_INIT_R
select BOARD_EARLY_INIT_F
+ imply PANIC_HANG
config ARCH_LS1043A
bool
@@ -91,6 +92,7 @@ config ARCH_LS1088A
select ARCH_EARLY_INIT_R
select BOARD_EARLY_INIT_F
imply SCSI
+ imply PANIC_HANG
config ARCH_LS2080A
bool
@@ -129,6 +131,7 @@ config ARCH_LS2080A
select SYS_FSL_ERRATUM_A009203
select ARCH_EARLY_INIT_R
select BOARD_EARLY_INIT_F
+ imply PANIC_HANG
config FSL_LSCH2
bool
diff --git a/arch/arm/lib/bootm-fdt.c b/arch/arm/lib/bootm-fdt.c
index eaa817b9ac8..fcc2a0e2146 100644
--- a/arch/arm/lib/bootm-fdt.c
+++ b/arch/arm/lib/bootm-fdt.c
@@ -25,6 +25,13 @@
DECLARE_GLOBAL_DATA_PTR;
+#ifdef CONFIG_FMAN_ENET
+__weak int fdt_update_ethernet_dt(void *blob)
+{
+ return 0;
+}
+#endif
+
int arch_fixup_fdt(void *blob)
{
int ret = 0;
@@ -64,5 +71,10 @@ int arch_fixup_fdt(void *blob)
#endif
#endif
+#ifdef CONFIG_FMAN_ENET
+ ret = fdt_update_ethernet_dt(blob);
+ if (ret)
+ return ret;
+#endif
return 0;
}
diff --git a/arch/powerpc/cpu/mpc85xx/Kconfig b/arch/powerpc/cpu/mpc85xx/Kconfig
index 5df8175f1ed..19e8d02bf4f 100644
--- a/arch/powerpc/cpu/mpc85xx/Kconfig
+++ b/arch/powerpc/cpu/mpc85xx/Kconfig
@@ -29,6 +29,7 @@ config TARGET_B4420QDS
select ARCH_B4420
select SUPPORT_SPL
select PHYS_64BIT
+ imply PANIC_HANG
config TARGET_B4860QDS
bool "Support B4860QDS"
@@ -36,6 +37,7 @@ config TARGET_B4860QDS
select BOARD_LATE_INIT if CHAIN_OF_TRUST
select SUPPORT_SPL
select PHYS_64BIT
+ imply PANIC_HANG
config TARGET_BSC9131RDB
bool "Support BSC9131RDB"
@@ -57,6 +59,7 @@ config TARGET_C29XPCIE
select SUPPORT_SPL
select SUPPORT_TPL
select PHYS_64BIT
+ imply PANIC_HANG
config TARGET_P3041DS
bool "Support P3041DS"
@@ -64,6 +67,7 @@ config TARGET_P3041DS
select ARCH_P3041
select BOARD_LATE_INIT if CHAIN_OF_TRUST
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_P4080DS
bool "Support P4080DS"
@@ -71,6 +75,7 @@ config TARGET_P4080DS
select ARCH_P4080
select BOARD_LATE_INIT if CHAIN_OF_TRUST
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_P5020DS
bool "Support P5020DS"
@@ -78,6 +83,7 @@ config TARGET_P5020DS
select ARCH_P5020
select BOARD_LATE_INIT if CHAIN_OF_TRUST
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_P5040DS
bool "Support P5040DS"
@@ -85,6 +91,7 @@ config TARGET_P5040DS
select ARCH_P5040
select BOARD_LATE_INIT if CHAIN_OF_TRUST
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_MPC8536DS
bool "Support MPC8536DS"
@@ -101,6 +108,7 @@ config TARGET_MPC8541CDS
config TARGET_MPC8544DS
bool "Support MPC8544DS"
select ARCH_MPC8544
+ imply PANIC_HANG
config TARGET_MPC8548CDS
bool "Support MPC8548CDS"
@@ -124,6 +132,7 @@ config TARGET_MPC8572DS
# Use DDR3 controller with DDR2 DIMMs on this board
select SYS_FSL_DDRC_GEN3
imply SCSI
+ imply PANIC_HANG
config TARGET_P1010RDB_PA
bool "Support P1010RDB_PA"
@@ -133,6 +142,7 @@ config TARGET_P1010RDB_PA
select SUPPORT_TPL
imply CMD_EEPROM
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_P1010RDB_PB
bool "Support P1010RDB_PB"
@@ -142,6 +152,7 @@ config TARGET_P1010RDB_PB
select SUPPORT_TPL
imply CMD_EEPROM
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_P1022DS
bool "Support P1022DS"
@@ -155,6 +166,7 @@ config TARGET_P1023RDB
bool "Support P1023RDB"
select ARCH_P1023
imply CMD_EEPROM
+ imply PANIC_HANG
config TARGET_P1020MBG
bool "Support P1020MBG-PC"
@@ -163,6 +175,7 @@ config TARGET_P1020MBG
select ARCH_P1020
imply CMD_EEPROM
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_P1020RDB_PC
bool "Support P1020RDB-PC"
@@ -171,6 +184,7 @@ config TARGET_P1020RDB_PC
select ARCH_P1020
imply CMD_EEPROM
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_P1020RDB_PD
bool "Support P1020RDB-PD"
@@ -179,6 +193,7 @@ config TARGET_P1020RDB_PD
select ARCH_P1020
imply CMD_EEPROM
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_P1020UTM
bool "Support P1020UTM"
@@ -187,6 +202,7 @@ config TARGET_P1020UTM
select ARCH_P1020
imply CMD_EEPROM
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_P1021RDB
bool "Support P1021RDB"
@@ -195,6 +211,7 @@ config TARGET_P1021RDB
select ARCH_P1021
imply CMD_EEPROM
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_P1024RDB
bool "Support P1024RDB"
@@ -203,6 +220,7 @@ config TARGET_P1024RDB
select ARCH_P1024
imply CMD_EEPROM
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_P1025RDB
bool "Support P1025RDB"
@@ -256,6 +274,7 @@ config TARGET_T1023RDB
select SUPPORT_SPL
select PHYS_64BIT
imply CMD_EEPROM
+ imply PANIC_HANG
config TARGET_T1024RDB
bool "Support T1024RDB"
@@ -264,6 +283,7 @@ config TARGET_T1024RDB
select SUPPORT_SPL
select PHYS_64BIT
imply CMD_EEPROM
+ imply PANIC_HANG
config TARGET_T1040QDS
bool "Support T1040QDS"
@@ -272,6 +292,7 @@ config TARGET_T1040QDS
select PHYS_64BIT
imply CMD_EEPROM
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_T1040RDB
bool "Support T1040RDB"
@@ -280,6 +301,7 @@ config TARGET_T1040RDB
select SUPPORT_SPL
select PHYS_64BIT
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_T1040D4RDB
bool "Support T1040D4RDB"
@@ -288,6 +310,7 @@ config TARGET_T1040D4RDB
select SUPPORT_SPL
select PHYS_64BIT
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_T1042RDB
bool "Support T1042RDB"
@@ -304,6 +327,7 @@ config TARGET_T1042D4RDB
select SUPPORT_SPL
select PHYS_64BIT
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_T1042RDB_PI
bool "Support T1042RDB_PI"
@@ -312,6 +336,7 @@ config TARGET_T1042RDB_PI
select SUPPORT_SPL
select PHYS_64BIT
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_T2080QDS
bool "Support T2080QDS"
@@ -328,6 +353,7 @@ config TARGET_T2080RDB
select SUPPORT_SPL
select PHYS_64BIT
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_T2081QDS
bool "Support T2081QDS"
@@ -342,12 +368,14 @@ config TARGET_T4160QDS
select SUPPORT_SPL
select PHYS_64BIT
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_T4160RDB
bool "Support T4160RDB"
select ARCH_T4160
select SUPPORT_SPL
select PHYS_64BIT
+ imply PANIC_HANG
config TARGET_T4240QDS
bool "Support T4240QDS"
@@ -356,6 +384,7 @@ config TARGET_T4240QDS
select SUPPORT_SPL
select PHYS_64BIT
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_T4240RDB
bool "Support T4240RDB"
@@ -363,6 +392,7 @@ config TARGET_T4240RDB
select SUPPORT_SPL
select PHYS_64BIT
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_CONTROLCENTERD
bool "Support controlcenterd"
@@ -393,16 +423,19 @@ config TARGET_UCP1020
bool "Support uCP1020"
select ARCH_P1020
imply CMD_SATA
+ imply PANIC_HANG
config TARGET_CYRUS_P5020
bool "Support Varisys Cyrus P5020"
select ARCH_P5020
select PHYS_64BIT
+ imply PANIC_HANG
config TARGET_CYRUS_P5040
bool "Support Varisys Cyrus P5040"
select ARCH_P5040
select PHYS_64BIT
+ imply PANIC_HANG
endchoice
diff --git a/board/freescale/ls1046ardb/eth.c b/board/freescale/ls1046ardb/eth.c
index ac8bbec9a3c..9a07609820c 100644
--- a/board/freescale/ls1046ardb/eth.c
+++ b/board/freescale/ls1046ardb/eth.c
@@ -75,3 +75,54 @@ int board_eth_init(bd_t *bis)
return pci_eth_init(bis);
}
+
+#ifdef CONFIG_FMAN_ENET
+int fdt_update_ethernet_dt(void *blob)
+{
+ u32 srds_s1;
+ int i, prop;
+ int offset, nodeoff;
+ const char *path;
+ struct ccsr_gur *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
+
+ srds_s1 = in_be32(&gur->rcwsr[4]) &
+ FSL_CHASSIS2_RCWSR4_SRDS1_PRTCL_MASK;
+ srds_s1 >>= FSL_CHASSIS2_RCWSR4_SRDS1_PRTCL_SHIFT;
+
+ /* Cycle through all aliases */
+ for (prop = 0; ; prop++) {
+ const char *name;
+
+ /* FDT might have been edited, recompute the offset */
+ offset = fdt_first_property_offset(blob,
+ fdt_path_offset(blob,
+ "/aliases")
+ );
+ /* Select property number 'prop' */
+ for (i = 0; i < prop; i++)
+ offset = fdt_next_property_offset(blob, offset);
+
+ if (offset < 0)
+ break;
+
+ path = fdt_getprop_by_offset(blob, offset, &name, NULL);
+ nodeoff = fdt_path_offset(blob, path);
+
+ switch (srds_s1) {
+ case 0x1133:
+ if (!strcmp(name, "ethernet0"))
+ fdt_status_disabled(blob, nodeoff);
+
+ if (!strcmp(name, "ethernet1"))
+ fdt_status_disabled(blob, nodeoff);
+ break;
+ default:
+ printf("%s: Invalid SerDes prtcl 0x%x for LS1046ARDB\n",
+ __func__, srds_s1);
+ break;
+ }
+ }
+
+ return 0;
+}
+#endif
diff --git a/common/fdt_support.c b/common/fdt_support.c
index 6896dcb285a..724452d7545 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -508,12 +508,16 @@ int fdt_fixup_memory(void *blob, u64 start, u64 size)
void fdt_fixup_ethernet(void *fdt)
{
- int i, j, prop;
+ int i = 0, j, prop;
char *tmp, *end;
char mac[16];
const char *path;
unsigned char mac_addr[ARP_HLEN];
int offset;
+#ifdef FDT_SEQ_MACADDR_FROM_ENV
+ int nodeoff;
+ const struct fdt_property *fdt_prop;
+#endif
if (fdt_path_offset(fdt, "/aliases") < 0)
return;
@@ -526,7 +530,7 @@ void fdt_fixup_ethernet(void *fdt)
offset = fdt_first_property_offset(fdt,
fdt_path_offset(fdt, "/aliases"));
/* Select property number 'prop' */
- for (i = 0; i < prop; i++)
+ for (j = 0; j < prop; j++)
offset = fdt_next_property_offset(fdt, offset);
if (offset < 0)
@@ -535,11 +539,16 @@ void fdt_fixup_ethernet(void *fdt)
path = fdt_getprop_by_offset(fdt, offset, &name, NULL);
if (!strncmp(name, "ethernet", 8)) {
/* Treat plain "ethernet" same as "ethernet0". */
- if (!strcmp(name, "ethernet"))
+ if (!strcmp(name, "ethernet")
+#ifdef FDT_SEQ_MACADDR_FROM_ENV
+ || !strcmp(name, "ethernet0")
+#endif
+ )
i = 0;
+#ifndef FDT_SEQ_MACADDR_FROM_ENV
else
i = trailing_strtol(name);
-
+#endif
if (i != -1) {
if (i == 0)
strcpy(mac, "ethaddr");
@@ -548,6 +557,14 @@ void fdt_fixup_ethernet(void *fdt)
} else {
continue;
}
+#ifdef FDT_SEQ_MACADDR_FROM_ENV
+ nodeoff = fdt_path_offset(fdt, path);
+ fdt_prop = fdt_get_property(fdt, nodeoff, "status",
+ NULL);
+ if (fdt_prop && !strcmp(fdt_prop->data, "disabled"))
+ continue;
+ i++;
+#endif
tmp = env_get(mac);
if (!tmp)
continue;
diff --git a/configs/TWR-P1025_defconfig b/configs/TWR-P1025_defconfig
index 1eedd3c21fd..1eeb5908e8b 100644
--- a/configs/TWR-P1025_defconfig
+++ b/configs/TWR-P1025_defconfig
@@ -35,4 +35,5 @@ CONFIG_SYS_NS16550=y
CONFIG_FSL_ESPI=y
CONFIG_USB=y
CONFIG_USB_STORAGE=y
+CONFIG_PANIC_HANG=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/UCP1020_SPIFLASH_defconfig b/configs/UCP1020_SPIFLASH_defconfig
index c8f22620a09..3c3e9fca5a2 100644
--- a/configs/UCP1020_SPIFLASH_defconfig
+++ b/configs/UCP1020_SPIFLASH_defconfig
@@ -43,4 +43,5 @@ CONFIG_FSL_ESPI=y
CONFIG_USB=y
CONFIG_USB_STORAGE=y
CONFIG_FS_CRAMFS=y
+CONFIG_PANIC_HANG=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/UCP1020_defconfig b/configs/UCP1020_defconfig
index 0092e992831..bd17e059b66 100644
--- a/configs/UCP1020_defconfig
+++ b/configs/UCP1020_defconfig
@@ -43,4 +43,5 @@ CONFIG_FSL_ESPI=y
CONFIG_USB=y
CONFIG_USB_STORAGE=y
CONFIG_FS_CRAMFS=y
+CONFIG_PANIC_HANG=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/adp-ae3xx_defconfig b/configs/adp-ae3xx_defconfig
index 600566955a3..cdbf8017039 100644
--- a/configs/adp-ae3xx_defconfig
+++ b/configs/adp-ae3xx_defconfig
@@ -39,3 +39,4 @@ CONFIG_DM_SPI=y
CONFIG_ATCSPI200_SPI=y
CONFIG_TIMER=y
CONFIG_ATCPIT100_TIMER=y
+CONFIG_PANIC_HANG=y
diff --git a/configs/qemu-ppce500_defconfig b/configs/qemu-ppce500_defconfig
index f1db0d0fc9a..9d2775519e5 100644
--- a/configs/qemu-ppce500_defconfig
+++ b/configs/qemu-ppce500_defconfig
@@ -24,4 +24,5 @@ CONFIG_DOS_PARTITION=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_SYS_NS16550=y
+CONFIG_PANIC_HANG=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/tricorder_defconfig b/configs/tricorder_defconfig
index 0f6cccc3023..27a3b6e0cab 100644
--- a/configs/tricorder_defconfig
+++ b/configs/tricorder_defconfig
@@ -40,4 +40,5 @@ CONFIG_NAND=y
CONFIG_SPL_NAND_SIMPLE=y
CONFIG_SYS_NS16550=y
CONFIG_BCH=y
+CONFIG_PANIC_HANG=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/tricorder_flash_defconfig b/configs/tricorder_flash_defconfig
index 7477b427ece..78afec03b89 100644
--- a/configs/tricorder_flash_defconfig
+++ b/configs/tricorder_flash_defconfig
@@ -39,4 +39,5 @@ CONFIG_NAND=y
CONFIG_SPL_NAND_SIMPLE=y
CONFIG_SYS_NS16550=y
CONFIG_BCH=y
+CONFIG_PANIC_HANG=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/uniphier_ld4_sld8_defconfig b/configs/uniphier_ld4_sld8_defconfig
index 08ba9cce505..0d12eb52de2 100644
--- a/configs/uniphier_ld4_sld8_defconfig
+++ b/configs/uniphier_ld4_sld8_defconfig
@@ -51,3 +51,4 @@ CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_GENERIC=y
CONFIG_USB_STORAGE=y
+CONFIG_PANIC_HANG=y
diff --git a/configs/uniphier_v7_defconfig b/configs/uniphier_v7_defconfig
index d2a1e3bc1fb..47b90d67cc5 100644
--- a/configs/uniphier_v7_defconfig
+++ b/configs/uniphier_v7_defconfig
@@ -54,3 +54,4 @@ CONFIG_USB_EHCI_GENERIC=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_UNIPHIER=y
CONFIG_USB_STORAGE=y
+CONFIG_PANIC_HANG=y
diff --git a/configs/uniphier_v8_defconfig b/configs/uniphier_v8_defconfig
index b0b213dc56e..bbcf3b09686 100644
--- a/configs/uniphier_v8_defconfig
+++ b/configs/uniphier_v8_defconfig
@@ -51,3 +51,4 @@ CONFIG_USB_EHCI_GENERIC=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_UNIPHIER=y
CONFIG_USB_STORAGE=y
+CONFIG_PANIC_HANG=y
diff --git a/configs/xpedite517x_defconfig b/configs/xpedite517x_defconfig
index a2324c3e799..37735182b99 100644
--- a/configs/xpedite517x_defconfig
+++ b/configs/xpedite517x_defconfig
@@ -27,4 +27,5 @@ CONFIG_DS4510=y
CONFIG_MTD_NOR_FLASH=y
CONFIG_PHYLIB=y
CONFIG_SYS_NS16550=y
+CONFIG_PANIC_HANG=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/xpedite520x_defconfig b/configs/xpedite520x_defconfig
index 7518ef2e395..7fffaa8a218 100644
--- a/configs/xpedite520x_defconfig
+++ b/configs/xpedite520x_defconfig
@@ -28,4 +28,5 @@ CONFIG_CMD_PCA953X=y
CONFIG_MTD_NOR_FLASH=y
CONFIG_PHYLIB=y
CONFIG_SYS_NS16550=y
+CONFIG_PANIC_HANG=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/xpedite537x_defconfig b/configs/xpedite537x_defconfig
index ead06a75f85..223bc4c72e4 100644
--- a/configs/xpedite537x_defconfig
+++ b/configs/xpedite537x_defconfig
@@ -30,4 +30,5 @@ CONFIG_DS4510=y
CONFIG_MTD_NOR_FLASH=y
CONFIG_PHYLIB=y
CONFIG_SYS_NS16550=y
+CONFIG_PANIC_HANG=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/xpedite550x_defconfig b/configs/xpedite550x_defconfig
index 80bc914eaeb..f3b9280889a 100644
--- a/configs/xpedite550x_defconfig
+++ b/configs/xpedite550x_defconfig
@@ -30,4 +30,5 @@ CONFIG_PHYLIB=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_STORAGE=y
+CONFIG_PANIC_HANG=y
CONFIG_OF_LIBFDT=y
diff --git a/include/configs/B4860QDS.h b/include/configs/B4860QDS.h
index 661bc8bf58f..b1b672547b3 100644
--- a/include/configs/B4860QDS.h
+++ b/include/configs/B4860QDS.h
@@ -173,7 +173,6 @@ unsigned long get_board_ddr_clk(void);
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x00400000
#define CONFIG_SYS_ALT_MEMTEST
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
/*
* Config the L3 Cache as L3 SRAM
diff --git a/include/configs/C29XPCIE.h b/include/configs/C29XPCIE.h
index 7e805ecff01..f9d8cc69da8 100644
--- a/include/configs/C29XPCIE.h
+++ b/include/configs/C29XPCIE.h
@@ -117,7 +117,6 @@
#define CONFIG_SYS_MEMTEST_START 0x00200000
#define CONFIG_SYS_MEMTEST_END 0x00400000
-#define CONFIG_PANIC_HANG
/* DDR Setup */
#define CONFIG_DDR_SPD
diff --git a/include/configs/MPC8536DS.h b/include/configs/MPC8536DS.h
index 7587225bda6..eef16027a25 100644
--- a/include/configs/MPC8536DS.h
+++ b/include/configs/MPC8536DS.h
@@ -69,7 +69,6 @@
#define CONFIG_SYS_MEMTEST_START 0x00010000 /* skip exception vectors */
#define CONFIG_SYS_MEMTEST_END 0x1f000000 /* skip u-boot at top of RAM */
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
/*
* Config the L2 Cache as L2 SRAM
diff --git a/include/configs/MPC8544DS.h b/include/configs/MPC8544DS.h
index bec8a09b5f3..9d9456c5e58 100644
--- a/include/configs/MPC8544DS.h
+++ b/include/configs/MPC8544DS.h
@@ -46,7 +46,6 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x00400000
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
#define CONFIG_SYS_CCSRBAR 0xe0000000
#define CONFIG_SYS_CCSRBAR_PHYS_LOW CONFIG_SYS_CCSRBAR
diff --git a/include/configs/MPC8572DS.h b/include/configs/MPC8572DS.h
index ebc2e3aad49..91a55917e9c 100644
--- a/include/configs/MPC8572DS.h
+++ b/include/configs/MPC8572DS.h
@@ -58,7 +58,6 @@
#define CONFIG_SYS_MEMTEST_START 0x00000000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x7fffffff
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
/*
* Config the L2 Cache as L2 SRAM
diff --git a/include/configs/P1010RDB.h b/include/configs/P1010RDB.h
index 72b6e3ad6d2..6a444aea61a 100644
--- a/include/configs/P1010RDB.h
+++ b/include/configs/P1010RDB.h
@@ -215,7 +215,6 @@
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x1fffffff
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
/* DDR Setup */
#define CONFIG_SYS_DDR_RAW_TIMING
diff --git a/include/configs/P1023RDB.h b/include/configs/P1023RDB.h
index 1b78a4f5dc3..17ae6cfd40b 100644
--- a/include/configs/P1023RDB.h
+++ b/include/configs/P1023RDB.h
@@ -52,8 +52,6 @@ extern unsigned long get_clock_freq(void);
#define CONFIG_SYS_MEMTEST_START 0x01000000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x02000000
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
-
/* Implement conversion of addresses in the LBC */
#define CONFIG_SYS_LBC_LBCR 0x00000000
#define CONFIG_SYS_LBC_LCRR LCRR_CLKDIV_8
diff --git a/include/configs/P2041RDB.h b/include/configs/P2041RDB.h
index 917e5d5a064..8e71fdfecd0 100644
--- a/include/configs/P2041RDB.h
+++ b/include/configs/P2041RDB.h
@@ -116,7 +116,6 @@ unsigned long get_board_sys_clk(unsigned long dummy);
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x00400000
#define CONFIG_SYS_ALT_MEMTEST
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
/*
* Config the L3 Cache as L3 SRAM
diff --git a/include/configs/T102xQDS.h b/include/configs/T102xQDS.h
index ed6df539167..dd3cd6ecc6f 100644
--- a/include/configs/T102xQDS.h
+++ b/include/configs/T102xQDS.h
@@ -196,7 +196,6 @@ unsigned long get_board_ddr_clk(void);
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x00400000
#define CONFIG_SYS_ALT_MEMTEST
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
/*
* Config the L3 Cache as L3 SRAM
diff --git a/include/configs/T102xRDB.h b/include/configs/T102xRDB.h
index 7dee2f0d451..791c6ef1b3f 100644
--- a/include/configs/T102xRDB.h
+++ b/include/configs/T102xRDB.h
@@ -219,7 +219,6 @@ unsigned long get_board_ddr_clk(void);
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x00400000
#define CONFIG_SYS_ALT_MEMTEST
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
/*
* Config the L3 Cache as L3 SRAM
diff --git a/include/configs/T1040QDS.h b/include/configs/T1040QDS.h
index bc5c0d2e68f..fb79b6a5599 100644
--- a/include/configs/T1040QDS.h
+++ b/include/configs/T1040QDS.h
@@ -127,7 +127,6 @@ unsigned long get_board_ddr_clk(void);
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x00400000
#define CONFIG_SYS_ALT_MEMTEST
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
/*
* Config the L3 Cache as L3 SRAM
diff --git a/include/configs/T104xRDB.h b/include/configs/T104xRDB.h
index 2b9c77f7c88..ceb9daaac2e 100644
--- a/include/configs/T104xRDB.h
+++ b/include/configs/T104xRDB.h
@@ -226,7 +226,6 @@ $(SRCTREE)/board/freescale/t104xrdb/t1042d4_sd_rcw.cfg
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x00400000
#define CONFIG_SYS_ALT_MEMTEST
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
/*
* Config the L3 Cache as L3 SRAM
diff --git a/include/configs/T4240RDB.h b/include/configs/T4240RDB.h
index 98f8f4f10c5..ecf7f646597 100644
--- a/include/configs/T4240RDB.h
+++ b/include/configs/T4240RDB.h
@@ -96,7 +96,6 @@
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x00400000
#define CONFIG_SYS_ALT_MEMTEST
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
/*
* Config the L3 Cache as L3 SRAM
diff --git a/include/configs/UCP1020.h b/include/configs/UCP1020.h
index e8b1a74c64a..77bfd50cc99 100644
--- a/include/configs/UCP1020.h
+++ b/include/configs/UCP1020.h
@@ -136,7 +136,6 @@
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x1fffffff
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
#define CONFIG_SYS_CCSRBAR 0xffe00000
#define CONFIG_SYS_CCSRBAR_PHYS_LOW CONFIG_SYS_CCSRBAR
diff --git a/include/configs/adp-ae3xx.h b/include/configs/adp-ae3xx.h
index 5644a6153bc..f75274e2736 100644
--- a/include/configs/adp-ae3xx.h
+++ b/include/configs/adp-ae3xx.h
@@ -21,7 +21,6 @@
#define CONFIG_SKIP_TRUNOFF_WATCHDOG
#define CONFIG_CMDLINE_EDITING
-#define CONFIG_PANIC_HANG
#define CONFIG_ARCH_MAP_SYSMEM
diff --git a/include/configs/corenet_ds.h b/include/configs/corenet_ds.h
index d0e8bfbed77..de9bc532fe5 100644
--- a/include/configs/corenet_ds.h
+++ b/include/configs/corenet_ds.h
@@ -128,7 +128,6 @@
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x00400000
#define CONFIG_SYS_ALT_MEMTEST
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
/*
* Config the L3 Cache as L3 SRAM
diff --git a/include/configs/cyrus.h b/include/configs/cyrus.h
index 4fea53bf797..942fbe2849d 100644
--- a/include/configs/cyrus.h
+++ b/include/configs/cyrus.h
@@ -89,7 +89,6 @@
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x00400000
#define CONFIG_SYS_ALT_MEMTEST
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
/*
* Config the L3 Cache as L3 SRAM
diff --git a/include/configs/ls1012a_common.h b/include/configs/ls1012a_common.h
index db920bc5cca..9cbc6249dcc 100644
--- a/include/configs/ls1012a_common.h
+++ b/include/configs/ls1012a_common.h
@@ -117,7 +117,6 @@
#define CONFIG_AUTO_COMPLETE
#define CONFIG_SYS_MAXARGS 64 /* max command args */
-#define CONFIG_PANIC_HANG
#define CONFIG_SYS_BOOTM_LEN (64 << 20) /* Increase max gunzip size */
#include <asm/arch/soc.h>
diff --git a/include/configs/ls1046ardb.h b/include/configs/ls1046ardb.h
index 784894f0b7b..793e67506dc 100644
--- a/include/configs/ls1046ardb.h
+++ b/include/configs/ls1046ardb.h
@@ -195,6 +195,8 @@
#define FM1_10GEC1_PHY_ADDR 0x0
+#define FDT_SEQ_MACADDR_FROM_ENV
+
#define CONFIG_ETHPRIME "FM1@DTSEC3"
#endif
diff --git a/include/configs/ls1088a_common.h b/include/configs/ls1088a_common.h
index 0cd2f3c2bc9..65872962372 100644
--- a/include/configs/ls1088a_common.h
+++ b/include/configs/ls1088a_common.h
@@ -223,8 +223,6 @@ unsigned long long get_qixis_addr(void);
#define CONFIG_AUTO_COMPLETE
#define CONFIG_SYS_MAXARGS 64 /* max command args */
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
-
#ifdef CONFIG_SPL
#define CONFIG_SPL_BSS_START_ADDR 0x80100000
#define CONFIG_SPL_BSS_MAX_SIZE 0x00100000
diff --git a/include/configs/ls2080a_common.h b/include/configs/ls2080a_common.h
index 576785e4b67..b995513bdfd 100644
--- a/include/configs/ls2080a_common.h
+++ b/include/configs/ls2080a_common.h
@@ -221,8 +221,6 @@ unsigned long long get_qixis_addr(void);
#define CONFIG_AUTO_COMPLETE
#define CONFIG_SYS_MAXARGS 64 /* max command args */
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
-
#define CONFIG_SPL_BSS_START_ADDR 0x80100000
#define CONFIG_SPL_BSS_MAX_SIZE 0x00100000
#define CONFIG_SPL_FRAMEWORK
diff --git a/include/configs/p1_p2_rdb_pc.h b/include/configs/p1_p2_rdb_pc.h
index 07c192aecc1..4522569c299 100644
--- a/include/configs/p1_p2_rdb_pc.h
+++ b/include/configs/p1_p2_rdb_pc.h
@@ -270,7 +270,6 @@
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x1fffffff
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
#define CONFIG_SYS_CCSRBAR 0xffe00000
#define CONFIG_SYS_CCSRBAR_PHYS_LOW CONFIG_SYS_CCSRBAR
diff --git a/include/configs/p1_twr.h b/include/configs/p1_twr.h
index d2302636ac9..2ae77b0ad49 100644
--- a/include/configs/p1_twr.h
+++ b/include/configs/p1_twr.h
@@ -69,7 +69,6 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x1fffffff
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
#define CONFIG_SYS_CCSRBAR 0xffe00000
#define CONFIG_SYS_CCSRBAR_PHYS_LOW CONFIG_SYS_CCSRBAR
diff --git a/include/configs/qemu-ppce500.h b/include/configs/qemu-ppce500.h
index eb4cfae9284..8b78f084e9d 100644
--- a/include/configs/qemu-ppce500.h
+++ b/include/configs/qemu-ppce500.h
@@ -31,7 +31,6 @@
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x00400000
#define CONFIG_SYS_ALT_MEMTEST
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
/* Needed to fill the ccsrbar pointer */
diff --git a/include/configs/t4qds.h b/include/configs/t4qds.h
index 5a69708e303..7aaf2107d93 100644
--- a/include/configs/t4qds.h
+++ b/include/configs/t4qds.h
@@ -54,7 +54,6 @@
#define CONFIG_SYS_MEMTEST_START 0x00200000 /* memtest works on */
#define CONFIG_SYS_MEMTEST_END 0x00400000
#define CONFIG_SYS_ALT_MEMTEST
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
/*
* Config the L3 Cache as L3 SRAM
diff --git a/include/configs/tricorder.h b/include/configs/tricorder.h
index d9ab91c967d..f892a5712ca 100644
--- a/include/configs/tricorder.h
+++ b/include/configs/tricorder.h
@@ -90,7 +90,6 @@
/* hang() the board on panic() */
-#define CONFIG_PANIC_HANG
/* environment placement (for NAND), is different for FLASHCARD but does not
* harm there */
diff --git a/include/configs/uniphier.h b/include/configs/uniphier.h
index 453f3db9eba..12cbe9b79db 100644
--- a/include/configs/uniphier.h
+++ b/include/configs/uniphier.h
@@ -218,8 +218,6 @@
/* for LD20; the last 64 byte is used for dynamic DDR PHY training */
#define CONFIG_SYS_MEM_TOP_HIDE 64
-#define CONFIG_PANIC_HANG
-
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE)
/* only for SPL */
diff --git a/include/configs/xpedite517x.h b/include/configs/xpedite517x.h
index beedc9eda88..4326984b062 100644
--- a/include/configs/xpedite517x.h
+++ b/include/configs/xpedite517x.h
@@ -487,7 +487,6 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);
#define CONFIG_SYS_LOAD_ADDR 0x2000000 /* default load address */
#define CONFIG_CMDLINE_EDITING 1 /* Command-line editing */
#define CONFIG_LOADADDR 0x1000000 /* default location for tftp and bootm */
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
#define CONFIG_PREBOOT /* enable preboot variable */
#define CONFIG_INTEGRITY /* support booting INTEGRITY OS */
diff --git a/include/configs/xpedite520x.h b/include/configs/xpedite520x.h
index f589d1db9b0..5a56162e7ca 100644
--- a/include/configs/xpedite520x.h
+++ b/include/configs/xpedite520x.h
@@ -291,7 +291,6 @@
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
#define CONFIG_AUTO_COMPLETE 1 /* add autocompletion support */
#define CONFIG_LOADADDR 0x1000000 /* default location for tftp and bootm */
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
#define CONFIG_PREBOOT /* enable preboot variable */
#define CONFIG_INTEGRITY /* support booting INTEGRITY OS */
#define CONFIG_INTERRUPTS /* enable pci, srio, ddr interrupts */
diff --git a/include/configs/xpedite537x.h b/include/configs/xpedite537x.h
index d217eb3c7de..b26223794e6 100644
--- a/include/configs/xpedite537x.h
+++ b/include/configs/xpedite537x.h
@@ -341,7 +341,6 @@ extern unsigned long get_board_ddr_clk(unsigned long dummy);
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
#define CONFIG_AUTO_COMPLETE 1 /* add autocompletion support */
#define CONFIG_LOADADDR 0x1000000 /* default location for tftp and bootm */
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
#define CONFIG_PREBOOT /* enable preboot variable */
#define CONFIG_INTEGRITY /* support booting INTEGRITY OS */
diff --git a/include/configs/xpedite550x.h b/include/configs/xpedite550x.h
index 6c0981b1135..624e9a82d07 100644
--- a/include/configs/xpedite550x.h
+++ b/include/configs/xpedite550x.h
@@ -339,7 +339,6 @@ extern unsigned long get_board_ddr_clk(unsigned long dummy);
#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
#define CONFIG_AUTO_COMPLETE 1 /* add autocompletion support */
#define CONFIG_LOADADDR 0x1000000 /* default location for tftp and bootm */
-#define CONFIG_PANIC_HANG /* do not reset board on panic */
#define CONFIG_PREBOOT /* enable preboot variable */
#define CONFIG_INTEGRITY /* support booting INTEGRITY OS */
diff --git a/include/configs/xtfpga.h b/include/configs/xtfpga.h
index 3050f17b814..3119f007971 100644
--- a/include/configs/xtfpga.h
+++ b/include/configs/xtfpga.h
@@ -130,10 +130,6 @@
#define CONFIG_MX_CYCLIC
#define CONFIG_SHOW_BOOT_PROGRESS
-#ifdef DEBUG
-#define CONFIG_PANIC_HANG 1 /* Require manual reboot */
-#endif
-
/*=========================================*/
/* FPGA Registers (board info and control) */
diff --git a/include/fdt_support.h b/include/fdt_support.h
index e0f908636c2..f00fadcddbf 100644
--- a/include/fdt_support.h
+++ b/include/fdt_support.h
@@ -290,4 +290,7 @@ int fdt_overlay_apply_verbose(void *fdt, void *fdto);
int fdtdec_get_int(const void *blob, int node, const char *prop_name,
int default_val);
#endif
+#ifdef CONFIG_FMAN_ENET
+int fdt_update_ethernet_dt(void *blob);
+#endif
#endif /* ifndef __FDT_SUPPORT_H */
diff --git a/lib/Kconfig b/lib/Kconfig
index f447c53bdef..00ac650e741 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -45,6 +45,16 @@ config USE_TINY_PRINTF
The supported format specifiers are %c, %s, %u/%d and %x.
+config PANIC_HANG
+ bool "Do not reset the system on fatal error"
+ help
+ Define this option to stop the system in case of a fatal error,
+ so that you have to reset it manually. This is probably NOT a good
+ idea for an embedded system where you want the system to reboot
+ automatically as fast as possible, but it may be useful during
+ development since you can try to debug the conditions that lead to
+ the situation.
+
config REGEX
bool "Enable regular expression support"
default y if NET