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>
This commit is contained in:
parent
d044954fe2
commit
1b6275dfb1
@ -380,6 +380,7 @@ Heiko Schocher <hs@denx.de>
|
|||||||
ids8247 MPC8247
|
ids8247 MPC8247
|
||||||
jupiter MPC5200
|
jupiter MPC5200
|
||||||
kmeter1 MPC8360
|
kmeter1 MPC8360
|
||||||
|
kmsupx4 MPC852T
|
||||||
mgcoge MPC8247
|
mgcoge MPC8247
|
||||||
mgsuvd MPC852
|
mgsuvd MPC852
|
||||||
mucmc52 MPC5200
|
mucmc52 MPC5200
|
||||||
|
1
MAKEALL
1
MAKEALL
@ -117,6 +117,7 @@ LIST_8xx=" \
|
|||||||
KUP4X \
|
KUP4X \
|
||||||
LANTEC \
|
LANTEC \
|
||||||
lwmon \
|
lwmon \
|
||||||
|
kmsupx4 \
|
||||||
MBX \
|
MBX \
|
||||||
MBX860T \
|
MBX860T \
|
||||||
mgsuvd \
|
mgsuvd \
|
||||||
|
3
Makefile
3
Makefile
@ -921,6 +921,9 @@ IVMS8_config: unconfig
|
|||||||
}
|
}
|
||||||
@$(MKCONFIG) -a IVMS8 ppc mpc8xx ivm
|
@$(MKCONFIG) -a IVMS8 ppc mpc8xx ivm
|
||||||
|
|
||||||
|
kmsupx4_config: unconfig
|
||||||
|
@$(MKCONFIG) $(@:_config=) ppc mpc8xx km8xx keymile
|
||||||
|
|
||||||
KUP4K_config : unconfig
|
KUP4K_config : unconfig
|
||||||
@$(MKCONFIG) $(@:_config=) ppc mpc8xx kup4k kup
|
@$(MKCONFIG) $(@:_config=) ppc mpc8xx kup4k kup
|
||||||
|
|
||||||
|
@ -295,11 +295,14 @@ int ivm_analyze_eeprom (unsigned char *buf, int len)
|
|||||||
|
|
||||||
int ivm_read_eeprom (void)
|
int ivm_read_eeprom (void)
|
||||||
{
|
{
|
||||||
|
#if defined(CONFIG_I2C_MUX)
|
||||||
I2C_MUX_DEVICE *dev = NULL;
|
I2C_MUX_DEVICE *dev = NULL;
|
||||||
|
#endif
|
||||||
uchar i2c_buffer[CONFIG_SYS_IVM_EEPROM_MAX_LEN];
|
uchar i2c_buffer[CONFIG_SYS_IVM_EEPROM_MAX_LEN];
|
||||||
uchar *buf;
|
uchar *buf;
|
||||||
unsigned dev_addr = CONFIG_SYS_IVM_EEPROM_ADR;
|
unsigned dev_addr = CONFIG_SYS_IVM_EEPROM_ADR;
|
||||||
|
|
||||||
|
#if defined(CONFIG_I2C_MUX)
|
||||||
/* First init the Bus, select the Bus */
|
/* First init the Bus, select the Bus */
|
||||||
#if defined(CONFIG_SYS_I2C_IVM_BUS)
|
#if defined(CONFIG_SYS_I2C_IVM_BUS)
|
||||||
dev = i2c_mux_ident_muxstring ((uchar *)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;
|
return -1;
|
||||||
}
|
}
|
||||||
i2c_set_bus_num (dev->busid);
|
i2c_set_bus_num (dev->busid);
|
||||||
|
#endif
|
||||||
|
|
||||||
buf = (unsigned char *) getenv ("EEprom_ivm_addr");
|
buf = (unsigned char *) getenv ("EEprom_ivm_addr");
|
||||||
if (buf != NULL)
|
if (buf != NULL)
|
||||||
|
@ -61,7 +61,12 @@ const uint sdram_table[] =
|
|||||||
|
|
||||||
int checkboard (void)
|
int checkboard (void)
|
||||||
{
|
{
|
||||||
puts ("Board: Keymile mgsuvd");
|
puts ("Board: Keymile ");
|
||||||
|
#if defined(CONFIG_KMSUPX4)
|
||||||
|
puts ("kmsupx4");
|
||||||
|
#else
|
||||||
|
puts ("mgsuvd");
|
||||||
|
#endif
|
||||||
if (ethernet_present ())
|
if (ethernet_present ())
|
||||||
puts (" with PIGGY.");
|
puts (" with PIGGY.");
|
||||||
puts ("\n");
|
puts ("\n");
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
#ifdef CONFIG_LPC2292
|
#ifdef CONFIG_LPC2292
|
||||||
#include <asm/arch/hardware.h>
|
#include <asm/arch/hardware.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_MPC866 /* only valid for MPC866 */
|
#if defined(CONFIG_MPC852T) || defined(CONFIG_MPC866)
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#endif
|
#endif
|
||||||
#include <i2c.h>
|
#include <i2c.h>
|
||||||
|
@ -38,6 +38,10 @@
|
|||||||
/* include common defines/options for all Keymile boards */
|
/* include common defines/options for all Keymile boards */
|
||||||
#include "keymile-common.h"
|
#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_8xx_GCLK_FREQ 66000000
|
||||||
|
|
||||||
#define CONFIG_SYS_SMC_UCODE_PATCH 1 /* Relocate SMC1 */
|
#define CONFIG_SYS_SMC_UCODE_PATCH 1 /* Relocate SMC1 */
|
||||||
@ -61,7 +65,17 @@
|
|||||||
#define BOOTFLASH_START F0000000
|
#define BOOTFLASH_START F0000000
|
||||||
#define CONFIG_PRAM 512 /* protected RAM [KBytes] */
|
#define CONFIG_PRAM 512 /* protected RAM [KBytes] */
|
||||||
|
|
||||||
|
#if defined(CONFIG_MGSUVD)
|
||||||
#define CONFIG_ENV_IVM "EEprom_ivm=pca9544a:70:4 \0"
|
#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 \
|
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||||
CONFIG_KM_DEF_ENV \
|
CONFIG_KM_DEF_ENV \
|
||||||
@ -69,9 +83,7 @@
|
|||||||
"addcon=setenv bootargs ${bootargs} " \
|
"addcon=setenv bootargs ${bootargs} " \
|
||||||
"console=ttyCPM0,${baudrate}\0" \
|
"console=ttyCPM0,${baudrate}\0" \
|
||||||
"mtdids=nor0=app \0" \
|
"mtdids=nor0=app \0" \
|
||||||
"mtdparts=mtdparts=app:384k(u-boot),128k(env),128k(envred)," \
|
"mtdparts=" MK_STR(MTDPARTS_DEFAULT) "\0" \
|
||||||
"128k(free),1536k(esw0),8704k(rootfs0),1536k(esw1)," \
|
|
||||||
"2432k(rootfs1),640k(var),768k(cfg)\0" \
|
|
||||||
"partition=nor0,9 \0" \
|
"partition=nor0,9 \0" \
|
||||||
"new_env=prot off F0060000 F009FFFF; era F0060000 F009FFFF \0" \
|
"new_env=prot off F0060000 F009FFFF; era F0060000 F009FFFF \0" \
|
||||||
CONFIG_ENV_IVM \
|
CONFIG_ENV_IVM \
|
||||||
@ -162,7 +174,11 @@
|
|||||||
* SIUMCR - SIU Module Configuration 11-6
|
* SIUMCR - SIU Module Configuration 11-6
|
||||||
*-----------------------------------------------------------------------
|
*-----------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
#if defined(CONFIG_MGSUVD)
|
||||||
#define CONFIG_SYS_SIUMCR 0x00610480
|
#define CONFIG_SYS_SIUMCR 0x00610480
|
||||||
|
#else
|
||||||
|
#define CONFIG_SYS_SIUMCR 0x00610400
|
||||||
|
#endif
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
* TBSCR - Time Base Status and Control 11-26
|
* TBSCR - Time Base Status and Control 11-26
|
||||||
@ -184,7 +200,11 @@
|
|||||||
* Set clock output, timebase and RTC source and divider,
|
* Set clock output, timebase and RTC source and divider,
|
||||||
* power management and some other internal clocks
|
* power management and some other internal clocks
|
||||||
*/
|
*/
|
||||||
|
#if defined(CONFIG_MGSUVD)
|
||||||
#define SCCR_MASK 0x01800000
|
#define SCCR_MASK 0x01800000
|
||||||
|
#else
|
||||||
|
#define SCCR_MASK 0x00000000
|
||||||
|
#endif
|
||||||
#define CONFIG_SYS_SCCR 0x01800000
|
#define CONFIG_SYS_SCCR 0x01800000
|
||||||
|
|
||||||
#define CONFIG_SYS_DER 0
|
#define CONFIG_SYS_DER 0
|
||||||
@ -226,7 +246,11 @@
|
|||||||
#define CONFIG_SYS_MPTPR 0x0200
|
#define CONFIG_SYS_MPTPR 0x0200
|
||||||
/* PTB=16, AMB=001, FIXME 1 RAS precharge cycles, 1 READ loop cycle (not used),
|
/* 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 */
|
1 Write loop Cycle (not used), 1 Timer Loop Cycle */
|
||||||
|
#if defined(CONFIG_MGSUVD)
|
||||||
#define CONFIG_SYS_MBMR 0x10964111
|
#define CONFIG_SYS_MBMR 0x10964111
|
||||||
|
#else
|
||||||
|
#define CONFIG_SYS_MBMR 0x20964111
|
||||||
|
#endif
|
||||||
#define CONFIG_SYS_MAR 0x00000088
|
#define CONFIG_SYS_MAR 0x00000088
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -241,8 +265,13 @@
|
|||||||
/* GPIO/PIGGY on CS3 initialization values
|
/* GPIO/PIGGY on CS3 initialization values
|
||||||
*/
|
*/
|
||||||
#define CONFIG_SYS_PIGGY_BASE (0x30000000)
|
#define CONFIG_SYS_PIGGY_BASE (0x30000000)
|
||||||
|
#if defined(CONFIG_MGSUVD)
|
||||||
#define CONFIG_SYS_OR3_PRELIM (0xfe000d24)
|
#define CONFIG_SYS_OR3_PRELIM (0xfe000d24)
|
||||||
#define CONFIG_SYS_BR3_PRELIM (0x30000401)
|
#define CONFIG_SYS_BR3_PRELIM (0x30000401)
|
||||||
|
#else
|
||||||
|
#define CONFIG_SYS_OR3_PRELIM (0xf8000d26)
|
||||||
|
#define CONFIG_SYS_BR3_PRELIM (0x30000401)
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Internal Definitions
|
* Internal Definitions
|
||||||
@ -302,16 +331,13 @@
|
|||||||
|
|
||||||
/* I2C SYSMON (LM75, AD7414 is almost compatible) */
|
/* I2C SYSMON (LM75, AD7414 is almost compatible) */
|
||||||
#define CONFIG_DTT_LM75 1 /* ON Semi's LM75 */
|
#define CONFIG_DTT_LM75 1 /* ON Semi's LM75 */
|
||||||
|
#if defined(CONFIG_MGSUVD)
|
||||||
#define CONFIG_DTT_SENSORS {0, 2, 4, 6} /* Sensor addresses */
|
#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_MAX_TEMP 70
|
||||||
#define CONFIG_SYS_DTT_LOW_TEMP -30
|
#define CONFIG_SYS_DTT_LOW_TEMP -30
|
||||||
#define CONFIG_SYS_DTT_HYSTERESIS 3
|
#define CONFIG_SYS_DTT_HYSTERESIS 3
|
||||||
#define CONFIG_SYS_DTT_BUS_NUM (CONFIG_SYS_MAX_I2C_BUS)
|
#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 */
|
#endif /* __CONFIG_KM8XX_H */
|
||||||
|
41
include/configs/kmsupx4.h
Normal file
41
include/configs/kmsupx4.h
Normal file
@ -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 */
|
Loading…
Reference in New Issue
Block a user