From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8D6C5CF887E for ; Sat, 5 Oct 2024 14:28:27 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B02FE88A1B; Sat, 5 Oct 2024 16:28:25 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org 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=linaro.org header.i=@linaro.org header.b="JLDLL61u"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2245D88A1B; Sat, 5 Oct 2024 16:28:25 +0200 (CEST) Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com [IPv6:2a00:1450:4864:20::633]) (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 7809288A0E for ; Sat, 5 Oct 2024 16:28:22 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ilias.apalodimas@linaro.org Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-a8d51a7d6f5so455537266b.2 for ; Sat, 05 Oct 2024 07:28:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1728138502; x=1728743302; darn=lists.denx.de; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=UJqx36LTRFanznV9SQT/K9dn0QODsB2BTgV3CsGwE/o=; b=JLDLL61uap0zMjea/S4X3n188AqfDalA+u6AJeY0PbRJv1a1ItDu2hUNuIzrMsi2Zi kV+1bGFH4LyLrz+NpazmXrPE3UlHUgBl4K0wjwPfigAj0OyBPWjSWNSCf+OiMcGHA5RN V6Lliv9PzdMXQq0Hx/e84T8/j0r183qADPePAzG1elf/QiB/fWo/RvDEEtMky/SvmS85 Jr3zcWAq33iB9v4k6vYBfXmv3m8Y66pOg/MNkMQpPcK/XDUVhGgXBiUvpLjcqeGrPIAi QlaLkqtwowFhBwvuK1z2D4v9nRFFHXjCYbVVyO5qzwg5eecUinChoscTzKC+HEP5qJt/ SKfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728138502; x=1728743302; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=UJqx36LTRFanznV9SQT/K9dn0QODsB2BTgV3CsGwE/o=; b=uiOjfTrhmX8VgEBdtdx+31USPCdrqybaXDDxIDM3ATWhP0tUhl8woCO04Rrj4kjwmT 4aQ8BTRMLjHZwARdJoh8vboOR8hfjP5tFZE5FTq8KEK3FzN/Ej9h1zokAQEVozHRGOfp NgKgVy0j036s4xaatBbbRQ/RZ435VDGN8mJ6f4LAodIPRXdAdH3V3icFUglrEekfPMjM 4/Ff5O2XTcRsT4No2HPtGxo/JI19tU0QjdKAkZmQWQF4HKyohg7HQ0F3H48UEfr6fRwg MUzeVNNDBsmTI7O1LnNsIlKdxsn3aO6GVC+/IiZ+DXGcMQZxEPcibeos7OhaHQ1ISatR Ts/Q== X-Forwarded-Encrypted: i=1; AJvYcCV8Rcg0NFGeeNq/VW7GwIUOC0fG0ONoRv7ntqptkvJf6v6YKQ9ecsMrcnUb20Tsp8LWnSxDRf4=@lists.denx.de X-Gm-Message-State: AOJu0YybbdpnuIuzpPnakmL+XlnwUrsghzaxsxsLkgmKgIxlP+gSPGOP +Ir4XOu7R2cYfyXk1yr940HXNLCX2XzcT+1omO/mLN/uVVFgadx5waqCQeJUTE0= X-Google-Smtp-Source: AGHT+IGtdPGumZIjsATBJ/K9jNG8jxQtANIre/eZcJRIYN2sBEEVds3uJqRS5MhYbQ9fzrg3pd3hRQ== X-Received: by 2002:a17:907:d1a:b0:a99:3c13:9131 with SMTP id a640c23a62f3a-a993c1391eamr206895166b.25.1728138500302; Sat, 05 Oct 2024 07:28:20 -0700 (PDT) Received: from hera (ppp176092143132.access.hol.gr. [176.92.143.132]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a992e7d65acsm137178466b.184.2024.10.05.07.28.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Oct 2024 07:28:19 -0700 (PDT) Date: Sat, 5 Oct 2024 17:28:16 +0300 From: Ilias Apalodimas To: Neil Armstrong Cc: Tom Rini , u-boot-amlogic@groups.io, u-boot@lists.denx.de, da@libre.computer Subject: Re: [PATCH 1/2] ARM: meson: add support for Libre Computer aml-a311d-cc Message-ID: References: <20240920-u-boot-topic-libre-computer-solitude-alta-v1-0-8915b108840b@linaro.org> <20240920-u-boot-topic-libre-computer-solitude-alta-v1-1-8915b108840b@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240920-u-boot-topic-libre-computer-solitude-alta-v1-1-8915b108840b@linaro.org> X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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.103.8 at phobos.denx.de X-Virus-Status: Clean Thanks Neil, On Fri, Sep 20, 2024 at 03:33:33PM +0200, Neil Armstrong wrote: > Add support for the Libre Computer aml-a311d-cc "Alta" board: > https://libre.computer/products/aml-a311d-cc/ > > The Alta board has a Credit Card form factor, similar to the > the prvevious "Le Potato" card, but with the Amlogic A311D SoC, > MIPI DSI and CSI connectors. PoE header and a single USB2 Type-C > connector replacing the microUSB one for power and USB 2.0. > > The board has an embedded SPI NOR flash, and EFI Capsule support > is added. > > The GUID is dynamically generated for the board, to get it: > => efidebug capsule esrt > ======================================== > ESRT: fw_resource_count=1 > ESRT: fw_resource_count_max=1 > ESRT: fw_resource_version=1 > [entry 0]============================== > ESRT: fw_class=17E07D9D-4D91-53F4-8780-1D91F279C1A5 > ESRT: fw_type=unknown > ESRT: fw_version=0 > ESRT: lowest_supported_fw_version=0 > ESRT: capsule_flags=0 > ESRT: last_attempt_version=0 > ESRT: last_attempt_status=success > ======================================== > > On the host (with the aml_encrypt_g12a result binary): > $ eficapsule --guid 17E07D9D-4D91-53F4-8780-1D91F279C1A5 -i 1 u-boot.bin u-boot.cap > > On the board (from USB disk containing u-boot.cap at root): > => load usb 0:1 $kernel_addr_r u-boot.cap > => efidebug capsule update $kernel_addr_r > > The binary will then be flashed on the SPI. > > Signed-off-by: Neil Armstrong > --- > .../dts/meson-g12b-a311d-libretech-cc-u-boot.dtsi | 15 +++ > board/libre-computer/aml-a311d-cc/MAINTAINERS | 7 ++ > board/libre-computer/aml-a311d-cc/Makefile | 6 ++ > board/libre-computer/aml-a311d-cc/aml-a311d-cc.c | 44 +++++++++ > configs/aml-a311d-cc_defconfig | 108 +++++++++++++++++++++ > doc/board/amlogic/aml-a311d-cc.rst | 46 +++++++++ > doc/board/amlogic/index.rst | 1 + > 7 files changed, 227 insertions(+) > > diff --git a/arch/arm/dts/meson-g12b-a311d-libretech-cc-u-boot.dtsi b/arch/arm/dts/meson-g12b-a311d-libretech-cc-u-boot.dtsi > new file mode 100644 > index 00000000000..cbada739042 > --- /dev/null > +++ b/arch/arm/dts/meson-g12b-a311d-libretech-cc-u-boot.dtsi > @@ -0,0 +1,15 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2023 Neil Armstrong > + */ > + > +#include "meson-g12-common-u-boot.dtsi" > + > +&sd_emmc_c { > + pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_4b_pins>; > + bus-width = <4>; > +}; > + > +&spifc { > + status = "okay"; > +}; > diff --git a/board/libre-computer/aml-a311d-cc/MAINTAINERS b/board/libre-computer/aml-a311d-cc/MAINTAINERS > new file mode 100644 > index 00000000000..b4b77acd23b > --- /dev/null > +++ b/board/libre-computer/aml-a311d-cc/MAINTAINERS > @@ -0,0 +1,7 @@ > +LIBRE-COMPUTER AML-A311D-CC > +M: Neil Armstrong > +S: Maintained > +L: u-boot-amlogic@groups.io > +F: board/amlogic/aml-a311d-cc/ > +F: configs/aml-a311d-cc_defconfig > +F: doc/board/amlogic/aml-a311d-cc.rst > diff --git a/board/libre-computer/aml-a311d-cc/Makefile b/board/libre-computer/aml-a311d-cc/Makefile > new file mode 100644 > index 00000000000..461955def3a > --- /dev/null > +++ b/board/libre-computer/aml-a311d-cc/Makefile > @@ -0,0 +1,6 @@ > +# SPDX-License-Identifier: GPL-2.0+ > +# > +# (C) Copyright 2016 BayLibre, SAS > +# Author: Neil Armstrong > + > +obj-y := aml-a311d-cc.o > diff --git a/board/libre-computer/aml-a311d-cc/aml-a311d-cc.c b/board/libre-computer/aml-a311d-cc/aml-a311d-cc.c > new file mode 100644 > index 00000000000..e45cfd5d8a3 > --- /dev/null > +++ b/board/libre-computer/aml-a311d-cc/aml-a311d-cc.c > @@ -0,0 +1,44 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Copyright (C) 2016 BayLibre, SAS > + * Author: Neil Armstrong > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +struct efi_fw_image fw_images[] = { > + { > + .fw_name = u"AML_A311D_CC_BOOT", > + .image_index = 1, > + }, > +}; > + > +struct efi_capsule_update_info update_info = { > + .dfu_string = "sf 0:0=u-boot-bin raw 0 0x10000", > + .num_images = ARRAY_SIZE(fw_images), > + .images = fw_images, > +}; > + > + > +#if IS_ENABLED(CONFIG_SET_DFU_ALT_INFO) > +void set_dfu_alt_info(char *interface, char *devstr) > +{ > + if (strcmp(interface, "ram") == 0) > + env_set("dfu_alt_info", "fitimage ram 0x08080000 0x4000000"); > + else if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT)) > + env_set("dfu_alt_info", update_info.dfu_string); > +} > +#endif > + > +int misc_init_r(void) > +{ > + meson_generate_serial_ethaddr(); > + > + return 0; > +} > diff --git a/configs/aml-a311d-cc_defconfig b/configs/aml-a311d-cc_defconfig > new file mode 100644 > index 00000000000..c8e22200419 > --- /dev/null > +++ b/configs/aml-a311d-cc_defconfig > @@ -0,0 +1,108 @@ > +CONFIG_ARM=y > +CONFIG_SYS_VENDOR="libre-computer" > +CONFIG_SYS_BOARD="aml-a311d-cc" > +CONFIG_ARCH_MESON=y > +CONFIG_TEXT_BASE=0x01000000 > +CONFIG_NR_DRAM_BANKS=1 > +CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y > +CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x20000000 > +CONFIG_ENV_SIZE=0x2000 > +CONFIG_ENV_OFFSET=0xFFFF0000 > +CONFIG_ENV_SECT_SIZE=0x10000 > +CONFIG_DM_GPIO=y > +CONFIG_DEFAULT_DEVICE_TREE="amlogic/meson-g12b-a311d-libretech-cc" > +CONFIG_OF_LIBFDT_OVERLAY=y > +CONFIG_DM_RESET=y > +CONFIG_MESON_G12A=y > +CONFIG_DEBUG_UART_BASE=0xff803000 > +CONFIG_DEBUG_UART_CLOCK=24000000 > +CONFIG_IDENT_STRING="aml-a311d-cc" > +CONFIG_SYS_LOAD_ADDR=0x1000000 > +CONFIG_DEBUG_UART=y > +CONFIG_REMAKE_ELF=y > +CONFIG_FIT=y > +CONFIG_FIT_SIGNATURE=y > +CONFIG_FIT_VERBOSE=y > +CONFIG_LEGACY_IMAGE_FORMAT=y > +CONFIG_OF_BOARD_SETUP=y > +# CONFIG_DISPLAY_CPUINFO is not set > +CONFIG_MISC_INIT_R=y > +CONFIG_SYS_MAXARGS=32 > +# CONFIG_CMD_BDI is not set > +# CONFIG_CMD_IMI is not set > +CONFIG_CMD_DFU=y > +CONFIG_CMD_NVEDIT_EFI=y > +CONFIG_CMD_GPIO=y > +# CONFIG_CMD_LOADS is not set > +CONFIG_CMD_MMC=y > +CONFIG_CMD_SF_TEST=y > +CONFIG_CMD_SPI=y > +CONFIG_CMD_USB=y > +CONFIG_CMD_USB_MASS_STORAGE=y > +CONFIG_CMD_EFIDEBUG=y > +# CONFIG_CMD_SETEXPR is not set > +CONFIG_CMD_REGULATOR=y > +CONFIG_OF_CONTROL=y > +CONFIG_ENV_IS_IN_SPI_FLASH=y > +CONFIG_SYS_RELOC_GD_ENV_ADDR=y > +CONFIG_ADC=y > +CONFIG_SARADC_MESON=y > +CONFIG_BUTTON=y > +CONFIG_BUTTON_ADC=y > +CONFIG_DFU_RAM=y > +CONFIG_DFU_SF=y > +CONFIG_SET_DFU_ALT_INFO=y > +CONFIG_MMC_MESON_GX=y > +CONFIG_MTD=y > +CONFIG_DM_MTD=y > +CONFIG_DM_SPI_FLASH=y > +CONFIG_SPI_FLASH_GIGADEVICE=y > +CONFIG_SPI_FLASH_SPANSION=y > +CONFIG_PHY_REALTEK=y > +CONFIG_DM_MDIO=y > +CONFIG_DM_MDIO_MUX=y > +CONFIG_ETH_DESIGNWARE_MESON8B=y > +CONFIG_MDIO_MUX_MESON_G12A=y > +CONFIG_MESON_G12A_USB_PHY=y > +CONFIG_PINCTRL=y > +CONFIG_PINCTRL_MESON_G12A=y > +CONFIG_POWER_DOMAIN=y > +CONFIG_MESON_EE_POWER_DOMAIN=y > +CONFIG_DM_REGULATOR=y > +CONFIG_DM_REGULATOR_FIXED=y > +CONFIG_DEBUG_UART_ANNOUNCE=y > +CONFIG_DEBUG_UART_SKIP_INIT=y > +CONFIG_MESON_SERIAL=y > +CONFIG_SPI=y > +CONFIG_DM_SPI=y > +CONFIG_MESON_SPIFC=y > +CONFIG_SYSINFO=y > +CONFIG_SYSINFO_SMBIOS=y > +CONFIG_USB=y > +CONFIG_DM_USB_GADGET=y > +CONFIG_USB_XHCI_HCD=y > +CONFIG_USB_XHCI_DWC3=y > +CONFIG_USB_DWC3=y > +# CONFIG_USB_DWC3_GADGET is not set > +CONFIG_USB_DWC3_MESON_G12A=y > +CONFIG_USB_KEYBOARD=y > +CONFIG_USB_GADGET=y > +CONFIG_USB_GADGET_VENDOR_NUM=0x1b8e > +CONFIG_USB_GADGET_PRODUCT_NUM=0xfada > +CONFIG_USB_GADGET_DWC2_OTG=y > +CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y > +CONFIG_USB_GADGET_DOWNLOAD=y > +CONFIG_VIDEO=y > +# CONFIG_VIDEO_BPP8 is not set > +# CONFIG_VIDEO_BPP16 is not set > +CONFIG_SYS_WHITE_ON_BLACK=y > +CONFIG_VIDEO_MESON=y > +CONFIG_VIDEO_DT_SIMPLEFB=y > +CONFIG_SPLASH_SCREEN=y > +CONFIG_SPLASH_SCREEN_ALIGN=y > +CONFIG_VIDEO_BMP_RLE8=y > +CONFIG_BMP_16BPP=y > +CONFIG_BMP_24BPP=y > +CONFIG_BMP_32BPP=y > +CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y > +CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y > diff --git a/doc/board/amlogic/aml-a311d-cc.rst b/doc/board/amlogic/aml-a311d-cc.rst > new file mode 100644 > index 00000000000..25c1e01906a > --- /dev/null > +++ b/doc/board/amlogic/aml-a311d-cc.rst > @@ -0,0 +1,46 @@ > +.. SPDX-License-Identifier: GPL-2.0+ > + > +U-Boot for Libre Computer AML-A311D-CC 'Alta' (A311D) > +===================================================== > + > +AML-A311D-CC is a Single Board Computer manufactured by Libre Computer Technology with > +the following specifications: > + > + - Amlogic A311D Arm Cortex-A53 dual-core + Cortex-A73 quad-core SoC > + - 2 or 4GB LPDDR4 SDRAM > + - Gigabit Ethernet > + - HDMI 2.1 display > + - 40-pin GPIO header > + - 4 x USB 3.0 Host, 1 x USB 2.0 Type-C > + - eMMC 5.x SM Interface for Libre Computer Modules > + - microSD > + - Infrared receiver > + > +Schematics are available on the manufacturer website. > + > +U-Boot Compilation > +------------------ > + > +.. code-block:: bash > + > + $ export CROSS_COMPILE=aarch64-none-elf- > + $ make aml-a311d-cc_defconfig > + $ make > + > +U-Boot Signing with Pre-Built FIP repo > +-------------------------------------- > + > +.. code-block:: bash > + > + $ git clone https://github.com/LibreELEC/amlogic-boot-fip --depth=1 > + $ cd amlogic-boot-fip > + $ mkdir my-output-dir > + $ ./build-fip.sh aml-a311d-cc /path/to/u-boot/u-boot.bin my-output-dir > + > +Then write U-Boot to SD or eMMC with: > + > +.. code-block:: bash > + > + $ DEV=/dev/boot_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=440 > diff --git a/doc/board/amlogic/index.rst b/doc/board/amlogic/index.rst > index 46f44bf34ec..de91b21f977 100644 > --- a/doc/board/amlogic/index.rst > +++ b/doc/board/amlogic/index.rst > @@ -85,6 +85,7 @@ Board Documentation > .. toctree:: > :maxdepth: 1 > > + aml-a311d-cc > bananapi-cm4io > bananapi-m2pro > bananapi-m2s > > -- > 2.34.1 > Board boots fine, I haven't tested everything though Tested-by: Ilias Apalodimas