msys: axp-amc: add board information for AXP-AMC
- set machine's boardID compliant to U-Boot 'uboot_version' atag
Change-Id: I1adf8b1bbc865e2bfa1061b085bc48e6aa38f1a2
Signed-off-by: Marcin Wojtas <mw@semihalf.com>
Signed-off-by: Omri Itach <omrii@marvell.com>
Reviewed-on: http://vgitil04.il.marvell.com:8080/20542
diff --git a/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.c b/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.c
index cbbde7c..354b7f9 100755
--- a/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.c
+++ b/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.c
@@ -1287,6 +1287,13 @@
} else if (boardId >= AC3_CUSTOMER_BOARD_ID_BASE && boardId < AC3_CUSTOMER_MAX_BOARD_ID) { /* Customer Board */
board = customerAC3BoardInfoTbl[mvBoardIdIndexGet(boardId)];
gBoardId = boardId;
+ /* Marvell AXP-AMC Board */
+ } else if (boardId == DB_78X60_AMC_ID) {
+ /* This case should enter only for LSP 3.2/3.4 flow:
+ * This board ID is passed from AXP-AMC U-Boot 2011.12, and shared here only
+ * for Linux usage (AXP family is shared with MSYS family in LSP) */
+ board = marvellAXPboardInfoTbl[0];
+ gBoardId = boardId;
} else {
mvOsPrintf("%s: Error: wrong board Id (%d)\n", __func__, boardId);
#ifdef CONFIG_ALLEYCAT3
diff --git a/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.h b/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.h
index 75ba82c..23c9dd0 100755
--- a/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.h
+++ b/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvLib.h
@@ -384,5 +384,6 @@
}
#endif /* __cplusplus */
+extern MV_BOARD_INFO *marvellAXPboardInfoTbl[];
#endif /* __INCmvBoardEnvLibh */
diff --git a/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvSpec.c b/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvSpec.c
index 7a206f0..a6dfb01 100644
--- a/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvSpec.c
+++ b/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvSpec.c
@@ -899,6 +899,102 @@
.norFlashWriteParams = DB_DX_AC3_BOARD_NOR_WRITE_PARAMS
};
+/***************************************************************************************/
+/* ARMADA-XP AMC BOARD - only for Linux usage (AXP family is shared with MSYS in LSP) */
+/***************************************************************************************/
+#define DB_78X60_AMC_BOARD_NAND_READ_PARAMS 0x000C0282
+#define DB_78X60_AMC_BOARD_NAND_WRITE_PARAMS 0x00010305
+/*NAND care support for small page chips*/
+#define DB_78X60_AMC_BOARD_NAND_CONTROL 0x01c00543
+
+MV_U8 db78X60amcInfoBoardDebugLedIf[] = {53, 54, 55, 56}; /* 7 segment MPPs*/
+
+MV_BOARD_TWSI_INFO db78X60amcInfoBoardTwsiDev[] = {
+ /* No TWSI devices on board*/
+};
+
+MV_BOARD_MAC_INFO db78X60amcInfoBoardMacInfo[] = {
+ /* {{MV_BOARD_MAC_SPEED boardMacSpeed, MV_U8 boardEthSmiAddr}} */
+ {BOARD_MAC_SPEED_AUTO, 0x1, 0x0},
+ {BOARD_MAC_SPEED_AUTO, 0xD, 0x0},
+ {BOARD_MAC_SPEED_AUTO, 0xC, 0x0},
+ {BOARD_MAC_SPEED_AUTO, 0x0, 0x0}
+};
+
+
+MV_BOARD_MODULE_TYPE_INFO db78X60amcInfoBoardModTypeInfo[] = {
+ /* No Modules */
+};
+
+MV_BOARD_GPP_INFO db78X60amcInfoBoardGppInfo[] = {
+ /* {{MV_BOARD_GPP_CLASS devClass, MV_U8 gppPinNum}} */
+ {BOARD_GPP_USB_VBUS, 46} /* from MPP map */
+};
+
+MV_DEV_CS_INFO db78X60amcInfoBoardDeCsInfo[] = {
+ /*{deviceCS, params, devType, devWidth}*/
+#if defined(MV_INCLUDE_SPI)
+ {SPI_CS0, N_A, BOARD_DEV_SPI_FLASH, 8, 8}, /* SPI DEV */
+#endif
+};
+
+MV_BOARD_MPP_INFO db78X60amcInfoBoardMppConfigValue[] = {
+ { {
+ DB_78X60_AMC_MPP0_7,
+ DB_78X60_AMC_MPP8_15,
+ DB_78X60_AMC_MPP16_23,
+ DB_78X60_AMC_MPP24_31,
+ DB_78X60_AMC_MPP32_39,
+ DB_78X60_AMC_MPP40_47,
+ DB_78X60_AMC_MPP48_55,
+ DB_78X60_AMC_MPP56_63,
+ DB_78X60_AMC_MPP64_67,
+ } }
+};
+
+MV_BOARD_INFO db78X60amcInfo = {
+ .boardName = "DB-78460-AMC",
+ .numBoardMppTypeValue = ARRSZ(db78X60amcInfoBoardModTypeInfo),
+ .pBoardModTypeValue = db78X60amcInfoBoardModTypeInfo,
+ .numBoardMppConfigValue = ARRSZ(db78X60amcInfoBoardMppConfigValue),
+ .pBoardMppConfigValue = db78X60amcInfoBoardMppConfigValue,
+ .intsGppMaskLow = 0,
+ .intsGppMaskMid = 0,
+ .intsGppMaskHigh = 0,
+ .numBoardDeviceIf = ARRSZ(db78X60amcInfoBoardDeCsInfo),
+ .pDevCsInfo = db78X60amcInfoBoardDeCsInfo,
+ .numBoardTwsiDev = ARRSZ(db78X60amcInfoBoardTwsiDev),
+ .pBoardTwsiDev = db78X60amcInfoBoardTwsiDev,
+ .numBoardMacInfo = ARRSZ(db78X60amcInfoBoardMacInfo),
+ .pBoardMacInfo = db78X60amcInfoBoardMacInfo,
+ .numBoardGppInfo = ARRSZ(db78X60amcInfoBoardGppInfo),
+ .pBoardGppInfo = db78X60amcInfoBoardGppInfo,
+ .activeLedsNumber = ARRSZ(db78X60amcInfoBoardDebugLedIf),
+ .pLedGppPin = db78X60amcInfoBoardDebugLedIf,
+ .ledsPolarity = 0,
+
+ /* GPP values */
+ .gppOutEnValLow = DB_78X60_AMC_GPP_OUT_ENA_LOW,
+ .gppOutEnValMid = DB_78X60_AMC_GPP_OUT_ENA_MID,
+ .gppOutEnValHigh = DB_78X60_AMC_GPP_OUT_ENA_HIGH,
+ .gppOutValLow = DB_78X60_AMC_GPP_OUT_VAL_LOW,
+ .gppOutValMid = DB_78X60_AMC_GPP_OUT_VAL_MID,
+ .gppOutValHigh = DB_78X60_AMC_GPP_OUT_VAL_HIGH,
+ .gppPolarityValLow = DB_78X60_AMC_GPP_POL_LOW,
+ .gppPolarityValMid = DB_78X60_AMC_GPP_POL_MID,
+ .gppPolarityValHigh = DB_78X60_AMC_GPP_POL_HIGH,
+
+ /* External Switch Configuration */
+ .pSwitchInfo = NULL,
+ .switchInfoNum = 0,
+
+ /* NAND init params */
+ .nandFlashReadParams = DB_78X60_AMC_BOARD_NAND_READ_PARAMS,
+ .nandFlashWriteParams = DB_78X60_AMC_BOARD_NAND_WRITE_PARAMS,
+ .nandFlashControl = DB_78X60_AMC_BOARD_NAND_CONTROL
+};
+
+
/*********************************************************************************/
MV_BOARD_INFO *marvellBC2BoardInfoTbl[] = {
@@ -914,3 +1010,8 @@
&db_misl_24G_4xg_ac3Info,
&rd_mtl_24G_ac3Info
};
+
+/* only for Linux usage (AXP family is shared with MSYS in LSP) */
+MV_BOARD_INFO *marvellAXPboardInfoTbl[] = {
+ &db78X60amcInfo
+};
diff --git a/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvSpec.h b/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvSpec.h
index 8e5b8eb..ad59415 100644
--- a/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvSpec.h
+++ b/board/mv_ebu/msys/msys_family/boardEnv/mvBoardEnvSpec.h
@@ -118,6 +118,9 @@
#define BOBK_MARVELL_MAX_BOARD_ID (BOBK_MARVELL_BOARD_ID_BASE + 2)
#define BOBK_MARVELL_BOARD_NUM (BOBK_MARVELL_MAX_BOARD_ID - BOBK_MARVELL_BOARD_ID_BASE)
+/* AXP-AMC board: for Linux 2.6/3.4 usage only (AXP family is shared with MSYS in LSP) */
+#define DB_78X60_AMC_ID 0x6
+
#define INVALID_BOARD_ID 0xFFFF
#define BOARD_ID_INDEX_MASK 0x10 /* Mask used to return board index via board Id */
#define RD_MTL_BC2_PCB_ID 0x70
@@ -501,5 +504,56 @@
#define RD_MTL_24G_AC3_GPP_POL_LOW RD_MTL_4XG_AC3_GPP_POL_LOW
#define RD_MTL_24G_AC3_GPP_POL_MID RD_MTL_4XG_AC3_GPP_POL_MID
+/**********************************************************************************/
+/* ArmadaXP Boards : only for Linux usage (AXP family is shared with MSYS in LSP) */
+/**********************************************************************************/
+/********************/
+/* DB-78460-AMC */
+/********************/
+
+#define DB_78X60_AMC_MPP0_7 0x11111111
+#define DB_78X60_AMC_MPP8_15 0x00001111
+#define DB_78X60_AMC_MPP16_23 0x00000000
+#define DB_78X60_AMC_MPP24_31 0x00000000
+#define DB_78X60_AMC_MPP32_39 0x11110000
+#define DB_78X60_AMC_MPP40_47 0x00004000
+#define DB_78X60_AMC_MPP48_55 0x00001113
+#define DB_78X60_AMC_MPP56_63 0x11111110
+#define DB_78X60_AMC_MPP64_67 0x00000111
+
+/* GPPs
+MPP# NAME IN/OUT
+----------------------------------------------
+16 MB_INT# IN
+17 Phy1_INT# IN
+18 Phy2_INT# IN
+19 Brd_Led_0 IN (for next board)
+21 Brd_Led_1 OUT
+23 Brd_Led_2 OUT
+29 Brd_Led_3 OUT
+30 Brd_Led_4 OUT
+34 Dbg_JP0 IN
+35 Dbg_JP1 IN
+40 Dbg_JP2 IN
+41 Dbg_JP3 IN
+42 Dbg_JP4 IN
+53 7 Segment 0 OUT
+54 7 Segment 1 OUT
+55 7 Segment 2 OUT
+56 7 Segment 3 OUT
+*/
+
+#define DB_78X60_AMC_GPP_OUT_ENA_LOW (~(BIT19 | BIT21 | BIT22 | BIT23 | BIT29 | BIT30))
+#define DB_78X60_AMC_GPP_OUT_ENA_MID (~(BIT21 | BIT22 | BIT23 | BIT24))
+#define DB_78X60_AMC_GPP_OUT_ENA_HIGH (~(0x0))
+
+#define DB_78X60_AMC_GPP_OUT_VAL_LOW 0x0
+#define DB_78X60_AMC_GPP_OUT_VAL_MID 0x0
+#define DB_78X60_AMC_GPP_OUT_VAL_HIGH 0x0
+
+#define DB_78X60_AMC_GPP_POL_LOW 0x0
+#define DB_78X60_AMC_GPP_POL_MID 0x0
+#define DB_78X60_AMC_GPP_POL_HIGH 0x0
+
#endif /* __INCmvBoardEnvSpech */
diff --git a/board/mv_ebu/msys/msys_family/ctrlEnv/mvCtrlEnvLib.c b/board/mv_ebu/msys/msys_family/ctrlEnv/mvCtrlEnvLib.c
index 1024369..54234cd 100755
--- a/board/mv_ebu/msys/msys_family/ctrlEnv/mvCtrlEnvLib.c
+++ b/board/mv_ebu/msys/msys_family/ctrlEnv/mvCtrlEnvLib.c
@@ -769,7 +769,9 @@
{
MV_U32 boardId = mvBoardIdGet();
- if ((boardId >= BC2_CUSTOMER_BOARD_ID_BASE) && (boardId < BC2_MARVELL_MAX_BOARD_ID))
+ if (boardId == DB_78X60_AMC_ID)
+ return MV_78460_DEV_ID;
+ else if ((boardId >= BC2_CUSTOMER_BOARD_ID_BASE) && (boardId < BC2_MARVELL_MAX_BOARD_ID))
return MV_BOBCAT2_DEV_ID;
else if ((boardId >= AC3_CUSTOMER_BOARD_ID_BASE) && (boardId < AC3_MARVELL_MAX_BOARD_ID))
return MV_ALLEYCAT3_DEV_ID;