diff options
| author | Heiko Schocher <hs@denx.de> | 2009-03-12 07:37:34 +0100 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2009-03-18 20:50:05 +0100 | 
| commit | 1b6275dfb173bd2edb8f208dd050d6f47ae39654 (patch) | |
| tree | 3a898a6950dec2d6f92778797f5c9dc41a815b17 | |
| parent | d044954fe2a7e7a3dd104eb9c9d2104e38da2911 (diff) | |
| download | olio-uboot-2014.01-1b6275dfb173bd2edb8f208dd050d6f47ae39654.tar.xz olio-uboot-2014.01-1b6275dfb173bd2edb8f208dd050d6f47ae39654.zip | |
8xx: add support for new keymile kmsupx4 board.
This patch adds support for the kmsupx4 board from Keymile,
based on a Freescale MPC852T CPU
- serial console on SMC1
- 32 MB SDRAM
- 32 MB NOR Flash
- Ethernet over SCC3
- I2C Bitbang
Signed-off-by: Heiko Schocher <hs@denx.de>
| -rw-r--r-- | MAINTAINERS | 1 | ||||
| -rwxr-xr-x | MAKEALL | 1 | ||||
| -rw-r--r-- | Makefile | 3 | ||||
| -rw-r--r-- | board/keymile/common/common.c | 4 | ||||
| -rw-r--r-- | board/keymile/km8xx/km8xx.c | 7 | ||||
| -rw-r--r-- | drivers/i2c/soft_i2c.c | 2 | ||||
| -rw-r--r-- | include/configs/km8xx.h | 46 | ||||
| -rw-r--r-- | include/configs/kmsupx4.h | 41 | 
8 files changed, 93 insertions, 12 deletions
| diff --git a/MAINTAINERS b/MAINTAINERS index c3157d95b..ce25c1b54 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -380,6 +380,7 @@ Heiko Schocher <hs@denx.de>  	ids8247		MPC8247  	jupiter		MPC5200  	kmeter1		MPC8360 +	kmsupx4		MPC852T  	mgcoge		MPC8247  	mgsuvd		MPC852  	mucmc52		MPC5200 @@ -117,6 +117,7 @@ LIST_8xx="		\  	KUP4X		\  	LANTEC		\  	lwmon		\ +	kmsupx4		\  	MBX		\  	MBX860T		\  	mgsuvd		\ @@ -921,6 +921,9 @@ IVMS8_config:	unconfig  		 }  	@$(MKCONFIG) -a IVMS8 ppc mpc8xx ivm +kmsupx4_config:		unconfig +	@$(MKCONFIG) $(@:_config=) ppc mpc8xx km8xx keymile +  KUP4K_config	:	unconfig  	@$(MKCONFIG) $(@:_config=) ppc mpc8xx kup4k kup diff --git a/board/keymile/common/common.c b/board/keymile/common/common.c index c3fa8443d..b2bd7fd84 100644 --- a/board/keymile/common/common.c +++ b/board/keymile/common/common.c @@ -295,11 +295,14 @@ int ivm_analyze_eeprom (unsigned char *buf, int len)  int ivm_read_eeprom (void)  { +#if defined(CONFIG_I2C_MUX)  	I2C_MUX_DEVICE *dev = NULL; +#endif  	uchar i2c_buffer[CONFIG_SYS_IVM_EEPROM_MAX_LEN];  	uchar	*buf;  	unsigned dev_addr = CONFIG_SYS_IVM_EEPROM_ADR; +#if defined(CONFIG_I2C_MUX)  	/* First init the Bus, select the Bus */  #if defined(CONFIG_SYS_I2C_IVM_BUS)  	dev = i2c_mux_ident_muxstring ((uchar *)CONFIG_SYS_I2C_IVM_BUS); @@ -313,6 +316,7 @@ int ivm_read_eeprom (void)  		return -1;  	}  	i2c_set_bus_num (dev->busid); +#endif  	buf = (unsigned char *) getenv ("EEprom_ivm_addr");  	if (buf != NULL) diff --git a/board/keymile/km8xx/km8xx.c b/board/keymile/km8xx/km8xx.c index e7bfa3125..845d3f2a0 100644 --- a/board/keymile/km8xx/km8xx.c +++ b/board/keymile/km8xx/km8xx.c @@ -61,7 +61,12 @@ const uint sdram_table[] =  int checkboard (void)  { -	puts ("Board: Keymile mgsuvd"); +	puts ("Board: Keymile "); +#if defined(CONFIG_KMSUPX4) +	puts ("kmsupx4"); +#else +	puts ("mgsuvd"); +#endif  	if (ethernet_present ())  		puts (" with PIGGY.");  	puts ("\n"); diff --git a/drivers/i2c/soft_i2c.c b/drivers/i2c/soft_i2c.c index da6cec1fa..ed5f5b269 100644 --- a/drivers/i2c/soft_i2c.c +++ b/drivers/i2c/soft_i2c.c @@ -40,7 +40,7 @@  #ifdef CONFIG_LPC2292  #include <asm/arch/hardware.h>  #endif -#ifdef	CONFIG_MPC866			/* only valid for MPC866 */ +#if defined(CONFIG_MPC852T) || defined(CONFIG_MPC866)  #include <asm/io.h>  #endif  #include <i2c.h> diff --git a/include/configs/km8xx.h b/include/configs/km8xx.h index a29771fba..c305b8969 100644 --- a/include/configs/km8xx.h +++ b/include/configs/km8xx.h @@ -38,6 +38,10 @@  /* include common defines/options for all Keymile boards */  #include "keymile-common.h" +#if defined(CONFIG_KMSUPX4) +#undef	CONFIG_I2C_MUX			/* no I2C mux on this board */ +#endif +  #define CONFIG_8xx_GCLK_FREQ		66000000  #define CONFIG_SYS_SMC_UCODE_PATCH	1	/* Relocate SMC1 */ @@ -61,7 +65,17 @@  #define BOOTFLASH_START	F0000000  #define CONFIG_PRAM	512	/* protected RAM [KBytes] */ +#if defined(CONFIG_MGSUVD)  #define CONFIG_ENV_IVM	"EEprom_ivm=pca9544a:70:4 \0" +#else +#define CONFIG_ENV_IVM	"" +#endif + +#define MTDIDS_DEFAULT		"nor0=app" +#define MTDPARTS_DEFAULT \ +	"mtdparts=app:384k(u-boot),128k(env),128k(envred),128k(free),"	\ +	"1536k(esw0),8704k(rootfs0),1536k(esw1),2432k(rootfs1),640k(var)," \ +	"768k(cfg)"  #define CONFIG_EXTRA_ENV_SETTINGS					\  	CONFIG_KM_DEF_ENV						\ @@ -69,9 +83,7 @@  	"addcon=setenv bootargs ${bootargs} "				\  		"console=ttyCPM0,${baudrate}\0"				\  	"mtdids=nor0=app \0"						\ -	"mtdparts=mtdparts=app:384k(u-boot),128k(env),128k(envred),"	\ -		"128k(free),1536k(esw0),8704k(rootfs0),1536k(esw1),"	\ -		"2432k(rootfs1),640k(var),768k(cfg)\0"			\ +	"mtdparts=" MK_STR(MTDPARTS_DEFAULT) "\0"			\  	"partition=nor0,9 \0"						\  	"new_env=prot off F0060000 F009FFFF; era F0060000 F009FFFF \0" 	\  	CONFIG_ENV_IVM							\ @@ -162,7 +174,11 @@   * SIUMCR - SIU Module Configuration				11-6   *-----------------------------------------------------------------------   */ +#if defined(CONFIG_MGSUVD)  #define CONFIG_SYS_SIUMCR	0x00610480 +#else +#define CONFIG_SYS_SIUMCR	0x00610400 +#endif  /*-----------------------------------------------------------------------   * TBSCR - Time Base Status and Control				11-26 @@ -184,7 +200,11 @@   * Set clock output, timebase and RTC source and divider,   * power management and some other internal clocks   */ +#if defined(CONFIG_MGSUVD)  #define SCCR_MASK	0x01800000 +#else +#define SCCR_MASK	0x00000000 +#endif  #define CONFIG_SYS_SCCR	0x01800000  #define CONFIG_SYS_DER 0 @@ -226,7 +246,11 @@  #define CONFIG_SYS_MPTPR	0x0200  /* PTB=16, AMB=001, FIXME 1 RAS precharge cycles, 1 READ loop cycle (not used),     1 Write loop Cycle (not used), 1 Timer Loop Cycle */ +#if defined(CONFIG_MGSUVD)  #define CONFIG_SYS_MBMR	0x10964111 +#else +#define CONFIG_SYS_MBMR	0x20964111 +#endif  #define CONFIG_SYS_MAR		0x00000088  /* @@ -241,8 +265,13 @@  /* GPIO/PIGGY on CS3 initialization values  */  #define CONFIG_SYS_PIGGY_BASE	(0x30000000) +#if defined(CONFIG_MGSUVD)  #define CONFIG_SYS_OR3_PRELIM	(0xfe000d24)  #define CONFIG_SYS_BR3_PRELIM	(0x30000401) +#else +#define CONFIG_SYS_OR3_PRELIM	(0xf8000d26) +#define CONFIG_SYS_BR3_PRELIM	(0x30000401) +#endif  /*   * Internal Definitions @@ -302,16 +331,13 @@  /* I2C SYSMON (LM75, AD7414 is almost compatible)		*/  #define CONFIG_DTT_LM75		1	/* ON Semi's LM75	*/ +#if defined(CONFIG_MGSUVD)  #define CONFIG_DTT_SENSORS	{0, 2, 4, 6}	/* Sensor addresses */ +#else +#define CONFIG_DTT_SENSORS	{0}	/* Sensor addresses */ +#endif  #define CONFIG_SYS_DTT_MAX_TEMP	70  #define CONFIG_SYS_DTT_LOW_TEMP	-30  #define CONFIG_SYS_DTT_HYSTERESIS	3  #define CONFIG_SYS_DTT_BUS_NUM		(CONFIG_SYS_MAX_I2C_BUS) - -#define MTDIDS_DEFAULT		"nor0=app" -#define MTDPARTS_DEFAULT ( \ -	"mtdparts=app:384k(u-boot),128k(env),128k(envred),128k(free),"	\ -	"1536k(esw0),8704k(rootfs0),1536k(esw1),2432k(rootfs1),640k(var)," \ -	"768k(cfg)") -  #endif	/* __CONFIG_KM8XX_H */ diff --git a/include/configs/kmsupx4.h b/include/configs/kmsupx4.h new file mode 100644 index 000000000..8f1e602a2 --- /dev/null +++ b/include/configs/kmsupx4.h @@ -0,0 +1,41 @@ +/* + * (C) Copyright 2009 + * Heiko Schocher, DENX Software Engineering, hs@denx.de. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * 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 + */ + +/* + * board/config.h - configuration options, board specific + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +#define CONFIG_MPC852T		1	/* This is a MPC852T CPU	*/ +#define CONFIG_KMSUPX4		1	/* ...on a kmsupx4 board	*/ +#define CONFIG_HOSTNAME		kmsupx4 + +/* include common defines/options for all Keymile 8xx boards */ +#include "km8xx.h" + +#define CONFIG_SYS_DELAYED_ICACHE	1	/* enable ICache not before +						 * running in RAM. +						 */ +#endif	/* __CONFIG_H */ |