summaryrefslogtreecommitdiff
path: root/board/amcc
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2008-05-13 20:22:01 +0200
committerStefan Roese <sr@denx.de>2008-05-13 20:22:01 +0200
commit70fab1908fc1734a403711eaabbef546bc4b77dc (patch)
tree46c99eba34e0965106f98ad8d8e806a6d3621220 /board/amcc
parent65dcfa79204f4750b905a173a5365e0b2eb6c2f6 (diff)
ppc4xx: Add 405EX(r) revision C PVR definitions and detection code
Signed-off-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'board/amcc')
-rw-r--r--board/amcc/kilauea/kilauea.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/board/amcc/kilauea/kilauea.c b/board/amcc/kilauea/kilauea.c
index 37ef06ef2a7..d806a412ebf 100644
--- a/board/amcc/kilauea/kilauea.c
+++ b/board/amcc/kilauea/kilauea.c
@@ -230,14 +230,22 @@ int misc_init_r(void)
return 0;
}
-int board_emac_count(void)
+static int is_405exr(void)
{
u32 pvr = get_pvr();
+ if (pvr & 0x00000004)
+ return 0; /* bit 2 set -> 405EX */
+
+ return 1; /* bit 2 cleared -> 405EXr */
+}
+
+int board_emac_count(void)
+{
/*
* 405EXr only has one EMAC interface, 405EX has two
*/
- if ((pvr == PVR_405EXR1_RA) || (pvr == PVR_405EXR2_RA))
+ if (is_405exr())
return 1;
else
return 2;
@@ -245,12 +253,10 @@ int board_emac_count(void)
static int board_pcie_count(void)
{
- u32 pvr = get_pvr();
-
/*
* 405EXr only has one EMAC interface, 405EX has two
*/
- if ((pvr == PVR_405EXR1_RA) || (pvr == PVR_405EXR2_RA))
+ if (is_405exr())
return 1;
else
return 2;
@@ -259,9 +265,8 @@ static int board_pcie_count(void)
int checkboard (void)
{
char *s = getenv("serial#");
- u32 pvr = get_pvr();
- if ((pvr == PVR_405EXR1_RA) || (pvr == PVR_405EXR2_RA))
+ if (is_405exr())
printf("Board: Haleakala - AMCC PPC405EXr Evaluation Board");
else
printf("Board: Kilauea - AMCC PPC405EX Evaluation Board");