powerpc/mpc85xx: Ignore FDT pointer for non-QEMU in cpu_init_early_f()
PATCH 1/4 powerpc/mpc85xx: Ignore FDT pointer for non-QEMU in cpu_init_early_f()
The pointer of device tree comes from r3 for QEMU. This is not the case for normal SoCs out of reset. Having gd->fdt_blob as 0 is important for other functions to detect the non-existence of device tree.
--- arch/powerpc/cpu/mpc85xx/cpu_init_early.c | 2 ++ 1 file changed, 2 insertions(+)
arch/powerpc/cpu/mpc85xx/cpu_init_early.c +2 -0
@@ -102,11 +102,13 @@ void cpu_init_early_f(void *fdt)for (i =0 ; i <sizeof (gd_t); i++) ((char *)gd)[i] =0 ; +#ifdef CONFIG_QEMU_E500 /* * CONFIG_SYS_CCSRBAR_PHYS below may use gd->fdt_blob on ePAPR systems, * so we need to populate it before it accesses it. */ gd->fdt_blob = fdt; +#endif mas0 =MAS0_TLBSEL (1 ) |MAS0_ESEL (13 ); mas1 =MAS1_VALID |MAS1_TID (0 ) |MAS1_TS |MAS1_TSIZE (BOOKE_PAGESZ_1M );
Signature · 1 line
1.7.9.5
PATCH 2/4 powerpc/freescale: Change the return value of mac_read_from_eeprom()
The return value has not been checked by its caller, until recent change of using generic board architecture. The error of this function is not critical enough to hang the system. Printing the warning message is enough to catch user's attention. U-boot should continue to boot to give user a chance to fix the EEPROM. Chaning the return value to 0 to avoid hanging in the board_init_r().
--- board/freescale/common/sys_eeprom.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
board/freescale/common/sys_eeprom.c +3 -3
@@ -425,13 +425,13 @@ int mac_read_from_eeprom(void)if (read_eeprom ()) {printf ("Read failed.\n" ); -return -1 ; +return 0 ; }if (!is_valid) {printf ("Invalid ID (%02x %02x %02x %02x)\n" , e.id[0 ], e.id[1 ], e.id[2 ], e.id[3 ]); -return -1 ; +return 0 ; }#ifdef CONFIG_SYS_I2C_EEPROM_NXID
@@ -447,7 +447,7 @@ int mac_read_from_eeprom(void) crcp = (void *)&e + crc_offset;if (crc !=be32_to_cpu (*crcp)) {printf ("CRC mismatch (%08x != %08x)\n" , crc,be32_to_cpu (e.crc)); -return -1 ; +return 0 ; }#ifdef CONFIG_SYS_I2C_EEPROM_NXID
Signature · 1 line
1.7.9.5
PATCH 3/4 powerpc/mpc85xx: Fix argument for calling board_init_f
In reply to York Sunbaord_init_f takes one argument. It has not been used for powerpc, until recently changing to use generic board architecture.
--- arch/powerpc/cpu/mpc85xx/start.S | 1 + 1 file changed, 1 insertion(+)
arch/powerpc/cpu/mpc85xx/start.S +1 -0
@@ -1159,6 +1159,7 @@ _start_cont: isync bl cpu_init_f + li r3, 0 bl board_init_f isync
Signature · 1 line
1.7.9.5
PATCH 4/4 powerpc/freescale: Convert selected boards to generic board architecture
In reply to York SunThis patch converts the following boards to use generic board: MPC8536DS, MPC8572DS, MPC8641HPCN, p1_p2_rdb_pc, corenet_ds, t4qds, B4860QDS. It has been tested on NOR boot on MPC8536DS, MPC8572DS, P1021RDB, P4080DS, P5020DS, P5040DS, P3041DS, T4240QDS, B4860QDS.
--- include/configs/B4860QDS.h | 3 +++ include/configs/MPC8536DS.h | 2 ++ include/configs/MPC8572DS.h | 3 +++ include/configs/MPC8641HPCN.h | 3 +++ include/configs/corenet_ds.h | 3 +++ include/configs/p1_p2_rdb_pc.h | 3 +++ include/configs/t4qds.h | 2 ++ 7 files changed, 19 insertions(+)
include/configs/B4860QDS.h +3 -0
@@ -7,6 +7,9 @@#ifndef __CONFIG_H#define __CONFIG_H +#define CONFIG_SYS_GENERIC_BOARD +#define CONFIG_DISPLAY_BOARDINFO +/* * B4860 QDS board configuration file */
include/configs/MPC8536DS.h +2 -0
@@ -11,6 +11,8 @@#ifndef __CONFIG_H#define __CONFIG_H +#define CONFIG_SYS_GENERIC_BOARD +#define CONFIG_DISPLAY_BOARDINFO #include "../board/freescale/common/ics307_clk.h" #ifdef CONFIG_36BIT
include/configs/MPC8572DS.h +3 -0
@@ -11,6 +11,9 @@#ifndef __CONFIG_H#define __CONFIG_H +#define CONFIG_SYS_GENERIC_BOARD +#define CONFIG_DISPLAY_BOARDINFO +#include "../board/freescale/common/ics307_clk.h" #ifdef CONFIG_36BIT
include/configs/MPC8641HPCN.h +3 -0
@@ -16,6 +16,9 @@#ifndef __CONFIG_H#define __CONFIG_H +#define CONFIG_SYS_GENERIC_BOARD +#define CONFIG_DISPLAY_BOARDINFO +/* High Level Configuration Options */ #define CONFIG_MPC8641 1/* MPC8641 specific */ #define CONFIG_MPC8641HPCN 1/* MPC8641HPCN board specific */
include/configs/corenet_ds.h +3 -0
@@ -10,6 +10,9 @@#ifndef __CONFIG_H#define __CONFIG_H +#define CONFIG_SYS_GENERIC_BOARD +#define CONFIG_DISPLAY_BOARDINFO +#include "../board/freescale/common/ics307_clk.h" #ifdef CONFIG_RAMBOOT_PBL
include/configs/p1_p2_rdb_pc.h +3 -0
@@ -10,6 +10,9 @@#ifndef __CONFIG_H#define __CONFIG_H +#define CONFIG_SYS_GENERIC_BOARD +#define CONFIG_DISPLAY_BOARDINFO +#ifdef CONFIG_36BIT #define CONFIG_PHYS_64BIT #endif
include/configs/t4qds.h +2 -0
@@ -10,6 +10,8 @@#ifndef __T4QDS_H#define __T4QDS_H +#define CONFIG_SYS_GENERIC_BOARD +#define CONFIG_DISPLAY_BOARDINFO #define CONFIG_CMD_REGINFO /* High Level Configuration Options */
Signature · 1 line
1.7.9.5
PATCH 1/4 powerpc/mpc85xx: Ignore FDT pointer for non-QEMU in cpu_init_early_f()
In reply to York SunQuoted 6 lines · York Sun
The pointer of device tree comes from r3 for QEMU. This is not the case for normal SoCs out of reset. Having
gd->fdt_blobas 0 is important for other functions to detect the non-existence of device tree.Signed-off-by York Sun <[email protected]>CC Alexander Graf <[email protected]>
Alex