diff options
| author | florian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2007-07-19 16:19:19 +0000 | 
|---|---|---|
| committer | florian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2007-07-19 16:19:19 +0000 | 
| commit | 5ea7603e04d467c0b4a1be3ba53624b3c12b6bfc (patch) | |
| tree | 8e619d7f0dbc0b617338fb4e255508790907ef8b /target | |
| parent | 589df1ac74210380e89be62e3bea1cce175f8bdd (diff) | |
Suppress promc.c.orig, fix the nand detection with newer boards (#2038)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@8063 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target')
| -rw-r--r-- | target/linux/rb532-2.6/files/arch/mips/rb500/prom.c.orig | 161 | ||||
| -rw-r--r-- | target/linux/rb532-2.6/files/drivers/mtd/nand/rbmipsnand.c | 13 | 
2 files changed, 10 insertions, 164 deletions
| 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 index 47569c0a2..000000000 --- a/target/linux/rb532-2.6/files/arch/mips/rb500/prom.c.orig +++ /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); -} - diff --git a/target/linux/rb532-2.6/files/drivers/mtd/nand/rbmipsnand.c b/target/linux/rb532-2.6/files/drivers/mtd/nand/rbmipsnand.c index 47bdbc7c3..35febc665 100644 --- a/target/linux/rb532-2.6/files/drivers/mtd/nand/rbmipsnand.c +++ b/target/linux/rb532-2.6/files/drivers/mtd/nand/rbmipsnand.c @@ -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); | 
