83xx: initialize serdes for MPC837XRDB boards
PATCH 4/5 83xx: initialize serdes for MPC837XRDB boards
On the MPC8377ERDB: 2 SATA and 2 PCI-E.
On the MPC8378ERDB: 2 PCI-E
On the MPC8379ERDB: 4 SATA
Signed-off-by Anton Vorontsov <[email protected]>
---
Rebased on top of today's u-boot-mpc83xx.
board/freescale/mpc837xerdb/mpc837xerdb.c | 37 +++++++++++++++++++++++++++++ include/configs/MPC837XERDB.h | 6 ++++ 2 files changed, 43 insertions(+), 0 deletions(-)
board/freescale/mpc837xerdb/mpc837xerdb.c +37 -0
@@ -15,6 +15,7 @@#include <common.h> #include <i2c.h> #include <asm/io.h> +#include <asm/fsl_serdes.h> #include <spd_sdram.h> #include <vsc7385.h>
@@ -132,6 +133,42 @@ int checkboard(void)return 0 ; } +int board_early_init_f (void ) +{ +#ifdef CONFIG_FSL_SERDES +immap_t *immr = (immap_t *)CFG_IMMR ; +u32 spridr =in_be32 (&immr->sysconf.spridr); + +/* we check only part num, and don't look for CPU revisions */ +switch (spridr >>16 ) { +case SPR_8379E_REV10 >>16 : +case SPR_8379_REV10 >>16 : +fsl_setup_serdes (CONFIG_FSL_SERDES1 ,FSL_SERDES_PROTO_SATA , +FSL_SERDES_CLK_100 ,FSL_SERDES_VDD_1V ); +fsl_setup_serdes (CONFIG_FSL_SERDES2 ,FSL_SERDES_PROTO_SATA , +FSL_SERDES_CLK_100 ,FSL_SERDES_VDD_1V ); +break ; +case SPR_8378E_REV10 >>16 : +case SPR_8378_REV10 >>16 : +fsl_setup_serdes (CONFIG_FSL_SERDES1 ,FSL_SERDES_PROTO_PEX , +FSL_SERDES_CLK_100 ,FSL_SERDES_VDD_1V ); +break ; +case SPR_8377E_REV10 >>16 : +case SPR_8377_REV10 >>16 : +fsl_setup_serdes (CONFIG_FSL_SERDES1 ,FSL_SERDES_PROTO_SATA , +FSL_SERDES_CLK_100 ,FSL_SERDES_VDD_1V ); +fsl_setup_serdes (CONFIG_FSL_SERDES2 ,FSL_SERDES_PROTO_PEX , +FSL_SERDES_CLK_100 ,FSL_SERDES_VDD_1V ); +break ; +default : +printf ("serdes not configured: unknown CPU part number: " +"%04x\n" , spridr >>16 ); +break ; + } +#endif /* CONFIG_FSL_SERDES */ +return 0 ; +} +/* * Miscellaneous late-boot configurations *
include/configs/MPC837XERDB.h +6 -0
@@ -32,6 +32,7 @@#define CONFIG_PCI 1 +#define CONFIG_BOARD_EARLY_INIT_F #define CONFIG_MISC_INIT_R /*
@@ -323,6 +324,11 @@#define CFG_NS16550_COM1 (CFG_IMMR+0x4500)#define CFG_NS16550_COM2 (CFG_IMMR+0x4600) +/* SERDES */ +#define CONFIG_FSL_SERDES +#define CONFIG_FSL_SERDES1 0xe3000 +#define CONFIG_FSL_SERDES2 0xe3100 +/* Use the HUSH parser */ #define CFG_HUSH_PARSER #ifdef CFG_HUSH_PARSER
Signature · 1 line
1.5.2.2