* Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved.
* Copyright (C) 2003 ADMtek Incorporated.
* daniell@admtek.com.tw
+ * Copyright (C) 2007 OpenWrt.org
*
* This program is free software; you can distribute it and/or modify it
* under the terms of the GNU General Public License (Version 2) as
#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 <asm/mach-adm5120/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"};
printk(KERN_INFO "GETENV: not found.\n");
return(NULL);
}
-
+
+
+extern char _image_cmdline;
/*
* initialize the prom module.
*/
void __init prom_init(void)
{
+ char *cmd;
+
+ adm5120_info_init();
+
/* you should these macros defined in include/asm/bootinfo.h */
- mips_machgroup = MACH_GROUP_ADM_GW;
- mips_machtype = MACH_ADM_GW_5120;
+ mips_machgroup = MACH_GROUP_ADM5120;
+ mips_machtype = adm5120_board.mach_type;
/* 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");
- }
+ cmd = &_image_cmdline + 8;
+ if( strlen(cmd) > 0) strcpy( &(arcs_cmdline[0]), cmd);
+ else strcpy(&(arcs_cmdline[0]), CONFIG_CMDLINE);
/* init memory map */
prom_meminit();