[U-Boot] [PATCH 2/2] cpu9260: update board support

Reinhard Meyer u-boot at emk-elektronik.de
Mon Apr 11 12:51:04 CEST 2011


Dear Eric Bénard,
> - update to new relocation code
> - switch to boards.cfg
> - get rid of LEGACY (still a little hack in .h to compile)
> - add nand boot configuration
> - boot tested for the following configurations :
> 	9260 (64MB RAM & nor boot)
> 	9260_nand (64MB RAM & nand boot)
> 	9G20_128M (128MB RAM & nor boot)
> 	9G20_nand_128M (128MB RAM & nand boot)
> 	(nor boot is using lowlevel init)
> 
> Signed-off-by: Eric Bénard <eric at eukrea.com>
> ---
>  board/eukrea/cpu9260/config.mk |    1 -
>  board/eukrea/cpu9260/cpu9260.c |  161 +++++++++++++++++----------------------
>  board/eukrea/cpu9260/led.c     |   36 +++++----
>  boards.cfg                     |    8 ++
>  include/configs/cpu9260.h      |  164 +++++++++++++++++++++++++++------------
>  5 files changed, 209 insertions(+), 161 deletions(-)
>  delete mode 100644 board/eukrea/cpu9260/config.mk

...

> diff --git a/include/configs/cpu9260.h b/include/configs/cpu9260.h
> index d239423..09dc03c 100644
> --- a/include/configs/cpu9260.h
> +++ b/include/configs/cpu9260.h
> @@ -31,9 +31,11 @@
>  #ifndef __CONFIG_H
>  #define __CONFIG_H
>  
> -#define CONFIG_AT91_LEGACY
> +/* to be removed once maemory-map.h is fixed */

That would be "memory-map.h".
However memory-map.h does not exist anymore.

> +#define AT91_BASE_SYS	0xffffe800
> +#define AT91_DBGU	(0xfffff200 - AT91_BASE_SYS)

Above two defines should nowhere be needed anymore.
Please fix globally.

> -#define CONFIG_DISPLAY_CPUINFO	1
> +#include <asm/sizes.h>
>  
>  #define CONFIG_SYS_AT91_MAIN_CLOCK	18432000
>  #define CONFIG_SYS_HZ		1000
> @@ -54,13 +56,23 @@
>  #error "Unknown board"
>  #endif
>  
> +#define CONFIG_AT91FAMILY
>  #define CONFIG_ARCH_CPU_INIT
>  #undef CONFIG_USE_IRQ
> +#define CONFIG_DISPLAY_CPUINFO		1
> +#define CONFIG_BOARD_EARLY_INIT_F	1
>  
>  #define CONFIG_CMDLINE_TAG		1
>  #define CONFIG_SETUP_MEMORY_TAGS 	1
>  #define CONFIG_INITRD_TAG		1

Please no "1" anymore for just defines, unless the value 1 is really used as a value.

