Merge branch 'master' of git://www.denx.de/git/u-boot
[oweals/u-boot.git] / board / amcc / kilauea / kilauea.c
index 37ef06ef2a77648fd26c482ff2873afd9819a7f7..f30dc8f92411126fd5ae0abb2e22cd55d7ce5870 100644 (file)
@@ -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");
@@ -333,27 +338,27 @@ void pcie_setup_hoses(int busno)
                pci_register_hose(hose);
 
                if (is_end_point(i)) {
-                       ppc4xx_setup_pcie_endpoint(hose, i);
+                       ppc4xx_setup_pcie_endpoint(hose, i);
                        /*
                         * Reson for no scanning is endpoint can not generate
                         * upstream configuration accesses.
-                        */
+                        */
                } else {
-                       ppc4xx_setup_pcie_rootpoint(hose, i);
+                       ppc4xx_setup_pcie_rootpoint(hose, i);
                        env = getenv ("pciscandelay");
-                       if (env != NULL) {
-                               delay = simple_strtoul(env, NULL, 10);
+                       if (env != NULL) {
+                               delay = simple_strtoul(env, NULL, 10);
                                if (delay > 5)
-                                       printf("Warning, expect noticable delay before "
+                                       printf("Warning, expect noticable delay before "
                                               "PCIe scan due to 'pciscandelay' value!\n");
                                mdelay(delay * 1000);
                        }
 
-                       /*
-                        * Config access can only go down stream
-                        */
-                       hose->last_busno = pci_hose_scan(hose);
-                       bus = hose->last_busno + 1;
+                       /*
+                        * Config access can only go down stream
+                        */
+                       hose->last_busno = pci_hose_scan(hose);
+                       bus = hose->last_busno + 1;
                }
        }
 }