[U-Boot] [PATCH 6/8] boards: amlogic: add SEI610 support

Neil Armstrong narmstrong at baylibre.com
Fri Oct 18 08:32:18 UTC 2019


On 11/10/2019 17:33, Neil Armstrong wrote:
> Add support for the customer board SEI610 manufactured by SEI Robotics
> with the following specifications:
>  - Amlogic S905X3 ARM Cortex-A35 quad-core SoC

--------------------------------/\

Cortex-A55, will fix while applying

>  - 2GB DDR4 SDRAM
>  - 10/100 Ethernet (Internal PHY)
>  - 1 x USB 3.0 Host
>  - 1 x USB Type-C DRD
>  - 1 x FTDI USB Serial Debug Interface
>  - eMMC
>  - SDcard
>  - Infrared receiver
>  - SDIO WiFi Module
> 
> Like it's SEI510 counterpart, the boot flow is designed to boot
> Android AOSP built for the Yukawa Android device.
> 
> Signed-off-by: Neil Armstrong <narmstrong at baylibre.com>
> ---
>  board/amlogic/sei610/MAINTAINERS |   6 ++
>  board/amlogic/sei610/Makefile    |   6 ++
>  board/amlogic/sei610/README      | 119 +++++++++++++++++++++++++++++++
>  board/amlogic/sei610/sei610.c    |  26 +++++++
>  configs/sei610_defconfig         |  76 ++++++++++++++++++++
>  5 files changed, 233 insertions(+)
>  create mode 100644 board/amlogic/sei610/MAINTAINERS
>  create mode 100644 board/amlogic/sei610/Makefile
>  create mode 100644 board/amlogic/sei610/README
>  create mode 100644 board/amlogic/sei610/sei610.c
>  create mode 100644 configs/sei610_defconfig
> 
> diff --git a/board/amlogic/sei610/MAINTAINERS b/board/amlogic/sei610/MAINTAINERS
> new file mode 100644
> index 0000000000..20f12334e9
> --- /dev/null
> +++ b/board/amlogic/sei610/MAINTAINERS
> @@ -0,0 +1,6 @@
> +SEI610
> +M:	Neil Armstrong <narmstrong at baylibre.com>
> +S:	Maintained
> +L:	u-boot-amlogic at groups.io
> +F:	board/amlogic/sei610/
> +F:	configs/sei610_defconfig
> diff --git a/board/amlogic/sei610/Makefile b/board/amlogic/sei610/Makefile
> new file mode 100644
> index 0000000000..428792afea
> --- /dev/null
> +++ b/board/amlogic/sei610/Makefile
> @@ -0,0 +1,6 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +# (C) Copyright 2016 BayLibre, SAS
> +# Author: Neil Armstrong <narmstrong at baylibre.com>
> +
> +obj-y	:= sei610.o
> diff --git a/board/amlogic/sei610/README b/board/amlogic/sei610/README
> new file mode 100644
> index 0000000000..836809ccdb
> --- /dev/null
> +++ b/board/amlogic/sei610/README
> @@ -0,0 +1,119 @@
> +U-Boot for Amlogic SEI610
> +=======================
> +
> +SEI610 is a customer board manufactured by SEI Robotics with the following
> +specifications:
> +
> + - Amlogic S905X3 ARM Cortex-A35 quad-core SoC

--------------------------------/\

Cortex-A55, will fix while applying

