mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-08 11:36:21 -04:00
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 <avorontsov@ru.mvista.com>
This commit is contained in:
parent
453316a2a1
commit
2bd7460e92
@ -15,6 +15,7 @@
|
|||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <i2c.h>
|
#include <i2c.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
#include <asm/fsl_serdes.h>
|
||||||
#include <spd_sdram.h>
|
#include <spd_sdram.h>
|
||||||
#include <vsc7385.h>
|
#include <vsc7385.h>
|
||||||
|
|
||||||
@ -132,6 +133,42 @@ int checkboard(void)
|
|||||||
return 0;
|
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
|
* Miscellaneous late-boot configurations
|
||||||
*
|
*
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
#define CONFIG_PCI 1
|
#define CONFIG_PCI 1
|
||||||
|
|
||||||
|
#define CONFIG_BOARD_EARLY_INIT_F
|
||||||
#define CONFIG_MISC_INIT_R
|
#define CONFIG_MISC_INIT_R
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -323,6 +324,11 @@
|
|||||||
#define CFG_NS16550_COM1 (CFG_IMMR+0x4500)
|
#define CFG_NS16550_COM1 (CFG_IMMR+0x4500)
|
||||||
#define CFG_NS16550_COM2 (CFG_IMMR+0x4600)
|
#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 */
|
/* Use the HUSH parser */
|
||||||
#define CFG_HUSH_PARSER
|
#define CFG_HUSH_PARSER
|
||||||
#ifdef CFG_HUSH_PARSER
|
#ifdef CFG_HUSH_PARSER
|
||||||
|
Loading…
x
Reference in New Issue
Block a user