From e53654a98d874ed8a8db77819c3f307c88b472fd Mon Sep 17 00:00:00 2001 From: Leon Anavi Date: Mon, 29 Jul 2019 21:07:46 +0300 Subject: [PATCH 1/4] libretech-ac: Add Libretech AC Add machine definition for Libretech AC AML-S805X-AC also known as La Frite. Signed-off-by: Leon Anavi --- conf/machine/include/libretech-ac-dtb.inc | 4 +++ conf/machine/libretech-ac.conf | 31 +++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 conf/machine/include/libretech-ac-dtb.inc create mode 100644 conf/machine/libretech-ac.conf diff --git a/conf/machine/include/libretech-ac-dtb.inc b/conf/machine/include/libretech-ac-dtb.inc new file mode 100644 index 00000000..c32771f1 --- /dev/null +++ b/conf/machine/include/libretech-ac-dtb.inc @@ -0,0 +1,4 @@ +# LibreTech AC AML-S805X-AC (La Frite) + +KERNEL_DEVICETREE += "amlogic/meson-gxl-s805x-libretech-ac.dtb" +IMAGE_BOOT_FILES += "meson-gxl-s805x-libretech-ac.dtb;meson-gxl-s805x-libretech-ac.dtb" diff --git a/conf/machine/libretech-ac.conf b/conf/machine/libretech-ac.conf new file mode 100644 index 00000000..9eb9f9d9 --- /dev/null +++ b/conf/machine/libretech-ac.conf @@ -0,0 +1,31 @@ +# LibreTech AC board (AML-S805X-AC La Frite) + +require conf/machine/include/amlogic-s905x.inc +require conf/machine/include/libretech-ac-dtb.inc + +KERNEL_IMAGETYPE = "Image" +IMAGE_BOOT_FILES_remove = "uImage" +IMAGE_BOOT_FILES_append = "Image" + +PREFERRED_PROVIDER_amlogic-fip = "amlogic-fip-prebuilt" +PREFERRED_PROVIDER_virtual/bootloader = "u-boot-meson-gx" +PREFERRED_PROVIDER_u-boot = "u-boot-meson-gx" +PREFERRED_VERSION_u-boot-meson-gx = "2018.09%" + +UBOOT_MACHINE = "libretech-ac_defconfig" +UBOOT_EXTLINUX = "1" +# Boot on SDCard +UBOOT_EXTLINUX_ROOT = "root=/dev/sda1" +UBOOT_EXTLINUX_FDT = "../meson-gxl-s805x-libretech-ac.dtb" +UBOOT_EXTLINUX_CONSOLE = "console=ttyAML0" + +MACHINE_ESSENTIAL_EXTRA_RDEPENDS += " \ + kernel-image \ + kernel-devicetree \ + u-boot-meson-gx \ +" + +# Generate an SDCard Image +IMAGE_CLASSES += "image_types_meson" + +WKS_FILE = "sdimage-meson.wks" From a9561e77b93313a30caa0986d4c73621c610185f Mon Sep 17 00:00:00 2001 From: Leon Anavi Date: Mon, 29 Jul 2019 21:08:54 +0300 Subject: [PATCH 2/4] u-boot-common_2019.01.inc: Update U-Boot Update U-Boot to support Libretech AC AML-S805X-AC also known as La Frite. Signed-off-by: Leon Anavi --- recipes-bsp/u-boot/u-boot-common_2019.01.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes-bsp/u-boot/u-boot-common_2019.01.inc b/recipes-bsp/u-boot/u-boot-common_2019.01.inc index 42e17faf..acd33d56 100644 --- a/recipes-bsp/u-boot/u-boot-common_2019.01.inc +++ b/recipes-bsp/u-boot/u-boot-common_2019.01.inc @@ -7,7 +7,7 @@ PE = "1" # We use the revision in order to avoid having to fetch it from the # repo during parse -SRCREV = "d3689267f92c5956e09cc7d1baa4700141662bff" +SRCREV = "75551c8bfc9545e31ec2ce238cac3857904007b8" SRC_URI = "git://git.denx.de/u-boot.git" From 13a2b1a25e1a2c59e1da4f2affe8848d60aeb1ce Mon Sep 17 00:00:00 2001 From: Leon Anavi Date: Mon, 29 Jul 2019 21:09:49 +0300 Subject: [PATCH 3/4] amlogic-fip-prebuilt.bb: Support libretech-ac Support libretech-ac, aka AML-S805X-AC also known as La Frite, with the same configurations as libretech-cc. Signed-off-by: Leon Anavi --- recipes-bsp/u-boot/amlogic-fip-prebuilt.bb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/recipes-bsp/u-boot/amlogic-fip-prebuilt.bb b/recipes-bsp/u-boot/amlogic-fip-prebuilt.bb index 892512f6..44488e76 100644 --- a/recipes-bsp/u-boot/amlogic-fip-prebuilt.bb +++ b/recipes-bsp/u-boot/amlogic-fip-prebuilt.bb @@ -4,6 +4,7 @@ PROVIDES = "amlogic-fip" LICENSE = "Proprietary" COMPATIBLE_MACHINE_libretech-cc = "libretech-cc" +COMPATIBLE_MACHINE_libretech-ac = "libretech-ac" COMPATIBLE_MACHINE_khadas-vim = "khadas-vim" COMPATIBLE_MACHINE_amlogic-p212 = "amlogic-p212" COMPATIBLE_MACHINE_friendlyelec-nanopik2 = "friendlyelec-nanopik2" @@ -16,6 +17,13 @@ SHASUM_libretech-cc = "957c96037bcd792a4139cc33eded2f006d55a82c0c56ae69ef43bdcb7 DEPLOY_CMD_libretech-cc = "do_deploy_gxl" LIC_FILES_CHKSUM_libretech-cc = "file://fip/blx_fix.sh;md5=12ad2eef4a1dcc98f9eda15224b92836" +PV_libretech-ac = "libretech-cc_fip_20170606" +RELEASE_libretech-ac = "v2017.11-libretech-cc" +TARBALL_libretech-ac = "${PV}.tar.gz" +SHASUM_libretech-ac = "957c96037bcd792a4139cc33eded2f006d55a82c0c56ae69ef43bdcb76a255e2" +DEPLOY_CMD_libretech-ac = "do_deploy_gxl" +LIC_FILES_CHKSUM_libretech-ac = "file://fip/blx_fix.sh;md5=12ad2eef4a1dcc98f9eda15224b92836" + PV_amlogic-p212 = "p212_fip_20170606" RELEASE_amlogic-p212 = "v2017.11-libretech-cc" TARBALL_amlogic-p212 = "${PV}.tar.gz" From 4ae361cad7c35011f9a63adddeadc5e542fcb9e6 Mon Sep 17 00:00:00 2001 From: Leon Anavi Date: Mon, 29 Jul 2019 21:11:30 +0300 Subject: [PATCH 4/4] linux-yocto-meson64_4.20.bb: DT for Libretech AC Add meson-gxl-s805x-libretech-ac.dts to provide appropriate device tree for Libretech AC AML-S805X-AC also known as La Frite. Signed-off-by: Leon Anavi --- ...son-add-libretech-aml-s805x-ac-board.patch | 286 ++++++++++++++++++ .../linux/linux-yocto-meson64_4.20.bb | 1 + 2 files changed, 287 insertions(+) create mode 100644 recipes-kernel/linux/linux-yocto-meson64-4.20/0001-arm64-dts-meson-add-libretech-aml-s805x-ac-board.patch diff --git a/recipes-kernel/linux/linux-yocto-meson64-4.20/0001-arm64-dts-meson-add-libretech-aml-s805x-ac-board.patch b/recipes-kernel/linux/linux-yocto-meson64-4.20/0001-arm64-dts-meson-add-libretech-aml-s805x-ac-board.patch new file mode 100644 index 00000000..090170df --- /dev/null +++ b/recipes-kernel/linux/linux-yocto-meson64-4.20/0001-arm64-dts-meson-add-libretech-aml-s805x-ac-board.patch @@ -0,0 +1,286 @@ +From 0449b8e371acb8609bd6363c91dda464a262f778 Mon Sep 17 00:00:00 2001 +From: Neil Armstrong +Date: Fri, 16 Nov 2018 16:15:39 +0100 +Subject: [PATCH] arm64: dts: meson: add libretech aml-s805x-ac board + +Add Libretech aml-s805x-ac board (aka 'La Frite') support + +Signed-off-by: Neil Armstrong +Signed-off-by: Jerome Brunet +Reviewed-by: Peter Korsgaard +Signed-off-by: Kevin Hilman +--- + arch/arm64/boot/dts/amlogic/Makefile | 1 + + .../dts/amlogic/meson-gxl-s805x-libretech-ac.dts | 248 +++++++++++++++++++++ + 2 files changed, 249 insertions(+) + create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts + +diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile +index 49f3ac5..f12efa2 100644 +--- a/arch/arm64/boot/dts/amlogic/Makefile ++++ b/arch/arm64/boot/dts/amlogic/Makefile +@@ -11,6 +11,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-meta.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-telos.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-wetek-hub.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-wetek-play2.dtb ++dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-libretech-ac.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-khadas-vim.dtb + dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb +diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts +new file mode 100644 +index 0000000..82b1c48 +--- /dev/null ++++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts +@@ -0,0 +1,248 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2018 BayLibre, SAS. ++ * Author: Neil Armstrong ++ * Author: Jerome Brunet ++ */ ++ ++/dts-v1/; ++ ++#include ++ ++#include "meson-gxl-s905x.dtsi" ++ ++/ { ++ compatible = "libretech,aml-s805x-ac", "amlogic,s805x", ++ "amlogic,meson-gxl"; ++ model = "Libre Computer Board AML-S805X-AC"; ++ ++ aliases { ++ serial0 = &uart_AO; ++ ethernet0 = ðmac; ++ spi0 = &spifc; ++ }; ++ ++ chosen { ++ stdout-path = "serial0:115200n8"; ++ }; ++ ++ cvbs-connector { ++ /* ++ * The pads are present but no connector is soldered on ++ * 2J2, so keep this off by default. ++ */ ++ status = "disabled"; ++ compatible = "composite-video-connector"; ++ ++ port { ++ cvbs_connector_in: endpoint { ++ remote-endpoint = <&cvbs_vdac_out>; ++ }; ++ }; ++ }; ++ ++ dc_5v: regulator-dc_5v { ++ compatible = "regulator-fixed"; ++ regulator-name = "DC_5V"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ regulator-always-on; ++ }; ++ ++ emmc_pwrseq: emmc-pwrseq { ++ compatible = "mmc-pwrseq-emmc"; ++ reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; ++ }; ++ ++ hdmi-connector { ++ compatible = "hdmi-connector"; ++ type = "a"; ++ ++ port { ++ hdmi_connector_in: endpoint { ++ remote-endpoint = <&hdmi_tx_tmds_out>; ++ }; ++ }; ++ }; ++ ++ memory@0 { ++ device_type = "memory"; ++ reg = <0x0 0x0 0x0 0x20000000>; ++ }; ++ ++ vcck: regulator-vcck { ++ compatible = "regulator-fixed"; ++ regulator-name = "VCCK"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ vin-supply = <&dc_5v>; ++ ++ /* ++ * This is controlled by GPIOAO_9 we reserve this but ++ * claiming it as done below reset the board anyway ++ * Need to investigate this ++ * ++ * gpio = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>; ++ * enable-active-high; ++ */ ++ regulator-always-on; ++ }; ++ ++ vcc_3v3: regulator-vcc_3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "VCC_3V3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ vin-supply = <&dc_5v>; ++ regulator-always-on; ++ }; ++ ++ vddio_boot: regulator-vddio_boot { ++ compatible = "regulator-fixed"; ++ regulator-name = "VDDIO_BOOT"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ vin-supply = <&vcc_3v3>; ++ regulator-always-on; ++ }; ++}; ++ ++&cec_AO { ++ status = "okay"; ++ pinctrl-0 = <&ao_cec_pins>; ++ pinctrl-names = "default"; ++ hdmi-phandle = <&hdmi_tx>; ++}; ++ ++&cvbs_vdac_port { ++ cvbs_vdac_out: endpoint { ++ remote-endpoint = <&cvbs_connector_in>; ++ }; ++}; ++ ++ðmac { ++ status = "okay"; ++}; ++ ++&internal_phy { ++ pinctrl-0 = <ð_link_led_pins>, <ð_act_led_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&ir { ++ status = "okay"; ++ pinctrl-0 = <&remote_input_ao_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&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>; ++ }; ++}; ++ ++&gpio_ao { ++ gpio-line-names = "UART TX", ++ "UART RX", ++ "7J1 Header Pin31", ++ "", "", "", "", ++ "IR In", ++ "HDMI CEC", ++ "5V VCCK Regulator", ++ /* GPIO_TEST_N */ ++ ""; ++}; ++ ++&gpio { ++ gpio-line-names = /* Bank GPIOZ */ ++ "", "", "", "", "", "", "", ++ "", "", "", "", "", "", "", ++ "Eth Link LED", "Eth Activity LED", ++ /* Bank GPIOH */ ++ "HDMI HPD", "HDMI SDA", "HDMI SCL", ++ "", "7J1 Header Pin13", ++ "7J1 Header Pin15", ++ "7J1 Header Pin7", ++ "7J1 Header Pin12", ++ "7J1 Header Pin16", ++ "7J1 Header Pin18", ++ /* Bank BOOT */ ++ "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", ++ "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7", ++ "eMMC Clk", "eMMC Reset", "eMMC CMD", ++ "SPI NOR MOSI", "SPI NOR MISO", "SPI NOR Clk", ++ "", "SPI NOR Chip Select", ++ /* Bank CARD */ ++ "", "", "", "", "", "", "", ++ /* Bank GPIODV */ ++ "", "", "", "", "", "", "", "", "", "", "", "", ++ "", "", "", "", "", "", "", "", "", "", "", "", ++ "7J1 Header Pin27", "7J1 Header Pin28", "", ++ "7J1 Header Pin29", ++ "VCCK Regulator", "VDDEE Regulator", ++ /* Bank GPIOX */ ++ "7J1 Header Pin22", "7J1 Header Pin26", ++ "7J1 Header Pin36", "7J1 Header Pin38", ++ "7J1 Header Pin40", "7J1 Header Pin37", ++ "7J1 Header Pin33", "7J1 Header Pin35", ++ "7J1 Header Pin19", "7J1 Header Pin21", ++ "7J1 Header Pin24", "7J1 Header Pin23", ++ "7J1 Header Pin8", "7J1 Header Pin10", ++ "", "", "7J1 Header Pin32", "", "", ++ /* Bank GPIOCLK */ ++ "", ""; ++}; ++ ++&saradc { ++ status = "okay"; ++ vref-supply = <&vddio_boot>; ++}; ++ ++/* eMMC */ ++&sd_emmc_c { ++ status = "okay"; ++ pinctrl-0 = <&emmc_pins>; ++ pinctrl-1 = <&emmc_clk_gate_pins>; ++ pinctrl-names = "default", "clk-gate"; ++ ++ bus-width = <8>; ++ cap-mmc-highspeed; ++ mmc-ddr-1_8v; ++ mmc-hs200-1_8v; ++ max-frequency = <200000000>; ++ disable-wp; ++ ++ mmc-pwrseq = <&emmc_pwrseq>; ++ vmmc-supply = <&vcc_3v3>; ++ vqmmc-supply = <&vddio_boot>; ++}; ++ ++&spifc { ++ status = "okay"; ++ pinctrl-0 = <&nor_pins>; ++ pinctrl-names = "default"; ++ ++ w25q32: spi-flash@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <3000000>; ++ }; ++}; ++ ++&uart_AO { ++ status = "okay"; ++ pinctrl-0 = <&uart_ao_a_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&usb0 { ++ status = "okay"; ++}; +-- +2.7.4 + diff --git a/recipes-kernel/linux/linux-yocto-meson64_4.20.bb b/recipes-kernel/linux/linux-yocto-meson64_4.20.bb index 5a7a7923..b69ae423 100644 --- a/recipes-kernel/linux/linux-yocto-meson64_4.20.bb +++ b/recipes-kernel/linux/linux-yocto-meson64_4.20.bb @@ -75,6 +75,7 @@ SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git;protoc file://0016-arm64-dts-meson-s400-fix-emmc-maximum-rate.patch \ file://0017-ASoC-meson-fix-do_div-warning-in-spdifin.patch \ file://0018-arm64-defconfig-enable-modules-for-amlogic-s400-soun.patch \ + file://0001-arm64-dts-meson-add-libretech-aml-s805x-ac-board.patch \ " KERNEL_VERSION_SANITY_SKIP="1"