Hi Neil, On Mon, 22 Jul 2019 at 16:00, Neil Armstrong <narmstr...@baylibre.com> wrote: > > ODROID-N2 is a single board computer manufactured by Hardkernel Co. Ltd > with the following specifications: > > - Amlogic S922X ARM Cortex-A53 dual-core + Cortex-A73 quad-core SoC > - 4GB DDR4 SDRAM > - Gigabit Ethernet > - HDMI 2.1 4K/60Hz display > - 40-pin GPIO header > - 4 x USB 3.0 Host, 1 x USB OTG > - eMMC, microSD > - Infrared receiver > > The board directory is W400, the name of the Amlogic Reference Design > of Amlogic G12B with Gigabit boards, which will be used for similar > boards. > > Signed-off-by: Neil Armstrong <narmstr...@baylibre.com> > --- > board/amlogic/w400/MAINTAINERS | 6 ++ > board/amlogic/w400/Makefile | 6 ++ > board/amlogic/w400/README.odroid-n2 | 130 ++++++++++++++++++++++++++++ > board/amlogic/w400/README.w400 | 130 ++++++++++++++++++++++++++++ > board/amlogic/w400/w400.c | 18 ++++ > configs/odroid-n2_defconfig | 56 ++++++++++++ > 6 files changed, 346 insertions(+) > create mode 100644 board/amlogic/w400/MAINTAINERS > create mode 100644 board/amlogic/w400/Makefile > create mode 100644 board/amlogic/w400/README.odroid-n2 > create mode 100644 board/amlogic/w400/README.w400 > create mode 100644 board/amlogic/w400/w400.c > create mode 100644 configs/odroid-n2_defconfig > > diff --git a/board/amlogic/w400/MAINTAINERS b/board/amlogic/w400/MAINTAINERS > new file mode 100644 > index 0000000000..6e68fa73f7 > --- /dev/null > +++ b/board/amlogic/w400/MAINTAINERS > @@ -0,0 +1,6 @@ > +W400 > +M: Neil Armstrong <narmstr...@baylibre.com> > +S: Maintained > +L: u-boot-amlo...@groups.io > +F: board/amlogic/w400/ > +F: configs/odroid-n2_defconfig > diff --git a/board/amlogic/w400/Makefile b/board/amlogic/w400/Makefile > new file mode 100644 > index 0000000000..fac4a73afa > --- /dev/null > +++ b/board/amlogic/w400/Makefile > @@ -0,0 +1,6 @@ > +# SPDX-License-Identifier: GPL-2.0+ > +# > +# (C) Copyright 2019 BayLibre, SAS > +# Author: Neil Armstrong <narmstr...@baylibre.com> > + > +obj-y := w400.o > diff --git a/board/amlogic/w400/README.odroid-n2 > b/board/amlogic/w400/README.odroid-n2 > new file mode 100644 > index 0000000000..90070a988d > --- /dev/null > +++ b/board/amlogic/w400/README.odroid-n2 > @@ -0,0 +1,130 @@ > +U-Boot for ODROID-N2 > +==================== > + > +ODROID-N2 is a single board computer manufactured by Hardkernel > +Co. Ltd with the following specifications: > + > + - Amlogic S922X ARM Cortex-A53 dual-core + Cortex-A73 quad-core SoC > + - 4GB DDR4 SDRAM > + - Gigabit Ethernet > + - HDMI 2.1 4K/60Hz display > + - 40-pin GPIO header > + - 4 x USB 3.0 Host, 1 x USB OTG > + - eMMC, microSD > + - Infrared receiver > + > +Schematics are available on the manufacturer website. > + > +Currently the u-boot port supports the following devices: > + - serial > + - eMMC, microSD > + - Ethernet > + - I2C > + - Regulators > + - Reset controller > + - Clock controller > + - ADC > + > +u-boot compilation > +================== > + > + > export ARCH=arm > + > export CROSS_COMPILE=aarch64-none-elf- > + > make odroid-n2_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 > +
Should we checkout odroidn2-v2015.01 from Hardkernel repository. > + > DIR=odroid-c2 > + > git clone --depth 1 \ > + https://github.com/hardkernel/u-boot.git -b odroidc2-v2015.01 \ > + $DIR > + > + > cd odroid-c2 > + > make odroidn2_defconfig > + > make > + > export UBOOTDIR=$PWD > + > + 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/hardkernel/odroidn2/firmware/acs.bin fip/ > + > cp $UBOOTDIR/fip/g12b/bl2.bin fip/ > + > cp $UBOOTDIR/fip/g12b/bl30.bin fip/ > + > cp $UBOOTDIR/fip/g12b/bl31.img fip/ > + > cp $UBOOTDIR/fip/g12b/ddr3_1d.fw fip/ > + > cp $UBOOTDIR/fip/g12b/ddr4_1d.fw fip/ > + > cp $UBOOTDIR/fip/g12b/ddr4_2d.fw fip/ > + > cp $UBOOTDIR/fip/g12b/diag_lpddr4.fw fip/ > + > cp $UBOOTDIR/fip/g12b/lpddr4_1d.fw fip/ > + > cp $UBOOTDIR/fip/g12b/lpddr4_2d.fw fip/ > + > cp $UBOOTDIR/fip/g12b/piei.fw fip/ > + > cp $UBOOTDIR/fip/g12b/aml_ddr.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 > + > + > $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl30sig --input fip/bl30_new.bin \ > + --output fip/bl30_new.bin.g12a.enc \ > + --level v3 > + > $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl3sig --input > fip/bl30_new.bin.g12a.enc \ > + --output fip/bl30_new.bin.enc \ > + --level v3 --type bl30 > + > $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl3sig --input fip/bl31.img \ > + --output fip/bl31.img.enc \ > + --level v3 --type bl31 > + > $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl3sig --input fip/bl33.bin > --compress lz4 \ > + --output fip/bl33.bin.enc \ > + --level v3 --type bl33 --compress lz4 > + > $UBOOTDIR/fip/g12b/aml_encrypt_g12b --bl2sig --input fip/bl2_new.bin \ > + --output fip/bl2.n.bin.sig > + > $UBOOTDIR/fip/g12b/aml_encrypt_g12b --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 \ > + --ddrfw8 fip/aml_ddr.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/w400/README.w400 b/board/amlogic/w400/README.w400 > new file mode 100644 > index 0000000000..25b786d817 > --- /dev/null > +++ b/board/amlogic/w400/README.w400 > @@ -0,0 +1,130 @@ > +U-Boot for Amlogic W400 > +======================= > + > +U200 is a reference board manufactured by Amlogic with the following > +specifications: > + > + - Amlogic S922X ARM Cortex-A53 dual-core + Cortex-A73 quad-core SoC > + - 2GB DDR4 SDRAM > + - 10/100 Ethernet (Internal PHY) > + - 1 x USB 3.0 Host > + - eMMC > + - SDcard > + - Infrared receiver > + - SDIO WiFi Module > + - MIPI DSI Connector > + - Audio HAT Connector > + - PCI-E M.2 Connector > + > +Schematics are available from Amlogic on demand. > + > +Currently the u-boot port supports the following devices: > + - serial > + - Ethernet > + - Regulators > + - Clock controller > + > +u-boot compilation > +================== > + > + > export ARCH=arm > + > export CROSS_COMPILE=aarch64-none-elf- > + > make w400_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-20180418 amlogic-u-boot > + > cd amlogic-u-boot > + > make g12b_w400_v1_defconfig > + > make > + > export UBOOTDIR=$PWD > + > +Download the latest Amlogic Buildroot package, and extract it : > + > wget > http://openlinux2.amlogic.com:8000/ARM/filesystem/Linux_BSP/buildroot_openlinux_kernel_4.9_fbdev_20180706.tar.gz > + > tar xfz buildroot_openlinux_kernel_4.9_fbdev_20180706.tar.gz > buildroot_openlinux_kernel_4.9_fbdev_20180706/bootloader > + > export BRDIR=$PWD/buildroot_openlinux_kernel_4.9_fbdev_20180706 > + > 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/g12b_w400_v1/firmware/acs.bin fip/ > + > cp $BRDIR/bootloader/uboot-repo/bl2/bin/g12b/bl2.bin fip/ > + > cp $BRDIR/bootloader/uboot-repo/bl30/bin/g12b/bl30.bin fip/ > + > cp $BRDIR/bootloader/uboot-repo/bl31_1.3/bin/g12b/bl31.img fip/ > + > cp $FIPDIR/g12b/ddr3_1d.fw fip/ > + > cp $FIPDIR/g12b/ddr4_1d.fw fip/ > + > cp $FIPDIR/g12b/ddr4_2d.fw fip/ > + > cp $FIPDIR/g12b/diag_lpddr4.fw fip/ > + > cp $FIPDIR/g12b/lpddr4_1d.fw fip/ > + > cp $FIPDIR/g12b/lpddr4_2d.fw fip/ > + > cp $FIPDIR/g12b/piei.fw fip/ > + > cp $FIPDIR/g12b/aml_ddr.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/g12b/aml_encrypt_g12b --bl30sig --input fip/bl30_new.bin \ > + --output fip/bl30_new.bin.g12a.enc \ > + --level v3 > + > $FIPDIR/g12b/aml_encrypt_g12b --bl3sig --input fip/bl30_new.bin.g12a.enc \ > + --output fip/bl30_new.bin.enc \ > + --level v3 --type bl30 > + > $FIPDIR/g12b/aml_encrypt_g12b --bl3sig --input fip/bl31.img \ > + --output fip/bl31.img.enc \ > + --level v3 --type bl31 > + > $FIPDIR/g12b/aml_encrypt_g12b --bl3sig --input fip/bl33.bin --compress > lz4 \ > + --output fip/bl33.bin.enc \ > + --level v3 --type bl33 > + > $FIPDIR/g12b/aml_encrypt_g12b --bl2sig --input fip/bl2_new.bin \ > + --output fip/bl2.n.bin.sig > + > $FIPDIR/g12b/aml_encrypt_g12b --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 \ > + --ddrfw8 fip/aml_ddr.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/w400/w400.c b/board/amlogic/w400/w400.c > new file mode 100644 > index 0000000000..4737865367 > --- /dev/null > +++ b/board/amlogic/w400/w400.c > @@ -0,0 +1,18 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Copyright (C) 2016 BayLibre, SAS > + * Author: Neil Armstrong <narmstr...@baylibre.com> > + */ > + > +#include <common.h> > +#include <dm.h> > +#include <environment.h> > +#include <asm/io.h> > +#include <asm/arch/eth.h> > + > +int misc_init_r(void) > +{ > + meson_eth_init(PHY_INTERFACE_MODE_RGMII, 0); > + > + return 0; > +} > diff --git a/configs/odroid-n2_defconfig b/configs/odroid-n2_defconfig > new file mode 100644 > index 0000000000..38d1549375 > --- /dev/null > +++ b/configs/odroid-n2_defconfig > @@ -0,0 +1,56 @@ > +CONFIG_ARM=y > +CONFIG_ARCH_MESON=y > +CONFIG_SYS_TEXT_BASE=0x01000000 > +CONFIG_MESON_G12A=y > +CONFIG_SYS_BOARD="w400" > +CONFIG_NR_DRAM_BANKS=1 > +CONFIG_DEBUG_UART_BASE=0xff803000 > +CONFIG_DEBUG_UART_CLOCK=24000000 > +CONFIG_IDENT_STRING=" odroid-n2" > +CONFIG_DEBUG_UART=y > +CONFIG_OF_BOARD_SETUP=y > +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_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-g12b-odroid-n2" > +CONFIG_NET_RANDOM_ETHADDR=y > +CONFIG_DM_GPIO=y > +CONFIG_DM_MMC=y > +CONFIG_MMC_MESON_GX=y > +CONFIG_PHY_REALTEK=y > +CONFIG_DM_ETH=y > +CONFIG_ETH_DESIGNWARE=y > +CONFIG_PINCTRL=y > +CONFIG_PINCTRL_MESON_G12A=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 > +CONFIG_USB=y > +CONFIG_USB_HOST=y > +CONFIG_USB_GADGET=y > +CONFIG_USB_GADGET_DOWNLOAD=y > +CONFIG_PHY=y > +CONFIG_MESON_G12A_USB_PHY=y > +CONFIG_DM_USB=y > +CONFIG_USB_GADGET_DWC2_OTG=y > +CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y > +CONFIG_USB_XHCI_HCD=y > +CONFIG_USB_XHCI_DWC3=y > +CONFIG_USB_DWC3=y > +CONFIG_USB_DWC3_MESON_G12A=y > +CONFIG_CMD_USB=y > +CONFIG_CMD_USB_MASS_STORAGE=y > +CONFIG_USB_GADGET_VENDOR_NUM=0x1b8e > +CONFIG_USB_GADGET_PRODUCT_NUM=0xfada > -- > 2.22.0 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://lists.denx.de/listinfo/u-boot _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot