Suppress promc.c.orig, fix the nand detection with newer boards (#2038)
authorFlorian Fainelli <florian@openwrt.org>
Thu, 19 Jul 2007 16:19:19 +0000 (16:19 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Thu, 19 Jul 2007 16:19:19 +0000 (16:19 +0000)
SVN-Revision: 8063

target/linux/rb532-2.6/files/arch/mips/rb500/prom.c.orig [deleted file]
target/linux/rb532-2.6/files/drivers/mtd/nand/rbmipsnand.c

diff --git a/target/linux/rb532-2.6/files/arch/mips/rb500/prom.c.orig b/target/linux/rb532-2.6/files/arch/mips/rb500/prom.c.orig
deleted file mode 100644 (file)
index 47569c0..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
-* prom.c 
-**********************************************************************
-* P . Sadik Oct 10, 2003
-*
-* Started change log
-* idt_cpu_freq is make a kernel configuration parameter
-* idt_cpu_freq is exported so that other modules can use it.
-* Code cleanup
-**********************************************************************
-* P. Sadik Oct 20, 2003
-*
-* Removed NVRAM code from here, since they are already available under
-* nvram directory.
-* Added serial port initialisation.
-**********************************************************************
-**********************************************************************
-* P. Sadik Oct 30, 2003
-*
-* Added reset_cons_port
-**********************************************************************
-
-  P.Christeas, 2005-2006
-  Port to 2.6, add 2.6 cmdline parsing
-
-*/
-
-#include <linux/autoconf.h>
-#include <linux/init.h>
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/string.h>
-#include <linux/console.h>
-#include <asm/bootinfo.h>
-#include <linux/bootmem.h>
-#include <linux/ioport.h>
-#include <linux/blkdev.h>
-#include <asm/rc32434/ddr.h>
-
-#define PROM_ENTRY(x)   (0xbfc00000+((x)*8))
-extern void __init setup_serial_port(void);
-
-unsigned int idt_cpu_freq = 132000000;
-EXPORT_SYMBOL(idt_cpu_freq);
-unsigned int board_type = 500;
-EXPORT_SYMBOL(board_type);
-unsigned int gpio_bootup_state = 0;
-EXPORT_SYMBOL(gpio_bootup_state);
-
-
-char mips_mac_address[18] = "08:00:06:05:40:01";
-EXPORT_SYMBOL(mips_mac_address);
-
-/* what to append to cmdline when button is [not] pressed */
-#define GPIO_INIT_NOBUTTON ""
-#define GPIO_INIT_BUTTON   " 2"
-
-#ifdef CONFIG_MIKROTIK_RB500
-unsigned soft_reboot = 0;
-EXPORT_SYMBOL(soft_reboot);
-#endif
-
-#define SR_NMI                 0x00180000      /* NMI */
-#define SERIAL_SPEED_ENTRY     0x00000001
-
-#ifdef CONFIG_REMOTE_DEBUG
-extern int remote_debug;
-#endif
-
-extern unsigned long mips_machgroup;
-extern unsigned long mips_machtype;
-
-#define FREQ_TAG   "HZ="
-#define GPIO_TAG   "gpio="
-#define KMAC_TAG   "kmac="
-#define MEM_TAG           "mem="
-#define BOARD_TAG  "board="
-#define IGNORE_CMDLINE_MEM 1
-#define DEBUG_DDR
-
-void parse_soft_settings(unsigned *ptr, unsigned size);
-void parse_hard_settings(unsigned *ptr, unsigned size);
-
-void __init prom_setup_cmdline(void);
-
-void __init prom_init(void)
-{
-       DDR_t ddr = (DDR_t) DDR_VirtualAddress; /* define the pointer to the DDR registers */
-       phys_t memsize = 0-ddr->ddrmask;
-       
-       /* this should be the very first message, even before serial is properly initialized */
-       prom_setup_cmdline();
-       setup_serial_port();
-
-       mips_machgroup = MACH_GROUP_MIKROTIK;
-       soft_reboot = read_c0_status() & SR_NMI;
-       pm_power_off = NULL;
-
-       /*
-        * give all RAM to boot allocator,
-        * except for the first 0x400 and the last 0x200 bytes
-        */
-       add_memory_region(ddr->ddrbase + 0x400, memsize - 0x600, BOOT_MEM_RAM);
-}
-
-void prom_free_prom_memory(void)
-{
-       /* FIXME: STUB */
-}
-
-void __init prom_setup_cmdline(void){
-       char cmd_line[CL_SIZE];
-       char *cp;
-       int prom_argc;
-       char **prom_argv, **prom_envp;
-       int i;
-       
-       prom_argc = fw_arg0;
-       prom_argv = (char **) fw_arg1;
-       prom_envp = (char **) fw_arg2;
-       
-       cp=cmd_line;
-               /* Note: it is common that parameters start at argv[1] and not argv[0],
-               however, our elf loader starts at [0] */
-       for(i=0;i<prom_argc;i++){
-               if (strncmp(prom_argv[i], FREQ_TAG, sizeof(FREQ_TAG) - 1) == 0) {
-                       idt_cpu_freq = simple_strtoul(prom_argv[i] + sizeof(FREQ_TAG) - 1, 0, 10);
-                       continue;
-               }
-#ifdef IGNORE_CMDLINE_MEM
-               /* parses out the "mem=xx" arg */
-               if (strncmp(prom_argv[i], MEM_TAG, sizeof(MEM_TAG) - 1) == 0) {
-                       continue;
-               }
-#endif
-               if (i>0) *(cp++) = ' ';
-               if (strncmp(prom_argv[i], BOARD_TAG, sizeof(BOARD_TAG) - 1) == 0) {
-                       board_type =  simple_strtoul(prom_argv[i] + sizeof(BOARD_TAG) - 1, 0, 10);
-               }
-               if (strncmp(prom_argv[i], GPIO_TAG, sizeof(GPIO_TAG) - 1) == 0) {
-                       gpio_bootup_state =  simple_strtoul(prom_argv[i] + sizeof(GPIO_TAG) - 1, 0, 10);
-               }
-               strcpy(cp,prom_argv[i]);
-               cp+=strlen(prom_argv[i]);
-       }
-       
-       i=strlen(arcs_cmdline);
-       if (i>0){
-               *(cp++) = ' ';
-               strcpy(cp,arcs_cmdline);
-               cp+=strlen(arcs_cmdline);
-       }
-       if (gpio_bootup_state&0x02)
-               strcpy(cp,GPIO_INIT_NOBUTTON);
-       else
-               strcpy(cp,GPIO_INIT_BUTTON);
-       cmd_line[CL_SIZE-1] = '\0';
-       
-       strcpy(arcs_cmdline,cmd_line);
-}
-
index 47bdbc7..35febc6 100644 (file)
@@ -33,6 +33,8 @@
 
 #define MEM32(x) *((volatile unsigned *) (x))
 
+extern unsigned int board_type;
+
 struct rb500_nand_info {
         struct nand_chip chip;
         struct mtd_info mtd;
@@ -123,9 +125,14 @@ static int rbmips_probe(struct platform_device *pdev)
                return -EIO;
         }
 
-       /* FIXME : this seems to work only for newer RB500, check the version to set the right flags accordingly */
-       data->flags1 = LO_FOFF | LO_CEX;
-       data->flags2 = LO_ULED | LO_ALE | LO_CLE | LO_WPX;
+       if (board_type > 500) {
+               data->flags1 = LO_FOFF | LO_CEX;
+               data->flags2 = LO_ULED | LO_ALE | LO_CLE | LO_WPX;
+       }
+       else {
+               data->flags1 = LO_WPX | LO_FOFF | LO_CEX;
+               data->flags2 = LO_ULED | LO_ALE | LO_CLE;
+       }
 
        changeLatchU5(data->flags1, data->flags2);