> + - 2GB DDR4 SDRAM
> + - 10/100 Ethernet (Internal PHY)
> + - 1 x USB 3.0 Host
> + - 1 x USB Type-C DRD
> + - 1 x FTDI USB Serial Debug Interface
> + - eMMC
> + - SDcard
> + - Infrared receiver
> + - SDIO WiFi Module
> +
> +u-boot compilation
> +==================
> +
> + > export ARCH=arm
> + > export CROSS_COMPILE=aarch64-none-elf-
> + > make sei610_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 buildroot-openlinux-4.9-g12a-201904 amlogic-u-boot
> + > cd amlogic-u-boot
> + > make sm1_ac200_v1_defconfig
> + > make
> + > export UBOOTDIR=$PWD
> +
> +Download the latest Amlogic Buildroot package, and extract it :
> + > wget http://openlinux2.amlogic.com:8000/ARM/filesystem/buildroot-openlinux-A113-201901.tgz
> + > tar xfz buildroot-openlinux-A113-201901.tgz buildroot-openlinux-A113-201901/bootloader
> + > export BRDIR=$PWD/buildroot-openlinux-A113-201901
> + > export FIPDIR=$BRDIR/bootloader/uboot-repo/fip
> +
> +Go back to mainline U-Boot source tree then :
> + > mkdir fip
> +
> + > wget https://github.com/BayLibre/u-boot/releases/download/v2017.11-libretech-cc/blx_fix_g12a.sh -O fip/blx_fix.sh
> + > cp $UBOOTDIR/build/scp_task/bl301.bin fip/
> + > cp $UBOOTDIR/build/board/amlogic/g12a_u200_v1/firmware/acs.bin fip/
> + > cp $BRDIR/bootloader/uboot-repo/bl2/bin/g12a/bl2.bin fip/
> + > cp $BRDIR/bootloader/uboot-repo/bl30/bin/g12a/bl30.bin fip/
> + > cp $BRDIR/bootloader/uboot-repo/bl31_1.3/bin/g12a/bl31.img fip/
> + > cp $FIPDIR/g12a/ddr3_1d.fw fip/
> + > cp $FIPDIR/g12a/ddr4_1d.fw fip/
> + > cp $FIPDIR/g12a/ddr4_2d.fw fip/
> + > cp $FIPDIR/g12a/diag_lpddr4.fw fip/
> + > cp $FIPDIR/g12a/lpddr4_1d.fw fip/
> + > cp $FIPDIR/g12a/lpddr4_2d.fw fip/
> + > cp $FIPDIR/g12a/piei.fw fip/
> + > cp u-boot.bin fip/bl33.bin
> +
> + > sh fip/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
> +
> + > sh fip/blx_fix.sh \
> +	fip/bl2.bin \
> +	fip/zero_tmp \
> +	fip/bl2_zero.bin \
> +	fip/acs.bin \
> +	fip/bl21_zero.bin \
> +	fip/bl2_new.bin \
> +	bl2
> +
> + > $FIPDIR/g12a/aml_encrypt_g12a --bl30sig --input fip/bl30_new.bin \
> +					--output fip/bl30_new.bin.g12a.enc \
> +					--level v3
> + > $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl30_new.bin.g12a.enc \
> +					--output fip/bl30_new.bin.enc \
> +					--level v3 --type bl30
> + > $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl31.img \
> +					--output fip/bl31.img.enc \
> +					--level v3 --type bl31
> + > $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl33.bin --compress lz4 \
> +					--output fip/bl33.bin.enc \
> +					--level v3 --type bl33
> + > $FIPDIR/g12a/aml_encrypt_g12a --bl2sig --input fip/bl2_new.bin \
> +					--output fip/bl2.n.bin.sig
> + > $FIPDIR/g12a/aml_encrypt_g12a --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 \
> +		--ddrfw1 fip/ddr4_1d.fw \
> +		--ddrfw2 fip/ddr4_2d.fw \
> +		--ddrfw3 fip/ddr3_1d.fw \
> +		--ddrfw4 fip/piei.fw \
> +		--ddrfw5 fip/lpddr4_1d.fw \
> +		--ddrfw6 fip/lpddr4_2d.fw \
> +		--ddrfw7 fip/diag_lpddr4.fw \
> +		--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/sei610/sei610.c b/board/amlogic/sei610/sei610.c
> new file mode 100644
> index 0000000000..b17eb9ef55
> --- /dev/null
> +++ b/board/amlogic/sei610/sei610.c
> @@ -0,0 +1,26 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2016 BayLibre, SAS
> + * Author: Neil Armstrong <narmstrong at baylibre.com>
> + */
> +
> +#include <common.h>
> +#include <dm.h>
> +#include <env_internal.h>
> +#include <asm/io.h>
> +#include <asm/arch/axg.h>
> +#include <asm/arch/sm.h>
> +#include <asm/arch/eth.h>
> +#include <asm/arch/mem.h>
> +
> +int misc_init_r(void)
> +{
> +	meson_eth_init(PHY_INTERFACE_MODE_RMII,
> +		       MESON_USE_INTERNAL_RMII_PHY);
> +
> +	meson_generate_serial_ethaddr();
> +
> +	env_set("serial#", "AMLG12ASEI610");
> +
> +	return 0;
> +}
> diff --git a/configs/sei610_defconfig b/configs/sei610_defconfig
> new file mode 100644
> index 0000000000..89e7bd7bab
> --- /dev/null
> +++ b/configs/sei610_defconfig
> @@ -0,0 +1,76 @@
> +CONFIG_ARM=y
> +CONFIG_SYS_BOARD="sei610"
> +CONFIG_SYS_CONFIG_NAME="sei510"
> +CONFIG_ARCH_MESON=y
> +CONFIG_SYS_TEXT_BASE=0x01000000
> +CONFIG_MESON_G12A=y
> +CONFIG_NR_DRAM_BANKS=1
> +CONFIG_DEBUG_UART_BASE=0xff803000
> +CONFIG_DEBUG_UART_CLOCK=24000000
> +CONFIG_IDENT_STRING=" sei610"
> +# CONFIG_PSCI_RESET is not set
> +CONFIG_DEBUG_UART=y
> +CONFIG_OF_BOARD_SETUP=y
> +CONFIG_USE_PREBOOT=y
> +CONFIG_PREBOOT="run load_logo"
> +# CONFIG_CONSOLE_MUX is not set
> +CONFIG_MISC_INIT_R=y
> +# CONFIG_DISPLAY_CPUINFO is not set
> +# CONFIG_CMD_BDI is not set
> +# CONFIG_CMD_IMI is not set
> +CONFIG_CMD_GPIO=y
> +CONFIG_CMD_GPT=y
> +# CONFIG_CMD_LOADS is not set
> +CONFIG_CMD_MMC=y
> +CONFIG_CMD_USB=y
> +CONFIG_CMD_USB_MASS_STORAGE=y
> +# CONFIG_CMD_SETEXPR is not set
> +CONFIG_CMD_BMP=y
> +CONFIG_CMD_REGULATOR=y
> +CONFIG_OF_CONTROL=y
> +CONFIG_DEFAULT_DEVICE_TREE="meson-sm1-sei610"
> +CONFIG_ENV_IS_IN_MMC=y
> +CONFIG_NET_RANDOM_ETHADDR=y
> +CONFIG_USB_FUNCTION_FASTBOOT=y
> +CONFIG_FASTBOOT_BUF_ADDR=0x6000000
> +CONFIG_FASTBOOT_FLASH=y
> +CONFIG_FASTBOOT_FLASH_MMC_DEV=2
> +CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
> +CONFIG_DM_GPIO=y
> +# CONFIG_INPUT is not set
> +CONFIG_PWRSEQ=y
> +CONFIG_DM_MMC=y
> +CONFIG_MMC_MESON_GX=y
> +CONFIG_PHY_ADDR_ENABLE=y
> +CONFIG_PHY_ADDR=8
> +CONFIG_DM_ETH=y
> +CONFIG_ETH_DESIGNWARE=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_DM_RESET=y
> +CONFIG_DEBUG_UART_MESON=y
> +CONFIG_DEBUG_UART_ANNOUNCE=y
> +CONFIG_DEBUG_UART_SKIP_INIT=y
> +CONFIG_MESON_SERIAL=y
> +CONFIG_USB=y
> +CONFIG_DM_USB=y
> +CONFIG_USB_XHCI_HCD=y
> +CONFIG_USB_XHCI_DWC3=y
> +CONFIG_USB_DWC3=y
> +CONFIG_USB_DWC3_MESON_G12A=y
> +CONFIG_USB_GADGET=y
> +CONFIG_USB_GADGET_VENDOR_NUM=0x18d1
> +CONFIG_USB_GADGET_PRODUCT_NUM=0xfada
> +CONFIG_USB_GADGET_DWC2_OTG=y
> +CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y
> +CONFIG_DM_VIDEO=y
> +CONFIG_SYS_WHITE_ON_BLACK=y
> +CONFIG_VIDEO_MESON=y
> +CONFIG_VIDEO_DT_SIMPLEFB=y
> +CONFIG_LZ4=y
> +CONFIG_OF_LIBFDT_OVERLAY=y
> 



More information about the U-Boot mailing list