summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mvebu/serdes/a38x/sys_env_lib.c
diff options
context:
space:
mode:
authorKevin Smith <kevin.smith@elecsyscorp.com>2015-10-23 17:53:19 +0000
committerLuka Perkov <luka.perkov@sartura.hr>2015-11-17 23:41:41 +0100
commit544acb07ecebc096c9449e675481ba280311fb0b (patch)
tree3e322a650976aa6972e69d84cf65e9b7e0664ae4 /arch/arm/mach-mvebu/serdes/a38x/sys_env_lib.c
parent3d4825446e4258192e1f2302d691a8c0c82a0975 (diff)
downloadu-boot-imx-544acb07ecebc096c9449e675481ba280311fb0b.zip
u-boot-imx-544acb07ecebc096c9449e675481ba280311fb0b.tar.gz
u-boot-imx-544acb07ecebc096c9449e675481ba280311fb0b.tar.bz2
arm: mvebu: a38x: Remove unsupported topologies
A lot of extra configuration information was left over in the Marvell serdes and DDR3 initialization code for boards that U-boot does not support. Remove this extra config information, and the concept of fixing up board topologies with information loaded from an EEPROM. If this needs to be done, it should be handled in the board file, not in core code. Signed-off-by: Kevin Smith <kevin.smith@elecsyscorp.com> Acked-by: Stefan Roese <sr@denx.de> Cc: Dirk Eibach <eibach@gdsys.de> Cc: Luka Perkov <luka.perkov@sartura.hr>
Diffstat (limited to 'arch/arm/mach-mvebu/serdes/a38x/sys_env_lib.c')
-rw-r--r--arch/arm/mach-mvebu/serdes/a38x/sys_env_lib.c151
1 files changed, 0 insertions, 151 deletions
diff --git a/arch/arm/mach-mvebu/serdes/a38x/sys_env_lib.c b/arch/arm/mach-mvebu/serdes/a38x/sys_env_lib.c
index efd3873..49d704a 100644
--- a/arch/arm/mach-mvebu/serdes/a38x/sys_env_lib.c
+++ b/arch/arm/mach-mvebu/serdes/a38x/sys_env_lib.c
@@ -5,7 +5,6 @@
*/
#include <common.h>
-#include <i2c.h>
#include <spl.h>
#include <asm/io.h>
#include <asm/arch/cpu.h>
@@ -236,153 +235,3 @@ u32 sys_env_device_id_get(void)
return g_dev_id;
}
-
-#ifdef MV_DDR_TOPOLOGY_UPDATE_FROM_TWSI
-/*
-* sys_env_get_topology_update_info
-* DESCRIPTION: Read TWSI fields to update DDR topology structure
-* INPUT: None
-* OUTPUT: None, 0 means no topology update
-* RETURN:
-* Bit mask of changes topology features
-*/
-#ifdef CONFIG_ARMADA_39X
-u32 sys_env_get_topology_update_info(
- struct topology_update_info *tui)
-{
- /* Set 16/32 bit configuration*/
- tui->update_width = 1;
- tui->width = TOPOLOGY_UPDATE_WIDTH_32BIT;
-
-#ifdef CONFIG_DDR3
- if (1 == sys_env_config_get(MV_CONFIG_DDR_BUSWIDTH)) {
- /* 16bit */
- tui->width = TOPOLOGY_UPDATE_WIDTH_16BIT;
- } else {
- /* 32bit */
- tui->width = TOPOLOGY_UPDATE_WIDTH_32BIT;
- }
-#endif
-
- /* Set ECC/no ECC bit configuration */
- tui->update_ecc = 1;
- if (0 == sys_env_config_get(MV_CONFIG_DDR_ECC_EN)) {
- /* NO ECC */
- tui->ecc = TOPOLOGY_UPDATE_ECC_OFF;
- } else {
- /* ECC */
- tui->ecc = TOPOLOGY_UPDATE_ECC_ON;
- }
-
- tui->update_ecc_pup3_mode = 1;
- tui->ecc_pup_mode_offset = TOPOLOGY_UPDATE_ECC_OFFSET_PUP4;
-
- return MV_OK;
-}
-#else /*CONFIG_ARMADA_38X*/
-u32 sys_env_get_topology_update_info(
- struct topology_update_info *tui)
-{
- u8 config_val;
- u8 ecc_mode[A38X_MV_MAX_MARVELL_BOARD_ID -
- A38X_MARVELL_BOARD_ID_BASE][5] = TOPOLOGY_UPDATE;
- u8 board_id = mv_board_id_get();
- int ret;
-
- board_id = mv_board_id_index_get(board_id);
- ret = i2c_read(EEPROM_I2C_ADDR, 0, 2, &config_val, 1);
- if (ret) {
- DEBUG_INIT_S("sys_env_get_topology_update_info: TWSI Read failed\n");
- return 0;
- }
-
- /* Set 16/32 bit configuration */
- if ((0 == (config_val & DDR_SATR_CONFIG_MASK_WIDTH)) ||
- (ecc_mode[board_id][TOPOLOGY_UPDATE_32BIT] == 0)) {
- /* 16bit by SatR of 32bit mode not supported for the board */
- if ((ecc_mode[board_id][TOPOLOGY_UPDATE_16BIT] != 0)) {
- tui->update_width = 1;
- tui->width = TOPOLOGY_UPDATE_WIDTH_16BIT;
- }
- } else {
- /* 32bit */
- if ((ecc_mode[board_id][TOPOLOGY_UPDATE_32BIT] != 0)) {
- tui->update_width = 1;
- tui->width = TOPOLOGY_UPDATE_WIDTH_32BIT;
- }
- }
-
- /* Set ECC/no ECC bit configuration */
- if (0 == (config_val & DDR_SATR_CONFIG_MASK_ECC)) {
- /* NO ECC */
- tui->update_ecc = 1;
- tui->ecc = TOPOLOGY_UPDATE_ECC_OFF;
- } else {
- /* ECC */
- if ((ecc_mode[board_id][TOPOLOGY_UPDATE_32BIT_ECC] != 0) ||
- (ecc_mode[board_id][TOPOLOGY_UPDATE_16BIT_ECC] != 0) ||
- (ecc_mode[board_id][TOPOLOGY_UPDATE_16BIT_ECC_PUP3] != 0)) {
- tui->update_ecc = 1;
- tui->ecc = TOPOLOGY_UPDATE_ECC_ON;
- }
- }
-
- /* Set ECC pup bit configuration */
- if (0 == (config_val & DDR_SATR_CONFIG_MASK_ECC_PUP)) {
- /* PUP3 */
- /*
- * Check if PUP3 configuration allowed, if not -
- * force Pup4 with warning message
- */
- if ((ecc_mode[board_id][TOPOLOGY_UPDATE_16BIT_ECC_PUP3] != 0)) {
- if (tui->width == TOPOLOGY_UPDATE_WIDTH_16BIT) {
- tui->update_ecc_pup3_mode = 1;
- tui->ecc_pup_mode_offset =
- TOPOLOGY_UPDATE_ECC_OFFSET_PUP3;
- } else {
- if ((ecc_mode[board_id][TOPOLOGY_UPDATE_32BIT_ECC] != 0)) {
- printf("DDR Topology Update: ECC PUP3 not valid for 32bit mode, force ECC in PUP4\n");
- tui->update_ecc_pup3_mode = 1;
- tui->ecc_pup_mode_offset =
- TOPOLOGY_UPDATE_ECC_OFFSET_PUP4;
- }
- }
- } else {
- if (ecc_mode[board_id][TOPOLOGY_UPDATE_16BIT_ECC] !=
- 0) {
- printf("DDR Topology Update: ECC on PUP3 not supported, force ECC on PUP4\n");
- tui->update_ecc_pup3_mode = 1;
- tui->ecc_pup_mode_offset =
- TOPOLOGY_UPDATE_ECC_OFFSET_PUP4;
- }
- }
- } else {
- /* PUP4 */
- if ((ecc_mode[board_id][TOPOLOGY_UPDATE_32BIT_ECC] != 0) ||
- (ecc_mode[board_id][TOPOLOGY_UPDATE_16BIT_ECC] != 0)) {
- tui->update_ecc_pup3_mode = 1;
- tui->ecc_pup_mode_offset =
- TOPOLOGY_UPDATE_ECC_OFFSET_PUP4;
- }
- }
-
- /*
- * Check for forbidden ECC mode,
- * if by default width and pup selection set 32bit ECC mode and this
- * mode not supported for the board - config 16bit with ECC on PUP3
- */
- if ((tui->ecc == TOPOLOGY_UPDATE_ECC_ON) &&
- (tui->width == TOPOLOGY_UPDATE_WIDTH_32BIT)) {
- if (ecc_mode[board_id][TOPOLOGY_UPDATE_32BIT_ECC] == 0) {
- printf("DDR Topology Update: 32bit mode with ECC not allowed on this board, forced 16bit with ECC on PUP3\n");
- tui->width = TOPOLOGY_UPDATE_WIDTH_16BIT;
- tui->update_ecc_pup3_mode = 1;
- tui->ecc_pup_mode_offset =
- TOPOLOGY_UPDATE_ECC_OFFSET_PUP3;
- }
- }
-
- return MV_OK;
-}
-#endif /* CONFIG_ARMADA_38X */
-#endif /* MV_DDR_TOPOLOGY_UPDATE_FROM_TWSI */