From patchwork Thu Nov 22 09:07:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Armstrong X-Patchwork-Id: 10693731 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 372D314DE for ; Thu, 22 Nov 2018 09:08:45 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 27AA12C0A2 for ; Thu, 22 Nov 2018 09:08:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 12EB62C0DA; Thu, 22 Nov 2018 09:08:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id E8F952C09D for ; Thu, 22 Nov 2018 09:08:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=xrx8m12QrwBPBqRM63haXQPm54fh579m7ZQbRORJ3nY=; b=V0FTz4TM6Z1Ljv 6uaAdc7cYGrhjipNcAJoKzv/zrNYFc8HNsvdU/hVn1eJpugLxyVt5o+wcN2N0/MONzpVwkLJRjSZv /uJp6GSq9Yav2z5eWj3YPni8p0WkVeu5Ogbp17QS1EfsXPmssVs4KN/frt3eUOXJihbJE7oSqOg8A kUyW182OLzyBRH+oA/daV987a+TSS/1rMwksN019valsSOIQra6tSRUrKzTfLqdPV/lgvShET4dZ8 9GR1PsXhLOIRxQRSkvjzEQkPZa3/fiqjy1kd014sU9cijW5cCEH+nQwONvkQVgECrP7gQf9METK+V 9QEEkyrjVoMpw/Bto0YQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gPkyY-0000U8-B9; Thu, 22 Nov 2018 09:08:42 +0000 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gPky5-00083M-E1 for linux-amlogic@lists.infradead.org; Thu, 22 Nov 2018 09:08:19 +0000 Received: by mail-wr1-x444.google.com with SMTP id t3so8442578wrr.3 for ; Thu, 22 Nov 2018 01:08:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KwPRgwxMZJY88rFctcyQHOEwZn2gwptO9RWkI25Mpps=; b=0jbKIqq7jHInu0uvG0FMSOnphD0KYSjmckOAOoL6HXFzgjKuNx6QO1xKywO5xkBe2I tj52FdLeFLw7iBtJfcffPAK+WwsYhR5hV9rA/4g0yhSlaC7UTOB24UNkBTtTAujQ1FGk sSB0cEUMVFaRcLw3Txwmvn9qQ3eCaYI8wBqE/xeudtZujv37HvsSpqOPXYeNcyX8rAmr sSLFYndXA8x7xR2Ic5EWrQsfpQ+jk2dyJ5gt4ToQBKM7JgKPjtinVg7hXBLqxbo/85dV ivqrL7jE29xrKXUAtoTsISKgWv7C1rlIUm0fj6fGU8082T3mcUQQiLe1PDTVXVARa7O3 lAzQ== 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=KwPRgwxMZJY88rFctcyQHOEwZn2gwptO9RWkI25Mpps=; b=SAbbm0IrOofoxEF2fo3Ji5AVJD9fJQfRYZAiuqfwo6N9fkQac6z13CnQpGZuAtPcHA ghHDuY++kROlQrIDUjo+70Oxc74/AgEjoOcOnilQjLKA4McgIFtIVZsQLa7aQXx2XJpc vG2Gx3wvMaapjObcSWB8jbTIwLhNt6y7LicPpLXoPyT1MbrNkDF49NHyayDF7vv5Hpme RikcJXqqjLO/JRWX3k7lP2gPMpj5N2XoNivyVPj+w9bJdfHCaKW7b1WSf1VHExfr85+u EfwoO5rpUbOoxcFUjBegfMuf0zZnf109tVHr2vyO3FVatP/9rMZfV+WVOxqXuXwyzmI9 qxXw== X-Gm-Message-State: AA+aEWYQZCvUw3rFrMpR2NNs64ZCoxs5clNqAdJgN7s/bysWR0Cnh3nB vPeNx3qXXsMOWVjhiXa+M3hlpw== X-Google-Smtp-Source: AFSGD/VWOcAybAepUpsLK132DTWXuyPMeSbOCMHgeT5XwHGGxf6dyKDFjCV2dsBDpiE5e1AU84giwg== X-Received: by 2002:adf:b201:: with SMTP id u1mr647527wra.165.1542877681787; Thu, 22 Nov 2018 01:08:01 -0800 (PST) Received: from bender.baylibre.local (lmontsouris-657-1-212-31.w90-63.abo.wanadoo.fr. [90.63.244.31]) by smtp.gmail.com with ESMTPSA id y9sm13856434wrq.55.2018.11.22.01.08.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 22 Nov 2018 01:08:01 -0800 (PST) From: Neil Armstrong To: u-boot@lists.denx.de Subject: [PATCH u-boot v2 17/19] board: amlogic: add support for S400 board Date: Thu, 22 Nov 2018 10:07:38 +0100 Message-Id: <20181122090740.29739-18-narmstrong@baylibre.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181122090740.29739-1-narmstrong@baylibre.com> References: <20181122090740.29739-1-narmstrong@baylibre.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181122_010813_881565_2EEE0661 X-CRM114-Status: GOOD ( 16.67 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-amlogic@lists.infradead.org, Jerome Brunet , trini@konsulko.com, Neil Armstrong Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+patchwork-linux-amlogic=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The S400 board is the Amlogic AXG SoC reference board including : - Amlogic A113DX ARM Cortex-A53 quad-core SoC @ 1.2GHz - 1GB DDR4 SDRAM - 10/100 Ethernet - 2 x USB 2.0 Host - eMMC - Infrared receiver - SDIO WiFi Module - MIPI DSI Connector - Audio HAT Connector - PCI-E M.2 Connectors Signed-off-by: Jerome Brunet Signed-off-by: Neil Armstrong --- arch/arm/mach-meson/Kconfig | 1 + board/amlogic/s400/MAINTAINERS | 6 ++ board/amlogic/s400/Makefile | 6 ++ board/amlogic/s400/README | 110 +++++++++++++++++++++++++++++++++ board/amlogic/s400/s400.c | 33 ++++++++++ configs/s400_defconfig | 38 ++++++++++++ 6 files changed, 194 insertions(+) create mode 100644 board/amlogic/s400/MAINTAINERS create mode 100644 board/amlogic/s400/Makefile create mode 100644 board/amlogic/s400/README create mode 100644 board/amlogic/s400/s400.c create mode 100644 configs/s400_defconfig diff --git a/arch/arm/mach-meson/Kconfig b/arch/arm/mach-meson/Kconfig index 7f217facd1..deddcc5ab0 100644 --- a/arch/arm/mach-meson/Kconfig +++ b/arch/arm/mach-meson/Kconfig @@ -63,6 +63,7 @@ config SYS_BOARD default "odroid-c2" if MESON_GXBB default "p212" if MESON_GXL default "q200" if MESON_GXM + default "s400" if MESON_AXG default "" help This option contains information about board name. diff --git a/board/amlogic/s400/MAINTAINERS b/board/amlogic/s400/MAINTAINERS new file mode 100644 index 0000000000..9ca9836016 --- /dev/null +++ b/board/amlogic/s400/MAINTAINERS @@ -0,0 +1,6 @@ +S400 +M: Neil Armstrong +S: Maintained +F: board/amlogic/s400/ +F: include/configs/s400.h +F: configs/s400_defconfig diff --git a/board/amlogic/s400/Makefile b/board/amlogic/s400/Makefile new file mode 100644 index 0000000000..bf03862b90 --- /dev/null +++ b/board/amlogic/s400/Makefile @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: GPL-2.0+ +# +# (C) Copyright 2016 BayLibre, SAS +# Author: Neil Armstrong + +obj-y := s400.o diff --git a/board/amlogic/s400/README b/board/amlogic/s400/README new file mode 100644 index 0000000000..ab21998dc8 --- /dev/null +++ b/board/amlogic/s400/README @@ -0,0 +1,110 @@ +U-Boot for Amlogic S400 +======================= + +S400 is a reference board manufactured by Amlogic with the following +specifications: + + - Amlogic A113DX ARM Cortex-A53 quad-core SoC @ 1.2GHz + - 1GB DDR4 SDRAM + - 10/100 Ethernet + - 2 x USB 2.0 Host + - eMMC + - Infrared receiver + - SDIO WiFi Module + - MIPI DSI Connector + - Audio HAT Connector + - PCI-E M.2 Connectors + +Schematics are available from Amlogic on demand. + +Currently the u-boot port supports the following devices: + - serial + - eMMC + - Ethernet + - I2C + - Regulators + - Reset controller + - Clock controller + - USB Host + - ADC + +u-boot compilation +================== + + > export ARCH=arm + > export CROSS_COMPILE=aarch64-none-elf- + > make s400_defconfig + > make + +Image creation +============== + +Amlogic doesn't provide sources for the firmware and for tools needed +to create the bootloader image, so it is necessary to obtain them from +the git tree published by the board vendor: + + > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz + > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz + > tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz + > tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz + > export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH + > git clone https://github.com/BayLibre/u-boot.git -b n-amlogic-openlinux-20170606 amlogic-u-boot + > cd amlogic-u-boot + > make axg_s400_v1_defconfig + > make + > export FIPDIR=$PWD/fip + +Go back to mainline U-boot source tree then : + > mkdir fip + + > cp $FIPDIR/axg/bl2.bin fip/ + > cp $FIPDIR/axg/acs.bin fip/ + > cp $FIPDIR/axg/bl21.bin fip/ + > cp $FIPDIR/axg/bl30.bin fip/ + > cp $FIPDIR/axg/bl301.bin fip/ + > cp $FIPDIR/axg/bl31.img fip/ + > cp u-boot.bin fip/bl33.bin + + > $FIPDIR/blx_fix.sh \ + fip/bl30.bin \ + fip/zero_tmp \ + fip/bl30_zero.bin \ + fip/bl301.bin \ + fip/bl301_zero.bin \ + fip/bl30_new.bin \ + bl30 + + > $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0 + + > $FIPDIR/blx_fix.sh \ + fip/bl2_acs.bin \ + fip/zero_tmp \ + fip/bl2_zero.bin \ + fip/bl21.bin \ + fip/bl21_zero.bin \ + fip/bl2_new.bin \ + bl2 + + > $FIPDIR/axg/aml_encrypt_axg --bl3sig --input fip/bl30_new.bin \ + --output fip/bl30_new.bin.enc \ + --level v3 --type bl30 + > $FIPDIR/axg/aml_encrypt_axg --bl3sig --input fip/bl31.img \ + --output fip/bl31.img.enc \ + --level v3 --type bl31 + > $FIPDIR/axg/aml_encrypt_axg --bl3sig --input fip/bl33.bin --compress lz4 \ + --output fip/bl33.bin.enc \ + --level v3 --type bl33 + > $FIPDIR/axg/aml_encrypt_axg --bl2sig --input fip/bl2_new.bin \ + --output fip/bl2.n.bin.sig + > $FIPDIR/axg/aml_encrypt_axg --bootmk \ + --output fip/u-boot.bin \ + --bl2 fip/bl2.n.bin.sig \ + --bl30 fip/bl30_new.bin.enc \ + --bl31 fip/bl31.img.enc \ + --bl33 fip/bl33.bin.enc --level v3 + +and then write the image to SD with: + + > DEV=/dev/your_sd_device + > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1 + > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444 diff --git a/board/amlogic/s400/s400.c b/board/amlogic/s400/s400.c new file mode 100644 index 0000000000..c2b50f6c17 --- /dev/null +++ b/board/amlogic/s400/s400.c @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2016 BayLibre, SAS + * Author: Neil Armstrong + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +int board_init(void) +{ + return 0; +} + +int misc_init_r(void) +{ + meson_eth_init(PHY_INTERFACE_MODE_RGMII, 0); + + return 0; +} + +int ft_board_setup(void *blob, bd_t *bd) +{ + meson_init_reserved_memory(blob); + + return 0; +} diff --git a/configs/s400_defconfig b/configs/s400_defconfig new file mode 100644 index 0000000000..1bd4b7127b --- /dev/null +++ b/configs/s400_defconfig @@ -0,0 +1,38 @@ +CONFIG_ARM=y +CONFIG_ARCH_MESON=y +CONFIG_SYS_TEXT_BASE=0x01000000 +CONFIG_MESON_AXG=y +CONFIG_DEBUG_UART_BASE=0xff803000 +CONFIG_DEBUG_UART_CLOCK=24000000 +CONFIG_IDENT_STRING=" s400" +CONFIG_DEBUG_UART=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_OF_BOARD_SETUP=y +CONFIG_MISC_INIT_R=y +# CONFIG_DISPLAY_CPUINFO is not set +# CONFIG_DISPLAY_BOARDINFO is not set +# CONFIG_CMD_BDI is not set +# CONFIG_CMD_IMI is not set +CONFIG_CMD_GPIO=y +# CONFIG_CMD_LOADS is not set +CONFIG_CMD_MMC=y +# CONFIG_CMD_SETEXPR is not set +CONFIG_CMD_REGULATOR=y +CONFIG_OF_CONTROL=y +CONFIG_DEFAULT_DEVICE_TREE="meson-axg-s400" +CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_DM_GPIO=y +CONFIG_DM_MMC=y +CONFIG_MMC_MESON_GX=y +CONFIG_DM_ETH=y +CONFIG_ETH_DESIGNWARE=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_MESON_AXG=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_RESET=y +CONFIG_DEBUG_UART_MESON=y +CONFIG_DEBUG_UART_ANNOUNCE=y +CONFIG_DEBUG_UART_SKIP_INIT=y +CONFIG_MESON_SERIAL=y +CONFIG_OF_LIBFDT_OVERLAY=y