arm/km: add kmnusa board support
This board is similar to portl2, but it has the u-boot environment in a SPI NOR flash and not in an i2c eeprom like portl2 have. Some other details: - IVM EEPROM is at adress: pca9547:70:9 - PCI is enabled - PIGGY4 is connected via MV88E6352 simple switch. There is no phy between the simple switch and the kirkwood. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> cc: Gerlando Falauto <gerlando.falauto@keymile.com> cc: Prafulla Wadaskar <prafulla@marvell.com>
This commit is contained in:
committed by
Albert ARIBAUD
parent
fa042186b9
commit
8170aefc84
@@ -57,6 +57,13 @@
|
||||
#define CONFIG_CMD_SF
|
||||
#define CONFIG_SOFT_I2C /* I2C bit-banged */
|
||||
|
||||
#if defined CONFIG_KM_ENV_IS_IN_SPI_NOR
|
||||
#define CONFIG_ENV_SPI_BUS 0
|
||||
#define CONFIG_ENV_SPI_CS 0
|
||||
#define CONFIG_ENV_SPI_MAX_HZ 5000000
|
||||
#define CONFIG_ENV_SPI_MODE SPI_MODE_3
|
||||
#endif
|
||||
|
||||
#include "asm/arch/config.h"
|
||||
|
||||
#define CONFIG_SYS_TEXT_BASE 0x07d00000 /* code address before reloc */
|
||||
@@ -211,6 +218,15 @@ int get_scl(void);
|
||||
/*
|
||||
* Environment variables configurations
|
||||
*/
|
||||
#if defined CONFIG_KM_ENV_IS_IN_SPI_NOR
|
||||
#define CONFIG_ENV_IS_IN_SPI_FLASH /* use SPI-Flash for environment vars */
|
||||
#define CONFIG_ENV_OFFSET 0xc0000 /* no bracets! */
|
||||
#define CONFIG_ENV_SIZE 0x02000 /* Size of Environment */
|
||||
#define CONFIG_ENV_SECT_SIZE 0x10000
|
||||
#define CONFIG_ENV_OFFSET_REDUND (CONFIG_ENV_OFFSET + \
|
||||
CONFIG_ENV_SECT_SIZE)
|
||||
#define CONFIG_ENV_TOTAL_SIZE 0x20000 /* no bracets! */
|
||||
#else
|
||||
#define CONFIG_ENV_IS_IN_EEPROM /* use EEPROM for environment vars */
|
||||
#define CONFIG_SYS_DEF_EEPROM_ADDR 0x50
|
||||
#define CONFIG_ENV_EEPROM_IS_ON_I2C
|
||||
@@ -218,11 +234,11 @@ int get_scl(void);
|
||||
#define CONFIG_ENV_OFFSET 0x0 /* no bracets! */
|
||||
#define CONFIG_ENV_SIZE (0x2000 - CONFIG_ENV_OFFSET)
|
||||
#define CONFIG_I2C_ENV_EEPROM_BUS KM_ENV_BUS "\0"
|
||||
|
||||
/* offset redund: (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) */
|
||||
#define CONFIG_SYS_REDUNDAND_ENVIRONMENT
|
||||
#define CONFIG_ENV_OFFSET_REDUND 0x2000 /* no bracets! */
|
||||
#define CONFIG_ENV_SIZE_REDUND (CONFIG_ENV_SIZE)
|
||||
#endif
|
||||
|
||||
#define CONFIG_SYS_REDUNDAND_ENVIRONMENT
|
||||
|
||||
#define CONFIG_SPI_FLASH
|
||||
#define CONFIG_SPI_FLASH_STMICRO
|
||||
@@ -248,17 +264,27 @@ int get_scl(void);
|
||||
"sf probe 0;sf erase 0 +${filesize};" \
|
||||
"sf write ${load_addr_r} 0 ${filesize};\0"
|
||||
|
||||
/*
|
||||
* Default environment variables
|
||||
*/
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
CONFIG_KM_DEF_ENV \
|
||||
#if defined CONFIG_KM_ENV_IS_IN_SPI_NOR
|
||||
#define CONFIG_KM_NEW_ENV \
|
||||
"newenv=sf probe 0;" \
|
||||
"sf erase " xstr(CONFIG_ENV_OFFSET) " " \
|
||||
xstr(CONFIG_ENV_TOTAL_SIZE)"\0"
|
||||
#else
|
||||
#define CONFIG_KM_NEW_ENV \
|
||||
"newenv=setenv addr 0x100000 && " \
|
||||
"i2c dev 1; mw.b ${addr} 0 4 && " \
|
||||
"eeprom write " xstr(CONFIG_SYS_DEF_EEPROM_ADDR) \
|
||||
" ${addr} " xstr(CONFIG_ENV_OFFSET) " 4 && " \
|
||||
"eeprom write " xstr(CONFIG_SYS_DEF_EEPROM_ADDR) \
|
||||
" ${addr} " xstr(CONFIG_ENV_OFFSET_REDUND) " 4\0" \
|
||||
" ${addr} " xstr(CONFIG_ENV_OFFSET_REDUND) " 4\0"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Default environment variables
|
||||
*/
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
CONFIG_KM_DEF_ENV \
|
||||
CONFIG_KM_NEW_ENV \
|
||||
"arch=arm\0" \
|
||||
"EEprom_ivm=" KM_IVM_BUS "\0" \
|
||||
""
|
||||
|
||||
@@ -6,8 +6,9 @@
|
||||
* (C) Copyright 2009
|
||||
* Stefan Roese, DENX Software Engineering, sr@denx.de.
|
||||
*
|
||||
* (C) Copyright 2011
|
||||
* Holger Brunck, Keymile GmbH Hannover, holger.brunck@keymile.de
|
||||
* (C) Copyright 2011-2012
|
||||
* Holger Brunck, Keymile GmbH Hannover, holger.brunck@keymile.com
|
||||
* Valentin Longchamp, Keymile AG, valentin.longchamp@keymile.com
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
@@ -36,23 +37,67 @@
|
||||
#ifndef _CONFIG_KM_KIRKWOOD_H
|
||||
#define _CONFIG_KM_KIRKWOOD_H
|
||||
|
||||
#if defined(CONFIG_KM_KIRKWOOD)
|
||||
#define CONFIG_IDENT_STRING "\nKeymile Kirkwood"
|
||||
#undef CONFIG_KIRKWOOD_PCIE_INIT
|
||||
#define KM_IVM_BUS "pca9544a:70:9" /* I2C2 (Mux-Port 1)*/
|
||||
#elif defined(CONFIG_KM_KIRKWOOD_PCI)
|
||||
#define CONFIG_IDENT_STRING "\nKeymile Kirkwood PCI"
|
||||
#define KM_IVM_BUS "pca9544a:70:9" /* I2C2 (Mux-Port 1)*/
|
||||
/* KM_NUSA */
|
||||
#elif defined(CONFIG_KM_NUSA)
|
||||
#define KM_IVM_BUS "pca9547:70:9" /* I2C2 (Mux-Port 1)*/
|
||||
#define CONFIG_IDENT_STRING "\nKeymile NUSA"
|
||||
#undef CONFIG_SYS_KWD_CONFIG
|
||||
#define CONFIG_SYS_KWD_CONFIG \
|
||||
$(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage_128M16_1.cfg
|
||||
#define CONFIG_KM_ENV_IS_IN_SPI_NOR
|
||||
#define CONFIG_KM_FPGA_CONFIG
|
||||
#define CONFIG_KM_PIGGY4_88E6352
|
||||
|
||||
#else
|
||||
#error ("Board unsupported")
|
||||
#endif
|
||||
|
||||
/* include common defines/options for all arm based Keymile boards */
|
||||
#include "km/km_arm.h"
|
||||
|
||||
/*
|
||||
* Version number information
|
||||
*/
|
||||
#if defined(CONFIG_KM_KIRKWOOD)
|
||||
#define CONFIG_IDENT_STRING "\nKeymile Kirkwood"
|
||||
#undef CONFIG_KIRKWOOD_PCIE_INIT
|
||||
#elif defined(CONFIG_KM_KIRKWOOD_PCI)
|
||||
#define CONFIG_IDENT_STRING "\nKeymile Kirkwood PCI"
|
||||
#endif
|
||||
|
||||
#define CONFIG_HOSTNAME km_kirkwood
|
||||
|
||||
#define KM_IVM_BUS "pca9544a:70:9" /* I2C2 (Mux-Port 1)*/
|
||||
#ifndef CONFIG_KM_ENV_IS_IN_SPI_NOR
|
||||
#define KM_ENV_BUS "pca9544a:70:d" /* I2C2 (Mux-Port 5)*/
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_KM_PIGGY4_88E6352)
|
||||
/*
|
||||
* Some keymile boards like mgcoge5un & nusa1 have their PIGGY4 connected via
|
||||
* an Marvell 88E6352 simple switch.
|
||||
* In this case we have to change the default settings for the etherent mac.
|
||||
* There is NO ethernet phy. The ARM and Switch are conencted directly over
|
||||
* RGMII in MAC-MAC mode
|
||||
* In this case 1GBit full duplex and autoneg off
|
||||
*/
|
||||
#define PORT_SERIAL_CONTROL_VALUE ( \
|
||||
MVGBE_FORCE_LINK_PASS | \
|
||||
MVGBE_DIS_AUTO_NEG_FOR_DUPLX | \
|
||||
MVGBE_DIS_AUTO_NEG_FOR_FLOW_CTRL | \
|
||||
MVGBE_ADV_NO_FLOW_CTRL | \
|
||||
MVGBE_FORCE_FC_MODE_NO_PAUSE_DIS_TX | \
|
||||
MVGBE_FORCE_BP_MODE_NO_JAM | \
|
||||
(1 << 9) /* Reserved bit has to be 1 */ | \
|
||||
MVGBE_DO_NOT_FORCE_LINK_FAIL | \
|
||||
MVGBE_DIS_AUTO_NEG_SPEED_GMII | \
|
||||
MVGBE_DTE_ADV_0 | \
|
||||
MVGBE_MIIPHY_MAC_MODE | \
|
||||
MVGBE_AUTO_NEG_NO_CHANGE | \
|
||||
MVGBE_MAX_RX_PACKET_1552BYTE | \
|
||||
MVGBE_CLR_EXT_LOOPBACK | \
|
||||
MVGBE_SET_FULL_DUPLEX_MODE | \
|
||||
MVGBE_EN_FLOW_CTRL_TX_RX_IN_FULL_DUPLEX |\
|
||||
MVGBE_SET_GMII_SPEED_TO_1000 |\
|
||||
MVGBE_SET_MII_SPEED_TO_100)
|
||||
|
||||
#endif
|
||||
|
||||
/* GPIO Pin from kirkwood connected to PROGRAM_B pin of the xilinx FPGA */
|
||||
#define KM_XLX_PROGRAM_B_PIN 39
|
||||
|
||||
Reference in New Issue
Block a user