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
commit15faa4e3a6e9d7a7c69f1e390e1692bb4679abe0 (patch)
treee57f5c44202fb5681902aec626021654cd554cef
parent95f410c30b74c21ff1b77f36debc56038c969e15 (diff)
downloadmaster-187ad058-15faa4e3a6e9d7a7c69f1e390e1692bb4679abe0.tar.gz
master-187ad058-15faa4e3a6e9d7a7c69f1e390e1692bb4679abe0.tar.bz2
master-187ad058-15faa4e3a6e9d7a7c69f1e390e1692bb4679abe0.zip
Do not register more than 2 ethernet porst for CFE based devices (i.e : Compex WP54G-wrt)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6683 3c298f89-4303-0410-b956-a3cf2f4a3e73
-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_ */