aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/adm5120-2.6/files/arch
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2007-03-26 07:37:31 +0000
committerFlorian Fainelli <florian@openwrt.org>2007-03-26 07:37:31 +0000
commit7d99bedd763b8196f6249eca00107a965ac5174b (patch)
tree730726717e5bd51d0c74179004e45b80a608ff5f /target/linux/adm5120-2.6/files/arch
parent1fcf2f609db17824136a155fa89933bbb127490a (diff)
downloadupstream-7d99bedd763b8196f6249eca00107a965ac5174b.tar.gz
upstream-7d99bedd763b8196f6249eca00107a965ac5174b.tar.bz2
upstream-7d99bedd763b8196f6249eca00107a965ac5174b.zip
Rewrite of the bootloader runtime detection (Gabor Juhos)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6713 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/adm5120-2.6/files/arch')
-rw-r--r--target/linux/adm5120-2.6/files/arch/mips/adm5120/Makefile2
-rw-r--r--target/linux/adm5120-2.6/files/arch/mips/adm5120/prom.c38
2 files changed, 5 insertions, 35 deletions
diff --git a/target/linux/adm5120-2.6/files/arch/mips/adm5120/Makefile b/target/linux/adm5120-2.6/files/arch/mips/adm5120/Makefile
index 63024e36da..a68b4a1451 100644
--- a/target/linux/adm5120-2.6/files/arch/mips/adm5120/Makefile
+++ b/target/linux/adm5120-2.6/files/arch/mips/adm5120/Makefile
@@ -2,6 +2,6 @@
# Makefile for the ADMtek ADM5120 SoC specific parts of the kernel
#
-obj-y := setup.o prom.o irq.o memory.o mipsIRQ.o
+obj-y := setup.o prom.o irq.o memory.o mipsIRQ.o adm5120_info.o
EXTRA_AFLAGS := $(CFLAGS)
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 4c20765596..e644fc37c5 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
@@ -29,20 +29,12 @@
#include <asm/bootinfo.h>
#include <asm/addrspace.h>
-/* boot loaders specific definitions */
-#define CFE_EPTSEAL 0x43464531 /* CFE1 is the magic number to recognize CFE from other bootloaders */
-#define CFE 1
-#define UBOOT 2
-#define MYLOADER 3
-#define UNKNOWN 0
+#include <adm5120_info.h>
void setup_prom_printf(int);
void prom_printf(char *, ...);
void prom_meminit(void);
-/* we assume we don't know the boot loader by default */
-int boot_loader_type = UNKNOWN;
-
#define ADM5120_ENVC 1
char *adm5120_envp[2*ADM5120_ENVC] = {"memsize","0x001000000"};
@@ -105,6 +97,7 @@ char *prom_getenv(char *envname)
printk(KERN_INFO "GETENV: not found.\n");
return(NULL);
}
+
/*
* initialize the prom module.
@@ -114,35 +107,12 @@ void __init prom_init(void)
/* you should these macros defined in include/asm/bootinfo.h */
mips_machgroup = MACH_GROUP_ADM_GW;
mips_machtype = MACH_ADM_GW_5120;
+
+ adm5120_info_init();
/* init command line, register a default kernel command line */
strcpy(&(arcs_cmdline[0]), "console=ttyS0,115200 rootfstype=squashfs,jffs2 init=/etc/preinit");
- /* check for CFE by finding the CFE magic number */
- int *prom_vec = (int *) fw_arg3;
- int argc = fw_arg0;
- unsigned int cfe_eptseal;
-
- if (argc < 0)
- cfe_eptseal = (uint32_t)(unsigned long)prom_vec;
- else {
- if ((int32_t)(long)prom_vec < 0)
- /*
- * Old loaders all it gives us is the handle,
- * so assume the seal.
- */
- cfe_eptseal = CFE_EPTSEAL;
- else
- /*
- * Newer loaders bundle the handle/ept/eptseal
- */
- cfe_eptseal = (unsigned int)((uint32_t *)prom_vec)[3];
- }
- if (cfe_eptseal == CFE_EPTSEAL) {
- boot_loader_type = CFE;
- printk("adm5120 : CFE boot loader\n");
- }
-
/* init memory map */
prom_meminit();
}