aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2007-03-24 21:31:13 +0000
committerFlorian Fainelli <florian@openwrt.org>2007-03-24 21:31:13 +0000
commit1f3c505ef6e7acc33bf0717463d72e8ff09b6759 (patch)
tree5fc7163ae7ba5e8819af0a73a6aa49a10412811e
parentfe42382d1ca111de88a3be087f7ee217480482a5 (diff)
downloadupstream-1f3c505ef6e7acc33bf0717463d72e8ff09b6759.tar.gz
upstream-1f3c505ef6e7acc33bf0717463d72e8ff09b6759.tar.bz2
upstream-1f3c505ef6e7acc33bf0717463d72e8ff09b6759.zip
Do not register more than 2 ethernet porst for CFE based devices (i.e : Compex WP54G-wrt)
SVN-Revision: 6683
-rw-r--r--target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c5
-rw-r--r--target/linux/adm5120-2.6/files/drivers/net/adm5120sw.c3
-rw-r--r--target/linux/adm5120-2.6/files/drivers/net/adm5120sw.h7
3 files changed, 13 insertions, 2 deletions
diff --git a/target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c b/target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c
index 9067fcd976..4c20765596 100644
--- a/target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c
+++ b/target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c
@@ -30,9 +30,10 @@
#include <asm/addrspace.h>
/* boot loaders specific definitions */
-#define CFE_EPTSEAL 0x43464531
+#define CFE_EPTSEAL 0x43464531 /* CFE1 is the magic number to recognize CFE from other bootloaders */
#define CFE 1
-#define MYLOADER 2
+#define UBOOT 2
+#define MYLOADER 3
#define UNKNOWN 0
void setup_prom_printf(int);
diff --git a/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.c b/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.c
index 935016c3a1..e4a764f491 100644
--- a/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.c
+++ b/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.c
@@ -390,6 +390,9 @@ static int __init adm5120_sw_init(void)
/* MII port? */
if (adm5120_get_reg(ADM5120_CODE) & ADM5120_CODE_PQFP)
adm5120_nrdevs = 5;
+ /* CFE based devices only have two enet ports */
+ else if (boot_loader_type == CFE)
+ adm5120_nrdevs = 2
else
adm5120_nrdevs = 6;
diff --git a/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.h b/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.h
index 4ea1e6257c..e915a411c8 100644
--- a/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.h
+++ b/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.h
@@ -102,5 +102,12 @@ struct adm5120_info {
u16 ports;
u16 vlan;
};
+#define UNKNOWN 0
+
+#define UBOOT 2
+#define MYLOADER 3
+
+/* Type of boot loader, detected by the prom */
+extern boot_loader_type;
#endif /* _INCLUDE_ADM5120SW_H_ */