>  
> +#if defined(CONFIG_NANDBOOT)
> +#define CONFIG_SKIP_LOWLEVEL_INIT
> +#define CONFIG_SYS_TEXT_BASE           0x23f00000
> +#else
> +#define CONFIG_SYS_TEXT_BASE           0x00000000
> +#endif
> +
>  /* clocks */
>  #if defined(CONFIG_CPU9G20)
>  #define MASTER_PLL_DIV		0x01
> @@ -113,8 +125,8 @@
>  
>  /* EBI_CSA, 3.3V, no pull-ups for D[15:0], CS1 SDRAM, CS3 NAND Flash */
>  #define CONFIG_SYS_MATRIX_EBICSA_VAL		\
> -       (AT91_MATRIX_DBPUC | AT91_MATRIX_CS1A_SDRAMC |\
> -       AT91_MATRIX_CS3A_SMC_SMARTMEDIA | AT91_MATRIX_VDDIOMSEL)
> +		(AT91_MATRIX_CSA_DBPUC | AT91_MATRIX_CSA_EBI_CS1A | \
> +		AT91_MATRIX_CSA_EBI_CS3A | AT91_MATRIX_CSA_VDDIOMSEL_3_3V)
>  
>  /* SDRAM */
>  /* SDRAMC_MR Mode register */
> @@ -199,51 +211,52 @@
>  /* setup SMC0, CS0 (NOR Flash) - 16-bit */
>  #if defined(CONFIG_CPU9G20)
>  #define CONFIG_SYS_SMC0_SETUP0_VAL					\
> -		(AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0) |	\
> -		 AT91_SMC_NRDSETUP_(0) | AT91_SMC_NCS_RDSETUP_(0))
> +		(AT91_SMC_SETUP_NWE(0) | AT91_SMC_SETUP_NCS_WR(0) |	\
> +		 AT91_SMC_SETUP_NRD(0) | AT91_SMC_SETUP_NCS_RD(0))
>  #define CONFIG_SYS_SMC0_PULSE0_VAL					\
> -		(AT91_SMC_NWEPULSE_(8) | AT91_SMC_NCS_WRPULSE_(8) |	\
> -		 AT91_SMC_NRDPULSE_(14) | AT91_SMC_NCS_RDPULSE_(14))
> +		(AT91_SMC_PULSE_NWE(8) | AT91_SMC_PULSE_NCS_WR(8) |	\
> +		 AT91_SMC_PULSE_NRD(14) | AT91_SMC_PULSE_NCS_RD(14))
>  #define CONFIG_SYS_SMC0_CYCLE0_VAL	\
> -		(AT91_SMC_NWECYCLE_(8) | AT91_SMC_NRDCYCLE_(14))
> +		(AT91_SMC_CYCLE_NWE(8) | AT91_SMC_CYCLE_NRD(14))
>  #define CONFIG_SYS_SMC0_MODE0_VAL				\
> -		(AT91_SMC_READMODE | AT91_SMC_WRITEMODE |	\
> -		 AT91_SMC_DBW_16 |				\
> -		 AT91_SMC_TDFMODE |				\
> -		 AT91_SMC_TDF_(3))
> +		(AT91_SMC_MODE_RM_NRD | AT91_SMC_MODE_WM_NWE |	\
> +		 AT91_SMC_MODE_DBW_16 |				\
> +		 AT91_SMC_MODE_TDF |				\
> +		 AT91_SMC_MODE_TDF_CYCLE(3))
>  #elif defined(CONFIG_CPU9260)
>  #define CONFIG_SYS_SMC0_SETUP0_VAL					\
> -		(AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0) |	\
> -		 AT91_SMC_NRDSETUP_(0) | AT91_SMC_NCS_RDSETUP_(0))
> +		(AT91_SMC_SETUP_NWE(0) | AT91_SMC_SETUP_NCS_WR(0) |	\
> +		 AT91_SMC_SETUP_NRD(0) | AT91_SMC_SETUP_NCS_RD(0))
>  #define CONFIG_SYS_SMC0_PULSE0_VAL					\
> -		(AT91_SMC_NWEPULSE_(6) | AT91_SMC_NCS_WRPULSE_(6) |	\
> -		 AT91_SMC_NRDPULSE_(10) | AT91_SMC_NCS_RDPULSE_(10))
> +		(AT91_SMC_PULSE_NWE(6) | AT91_SMC_PULSE_NCS_WR(6) |	\
> +		 AT91_SMC_PULSE_NRD(10) | AT91_SMC_PULSE_NCS_RD(10))
>  #define CONFIG_SYS_SMC0_CYCLE0_VAL	\
> -		(AT91_SMC_NWECYCLE_(6) | AT91_SMC_NRDCYCLE_(10))
> +		(AT91_SMC_CYCLE_NWE(6) | AT91_SMC_CYCLE_NRD(10))
>  #define CONFIG_SYS_SMC0_MODE0_VAL				\
> -		(AT91_SMC_READMODE | AT91_SMC_WRITEMODE |	\
> -		 AT91_SMC_DBW_16 |				\
> -		 AT91_SMC_TDFMODE |				\
> -		 AT91_SMC_TDF_(2))
> +		(AT91_SMC_MODE_RM_NRD | AT91_SMC_MODE_WM_NWE |	\
> +		 AT91_SMC_MODE_DBW_16 |				\
> +		 AT91_SMC_MODE_TDF |				\
> +		 AT91_SMC_MODE_TDF_CYCLE(2))
>  #endif
>  
>  /* user reset enable */
>  #define CONFIG_SYS_RSTC_RMR_VAL			\
>  		(AT91_RSTC_KEY |		\
> -		AT91_RSTC_PROCRST |		\
> -		AT91_RSTC_RSTTYP_WAKEUP |	\
> -		AT91_RSTC_RSTTYP_WATCHDOG)
> +		AT91_RSTC_CR_PROCRST |		\
> +		AT91_RSTC_MR_ERSTL(1) |	\
> +		AT91_RSTC_MR_ERSTL(2))
>  
>  /* Disable Watchdog */
>  #define CONFIG_SYS_WDTC_WDMR_VAL				\
> -		(AT91_WDT_WDIDLEHLT | AT91_WDT_WDDBGHLT |	\
> -		 AT91_WDT_WDV |					\
> -		 AT91_WDT_WDDIS |				\
> -		 AT91_WDT_WDD)
> +		(AT91_WDT_MR_WDIDLEHLT | AT91_WDT_MR_WDDBGHLT |	\
> +		 AT91_WDT_MR_WDV(0xfff) |			\
> +		 AT91_WDT_MR_WDDIS |				\
> +		 AT91_WDT_MR_WDD(0xfff))
>  
>  /*
>   * Hardware drivers
>   */
> +#define CONFIG_AT91SAM9_WATCHDOG	1
>  #define CONFIG_AT91_GPIO	1
>  #define CONFIG_ATMEL_USART	1
>  #undef CONFIG_USART0
> @@ -276,15 +289,16 @@
>  #define CONFIG_CMD_NAND		1
>  #define CONFIG_CMD_USB		1
>  #define CONFIG_CMD_FAT		1
> +#define CONFIG_CMD_MII		1
>  
>  /* SDRAM */
>  #define CONFIG_NR_DRAM_BANKS	1
> -#define PHYS_SDRAM		0x20000000
> +#define CONFIG_SYS_SDRAM_BASE		0x20000000
>  #if defined(CONFIG_CPU9260_128M) || defined(CONFIG_CPU9G20_128M)
> -#define PHYS_SDRAM_SIZE		0x08000000	/* 128 MB */
> +#define CONFIG_SYS_SDRAM_SIZE		SZ_128M
>  #define CONFIG_SYS_SDRC_CR_VAL	CONFIG_SYS_SDRC_CR_VAL_128MB
>  #else
> -#define PHYS_SDRAM_SIZE		0x04000000	/* 64 MB */
> +#define CONFIG_SYS_SDRAM_SIZE		SZ_64M
>  #define CONFIG_SYS_SDRC_CR_VAL	CONFIG_SYS_SDRC_CR_VAL_64MB
>  #endif
>  
> @@ -294,12 +308,15 @@
>  #define CONFIG_SYS_MAX_NAND_DEVICE		1
>  #define CONFIG_SYS_NAND_BASE			0x40000000
>  #define CONFIG_SYS_NAND_DBW_8			1
> -#define CONFIG_SYS_NAND_READY_PIN		AT91_PIN_PC13
> -#define CONFIG_SYS_NAND_ENABLE_PIN		AT91_PIN_PC14
> +#define CONFIG_SYS_NAND_READY_PIN		AT91_PIO_PORTC, 13
> +#define CONFIG_SYS_NAND_ENABLE_PIN		AT91_PIO_PORTC, 14
>  #define CONFIG_SYS_NAND_MASK_ALE		(1 << 21)
>  #define CONFIG_SYS_NAND_MASK_CLE		(1 << 22)
>  
>  /* NOR flash */
> +#if defined(CONFIG_NANDBOOT)
> +#define CONFIG_SYS_NO_FLASH			1
> +#else
>  #define CONFIG_SYS_FLASH_CFI			1
>  #define CONFIG_FLASH_CFI_DRIVER			1
>  #define PHYS_FLASH_1				0x10000000
> @@ -314,11 +331,11 @@
>  #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE	1
>  #define CONFIG_SYS_FLASH_PROTECTION		1
>  #define CONFIG_SYS_MONITOR_BASE			PHYS_FLASH_1
> +#endif
>  
>  /* Ethernet */
>  #define CONFIG_MACB				1
>  #define CONFIG_RMII				1
> -#define CONFIG_RESET_PHY_R			1
>  #define CONFIG_NET_MULTI			1
>  #define CONFIG_NET_RETRY_COUNT			20
>  #define CONFIG_MACB_SEARCH_PHY			1
> @@ -350,10 +367,10 @@
>  /* Optional value */
>  #define STATUS_LED_BOOT				STATUS_LED_BIT
>  
> -#define CONFIG_RED_LED				AT91_PIN_PC11
> -#define CONFIG_GREEN_LED			AT91_PIN_PC12
> -#define CONFIG_YELLOW_LED			AT91_PIN_PC7
> -#define CONFIG_BLUE_LED				AT91_PIN_PC9
> +#define CONFIG_RED_LED				AT91_PIO_PORTC, 11
> +#define CONFIG_GREEN_LED			AT91_PIO_PORTC, 12
> +#define CONFIG_YELLOW_LED			AT91_PIO_PORTC, 7
> +#define CONFIG_BLUE_LED				AT91_PIO_PORTC, 9
>  
>  /* USB */
>  #define CONFIG_USB_ATMEL			1
> @@ -361,17 +378,33 @@
>  #define CONFIG_DOS_PARTITION			1
>  #define CONFIG_SYS_USB_OHCI_CPU_INIT		1
>  #define CONFIG_SYS_USB_OHCI_REGS_BASE		0x00500000
> +#if defined(CONFIG_CPU9G20)
> +#define CONFIG_SYS_USB_OHCI_SLOT_NAME		"at91sam9g20"
> +#elif defined(CONFIG_CPU9260)
>  #define CONFIG_SYS_USB_OHCI_SLOT_NAME		"at91sam9260"
> +#endif
>  #define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS	2
>  #define CONFIG_USB_STORAGE			1
>  
>  #define CONFIG_SYS_LOAD_ADDR			0x21000000
>  
> -#define CONFIG_SYS_MEMTEST_START		PHYS_SDRAM
> -#define CONFIG_SYS_MEMTEST_END			0x21e00000
> +#define CONFIG_SYS_MEMTEST_START		CONFIG_SYS_SDRAM_BASE
> +#define CONFIG_SYS_MEMTEST_END			\
> +	(CONFIG_SYS_MEMTEST_START + CONFIG_SYS_SDRAM_SIZE - SZ_512K)
>  
> -#undef CONFIG_SYS_USE_NANDFLASH
> +#if defined(CONFIG_NANDBOOT)
> +#define CONFIG_SYS_USE_NANDFLASH		1
> +#undef CONFIG_SYS_USE_FLASH
> +#else
>  #define CONFIG_SYS_USE_FLASH			1
> +#undef CONFIG_SYS_USE_NANDFLASH
> +#endif
> +
> +#if defined(CONFIG_CPU9G20)
> +#define CONFIG_SYS_BASEDIR	"cpu9G20"
> +#elif defined(CONFIG_CPU9260)
> +#define CONFIG_SYS_BASEDIR	"cpu9260"
> +#endif
>  
>  #if defined(CONFIG_SYS_USE_FLASH)
>  #define CONFIG_ENV_IS_IN_FLASH		1
> @@ -382,7 +415,7 @@
>  
>  #define CONFIG_BOOTCOMMAND		"run flashboot"
>  
> -#define MTDIDS_DEFAULT	 	"nor0=physmap-flash.0,nand0=atmel_nand"
> +#define MTDIDS_DEFAULT		"nor0=physmap-flash.0,nand0=atmel_nand"
>  #define MTDPARTS_DEFAULT		\
>  	"mtdparts=physmap-flash.0:"	\
>  		"256k(u-boot)ro,"	\
> @@ -393,18 +426,12 @@
>  
>  #define CONFIG_BOOTARGS "root=/dev/mtdblock3 rootfstype=jffs2 "
>  
> -#if defined(CONFIG_CPU9G20)
> -#define CONFIG_SYS_BASEDIR	"cpu9G20"
> -#elif defined(CONFIG_CPU9260)
> -#define CONFIG_SYS_BASEDIR	"cpu9260"
> -#endif
> -
>  #define CONFIG_EXTRA_ENV_SETTINGS				\
>  	"mtdids=" MTDIDS_DEFAULT "\0"				\
>  	"mtdparts=" MTDPARTS_DEFAULT "\0"			\
>  	"partition=nand0,0\0"					\
>  	"ramargs=setenv bootargs $(bootargs) $(mtdparts)\0"	\
> -	"ramboot=tftpboot 0x22000000 cpu9260/uImage;"		\
> +	"ramboot=tftpboot 0x22000000 $(basedir)/uImage;"	\
>  		"run ramargs;bootm 22000000\0"			\
>  	"flashboot=run ramargs;bootm 0x10060000\0"		\
>  	"basedir=" CONFIG_SYS_BASEDIR "\0"			\
> @@ -421,6 +448,38 @@
>  		"0x10220000 0x13ffffff;cp.b 0x24000000 "	\
>  		"0x10220000 $(filesize)\0" \
>  	""
> +#elif defined(CONFIG_NANDBOOT)
> +#define CONFIG_ENV_IS_IN_NAND		1
> +#define CONFIG_ENV_OFFSET		0x60000
> +#define CONFIG_ENV_OFFSET_REDUND	0x80000
> +#define CONFIG_ENV_SECT_SIZE		0x20000
> +#define	CONFIG_ENV_SIZE			0x20000
> +#define CONFIG_ENV_OVERWRITE		1
> +
> +#define CONFIG_BOOTCOMMAND		"run flashboot"
> +
> +#define MTDIDS_DEFAULT		"nand0=atmel_nand"
> +#define MTDPARTS_DEFAULT		\
> +	"mtdparts=atmel_nand:"		\
> +		"128k(bootstrap)ro,"	\
> +		"256k(u-boot)ro,"	\
> +		"128k(u-boot-env)ro,"	\
> +		"128k(u-boot-env2)ro,"	\
> +		"2M(kernel),"	\
> +		"-(rootfs)"
> +
> +#define CONFIG_BOOTARGS "root=/dev/mtdblock5 rootfstype=ubifs "
> +
> +#define CONFIG_EXTRA_ENV_SETTINGS				\
> +	"mtdids=" MTDIDS_DEFAULT "\0"				\
> +	"mtdparts=" MTDPARTS_DEFAULT "\0"			\
> +	"partition=nand0,5\0"					\
> +	"ramargs=setenv bootargs $(bootargs) $(mtdparts)\0"	\
> +	"ramboot=tftpboot 0x22000000 $(basedir)/uImage;"	\
> +		"run ramargs;bootm 22000000\0"			\
> +	"flashboot=run ramargs; nand read 0x22000000 0xA0000 "	\
> +		"0x200000; bootm 0x22000000\0"			\
> +	"basedir=" CONFIG_SYS_BASEDIR "\0"
>  #endif
>  
>  #define CONFIG_BAUDRATE			115200
> @@ -446,7 +505,10 @@
>  #define CONFIG_SYS_MALLOC_LEN		\
>  		ROUND(3 * CONFIG_ENV_SIZE + 128 * 1024, 0x1000)
>  
> -#define CONFIG_STACKSIZE		(32 * 1024)
> +#define CONFIG_SYS_INIT_SP_ADDR	(CONFIG_SYS_SDRAM_BASE + SZ_4K - \
> +				GENERATED_GBL_DATA_SIZE)
> +
> +#define CONFIG_STACKSIZE		SZ_32K

No SZ_ maxros anymore. Please fix globally.

>  
>  #if defined(CONFIG_USE_IRQ)
>  #error CONFIG_USE_IRQ not supported

Best Regards,

Reinhard


More information about the U-Boot mailing list