diff options
| -rw-r--r-- | arch/blackfin/include/asm/config.h | 18 | ||||
| -rw-r--r-- | arch/blackfin/lib/Makefile | 1 | ||||
| -rw-r--r-- | arch/blackfin/lib/post.c (renamed from board/bf537-stamp/post.c) | 52 | ||||
| -rw-r--r-- | board/bf537-stamp/Makefile | 2 | ||||
| -rw-r--r-- | include/configs/bf537-stamp.h | 6 | ||||
| -rw-r--r-- | include/configs/bf548-ezkit.h | 6 | ||||
| -rw-r--r-- | post/tests.c | 2 | 
7 files changed, 59 insertions, 28 deletions
| diff --git a/arch/blackfin/include/asm/config.h b/arch/blackfin/include/asm/config.h index bc3c25215..53af310ec 100644 --- a/arch/blackfin/include/asm/config.h +++ b/arch/blackfin/include/asm/config.h @@ -169,4 +169,22 @@  # define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }  #endif +/* Blackfin POST tests */ +#ifdef CONFIG_POST_BSPEC1_GPIO_LEDS +# define CONFIG_POST_BSPEC1 \ +	{ \ +		"LED test", "led", "This test verifies LEDs on the board.", \ +		POST_MEM | POST_ALWAYS, &led_post_test, NULL, NULL, \ +		CONFIG_SYS_POST_BSPEC1, \ +	} +#endif +#ifdef CONFIG_POST_BSPEC2_GPIO_BUTTONS +# define CONFIG_POST_BSPEC2 \ +	{ \ +		"Button test", "button", "This test verifies buttons on the board.", \ +		POST_MEM | POST_ALWAYS, &button_post_test, NULL, NULL, \ +		CONFIG_SYS_POST_BSPEC2, \ +	} +#endif +  #endif diff --git a/arch/blackfin/lib/Makefile b/arch/blackfin/lib/Makefile index 18c9f7409..37e0663a3 100644 --- a/arch/blackfin/lib/Makefile +++ b/arch/blackfin/lib/Makefile @@ -46,6 +46,7 @@ COBJS-y	+= clocks.o  COBJS-$(CONFIG_CMD_CACHE_DUMP) += cmd_cache_dump.o  COBJS-$(CONFIG_CMD_KGDB) += kgdb.o  COBJS-y	+= muldi3.o +COBJS-$(CONFIG_HAS_POST) += post.o  COBJS-y	+= string.o  SRCS	:= $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c) diff --git a/board/bf537-stamp/post.c b/arch/blackfin/lib/post.c index f35cc8ef5..b3c5fab57 100644 --- a/board/bf537-stamp/post.c +++ b/arch/blackfin/lib/post.c @@ -1,69 +1,66 @@  /* - * BF537-STAMP POST code + * Blackfin POST code   * - * Enter bugs at http://blackfin.uclinux.org/ - * - * Copyright (c) 2005-2009 Analog Devices Inc. + * Copyright (c) 2005-2011 Analog Devices Inc.   *   * Licensed under the GPL-2 or later.   */  #include <common.h>  #include <config.h> -#include <command.h> -#include <asm/blackfin.h> +#include <post.h> +  #include <asm/gpio.h> -/**************************************************** - * LED1 ---- PF6	LED2 ---- PF7		    * - * LED3 ---- PF8	LED4 ---- PF9		    * - * LED5 ---- PF10	LED6 ---- PF11		    * - ****************************************************/ +#if CONFIG_POST & CONFIG_SYS_POST_BSPEC1  int led_post_test(int flags)  { -	unsigned int leds[] = { -		GPIO_PF6, GPIO_PF7, GPIO_PF8, -		GPIO_PF9, GPIO_PF10, GPIO_PF11, -	}; +	unsigned leds[] = { CONFIG_POST_BSPEC1_GPIO_LEDS };  	int i; +	/* First turn them all off */  	for (i = 0; i < ARRAY_SIZE(leds); ++i) { -		gpio_request(leds[i], "post"); +		if (gpio_request(leds[i], "post")) { +			printf("could not request gpio %u\n", leds[i]); +			continue; +		}  		gpio_direction_output(leds[i], 0); +	} +	/* Now turn them on one by one */ +	for (i = 0; i < ARRAY_SIZE(leds); ++i) {  		printf("LED%i on", i + 1);  		gpio_set_value(leds[i], 1);  		udelay(1000000);  		printf("\b\b\b\b\b\b\b"); -  		gpio_free(leds[i]);  	}  	return 0;  } +#endif -/************************************************ - *  SW10 ---- PF5	SW11 ---- PF4		* - *  SW12 ---- PF3	SW13 ---- PF2		* - ************************************************/ +#if CONFIG_POST & CONFIG_SYS_POST_BSPEC2  int button_post_test(int flags)  { -	unsigned int buttons[] = { -		GPIO_PF2, GPIO_PF3, GPIO_PF4, GPIO_PF5, -	}; -	unsigned int sws[] = { 13, 12, 11, 10, }; +	unsigned buttons[] = { CONFIG_POST_BSPEC2_GPIO_BUTTONS }; +	unsigned int sws[] = { CONFIG_POST_BSPEC2_GPIO_NAMES };  	int i, delay = 5;  	unsigned short value = 0;  	int result = 0;  	for (i = 0; i < ARRAY_SIZE(buttons); ++i) { -		gpio_request(buttons[i], "post"); +		if (gpio_request(buttons[i], "post")) { +			printf("could not request gpio %u\n", buttons[i]); +			continue; +		}  		gpio_direction_input(buttons[i]);  		delay = 5;  		printf("\n--------Press SW%i: %2d ", sws[i], delay);  		while (delay--) { -			for (i = 0; i < 100; i++) { +			int j; +			for (j = 0; j < 100; j++) {  				value = gpio_get_value(buttons[i]);  				if (value != 0)  					break; @@ -85,3 +82,4 @@ int button_post_test(int flags)  	return result;  } +#endif diff --git a/board/bf537-stamp/Makefile b/board/bf537-stamp/Makefile index 2b9328be3..49e441472 100644 --- a/board/bf537-stamp/Makefile +++ b/board/bf537-stamp/Makefile @@ -31,7 +31,7 @@ LIB	= $(obj)lib$(BOARD).o  COBJS-y	:= $(BOARD).o  COBJS-$(CONFIG_BFIN_IDE)   += ide-cf.o -COBJS-$(CONFIG_HAS_POST)   += post.o post-memory.o +COBJS-$(CONFIG_HAS_POST)   += post-memory.o  SRCS	:= $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)  OBJS	:= $(addprefix $(obj),$(COBJS-y)) diff --git a/include/configs/bf537-stamp.h b/include/configs/bf537-stamp.h index 3dee8eefd..172268bcb 100644 --- a/include/configs/bf537-stamp.h +++ b/include/configs/bf537-stamp.h @@ -258,6 +258,12 @@  #undef CONFIG_POST  #ifdef CONFIG_POST  #define CONFIG_SYS_POST_HOTKEYS_GPIO	GPIO_PF5 +#define CONFIG_POST_BSPEC1_GPIO_LEDS \ +	GPIO_PF6, GPIO_PF7, GPIO_PF8, GPIO_PF9, GPIO_PF10, GPIO_PF11, +#define CONFIG_POST_BSPEC2_GPIO_BUTTONS \ +	GPIO_PF5, GPIO_PF4, GPIO_PF3, GPIO_PF2, +#define CONFIG_POST_BSPEC2_GPIO_NAMES \ +	10, 11, 12, 13,  #define FLASH_START_POST_BLOCK	11	/* Should > = 11 */  #define FLASH_END_POST_BLOCK	71	/* Should < = 71 */  #endif diff --git a/include/configs/bf548-ezkit.h b/include/configs/bf548-ezkit.h index 3550fd330..ae27a977b 100644 --- a/include/configs/bf548-ezkit.h +++ b/include/configs/bf548-ezkit.h @@ -197,6 +197,12 @@  /* Define if want to do post memory test */  #undef CONFIG_POST  #ifdef CONFIG_POST +#define CONFIG_POST_BSPEC1_GPIO_LEDS \ +	GPIO_PG6, GPIO_PG7, GPIO_PG8, GPIO_PG9, GPIO_PG10, GPIO_PG11, +#define CONFIG_POST_BSPEC2_GPIO_BUTTONS \ +	GPIO_PB8, GPIO_PB9, GPIO_PB10, GPIO_PB11 +#define CONFIG_POST_BSPEC2_GPIO_NAMES \ +	13, 12, 11, 10,  #define FLASH_START_POST_BLOCK 11       /* Should > = 11 */  #define FLASH_END_POST_BLOCK   71       /* Should < = 71 */  #endif diff --git a/post/tests.c b/post/tests.c index bfb9cb5db..725f80b96 100644 --- a/post/tests.c +++ b/post/tests.c @@ -55,6 +55,8 @@ extern int fpga_post_test (int flags);  extern int lwmon5_watchdog_post_test(int flags);  extern int sysmon1_post_test(int flags);  extern int coprocessor_post_test(int flags); +extern int led_post_test(int flags); +extern int button_post_test(int flags);  extern int sysmon_init_f (void); |