[U-Boot] [PATCH v2 5/5] arm: Add Khadas VIM support based on Meson GXL family

2017-11-22 Thread Neil Armstrong
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

2017-11-24 Thread Simon Glass
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

2017-11-26 Thread Andreas Färber
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