[U-Boot] [PATCH v2 5/5] arm: Add Khadas VIM support based on Meson GXL family
This adds platform code for the Khadas VIM board based on a Meson GXL (S905X) SoC with the Meson GXL configuration. This initial submission supports UART, MMC/SDCard and Ethernet with the Internal RMII PHY. The meson-gxl-s905x-khadas-vim.dts is synchronised from the linux 4.13 stable tree as of 4.13.8. Signed-off-by: Neil Armstrong --- arch/arm/dts/Makefile | 3 +- arch/arm/dts/meson-gxl-s905x-khadas-vim.dts | 137 arch/arm/mach-meson/Kconfig | 9 ++ board/amlogic/khadas-vim/Kconfig| 12 +++ board/amlogic/khadas-vim/MAINTAINERS| 6 ++ board/amlogic/khadas-vim/Makefile | 8 ++ board/amlogic/khadas-vim/README | 96 +++ board/amlogic/khadas-vim/khadas-vim.c | 48 ++ configs/khadas-vim_defconfig| 35 +++ include/configs/khadas-vim.h| 21 + 10 files changed, 374 insertions(+), 1 deletion(-) create mode 100644 arch/arm/dts/meson-gxl-s905x-khadas-vim.dts create mode 100644 board/amlogic/khadas-vim/Kconfig create mode 100644 board/amlogic/khadas-vim/MAINTAINERS create mode 100644 board/amlogic/khadas-vim/Makefile create mode 100644 board/amlogic/khadas-vim/README create mode 100644 board/amlogic/khadas-vim/khadas-vim.c create mode 100644 configs/khadas-vim_defconfig create mode 100644 include/configs/khadas-vim.h diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 1845552..b44a915 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -56,7 +56,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \ dtb-$(CONFIG_ARCH_MESON) += \ meson-gxbb-odroidc2.dtb \ meson-gxl-s905x-p212.dtb \ - meson-gxl-s905x-libretech-cc.dtb + meson-gxl-s905x-libretech-cc.dtb \ + meson-gxl-s905x-khadas-vim.dtb dtb-$(CONFIG_TEGRA) += tegra20-harmony.dtb \ tegra20-medcom-wide.dtb \ tegra20-paz00.dtb \ diff --git a/arch/arm/dts/meson-gxl-s905x-khadas-vim.dts b/arch/arm/dts/meson-gxl-s905x-khadas-vim.dts new file mode 100644 index 000..94567eb --- /dev/null +++ b/arch/arm/dts/meson-gxl-s905x-khadas-vim.dts @@ -0,0 +1,137 @@ +/* + * Copyright (c) 2017 Martin Blumenstingl . + * + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) + */ + +/dts-v1/; + +#include + +#include "meson-gxl-s905x-p212.dtsi" + +/ { + compatible = "khadas,vim", "amlogic,s905x", "amlogic,meson-gxl"; + model = "Khadas VIM"; + + adc-keys { + compatible = "adc-keys"; + io-channels = <&saradc 0>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <171>; + + button-function { + label = "Function"; + linux,code = ; + press-threshold-microvolt = <1>; + }; + }; + + aliases { + serial2 = &uart_AO_B; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <100>; + + button@0 { + label = "power"; + linux,code = ; + gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; + }; + }; + + pwmleds { + compatible = "pwm-leds"; + + power { + label = "vim:red:power"; + pwms = <&pwm_AO_ab 1 7812500 0>; + max-brightness = <255>; + linux,default-trigger = "default-on"; + }; + }; + + hdmi-connector { + compatible = "hdmi-connector"; + type = "a"; + + port { + hdmi_connector_in: endpoint { + remote-endpoint = <&hdmi_tx_tmds_out>; + }; + }; + }; +}; + +&hdmi_tx { + status = "okay"; + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; + pinctrl-names = "default"; +}; + +&hdmi_tx_tmds_port { + hdmi_tx_tmds_out: endpoint { + remote-endpoint = <&hdmi_connector_in>; + }; +}; + +&i2c_A { + status = "okay"; + pinctrl-0 = <&i2c_a_pins>; + pinctrl-names = "default"; +}; + +&i2c_B { + status = "okay"; + pinctrl-0 = <&i2c_b_pins>; + pinctrl-names = "default"; + + rtc: rtc@51 { + /* has to be enabled manually when a battery is connected: */ + status = "disabled"; + compatible = "haoyu,hym8563"; + reg = <0x51>; + #clock-cells = <0>; + clock-frequency = <32768>; + clock-output-names = "xin32k"; + }; +}; + +&ir { + linux,rc-map-name = "rc-geekbox"; +}; + +&pwm_AO_ab { + status = "okay"; + pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>; +
Re: [U-Boot] [PATCH v2 5/5] arm: Add Khadas VIM support based on Meson GXL family
Hi Neil, On 22 November 2017 at 06:25, Neil Armstrong wrote: > This adds platform code for the Khadas VIM board based on a > Meson GXL (S905X) SoC with the Meson GXL configuration. > > This initial submission supports UART, MMC/SDCard and Ethernet with the > Internal RMII PHY. > > The meson-gxl-s905x-khadas-vim.dts is synchronised from the linux 4.13 > stable tree as of 4.13.8. > > Signed-off-by: Neil Armstrong > --- > arch/arm/dts/Makefile | 3 +- > arch/arm/dts/meson-gxl-s905x-khadas-vim.dts | 137 > > arch/arm/mach-meson/Kconfig | 9 ++ > board/amlogic/khadas-vim/Kconfig| 12 +++ > board/amlogic/khadas-vim/MAINTAINERS| 6 ++ > board/amlogic/khadas-vim/Makefile | 8 ++ > board/amlogic/khadas-vim/README | 96 +++ > board/amlogic/khadas-vim/khadas-vim.c | 48 ++ > configs/khadas-vim_defconfig| 35 +++ > include/configs/khadas-vim.h| 21 + > 10 files changed, 374 insertions(+), 1 deletion(-) > create mode 100644 arch/arm/dts/meson-gxl-s905x-khadas-vim.dts > create mode 100644 board/amlogic/khadas-vim/Kconfig > create mode 100644 board/amlogic/khadas-vim/MAINTAINERS > create mode 100644 board/amlogic/khadas-vim/Makefile > create mode 100644 board/amlogic/khadas-vim/README > create mode 100644 board/amlogic/khadas-vim/khadas-vim.c > create mode 100644 configs/khadas-vim_defconfig > create mode 100644 include/configs/khadas-vim.h Reviewed-by: Simon Glass Please see below. > diff --git a/board/amlogic/khadas-vim/README b/board/amlogic/khadas-vim/README > new file mode 100644 > index 000..add6a29 > --- /dev/null > +++ b/board/amlogic/khadas-vim/README > @@ -0,0 +1,96 @@ > +U-Boot for Khadas VIM > +=== > + > +Khadas VIM is an Open Source DIY Box manufactured by Shenzhen Tomato > +Technology Co., Ltd with the following specifications: > + > + - Amlogic S905x ARM Cortex-A53 quad-core SoC @ 2GHz > + - ARM Mali 450 GPU > + - 2GB DDR3 SDRAM > + - 10/100 Ethernet > + - HDMI 2.0 4K/60Hz display > + - 40-pin GPIO header > + - 2 x USB 2.0 Host, 1 x USB 2.0 Type-C OTG > + - 8GB/16GBeMMC > + - microSD > + - SDIO Wifi Module, Bluetooth > + - Two channels IR receiver > + > +Currently the u-boot port supports the following devices: > + - serial > + - eMMC, microSD > + - Ethernet > + > +u-boot compilation U-Boot > +== > + > + > export ARCH=arm > + > export CROSS_COMPILE=aarch64-none-elf- > + > make khadas-vim_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/khadas/u-boot -b Vim vim-u-boot > + > cd vim-u-boot > + > make kvim_defconfig > + > make > + > export FIPDIR=$PWD/fip > + > +Go back to mainline U-Boot source tree then : > + > mkdir fip > + > + > cp $FIPDIR/gxl/bl2.bin fip/ > + > cp $FIPDIR/gxl/acs.bin fip/ > + > cp $FIPDIR/gxl/bl21.bin fip/ > + > cp $FIPDIR/gxl/bl30.bin fip/ > + > cp $FIPDIR/gxl/bl301.bin fip/ > + > cp $FIPDIR/gxl/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/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin > + > $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img > + > $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin > + > $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output > fip/bl2.n.bin.sig > + > $FIPDIR/gxl/aml_encrypt_gxl --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 > + > +and then write the image to SD with: > + > + > DEV=/dev/your_sd_device > + > dd
Re: [U-Boot] [PATCH v2 5/5] arm: Add Khadas VIM support based on Meson GXL family
Hi Simon, Am 24.11.2017 um 23:35 schrieb Simon Glass: > On 22 November 2017 at 06:25, Neil Armstrong wrote: >> +Go back to mainline U-Boot source tree then : >> + > mkdir fip >> + >> + > cp $FIPDIR/gxl/bl2.bin fip/ >> + > cp $FIPDIR/gxl/acs.bin fip/ >> + > cp $FIPDIR/gxl/bl21.bin fip/ >> + > cp $FIPDIR/gxl/bl30.bin fip/ >> + > cp $FIPDIR/gxl/bl301.bin fip/ >> + > cp $FIPDIR/gxl/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/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin >> + > $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img >> + > $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin >> + > $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output >> fip/bl2.n.bin.sig >> + > $FIPDIR/gxl/aml_encrypt_gxl --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 >> + >> +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 > > This bit (from 'got back to U-Boot sources') seems like a job for > binman, as I just mentioned in the other patch. I'm not familiar with binman either but would like to point out that I've authored Open Source meson-tools for GXBB that could/should/will be adapted to GXL at some point, too. https://github.com/afaerber/meson-tools So I'll be strictly opposed to hiding the above instructions from users or to hardcoding the use of non-free x86_64-only tools inside U-Boot! Regards, Andreas -- SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot