diff options
| -rw-r--r-- | board/atmel/at91cap9adk/Makefile | 1 | ||||
| -rw-r--r-- | board/atmel/at91cap9adk/partition.c | 37 | ||||
| -rwxr-xr-x | board/atmel/at91rm9200dk/Makefile | 2 | ||||
| -rw-r--r-- | board/atmel/at91rm9200dk/partition.c | 38 | ||||
| -rw-r--r-- | board/atmel/at91sam9260ek/Makefile | 1 | ||||
| -rw-r--r-- | board/atmel/at91sam9260ek/partition.c | 38 | ||||
| -rw-r--r-- | drivers/mtd/dataflash.c | 45 | ||||
| -rw-r--r-- | include/dataflash.h | 13 | 
8 files changed, 127 insertions, 48 deletions
| diff --git a/board/atmel/at91cap9adk/Makefile b/board/atmel/at91cap9adk/Makefile index 396103035..6b4b4b035 100644 --- a/board/atmel/at91cap9adk/Makefile +++ b/board/atmel/at91cap9adk/Makefile @@ -27,6 +27,7 @@ LIB	= $(obj)lib$(BOARD).a  COBJS-y	+= at91cap9adk.o  COBJS-y	+= led.o +COBJS-y	+= partition.o  COBJS-$(CONFIG_CMD_NAND) += nand.o  SRCS    := $(SOBJS:.o=.S) $(COBJS-y:.o=.c) diff --git a/board/atmel/at91cap9adk/partition.c b/board/atmel/at91cap9adk/partition.c new file mode 100644 index 000000000..3bffd71a7 --- /dev/null +++ b/board/atmel/at91cap9adk/partition.c @@ -0,0 +1,37 @@ +/* + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + */ +#include <common.h> +#include <config.h> +#include <asm/hardware.h> +#include <dataflash.h> + +AT91S_DATAFLASH_INFO dataflash_info[CFG_MAX_DATAFLASH_BANKS]; + +struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = { +	{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */ +}; + +/*define the area offsets*/ +dataflash_protect_t area_list[NB_DATAFLASH_AREA] = { +	{0x00000000, 0x000041FF, FLAG_PROTECT_SET,   0, "Bootstrap"}, +	{0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR, 0, "Environment"}, +	{0x00008400, 0x00041FFF, FLAG_PROTECT_SET,   0, "U-Boot"}, +	{0x00042000, 0x00251FFF, FLAG_PROTECT_CLEAR, 0,	"Kernel"}, +	{0x00252000, 0xFFFFFFFF, FLAG_PROTECT_CLEAR, 0,	"FS"}, +}; diff --git a/board/atmel/at91rm9200dk/Makefile b/board/atmel/at91rm9200dk/Makefile index 01f3bc30a..5b4cdcfc3 100755 --- a/board/atmel/at91rm9200dk/Makefile +++ b/board/atmel/at91rm9200dk/Makefile @@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk  LIB	= $(obj)lib$(BOARD).a -COBJS	:= at91rm9200dk.o flash.o led.o mux.o +COBJS	:= at91rm9200dk.o flash.o led.o mux.o partition.o  SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)  OBJS	:= $(addprefix $(obj),$(COBJS)) diff --git a/board/atmel/at91rm9200dk/partition.c b/board/atmel/at91rm9200dk/partition.c new file mode 100644 index 000000000..a8a5fe6aa --- /dev/null +++ b/board/atmel/at91rm9200dk/partition.c @@ -0,0 +1,38 @@ +/* + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + */ +#include <common.h> +#include <config.h> +#include <asm/hardware.h> +#include <dataflash.h> + +AT91S_DATAFLASH_INFO dataflash_info[CFG_MAX_DATAFLASH_BANKS]; + +struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = { +	{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */ +	{CFG_DATAFLASH_LOGIC_ADDR_CS3, 3} +}; + +/*define the area offsets*/ +dataflash_protect_t area_list[NB_DATAFLASH_AREA] = { +	{0x00000000, 0x000041FF, FLAG_PROTECT_SET,   0, "Bootstrap"}, +	{0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR, 0, "Environment"}, +	{0x00008400, 0x00041FFF, FLAG_PROTECT_SET,   0, "U-Boot"}, +	{0x00042000, 0x00251FFF, FLAG_PROTECT_CLEAR, 0,	"Kernel"}, +	{0x00252000, 0xFFFFFFFF, FLAG_PROTECT_CLEAR, 0,	"FS"}, +}; diff --git a/board/atmel/at91sam9260ek/Makefile b/board/atmel/at91sam9260ek/Makefile index 8a629b9c8..defc08519 100644 --- a/board/atmel/at91sam9260ek/Makefile +++ b/board/atmel/at91sam9260ek/Makefile @@ -27,6 +27,7 @@ LIB	= $(obj)lib$(BOARD).a  COBJS-y	+= at91sam9260ek.o  COBJS-y	+= led.o +COBJS-y	+= partition.o  COBJS-$(CONFIG_CMD_NAND) += nand.o  SRCS	:= $(SOBJS:.o=.S) $(COBJS-y:.o=.c) diff --git a/board/atmel/at91sam9260ek/partition.c b/board/atmel/at91sam9260ek/partition.c new file mode 100644 index 000000000..389fb2c5c --- /dev/null +++ b/board/atmel/at91sam9260ek/partition.c @@ -0,0 +1,38 @@ +/* + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + */ +#include <common.h> +#include <config.h> +#include <asm/hardware.h> +#include <dataflash.h> + +AT91S_DATAFLASH_INFO dataflash_info[CFG_MAX_DATAFLASH_BANKS]; + +struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = { +	{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */ +	{CFG_DATAFLASH_LOGIC_ADDR_CS1, 1} +}; + +/*define the area offsets*/ +dataflash_protect_t area_list[NB_DATAFLASH_AREA] = { +	{0x00000000, 0x000041FF, FLAG_PROTECT_SET,   0, "Bootstrap"}, +	{0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR, 0, "Environment"}, +	{0x00008400, 0x00041FFF, FLAG_PROTECT_SET,   0, "U-Boot"}, +	{0x00042000, 0x00251FFF, FLAG_PROTECT_CLEAR, 0,	"Kernel"}, +	{0x00252000, 0xFFFFFFFF, FLAG_PROTECT_CLEAR, 0,	"FS"}, +}; diff --git a/drivers/mtd/dataflash.c b/drivers/mtd/dataflash.c index d8f78f20a..8247aa03b 100644 --- a/drivers/mtd/dataflash.c +++ b/drivers/mtd/dataflash.c @@ -22,39 +22,8 @@  #include <asm/hardware.h>  #include <dataflash.h> -AT91S_DATAFLASH_INFO dataflash_info[CFG_MAX_DATAFLASH_BANKS];  static AT91S_DataFlash DataFlashInst; -struct dataflash_addr { -	unsigned long addr; -	int cs; -}; - -#if defined(CONFIG_AT91SAM9260EK) -struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = { -	{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */ -	{CFG_DATAFLASH_LOGIC_ADDR_CS1, 1} -}; -#elif defined(CONFIG_AT91SAM9263EK) || defined(CONFIG_AT91CAP9ADK) -struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = { -	{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */ -}; -#else -struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = { -	{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */ -	{CFG_DATAFLASH_LOGIC_ADDR_CS3, 3} -}; -#endif - -/*define the area offsets*/ -dataflash_protect_t area_list[NB_DATAFLASH_AREA] = { -	{0x00000000, 0x000041FF, FLAG_PROTECT_SET,   0, "Bootstrap"}, -	{0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR, 0, "Environment"}, -	{0x00008400, 0x0003DDFF, FLAG_PROTECT_SET,   0, "U-Boot"}, -	{0x0003DE00, 0x0023DE3F, FLAG_PROTECT_CLEAR, 0,	"Kernel"}, -	{0x0023DE40, 0xFFFFFFFF, FLAG_PROTECT_CLEAR, 0,	"FS"}, -}; -  extern void AT91F_SpiInit (void);  extern int AT91F_DataflashProbe (int i, AT91PS_DataflashDesc pDesc);  extern int AT91F_DataFlashRead (AT91PS_DataFlash pDataFlash, @@ -178,8 +147,7 @@ int AT91F_DataflashInit (void)  	return found[0];  } -#ifdef	CONFIG_NEW_DF_PARTITION -int AT91F_DataflashSetEnv (void) +void AT91F_DataflashSetEnv (void)  {  	int i, j;  	int part; @@ -194,14 +162,13 @@ int AT91F_DataflashSetEnv (void)  			if((env & FLAG_SETENV) == FLAG_SETENV) {  				start =  				dataflash_info[i].Device.area_list[j].start; -				sprintf(s,"%X",start); -				setenv(area_list[part].label,s); +				sprintf((char*) s,"%X",start); +				setenv((char*) area_list[part].label,(char*) s);  			}  			part++;  		}  	}  } -#endif  void dataflash_print_info (void)  { @@ -244,16 +211,10 @@ void dataflash_print_info (void)  						dataflash_info[i].Device.area_list[j].start,  						dataflash_info[i].Device.area_list[j].end,  						(dataflash_info[i].Device.area_list[j].protected==FLAG_PROTECT_SET) ? "(RO)" : "    "); -#ifdef	CONFIG_NEW_DF_PARTITION  						printf(" %s\n",	dataflash_info[i].Device.area_list[j].label); -#else -						printf("\n"); -#endif  					break; -#ifdef	CONFIG_NEW_DF_PARTITION  				case	FLAG_PROTECT_INVALID:  					break; -#endif  				}  			}  		} diff --git a/include/dataflash.h b/include/dataflash.h index 68f032415..f20c73868 100644 --- a/include/dataflash.h +++ b/include/dataflash.h @@ -130,7 +130,10 @@ typedef struct _AT91S_DATAFLASH_INFO {  	unsigned int id;			/* device id */  } AT91S_DATAFLASH_INFO, *AT91PS_DATAFLASH_INFO; - +struct dataflash_addr { +	unsigned long addr; +	int cs; +};  /*-------------------------------------------------------------------------------------------------*/  #define AT45DB161	0x2c @@ -207,9 +210,9 @@ extern int read_dataflash (unsigned long addr, unsigned long size, char *result)  extern int write_dataflash (unsigned long addr, unsigned long dest, unsigned long size);  extern void dataflash_print_info (void);  extern void dataflash_perror (int err); +extern void AT91F_DataflashSetEnv (void); -#ifdef	CONFIG_NEW_DF_PARTITION -extern int AT91F_DataflashSetEnv (void); #endif -#endif - +extern struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS]; +extern dataflash_protect_t area_list[NB_DATAFLASH_AREA]; +extern AT91S_DATAFLASH_INFO dataflash_info[];  #endif |