From patchwork Thu Jul 23 08:56:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luka Kovacic X-Patchwork-Id: 1334635 X-Patchwork-Delegate: sr@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=sartura.hr Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=sartura-hr.20150623.gappssmtp.com header.i=@sartura-hr.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=r82V5mRq; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4BC5pN3vSqz9sRW for ; Thu, 23 Jul 2020 18:58:20 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id DF3A281F41; Thu, 23 Jul 2020 10:58:08 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=sartura.hr Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=sartura-hr.20150623.gappssmtp.com header.i=@sartura-hr.20150623.gappssmtp.com header.b="r82V5mRq"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 7A47D82055; Thu, 23 Jul 2020 10:58:07 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 64AD382181 for ; Thu, 23 Jul 2020 10:58:03 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=sartura.hr Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=luka.kovacic@sartura.hr Received: by mail-wr1-x441.google.com with SMTP id a14so4376957wra.5 for ; Thu, 23 Jul 2020 01:58:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sartura-hr.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=y9k1mY3pUdp/SI+FlS8P8Gc93GWgaz3uMsNnC+4WBLw=; b=r82V5mRqxo0RLsCRFZgSWj7Ip4o6g14rnSFQkmjR1BIByq8f2TwpVmDgyEGPwlAGfB Kd4qfrKPzTY3xQWxEjUyEYQ0gb+fR2yZW2GFf4aMQP3T7d4/o9ZTXBdZWhsvE57ep5sb 63fG/4mC2p8rF4IPQ5y8RMsUo98y4imIBo6oWicImreZWgmU8OvI4J8qE9FWUIfvD9Eq zTFypuATVGWjCGnTy2SNwmeNPqF+zgcWhFHlOwM5qhoFtH9WOScVNEJAN1Y4KkzREA3T JB67FXEWiFF0I+WHtPvHoyJzK6FIqDhrfMTyDmE8nt1MHIlAGHRygVISeYZKLczRAmmr 5f1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=y9k1mY3pUdp/SI+FlS8P8Gc93GWgaz3uMsNnC+4WBLw=; b=tX3Qsnd4hTgFRSTGyg3KFXL81KrwqVyPRMyddMPz05D1QvV4SkdDS1W/BUEVZVbDLU pR6+Huwl+HsZBYN+d4Yix4rIvqdkyCutrnY4P7rcCP4IY415HUL2tuOvX8sbOPBwsf/b VG83xVgQMvb+FIeRqJoFNfDDllBziNyTmCG+1jDKZ4iy9CUY/j0AUTbBzxzgOls+1hT4 9me+aOD/+VThlahDvloBfE4giXPaAimIyg5qfSA+Fn+yyuWKwy5MnFklP9p9elYRATTg Lr1uiQQfgr7PSl7Va7DWNE9SO3iynKQQUHH27cD5La4AbnLjU0+gBseCJME20VbWumY7 yWlA== X-Gm-Message-State: AOAM530X/pPzvKPz2NQ5rh2IFjeqGscP8xKr9KLRqSF2tHaeVKy2+3Bb yhm8ao6ewhug50IKeeb/u17til83bGYfyxE/WpMy2Q0CdkxTEfxXkN6yppYxd6d957O5Zgq8jtX SUWeG3n8rtjxsccq6+L4XvA0ccq2H6GI2Otmb+dca9BsZDMQVym30mbw7Vb8SiSfDdKzqZWtY X-Google-Smtp-Source: ABdhPJwjaFQ1VTh+FE2TmHwzjLxBOMUW+L/V0W/ThOgDIfyAizaDi6egPQCVgLiz0weRJTKL6rtUzQ== X-Received: by 2002:adf:f2c5:: with SMTP id d5mr3215535wrp.96.1595494682215; Thu, 23 Jul 2020 01:58:02 -0700 (PDT) Received: from lukakovacicapc.local ([2a00:ee2:4b0d:3001:fbc5:498b:ed6d:cfac]) by smtp.gmail.com with ESMTPSA id 78sm2711132wma.31.2020.07.23.01.58.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jul 2020 01:58:01 -0700 (PDT) From: Luka Kovacic To: u-boot@lists.denx.de Cc: sr@denx.de, luka.perkov@sartura.hr, jakov.petrina@sartura.hr, Luka Kovacic Subject: [PATCH 3/5] arm: mvebu: Add CRS328-4C-20S-4S board Date: Thu, 23 Jul 2020 10:56:38 +0200 Message-Id: <20200723085640.12232-4-luka.kovacic@sartura.hr> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200723085640.12232-1-luka.kovacic@sartura.hr> References: <20200723085640.12232-1-luka.kovacic@sartura.hr> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean MikroTik CRS328-4C-20S-4S board has a switch chip with an integrated Marvell Prestera 98DX3236 CPU. This commit includes two board variants, namely the factory default one and a Bit variant. The Bit board variant has a bigger Macronix flash. Add basic U-Boot, UART and SPI flash support. Signed-off-by: Luka Kovacic Cc: Luka Perkov Cc: Jakov Petrina Reviewed-by: Stefan Roese --- arch/arm/dts/Makefile | 2 + .../dts/armada-xp-crs328-4c-20s-4s-bit.dts | 43 +++++++ .../armada-xp-crs328-4c-20s-4s-u-boot.dtsi | 13 +++ arch/arm/dts/armada-xp-crs328-4c-20s-4s.dts | 17 +++ arch/arm/dts/armada-xp-crs328-4c-20s-4s.dtsi | 110 ++++++++++++++++++ board/mikrotik/crs3xx-98dx3236/MAINTAINERS | 9 ++ configs/crs328-4c-20s-4s-bit_defconfig | 54 +++++++++ configs/crs328-4c-20s-4s_defconfig | 54 +++++++++ 8 files changed, 302 insertions(+) create mode 100644 arch/arm/dts/armada-xp-crs328-4c-20s-4s-bit.dts create mode 100644 arch/arm/dts/armada-xp-crs328-4c-20s-4s-u-boot.dtsi create mode 100644 arch/arm/dts/armada-xp-crs328-4c-20s-4s.dts create mode 100644 arch/arm/dts/armada-xp-crs328-4c-20s-4s.dtsi create mode 100644 configs/crs328-4c-20s-4s-bit_defconfig create mode 100644 configs/crs328-4c-20s-4s_defconfig diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 9f8ca61f28..deced1ad7d 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -216,6 +216,8 @@ dtb-$(CONFIG_ARCH_MVEBU) += \ armada-xp-crs305-1g-4s-bit.dtb \ armada-xp-crs326-24g-2s.dtb \ armada-xp-crs326-24g-2s-bit.dtb \ + armada-xp-crs328-4c-20s-4s.dtb \ + armada-xp-crs328-4c-20s-4s-bit.dtb \ armada-xp-db-xc3-24g4xg.dtb \ armada-xp-gp.dtb \ armada-xp-maxbcm.dtb \ diff --git a/arch/arm/dts/armada-xp-crs328-4c-20s-4s-bit.dts b/arch/arm/dts/armada-xp-crs328-4c-20s-4s-bit.dts new file mode 100644 index 0000000000..d684c895ff --- /dev/null +++ b/arch/arm/dts/armada-xp-crs328-4c-20s-4s-bit.dts @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Device Tree file for MikroTik CRS328-4C-20S-4S+ Bit board + * + * Copyright (C) 2020 Sartura Ltd. + * Author: Luka Kovacic + */ + +#include "armada-xp-crs328-4c-20s-4s.dtsi" + +/ { + model = "MikroTik CRS328-4C-20S-4S+ Bit"; +}; + +&spi0 { + status = "okay"; + + spi-flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "spi-flash", "jedec,spi-nor"; + reg = <0>; /* Chip select 0 */ + spi-max-frequency = <108000000>; + m25p,fast-read; + + partition@u-boot { + reg = <0x00000000 0x001f0000>; + label = "u-boot"; + }; + partition@u-boot-env { + reg = <0x001f0000 0x00010000>; + label = "u-boot-env"; + }; + partition@ubi1 { + reg = <0x00200000 0x03f00000>; + label = "ubi1"; + }; + partition@ubi2 { + reg = <0x04100000 0x03f00000>; + label = "ubi2"; + }; + }; +}; diff --git a/arch/arm/dts/armada-xp-crs328-4c-20s-4s-u-boot.dtsi b/arch/arm/dts/armada-xp-crs328-4c-20s-4s-u-boot.dtsi new file mode 100644 index 0000000000..8576a02730 --- /dev/null +++ b/arch/arm/dts/armada-xp-crs328-4c-20s-4s-u-boot.dtsi @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) + +&uart0 { + u-boot,dm-pre-reloc; +}; + +&spi0 { + u-boot,dm-pre-reloc; + + spi-flash@0 { + u-boot,dm-pre-reloc; + }; +}; diff --git a/arch/arm/dts/armada-xp-crs328-4c-20s-4s.dts b/arch/arm/dts/armada-xp-crs328-4c-20s-4s.dts new file mode 100644 index 0000000000..665757f6e1 --- /dev/null +++ b/arch/arm/dts/armada-xp-crs328-4c-20s-4s.dts @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Device Tree file for MikroTik CRS328-4C-20S-4S+ board + * + * Copyright (C) 2020 Sartura Ltd. + * Author: Luka Kovacic + */ + +#include "armada-xp-crs328-4c-20s-4s.dtsi" + +/ { + model = "MikroTik CRS328-4C-20S-4S+"; +}; + +&spi0 { + status = "okay"; +}; diff --git a/arch/arm/dts/armada-xp-crs328-4c-20s-4s.dtsi b/arch/arm/dts/armada-xp-crs328-4c-20s-4s.dtsi new file mode 100644 index 0000000000..daff1af2a2 --- /dev/null +++ b/arch/arm/dts/armada-xp-crs328-4c-20s-4s.dtsi @@ -0,0 +1,110 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Device Tree file for CRS328-4C-20S-4S+ board + * + * Copyright (C) 2016 Allied Telesis Labs + * Copyright (C) 2020 Sartura Ltd. + * + * Based on armada-xp-db.dts + * + * Note: this Device Tree assumes that the bootloader has remapped the + * internal registers to 0xf1000000 (instead of the default + * 0xd0000000). The 0xf1000000 is the default used by the recent, + * DT-capable, U-Boot bootloaders provided by Marvell. Some earlier + * boards were delivered with an older version of the bootloader that + * left internal registers mapped at 0xd0000000. If you are in this + * situation, you should either update your bootloader (preferred + * solution) or the below Device Tree should be adjusted. + */ + +/dts-v1/; +#include "armada-xp-98dx3236.dtsi" +#include "armada-xp-crs328-4c-20s-4s-u-boot.dtsi" + +/ { + model = "CRS328-4C-20S-4S+"; + compatible = "marvell,armadaxp-98dx3236", "marvell,armadaxp-mv78260", "marvell,armadaxp", "marvell,armada-370-xp"; + + chosen { + stdout-path = "serial0:115200n8"; + bootargs = "console=ttyS0,115200 earlyprintk"; + }; + + aliases { + spi0 = &spi0; + }; + + memory { + device_type = "memory"; + reg = <0 0x00000000 0 0x20000000>; /* 512 MB */ + }; +}; + +&L2 { + arm,parity-enable; + marvell,ecc-enable; +}; + +&devbus_bootcs { + status = "okay"; + + /* Device Bus parameters are required */ + + /* Read parameters */ + devbus,bus-width = <16>; + devbus,turn-off-ps = <60000>; + devbus,badr-skew-ps = <0>; + devbus,acc-first-ps = <124000>; + devbus,acc-next-ps = <248000>; + devbus,rd-setup-ps = <0>; + devbus,rd-hold-ps = <0>; + + /* Write parameters */ + devbus,sync-enable = <0>; + devbus,wr-high-ps = <60000>; + devbus,wr-low-ps = <60000>; + devbus,ale-wr-ps = <60000>; +}; + +&uart0 { + status = "okay"; +}; + +&uart1 { + status = "okay"; +}; + +&i2c0 { + clock-frequency = <100000>; + status = "okay"; +}; + +&usb0 { + status = "okay"; +}; + +&spi0 { + status = "okay"; + + spi-flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "spi-flash", "jedec,spi-nor"; + reg = <0>; /* Chip select 0 */ + spi-max-frequency = <108000000>; + m25p,fast-read; + + partition@u-boot { + reg = <0x00000000 0x001f0000>; + label = "u-boot"; + }; + partition@u-boot-env { + reg = <0x001f0000 0x00010000>; + label = "u-boot-env"; + }; + partition@ubi1 { + reg = <0x00200000 0x00e00000>; + label = "ubi1"; + }; + }; +}; diff --git a/board/mikrotik/crs3xx-98dx3236/MAINTAINERS b/board/mikrotik/crs3xx-98dx3236/MAINTAINERS index 7f01f4318e..e6fbf3db1c 100644 --- a/board/mikrotik/crs3xx-98dx3236/MAINTAINERS +++ b/board/mikrotik/crs3xx-98dx3236/MAINTAINERS @@ -21,3 +21,12 @@ F: configs/crs326-24g-2s_defconfig F: configs/crs326-24g-2s-bit_defconfig F: arch/arm/dts/armada-xp-crs326-24g-2s.dts F: arch/arm/dts/armada-xp-crs326-24g-2s-bit.dts + +CRS328-4C-20S-4S BOARD +M: Luka Kovacic +M: Luka Perkov +S: Maintained +F: configs/crs328-4c-20s-4s_defconfig +F: configs/crs328-4c-20s-4s-bit_defconfig +F: arch/arm/dts/armada-xp-crs328-4c-20s-4s.dts +F: arch/arm/dts/armada-xp-crs328-4c-20s-4s-bit.dts diff --git a/configs/crs328-4c-20s-4s-bit_defconfig b/configs/crs328-4c-20s-4s-bit_defconfig new file mode 100644 index 0000000000..9b949e63da --- /dev/null +++ b/configs/crs328-4c-20s-4s-bit_defconfig @@ -0,0 +1,54 @@ +CONFIG_ARM=y +CONFIG_ARCH_CPU_INIT=y +CONFIG_ARCH_MVEBU=y +CONFIG_SYS_TEXT_BASE=0x00800000 +CONFIG_SYS_MALLOC_F_LEN=0x2000 +CONFIG_TARGET_CRS3XX_98DX3236=y +CONFIG_ENV_SIZE=0x10000 +CONFIG_ENV_SECT_SIZE=0x10000 +CONFIG_ENV_OFFSET=0x1F0000 +CONFIG_BOOTCOUNT_BOOTLIMIT=3 +# CONFIG_EFI_LOADER is not set +CONFIG_BUILD_TARGET="u-boot.kwb" +CONFIG_USE_PREBOOT=y +CONFIG_SYS_CONSOLE_INFO_QUIET=y +CONFIG_HUSH_PARSER=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_PROMPT="Autoboot in %d seconds, to stop use 's' key\n" +CONFIG_AUTOBOOT_STOP_STR="s" +CONFIG_AUTOBOOT_KEYED_CTRLC=y +CONFIG_CMD_BOOTZ=y +# CONFIG_CMD_FLASH is not set +# CONFIG_CMD_I2C is not set +CONFIG_CMD_SPI=y +CONFIG_CMD_CACHE=y +CONFIG_CMD_UBI=y +CONFIG_CMD_FS_GENERIC=y +CONFIG_CMD_MTD=y +CONFIG_CMD_MTDPARTS=y +CONFIG_DEFAULT_DEVICE_TREE="armada-xp-crs328-4c-20s-4s-bit" +CONFIG_ENV_IS_IN_SPI_FLASH=y +CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_BLK=y +CONFIG_BOOTCOUNT_LIMIT=y +CONFIG_BOOTCOUNT_ENV=y +# CONFIG_DM_I2C is not set +# CONFIG_SYS_I2C_MVTWSI is not set +# CONFIG_MMC is not set +CONFIG_MTD=y +CONFIG_MTD_PARTITIONS=y +CONFIG_DM_MTD=y +CONFIG_DM_SPI_FLASH=y +CONFIG_SPI_FLASH_MTD=y +CONFIG_SPI_FLASH_SFDP_SUPPORT=y +CONFIG_SPI_FLASH_BAR=y +CONFIG_SPI_FLASH_MACRONIX=y +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set +CONFIG_FIT=y +CONFIG_FIT_ENABLE_SHA256_SUPPORT=y +CONFIG_FIT_VERBOSE=y +CONFIG_FIT_BEST_MATCH=y +CONFIG_PCI=y +CONFIG_PCI_MVEBU=y +CONFIG_SYS_NS16550=y +CONFIG_KIRKWOOD_SPI=y diff --git a/configs/crs328-4c-20s-4s_defconfig b/configs/crs328-4c-20s-4s_defconfig new file mode 100644 index 0000000000..33eefbd475 --- /dev/null +++ b/configs/crs328-4c-20s-4s_defconfig @@ -0,0 +1,54 @@ +CONFIG_ARM=y +CONFIG_ARCH_CPU_INIT=y +CONFIG_ARCH_MVEBU=y +CONFIG_SYS_TEXT_BASE=0x00800000 +CONFIG_SYS_MALLOC_F_LEN=0x2000 +CONFIG_TARGET_CRS3XX_98DX3236=y +CONFIG_ENV_SIZE=0x10000 +CONFIG_ENV_SECT_SIZE=0x10000 +CONFIG_ENV_OFFSET=0x1F0000 +CONFIG_BOOTCOUNT_BOOTLIMIT=3 +# CONFIG_EFI_LOADER is not set +CONFIG_BUILD_TARGET="u-boot.kwb" +CONFIG_USE_PREBOOT=y +CONFIG_SYS_CONSOLE_INFO_QUIET=y +CONFIG_HUSH_PARSER=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_PROMPT="Autoboot in %d seconds, to stop use 's' key\n" +CONFIG_AUTOBOOT_STOP_STR="s" +CONFIG_AUTOBOOT_KEYED_CTRLC=y +CONFIG_CMD_BOOTZ=y +# CONFIG_CMD_FLASH is not set +# CONFIG_CMD_I2C is not set +CONFIG_CMD_SPI=y +CONFIG_CMD_CACHE=y +CONFIG_CMD_UBI=y +CONFIG_CMD_FS_GENERIC=y +CONFIG_CMD_MTD=y +CONFIG_CMD_MTDPARTS=y +CONFIG_DEFAULT_DEVICE_TREE="armada-xp-crs328-4c-20s-4s" +CONFIG_ENV_IS_IN_SPI_FLASH=y +CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_BLK=y +CONFIG_BOOTCOUNT_LIMIT=y +CONFIG_BOOTCOUNT_ENV=y +# CONFIG_DM_I2C is not set +# CONFIG_SYS_I2C_MVTWSI is not set +# CONFIG_MMC is not set +CONFIG_MTD=y +CONFIG_MTD_PARTITIONS=y +CONFIG_DM_MTD=y +CONFIG_DM_SPI_FLASH=y +CONFIG_SPI_FLASH_MTD=y +CONFIG_SPI_FLASH_SFDP_SUPPORT=y +CONFIG_SPI_FLASH_BAR=y +CONFIG_SPI_FLASH_WINBOND=y +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set +CONFIG_FIT=y +CONFIG_FIT_ENABLE_SHA256_SUPPORT=y +CONFIG_FIT_VERBOSE=y +CONFIG_FIT_BEST_MATCH=y +CONFIG_PCI=y +CONFIG_PCI_MVEBU=y +CONFIG_SYS_NS16550=y +CONFIG_KIRKWOOD_SPI=y