diff options
| author | Stefan Roese <sr@denx.de> | 2005-08-31 12:55:50 +0200 | 
|---|---|---|
| committer | Stefan Roese <sr@denx.de> | 2005-08-31 12:55:50 +0200 | 
| commit | 9d2a873bdf72a7c615c9c7ac55357085d0299716 (patch) | |
| tree | 6aab5d3254576cc613e1f044399137aba48cab41 | |
| parent | 77f6580cc078fea22c2b1348f5b177edcd63885f (diff) | |
| download | olio-uboot-2014.01-9d2a873bdf72a7c615c9c7ac55357085d0299716.tar.xz olio-uboot-2014.01-9d2a873bdf72a7c615c9c7ac55357085d0299716.zip | |
Add I2C support to TQM8540 and TQM8560 boards (EEPROM, RTC, LM75-DTT).
Removed CFG_CMD_DISPLAY from default commands.
Fixed compiler warning in net.c.
Patch by Stefan Roese, 31 Aug 2005
| -rw-r--r-- | CHANGELOG | 5 | ||||
| -rwxr-xr-x | MAKEALL | 1 | ||||
| -rw-r--r-- | board/tqm8540/tqm8540.c | 21 | ||||
| -rw-r--r-- | board/tqm8560/tqm8560.c | 21 | ||||
| -rw-r--r-- | include/cmd_confdefs.h | 1 | ||||
| -rw-r--r-- | include/configs/TQM8540.h | 39 | ||||
| -rw-r--r-- | include/configs/TQM8560.h | 39 | ||||
| -rw-r--r-- | net/net.c | 2 | 
8 files changed, 109 insertions, 20 deletions
| @@ -2,6 +2,11 @@  Changes for U-Boot 1.1.4:  ====================================================================== +* Add I2C support to TQM8540 and TQM8560 boards (EEPROM, RTC, LM75-DTT). +  Removed CFG_CMD_DISPLAY from default commands. +  Fixed compiler warning in net.c. +  Patch by Stefan Roese, 31 Aug 2005 +  * Fix problems with ld version 2.16 (dot outside sections problem)    Pointed out by Gerhard Jaeger, 31 Aug 2005;    cf. http://sourceware.org/ml/binutils/2005-08/msg00412.html @@ -126,6 +126,7 @@ LIST_85xx="	\  	MPC8540ADS	MPC8540EVAL	MPC8541CDS	MPC8548CDS	\  	MPC8555CDS	MPC8560ADS	PM854		PM856		\  	sbc8540		sbc8560		stxgp3		TQM8540		\ +	TQM8560								\  "  ######################################################################### diff --git a/board/tqm8540/tqm8540.c b/board/tqm8540/tqm8540.c index ee10d0042..970c6841f 100644 --- a/board/tqm8540/tqm8540.c +++ b/board/tqm8540/tqm8540.c @@ -74,15 +74,26 @@ long int initdram (int board_type)  #if defined(CONFIG_DDR_DLL)  	{ -		volatile ccsr_gur_t *gur = &immap->im_gur; -		uint temp_ddrdll = 0; +		volatile ccsr_gur_t *gur= &immap->im_gur; +		int i,x; + +		x = 10;  		/*  		 * Work around to stabilize DDR DLL  		 */ -		temp_ddrdll = gur->ddrdllcr; -		gur->ddrdllcr = ((temp_ddrdll & 0xff) << 16) | 0x80000000; -		asm ("sync;isync;msync"); +		gur->ddrdllcr = 0x81000000; +		asm("sync;isync;msync"); +		udelay (200); +		while (gur->ddrdllcr != 0x81000100) { +			gur->devdisr = gur->devdisr | 0x00010000; +			asm("sync;isync;msync"); +			for (i=0; i<x; i++) +				; +			gur->devdisr = gur->devdisr & 0xfff7ffff; +			asm("sync;isync;msync"); +			x++; +		}  	}  #endif diff --git a/board/tqm8560/tqm8560.c b/board/tqm8560/tqm8560.c index 5f2edd89d..71f58805b 100644 --- a/board/tqm8560/tqm8560.c +++ b/board/tqm8560/tqm8560.c @@ -229,15 +229,26 @@ long int initdram (int board_type)  #if defined(CONFIG_DDR_DLL)  	{ -		volatile ccsr_gur_t *gur = &immap->im_gur; -		uint temp_ddrdll = 0; +		volatile ccsr_gur_t *gur= &immap->im_gur; +		int i,x; + +		x = 10;  		/*  		 * Work around to stabilize DDR DLL  		 */ -		temp_ddrdll = gur->ddrdllcr; -		gur->ddrdllcr = ((temp_ddrdll & 0xff) << 16) | 0x80000000; -		asm ("sync;isync;msync"); +		gur->ddrdllcr = 0x81000000; +		asm("sync;isync;msync"); +		udelay (200); +		while (gur->ddrdllcr != 0x81000100) { +			gur->devdisr = gur->devdisr | 0x00010000; +			asm("sync;isync;msync"); +			for (i=0; i<x; i++) +				; +			gur->devdisr = gur->devdisr & 0xfff7ffff; +			asm("sync;isync;msync"); +			x++; +		}  	}  #endif diff --git a/include/cmd_confdefs.h b/include/cmd_confdefs.h index 448b9d5bf..c79a023f7 100644 --- a/include/cmd_confdefs.h +++ b/include/cmd_confdefs.h @@ -109,6 +109,7 @@  			CFG_CMD_DATE	| \  			CFG_CMD_DHCP	| \  			CFG_CMD_DIAG	| \ +			CFG_CMD_DISPLAY	| \  			CFG_CMD_DOC	| \  			CFG_CMD_DTT	| \  			CFG_CMD_ECHO	| \ diff --git a/include/configs/TQM8540.h b/include/configs/TQM8540.h index 5a922447a..f35914a23 100644 --- a/include/configs/TQM8540.h +++ b/include/configs/TQM8540.h @@ -230,11 +230,33 @@  #endif  /* I2C */ -#define	 CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged */ -#define CFG_I2C_SPEED		400000	/* I2C speed and slave address */ +#define CONFIG_HARD_I2C			/* I2C with hardware support	*/ +#undef	CONFIG_SOFT_I2C			/* I2C bit-banged		*/ +#define CFG_I2C_SPEED		400000	/* I2C speed and slave address	*/  #define CFG_I2C_SLAVE		0x7F -#define CFG_I2C_NOPROBES	{0x69}	/* Don't probe these addrs */ +#define CFG_I2C_NOPROBES	{0x48}	/* Don't probe these addrs	*/ + +/* I2C RTC */ +#define CONFIG_RTC_DS1337		/* Use ds1337 rtc via i2c	*/ +#define CFG_I2C_RTC_ADDR	0x68	/* at address 0x68		*/ + +/* I2C EEPROM */ +/* + * EEPROM configuration for onboard EEPROM M24C32 (M24C64 should work also). + */ +#define CFG_I2C_EEPROM_ADDR		0x50	/* 1010000x		*/ +#define CFG_I2C_EEPROM_ADDR_LEN		2 +#define CFG_EEPROM_PAGE_WRITE_BITS	5	/* =32 Bytes per write	*/ +#define CFG_EEPROM_PAGE_WRITE_ENABLE +#define CFG_EEPROM_PAGE_WRITE_DELAY_MS	20 +#define CFG_I2C_MULTI_EEPROMS		1       /* more than one eeprom */ + +/* I2C SYSMON (LM75) */ +#define CONFIG_DTT_LM75		1		/* ON Semi's LM75	*/ +#define CONFIG_DTT_SENSORS	{0}		/* Sensor addresses	*/ +#define CFG_DTT_MAX_TEMP	70 +#define CFG_DTT_LOW_TEMP	-30 +#define CFG_DTT_HYSTERESIS	3  /* RapidIO MMU */  #define CFG_RIO_MEM_BASE	0xc0000000	/* base address */ @@ -301,7 +323,6 @@  #endif	/* CONFIG_TSEC_ENET */ -  /*   * Environment   */ @@ -342,6 +363,9 @@  #define CONFIG_COMMANDS        (CONFIG_CMD_PRIV	| \  				ADD_PCI_CMD	| \  				CFG_CMD_I2C	| \ +				CFG_CMD_DATE	| \ +				CFG_CMD_EEPROM	| \ +				CFG_CMD_DTT	| \  				CFG_CMD_PING	)  #include <cmd_confdefs.h> @@ -426,6 +450,11 @@  	"bootfile=/tftpboot/tqm8540/uImage\0"				\  	"kernel_addr=FE000000\0"					\  	"ramdisk_addr=FE100000\0"					\ +	"load=tftp 100000 /tftpboot/tqm8540/u-boot.bin\0"		\ +	"update=protect off fffc0000 ffffffff;era fffc0000 ffffffff;"	\ +		"cp.b 100000 fffc0000 40000;"			        \ +		"setenv filesize;saveenv\0"				\ +	"upd=run load;run update\0"					\  	""  #define CONFIG_BOOTCOMMAND	"run flash_self" diff --git a/include/configs/TQM8560.h b/include/configs/TQM8560.h index a72346d30..f48d04e26 100644 --- a/include/configs/TQM8560.h +++ b/include/configs/TQM8560.h @@ -38,6 +38,7 @@  #define CONFIG_BOOKE		1	/* BOOKE */  #define CONFIG_E500		1	/* BOOKE e500 family */  #define CONFIG_MPC85xx		1	/* MPC8540/MPC8560 */ +#define CONFIG_CPM2		1	/* has CPM2 */  #define CONFIG_MPC8560		1	/* MPC8560 specific */  #define CONFIG_TQM8560		1	/* TQM8560 board specific */ @@ -226,11 +227,33 @@  #endif  /* I2C */ -#define	 CONFIG_HARD_I2C		/* I2C with hardware support*/ -#undef	CONFIG_SOFT_I2C			/* I2C bit-banged */ -#define CFG_I2C_SPEED		400000	/* I2C speed and slave address */ +#define CONFIG_HARD_I2C			/* I2C with hardware support	*/ +#undef	CONFIG_SOFT_I2C			/* I2C bit-banged		*/ +#define CFG_I2C_SPEED		400000	/* I2C speed and slave address	*/  #define CFG_I2C_SLAVE		0x7F -#define CFG_I2C_NOPROBES	{0x69}	/* Don't probe these addrs */ +#define CFG_I2C_NOPROBES	{0x48}	/* Don't probe these addrs	*/ + +/* I2C RTC */ +#define CONFIG_RTC_DS1337		/* Use ds1337 rtc via i2c	*/ +#define CFG_I2C_RTC_ADDR	0x68	/* at address 0x68		*/ + +/* I2C EEPROM */ +/* + * EEPROM configuration for onboard EEPROM M24C32 (M24C64 should work also). + */ +#define CFG_I2C_EEPROM_ADDR		0x50	/* 1010000x		*/ +#define CFG_I2C_EEPROM_ADDR_LEN		2 +#define CFG_EEPROM_PAGE_WRITE_BITS	5	/* =32 Bytes per write	*/ +#define CFG_EEPROM_PAGE_WRITE_ENABLE +#define CFG_EEPROM_PAGE_WRITE_DELAY_MS	20 +#define CFG_I2C_MULTI_EEPROMS		1       /* more than one eeprom */ + +/* I2C SYSMON (LM75) */ +#define CONFIG_DTT_LM75		1		/* ON Semi's LM75	*/ +#define CONFIG_DTT_SENSORS	{0}		/* Sensor addresses	*/ +#define CFG_DTT_MAX_TEMP	70 +#define CFG_DTT_LOW_TEMP	-30 +#define CFG_DTT_HYSTERESIS	3  /* RapidIO MMU */  #define CFG_RIO_MEM_BASE	0xc0000000	/* base address */ @@ -331,6 +354,9 @@  #define CONFIG_COMMANDS        (CONFIG_CMD_PRIV	| \  				ADD_PCI_CMD	| \  				CFG_CMD_I2C	| \ +				CFG_CMD_DATE	| \ +				CFG_CMD_EEPROM	| \ +				CFG_CMD_DTT	| \  				CFG_CMD_PING	)  #include <cmd_confdefs.h> @@ -415,6 +441,11 @@  	"bootfile=/tftpboot/tqm8560/uImage\0"				\  	"kernel_addr=FE000000\0"					\  	"ramdisk_addr=FE100000\0"					\ +	"load=tftp 100000 /tftpboot/tqm8560/u-boot.bin\0"		\ +	"update=protect off fffc0000 ffffffff;era fffc0000 ffffffff;"	\ +		"cp.b 100000 fffc0000 40000;"			        \ +		"setenv filesize;saveenv\0"				\ +	"upd=run load;run update\0"					\  	""  #define CONFIG_BOOTCOMMAND	"run flash_self" @@ -1574,7 +1574,7 @@ unsigned  NetCksum(uchar * ptr, int len)  {  	ulong	xsum; -	ushort *p = ptr; +	ushort *p = (ushort *)ptr;  	xsum = 0;  	while (len-- > 0) |