diff options
| -rw-r--r-- | board/ifm/ac14xx/ac14xx.c | 50 | ||||
| -rw-r--r-- | include/configs/ac14xx.h | 28 | 
2 files changed, 38 insertions, 40 deletions
| diff --git a/board/ifm/ac14xx/ac14xx.c b/board/ifm/ac14xx/ac14xx.c index 74425912d..dc2aff099 100644 --- a/board/ifm/ac14xx/ac14xx.c +++ b/board/ifm/ac14xx/ac14xx.c @@ -23,6 +23,10 @@  #include <i2c.h>  #endif +static int eeprom_diag; +static int mac_diag; +static int gpio_diag; +  DECLARE_GLOBAL_DATA_PTR;  static void gpio_configure(void) @@ -37,7 +41,7 @@ static void gpio_configure(void)  	/*  	 * out_be32(&gpioregs->gpdir, 0xC2293020); -	 * workaround for a hardware affect: configure direction in pieces, +	 * workaround for a hardware effect: configure direction in pieces,  	 * setting all outputs at once drops the reset line too low and  	 * makes us lose the MII connection (breaks ethernet for us)  	 */ @@ -126,8 +130,6 @@ static u32 gpio_querykbd(void)  /* excerpt from the recovery's hw_info.h */ -static int eeprom_diag = 1; -  struct __attribute__ ((__packed__)) eeprom_layout {  	char	magic[3];	/** 'ifm' */  	u8	len[2];		/** content length without magic/len fields */ @@ -209,6 +211,7 @@ static int read_eeprom(void)  int mac_read_from_eeprom(void)  {  	const u8 *mac; +	const char *mac_txt;  	if (read_eeprom()) {  		printf("I2C EEPROM read failed.\n"); @@ -230,8 +233,13 @@ int mac_read_from_eeprom(void)  	if (mac && is_valid_ether_addr(mac)) {  		eth_setenv_enetaddr("ethaddr", mac); -		printf("DIAG: %s() MAC value [%s]\n", -			__func__, getenv("ethaddr")); +		if (mac_diag) { +			mac_txt = getenv("ethaddr"); +			if (mac_txt) +				printf("DIAG: MAC value [%s]\n", mac_txt); +			else +				printf("DIAG: failed to setup MAC env\n"); +		}  	}  	return 0; @@ -326,42 +334,38 @@ int misc_init_r(void)  	gpio_configure();  	/* -	 * check the GPIO keyboard, -	 * enforced start of the recovery when +	 * enforce the start of the recovery system when  	 * - the appropriate keys were pressed -	 * - a previous installation was aborted or has failed  	 * - "some" external software told us to +	 * - a previous installation was aborted or has failed  	 */  	want_recovery = 0;  	keys = gpio_querykbd(); -	printf("GPIO keyboard status [0x%08X]\n", keys); -	/* XXX insist in the _exact_ combination? */ +	if (gpio_diag) +		printf("GPIO keyboard status [0x%02X]\n", keys);  	if ((keys & GPIOKEY_BITS_RECOVERY) == GPIOKEY_BITS_RECOVERY) { -		printf("GPIO keyboard requested RECOVERY\n"); -		/* XXX TODO -		 * refine the logic to detect the first keypress, and -		 * wait to recheck IF it was the recovery combination? -		 */ +		printf("detected recovery request (keyboard)\n");  		want_recovery = 1;  	} -	s = getenv("install_in_progress"); +	s = getenv("want_recovery");  	if ((s != NULL) && (*s != '\0')) { -		printf("previous installation aborted, running RECOVERY\n"); +		printf("detected recovery request (environment)\n");  		want_recovery = 1;  	} -	s = getenv("install_failed"); +	s = getenv("install_in_progress");  	if ((s != NULL) && (*s != '\0')) { -		printf("previous installation FAILED, running RECOVERY\n"); +		printf("previous installation has not completed\n");  		want_recovery = 1;  	} -	s = getenv("want_recovery"); +	s = getenv("install_failed");  	if ((s != NULL) && (*s != '\0')) { -		printf("running RECOVERY according to the request\n"); +		printf("previous installation has failed\n");  		want_recovery = 1;  	} - -	if (want_recovery) +	if (want_recovery) { +		printf("enforced start of the recovery system\n");  		setenv("bootcmd", "run recovery"); +	}  	/*  	 * boot the recovery system without waiting; boot the diff --git a/include/configs/ac14xx.h b/include/configs/ac14xx.h index 7cb10fb01..381bcdda0 100644 --- a/include/configs/ac14xx.h +++ b/include/configs/ac14xx.h @@ -72,7 +72,7 @@  #define CONFIG_SYS_MAX_RAM_SIZE		0x20000000  /* - * DDR Controller Configuration XXX TODO + * DDR Controller Configuration   *   * SYS_CFG:   *	[31:31]	MDDRC Soft Reset:	Diabled @@ -265,7 +265,6 @@  /*   * CS related parameters - * TODO document these   */  /* CS0 Flash */  #define CONFIG_SYS_CS0_CFG		0x00031110 @@ -331,8 +330,6 @@  #endif  #define CONFIG_BAUDRATE			115200	/* ... at 115200 bps */ -#define CONFIG_SYS_BAUDRATE_TABLE  \ -	{300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 115200}  #define CONSOLE_FIFO_TX_SIZE		FIFOC_PSC3_TX_SIZE  #define CONSOLE_FIFO_TX_ADDR		FIFOC_PSC3_TX_ADDR @@ -497,30 +494,26 @@  #define CONFIG_ENV_OVERWRITE  #define CONFIG_TIMESTAMP -#define CONFIG_HOSTNAME		ac14xx -#define CONFIG_BOOTFILE		"ac14xx/uImage" -#define CONFIG_ROOTPATH		"/opt/eldk/ppc_6xx" -  /* default load addr for tftp and bootm */  #define CONFIG_LOADADDR		400000  #define CONFIG_BOOTDELAY	2	/* -1 disables auto-boot */ -/* XXX TODO need to specify the builtin environment */ +/* the builtin environment and standard greeting */  #define CONFIG_PREBOOT	"echo;"	\  	"echo Type \\\"run flash_nfs\\\" to mount root filesystem over NFS;" \  	"echo"  #define CONFIG_EXTRA_ENV_SETTINGS_DEVEL					\ -	"muster_nr=00\0"						\ +	"muster_nr=-00\0"						\  	"fromram=run ramargs addip addtty; "				\ -		"tftp ${fdt_addr_r} k6m2/ac14xx.dtb-${muster_nr}; "	\ -		"tftp ${kernel_addr_r} k6m2/uImage-${muster_nr}; "	\ -		"tftp ${ramdisk_addr_r} k6m2/uFS-${muster_nr}; "	\ +		"tftp ${fdt_addr_r} ac14xx/ac14xx.dtb${muster_nr}; "	\ +		"tftp ${kernel_addr_r} ac14xx/uImage${muster_nr}; "	\ +		"tftp ${ramdisk_addr_r} ac14xx/uFS${muster_nr}; "	\  		"bootm ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}\0" \  	"fromnfs=run nfsargs addip addtty; "				\ -		"tftp ${fdt_addr_r} k6m2/ac14xx.dtb-${muster_nr}; "	\ -		"tftp ${kernel_addr_r} k6m2/uImage-${muster_nr}; "	\ +		"tftp ${fdt_addr_r} ac14xx/ac14xx.dtb${muster_nr}; "	\ +		"tftp ${kernel_addr_r} ac14xx/uImage${muster_nr}; "	\  		"bootm ${kernel_addr_r} - ${fdt_addr_r}\0"		\  	"fromflash=run nfsargs addip addtty; "				\  		"bootm fc020000 - fc000000\0"				\ @@ -548,12 +541,11 @@  	"u-boot=ac14xx/u-boot.bin\0"					\  	"bootfile=ac14xx/uImage\0"					\  	"fdtfile=ac14xx/ac14xx.dtb\0"					\ -	"rootpath=/opt/eldk/ppc_6xx\n"					\  	"netdev=eth0\0"							\  	"consdev=ttyPSC0\0"						\  	"hostname=ac14xx\0"						\  	"nfsargs=setenv bootargs root=/dev/nfs rw "			\ -		"nfsroot=${serverip}:${rootpath}-${muster_nr}\0"	\ +		"nfsroot=${serverip}:${rootpath}${muster_nr}\0"	\  	"ramargs=setenv bootargs root=/dev/ram rw\0"			\  	"addip=setenv bootargs ${bootargs} "				\  		"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}"	\ @@ -583,6 +575,8 @@  #define CONFIG_BOOTCOMMAND	"run production" +#define CONFIG_ARP_TIMEOUT	200UL +  #define CONFIG_FIT		1  #define CONFIG_OF_LIBFDT	1  #define CONFIG_OF_BOARD_SETUP	1 |