arm: octeontx2: Add Octeon TX2 CN9130 CRB support
authorKonstantin Porotchkin <kostap@marvell.com>
Tue, 16 Mar 2021 16:20:57 +0000 (17:20 +0100)
committerStefan Roese <sr@denx.de>
Thu, 29 Apr 2021 05:45:13 +0000 (07:45 +0200)
This patch adds the base support for the Marvell Octeon TX2 CN9130 CRB.
Not all interfaces are supported fully yet.

Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
Signed-off-by: Stefan Roese <sr@denx.de>
arch/arm/mach-mvebu/Kconfig
board/Marvell/octeontx2_cn913x/MAINTAINERS [new file with mode: 0644]
board/Marvell/octeontx2_cn913x/Makefile [new file with mode: 0644]
board/Marvell/octeontx2_cn913x/board.c [new file with mode: 0644]
configs/mvebu_crb_cn9130_defconfig [new file with mode: 0644]

index 0299611..cda65f7 100644 (file)
@@ -141,6 +141,13 @@ config TARGET_MVEBU_ARMADA_8K
        select BOARD_LATE_INIT
        imply SCSI
 
+config TARGET_OCTEONTX2_CN913x
+       bool "Support CN913x platforms"
+       select ARMADA_8K
+       imply BOARD_EARLY_INIT_R
+       select BOARD_LATE_INIT
+       imply SCSI
+
 config TARGET_DB_MV784MP_GP
        bool "Support db-mv784mp-gp"
        select MV78460
@@ -187,6 +194,7 @@ config SYS_BOARD
        default "turris_omnia" if TARGET_TURRIS_OMNIA
        default "turris_mox" if TARGET_TURRIS_MOX
        default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
+       default "octeontx2_cn913x" if TARGET_OCTEONTX2_CN913x
        default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
        default "ds414" if TARGET_DS414
        default "maxbcm" if TARGET_MAXBCM
@@ -204,6 +212,7 @@ config SYS_CONFIG_NAME
        default "db-88f6820-gp" if TARGET_DB_88F6820_GP
        default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
        default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
+       default "mvebu_armada-8k" if TARGET_OCTEONTX2_CN913x
        default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
        default "ds414" if TARGET_DS414
        default "maxbcm" if TARGET_MAXBCM
@@ -222,6 +231,7 @@ config SYS_VENDOR
        default "Marvell" if TARGET_DB_88F6820_GP
        default "Marvell" if TARGET_DB_88F6820_AMC
        default "Marvell" if TARGET_MVEBU_ARMADA_8K
+       default "Marvell" if TARGET_OCTEONTX2_CN913x
        default "Marvell" if TARGET_DB_XC3_24G4XG
        default "Marvell" if TARGET_MVEBU_DB_88F7040
        default "solidrun" if TARGET_CLEARFOG
diff --git a/board/Marvell/octeontx2_cn913x/MAINTAINERS b/board/Marvell/octeontx2_cn913x/MAINTAINERS
new file mode 100644 (file)
index 0000000..d469e16
--- /dev/null
@@ -0,0 +1,5 @@
+OCTEONTX2_CN913x BOARD
+M:     Kostya Porotchkin <kostap@marvell.com>
+S:     Maintained
+F:     board/Marvell/octeontx2_cn913x/
+F:     configs/mvebu_crb_cn9130_defconfig
diff --git a/board/Marvell/octeontx2_cn913x/Makefile b/board/Marvell/octeontx2_cn913x/Makefile
new file mode 100644 (file)
index 0000000..8c6ffb9
--- /dev/null
@@ -0,0 +1,8 @@
+#
+# Copyright (C) 2016 Stefan Roese <sr@denx.de>
+# Copyright (C) 2019 Marvell International Ltd.
+#
+# SPDX-License-Identifier:     GPL-2.0+
+#
+
+obj-y  := board.o
diff --git a/board/Marvell/octeontx2_cn913x/board.c b/board/Marvell/octeontx2_cn913x/board.c
new file mode 100644 (file)
index 0000000..953e9db
--- /dev/null
@@ -0,0 +1,45 @@
+// SPDX-License-Identifier:    GPL-2.0+
+/*
+ * Copyright (C) 2016 Stefan Roese <sr@denx.de>
+ * Copyright (C) 2020 Marvell International Ltd.
+ */
+
+#include <dm.h>
+#include <power/regulator.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+__weak int soc_early_init_f(void)
+{
+       return 0;
+}
+
+int board_early_init_f(void)
+{
+       soc_early_init_f();
+
+       return 0;
+}
+
+int board_early_init_r(void)
+{
+       if (CONFIG_IS_ENABLED(DM_REGULATOR)) {
+               /* Check if any existing regulator should be turned down */
+               regulators_enable_boot_off(false);
+       }
+
+       return 0;
+}
+
+int board_init(void)
+{
+       /* address of boot parameters */
+       gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
+
+       return 0;
+}
+
+int board_late_init(void)
+{
+       return 0;
+}
diff --git a/configs/mvebu_crb_cn9130_defconfig b/configs/mvebu_crb_cn9130_defconfig
new file mode 100644 (file)
index 0000000..03bc44b
--- /dev/null
@@ -0,0 +1,84 @@
+CONFIG_ARM=y
+CONFIG_ARCH_CPU_INIT=y
+CONFIG_ARCH_MVEBU=y
+CONFIG_SYS_TEXT_BASE=0x00000000
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_NR_DRAM_BANKS=2
+CONFIG_TARGET_OCTEONTX2_CN913x=y
+CONFIG_ENV_SIZE=0x10000
+CONFIG_ENV_OFFSET=0x3f0000
+CONFIG_DEBUG_UART_BASE=0xf0512000
+CONFIG_DEBUG_UART_CLOCK=200000000
+CONFIG_DEFAULT_DEVICE_TREE="cn9130-crb-A"
+CONFIG_DEBUG_UART=y
+CONFIG_AHCI=y
+CONFIG_DISTRO_DEFAULTS=y
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
+CONFIG_USE_PREBOOT=y
+CONFIG_SYS_CONSOLE_INFO_QUIET=y
+# CONFIG_DISPLAY_CPUINFO is not set
+# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_ARCH_EARLY_INIT_R=y
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_SYS_PROMPT="Marvell>> "
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_MTD=y
+CONFIG_CMD_PCI=y
+CONFIG_CMD_SPI=y
+CONFIG_CMD_USB=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_TFTPPUT=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_TIME=y
+CONFIG_CMD_MVEBU_BUBT=y
+CONFIG_MVEBU_MMC_BOOT=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_MAC_PARTITION=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_SYS_MMC_ENV_DEV=1
+CONFIG_AHCI_MVEBU=y
+CONFIG_DM_I2C=y
+CONFIG_SYS_I2C_MVTWSI=y
+CONFIG_MISC=y
+CONFIG_MMC_BROKEN_CD=y
+CONFIG_DM_MMC=y
+CONFIG_MMC_HS200_SUPPORT=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_XENON=y
+CONFIG_MTD=y
+CONFIG_DM_MTD=y
+CONFIG_SF_DEFAULT_MODE=0
+CONFIG_SPI_FLASH_SFDP_SUPPORT=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_SST=y
+CONFIG_SPI_FLASH_WINBOND=y
+CONFIG_SPI_FLASH_MTD=y
+CONFIG_PHY_MARVELL=y
+CONFIG_PHY_GIGE=y
+CONFIG_MVPP2=y
+CONFIG_NVME=y
+CONFIG_PCI=y
+CONFIG_DM_PCI=y
+CONFIG_PCIE_DW_MVEBU=y
+CONFIG_MVEBU_COMPHY_SUPPORT=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_ARMADA_8K=y
+CONFIG_DEBUG_UART_SHIFT=2
+CONFIG_DEBUG_UART_ANNOUNCE=y
+CONFIG_SYS_NS16550=y
+CONFIG_KIRKWOOD_SPI=y
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_HOST_ETHER=y
+CONFIG_USB_ETHER_ASIX=y
+CONFIG_USB_ETHER_MCS7830=y
+CONFIG_USB_ETHER_RTL8152=y
+CONFIG_USB_ETHER_SMSC95XX=y