* [PATCH 0/5] board: amlogic: add Beelink GT-King/Pro support
@ 2020-12-18 8:45 Christian Hewitt
2020-12-18 8:45 ` [PATCH 1/5] ARM: dts: import Beelink GT-King/Pro DTs from Linux 5.10 Christian Hewitt
` (5 more replies)
0 siblings, 6 replies; 12+ messages in thread
From: Christian Hewitt @ 2020-12-18 8:45 UTC (permalink / raw)
To: u-boot, u-boot-amlogic, linux-amlogic; +Cc: Christian Hewitt
This patchset adds support for the Beelink GT-King and GT-King Pro boxes
based on the Amlogic S922X (G12B/W400) SoC. Patches are based on the
u-boot-amlogic-next branch in the custodians tree.
Christian Hewitt (5):
ARM: dts: import Beelink GT-King/Pro DTs from Linux 5.10
boards: amlogic: add Beelink S922X board family support
boards: amlogic: add Beelink GT-King defconfig
boards: amlogic: add Beelink GT-King Pro defconfig
boards: amlogic: update documentation for Beelink GT-King/Pro
arch/arm/dts/Makefile | 2 +
arch/arm/dts/meson-g12b-gtking-pro.dts | 125 ++++++
arch/arm/dts/meson-g12b-gtking.dts | 145 +++++++
arch/arm/dts/meson-g12b-w400.dtsi | 425 ++++++++++++++++++++
board/amlogic/beelink-s922x/MAINTAINERS | 9 +
board/amlogic/beelink-s922x/Makefile | 6 +
board/amlogic/beelink-s922x/beelink-s922x.c | 54 +++
configs/beelink-gtking_defconfig | 71 ++++
configs/beelink-gtkingpro_defconfig | 71 ++++
doc/board/amlogic/beelink-gtking.rst | 115 ++++++
doc/board/amlogic/beelink-gtkingpro.rst | 116 ++++++
doc/board/amlogic/index.rst | 4 +-
12 files changed, 1142 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/dts/meson-g12b-gtking-pro.dts
create mode 100644 arch/arm/dts/meson-g12b-gtking.dts
create mode 100644 arch/arm/dts/meson-g12b-w400.dtsi
create mode 100644 board/amlogic/beelink-s922x/MAINTAINERS
create mode 100644 board/amlogic/beelink-s922x/Makefile
create mode 100644 board/amlogic/beelink-s922x/beelink-s922x.c
create mode 100644 configs/beelink-gtking_defconfig
create mode 100644 configs/beelink-gtkingpro_defconfig
create mode 100644 doc/board/amlogic/beelink-gtking.rst
create mode 100644 doc/board/amlogic/beelink-gtkingpro.rst
--
2.17.1
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/5] ARM: dts: import Beelink GT-King/Pro DTs from Linux 5.10
2020-12-18 8:45 [PATCH 0/5] board: amlogic: add Beelink GT-King/Pro support Christian Hewitt
@ 2020-12-18 8:45 ` Christian Hewitt
2020-12-18 9:42 ` Neil Armstrong
2020-12-18 8:45 ` [PATCH 2/5] boards: amlogic: add Beelink S922X board family support Christian Hewitt
` (4 subsequent siblings)
5 siblings, 1 reply; 12+ messages in thread
From: Christian Hewitt @ 2020-12-18 8:45 UTC (permalink / raw)
To: u-boot, u-boot-amlogic, linux-amlogic; +Cc: Christian Hewitt
Import the Beelink GT-King/Pro and supporting meson-g12b-w400.dtsi file
from Linux 5.10.
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
arch/arm/dts/Makefile | 2 +
arch/arm/dts/meson-g12b-gtking-pro.dts | 125 ++++++++
arch/arm/dts/meson-g12b-gtking.dts | 145 +++++++++
arch/arm/dts/meson-g12b-w400.dtsi | 425 +++++++++++++++++++++++++
4 files changed, 697 insertions(+)
create mode 100644 arch/arm/dts/meson-g12b-gtking-pro.dts
create mode 100644 arch/arm/dts/meson-g12b-gtking.dts
create mode 100644 arch/arm/dts/meson-g12b-w400.dtsi
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 02dd6a832f..287ac63da4 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -170,6 +170,8 @@ dtb-$(CONFIG_ARCH_MESON) += \
meson-axg-s400.dtb \
meson-g12a-u200.dtb \
meson-g12a-sei510.dtb \
+ meson-g12b-gtking.dtb \
+ meson-g12b-gtking-pro.dtb \
meson-g12b-odroid-n2.dtb \
meson-g12b-odroid-n2-plus.dtb \
meson-g12b-a311d-khadas-vim3.dtb \
diff --git a/arch/arm/dts/meson-g12b-gtking-pro.dts b/arch/arm/dts/meson-g12b-gtking-pro.dts
new file mode 100644
index 0000000000..f0c56a16af
--- /dev/null
+++ b/arch/arm/dts/meson-g12b-gtking-pro.dts
@@ -0,0 +1,125 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 BayLibre, SAS
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
+ * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "meson-g12b-w400.dtsi"
+#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
+
+/ {
+ compatible = "azw,gtking", "amlogic,g12b";
+ model = "Beelink GT-King Pro";
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+
+ power-button {
+ label = "power";
+ linux,code = <KEY_POWER>;
+ gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ white {
+ label = "power:white";
+ gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>;
+ default-state = "on";
+ };
+ };
+
+ sound {
+ compatible = "amlogic,axg-sound-card";
+ model = "G12B-GTKING-PRO";
+ audio-aux-devs = <&tdmout_b>;
+ audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
+ "TDMOUT_B IN 1", "FRDDR_B OUT 1",
+ "TDMOUT_B IN 2", "FRDDR_C OUT 1",
+ "TDM_B Playback", "TDMOUT_B OUT";
+
+ assigned-clocks = <&clkc CLKID_MPLL2>,
+ <&clkc CLKID_MPLL0>,
+ <&clkc CLKID_MPLL1>;
+ assigned-clock-parents = <0>, <0>, <0>;
+ assigned-clock-rates = <294912000>,
+ <270950400>,
+ <393216000>;
+ status = "okay";
+
+ dai-link-0 {
+ sound-dai = <&frddr_a>;
+ };
+
+ dai-link-1 {
+ sound-dai = <&frddr_b>;
+ };
+
+ dai-link-2 {
+ sound-dai = <&frddr_c>;
+ };
+
+ /* 8ch hdmi interface */
+ dai-link-3 {
+ sound-dai = <&tdmif_b>;
+ dai-format = "i2s";
+ dai-tdm-slot-tx-mask-0 = <1 1>;
+ dai-tdm-slot-tx-mask-1 = <1 1>;
+ dai-tdm-slot-tx-mask-2 = <1 1>;
+ dai-tdm-slot-tx-mask-3 = <1 1>;
+ mclk-fs = <256>;
+
+ codec {
+ sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
+ };
+ };
+
+ dai-link-4 {
+ sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
+
+ codec {
+ sound-dai = <&hdmi_tx>;
+ };
+ };
+ };
+};
+
+&arb {
+ status = "okay";
+};
+
+&clkc_audio {
+ status = "okay";
+};
+
+&frddr_a {
+ status = "okay";
+};
+
+&frddr_b {
+ status = "okay";
+};
+
+&frddr_c {
+ status = "okay";
+};
+
+&tdmif_b {
+ status = "okay";
+};
+
+&tdmout_b {
+ status = "okay";
+};
+
+&tohdmitx {
+ status = "okay";
+};
diff --git a/arch/arm/dts/meson-g12b-gtking.dts b/arch/arm/dts/meson-g12b-gtking.dts
new file mode 100644
index 0000000000..eeb7bc5539
--- /dev/null
+++ b/arch/arm/dts/meson-g12b-gtking.dts
@@ -0,0 +1,145 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 BayLibre, SAS
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
+ * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "meson-g12b-w400.dtsi"
+#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
+
+/ {
+ compatible = "azw,gtking", "amlogic,g12b";
+ model = "Beelink GT-King";
+
+ spdif_dit: audio-codec-1 {
+ #sound-dai-cells = <0>;
+ compatible = "linux,spdif-dit";
+ status = "okay";
+ sound-name-prefix = "DIT";
+ };
+
+ sound {
+ compatible = "amlogic,axg-sound-card";
+ model = "G12B-GTKING";
+ audio-aux-devs = <&tdmout_b>;
+ audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
+ "TDMOUT_B IN 1", "FRDDR_B OUT 1",
+ "TDMOUT_B IN 2", "FRDDR_C OUT 1",
+ "TDM_B Playback", "TDMOUT_B OUT",
+ "SPDIFOUT IN 0", "FRDDR_A OUT 3",
+ "SPDIFOUT IN 1", "FRDDR_B OUT 3",
+ "SPDIFOUT IN 2", "FRDDR_C OUT 3";
+
+ assigned-clocks = <&clkc CLKID_MPLL2>,
+ <&clkc CLKID_MPLL0>,
+ <&clkc CLKID_MPLL1>;
+ assigned-clock-parents = <0>, <0>, <0>;
+ assigned-clock-rates = <294912000>,
+ <270950400>,
+ <393216000>;
+ status = "okay";
+
+ dai-link-0 {
+ sound-dai = <&frddr_a>;
+ };
+
+ dai-link-1 {
+ sound-dai = <&frddr_b>;
+ };
+
+ dai-link-2 {
+ sound-dai = <&frddr_c>;
+ };
+
+ /* 8ch hdmi interface */
+ dai-link-3 {
+ sound-dai = <&tdmif_b>;
+ dai-format = "i2s";
+ dai-tdm-slot-tx-mask-0 = <1 1>;
+ dai-tdm-slot-tx-mask-1 = <1 1>;
+ dai-tdm-slot-tx-mask-2 = <1 1>;
+ dai-tdm-slot-tx-mask-3 = <1 1>;
+ mclk-fs = <256>;
+
+ codec {
+ sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
+ };
+ };
+
+ /* spdif hdmi or toslink interface */
+ dai-link-4 {
+ sound-dai = <&spdifout>;
+
+ codec-0 {
+ sound-dai = <&spdif_dit>;
+ };
+
+ codec-1 {
+ sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>;
+ };
+ };
+
+ /* spdif hdmi interface */
+ dai-link-5 {
+ sound-dai = <&spdifout_b>;
+
+ codec {
+ sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>;
+ };
+ };
+
+ /* hdmi glue */
+ dai-link-6 {
+ sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
+
+ codec {
+ sound-dai = <&hdmi_tx>;
+ };
+ };
+ };
+};
+
+&arb {
+ status = "okay";
+};
+
+&clkc_audio {
+ status = "okay";
+};
+
+&frddr_a {
+ status = "okay";
+};
+
+&frddr_b {
+ status = "okay";
+};
+
+&frddr_c {
+ status = "okay";
+};
+
+&spdifout {
+ pinctrl-0 = <&spdif_out_h_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+};
+
+&spdifout_b {
+ status = "okay";
+};
+
+&tdmif_b {
+ status = "okay";
+};
+
+&tdmout_b {
+ status = "okay";
+};
+
+&tohdmitx {
+ status = "okay";
+};
diff --git a/arch/arm/dts/meson-g12b-w400.dtsi b/arch/arm/dts/meson-g12b-w400.dtsi
new file mode 100644
index 0000000000..2802ddbb83
--- /dev/null
+++ b/arch/arm/dts/meson-g12b-w400.dtsi
@@ -0,0 +1,425 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 BayLibre, SAS
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
+ * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "meson-g12b.dtsi"
+#include "meson-g12b-s922x.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/meson-g12a-gpio.h>
+
+/ {
+ aliases {
+ serial0 = &uart_AO;
+ ethernet0 = ðmac;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x0 0x0 0x40000000>;
+ };
+
+ emmc_pwrseq: emmc-pwrseq {
+ compatible = "mmc-pwrseq-emmc";
+ reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
+ };
+
+ sdio_pwrseq: sdio-pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
+ clocks = <&wifi32k>;
+ clock-names = "ext_clock";
+ };
+
+ flash_1v8: regulator-flash_1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "FLASH_1V8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ vin-supply = <&vcc_3v3>;
+ regulator-always-on;
+ };
+
+ main_12v: regulator-main_12v {
+ compatible = "regulator-fixed";
+ regulator-name = "12V";
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ regulator-always-on;
+ };
+
+ vcc_5v: regulator-vcc_5v {
+ compatible = "regulator-fixed";
+ regulator-name = "VCC_5V";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&main_12v>;
+
+ gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
+ enable-active-high;
+ };
+
+ vcc_1v8: regulator-vcc_1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "VCC_1V8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ vin-supply = <&vcc_3v3>;
+ 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 = <&vddao_3v3>;
+ regulator-always-on;
+ /* FIXME: actually controlled by VDDCPU_B_EN */
+ };
+
+ vddcpu_a: regulator-vddcpu-a {
+ /*
+ * MP1653 Regulator.
+ */
+ compatible = "pwm-regulator";
+
+ regulator-name = "VDDCPU_A";
+ regulator-min-microvolt = <721000>;
+ regulator-max-microvolt = <1022000>;
+
+ vin-supply = <&main_12v>;
+
+ pwms = <&pwm_ab 0 1250 0>;
+ pwm-dutycycle-range = <100 0>;
+
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vddcpu_b: regulator-vddcpu-b {
+ /*
+ * MP1652 Regulator.
+ */
+ compatible = "pwm-regulator";
+
+ regulator-name = "VDDCPU_B";
+ regulator-min-microvolt = <721000>;
+ regulator-max-microvolt = <1022000>;
+
+ vin-supply = <&main_12v>;
+
+ pwms = <&pwm_AO_cd 1 1250 0>;
+ pwm-dutycycle-range = <100 0>;
+
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ usb1_pow: regulator-usb1-pow {
+ compatible = "regulator-fixed";
+ regulator-name = "USB1_POW";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&vcc_5v>;
+
+ /* connected to SY6280A Power Switch */
+ gpio = <&gpio GPIOA_8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ usb_pwr_en: regulator-usb-pwr-en {
+ compatible = "regulator-fixed";
+ regulator-name = "USB_PWR_EN";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&vcc_5v>;
+
+ /* Connected to USB3 Type-A Port power enable */
+ gpio = <&gpio GPIOAO_7 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ vddao_1v8: regulator-vddao-1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "VDDAO_1V8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ vin-supply = <&vddao_3v3>;
+ regulator-always-on;
+ };
+
+ vddao_3v3: regulator-vddao-3v3 {
+ compatible = "regulator-fixed";
+ regulator-name = "VDDAO_3V3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ vin-supply = <&main_12v>;
+ regulator-always-on;
+ };
+
+ cvbs-connector {
+ compatible = "composite-video-connector";
+
+ port {
+ cvbs_connector_in: endpoint {
+ remote-endpoint = <&cvbs_vdac_out>;
+ };
+ };
+ };
+
+ hdmi-connector {
+ compatible = "hdmi-connector";
+ type = "a";
+
+ port {
+ hdmi_connector_in: endpoint {
+ remote-endpoint = <&hdmi_tx_tmds_out>;
+ };
+ };
+ };
+
+ wifi32k: wifi32k {
+ compatible = "pwm-clock";
+ #clock-cells = <0>;
+ clock-frequency = <32768>;
+ pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
+ };
+};
+
+&cec_AO {
+ pinctrl-0 = <&cec_ao_a_h_pins>;
+ pinctrl-names = "default";
+ status = "disabled";
+ hdmi-phandle = <&hdmi_tx>;
+};
+
+&cecb_AO {
+ pinctrl-0 = <&cec_ao_b_h_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+ hdmi-phandle = <&hdmi_tx>;
+};
+
+&cpu0 {
+ cpu-supply = <&vddcpu_b>;
+ operating-points-v2 = <&cpu_opp_table_0>;
+ clocks = <&clkc CLKID_CPU_CLK>;
+ clock-latency = <50000>;
+};
+
+&cpu1 {
+ cpu-supply = <&vddcpu_b>;
+ operating-points-v2 = <&cpu_opp_table_0>;
+ clocks = <&clkc CLKID_CPU_CLK>;
+ clock-latency = <50000>;
+};
+
+&cpu100 {
+ cpu-supply = <&vddcpu_a>;
+ operating-points-v2 = <&cpub_opp_table_1>;
+ clocks = <&clkc CLKID_CPUB_CLK>;
+ clock-latency = <50000>;
+};
+
+&cpu101 {
+ cpu-supply = <&vddcpu_a>;
+ operating-points-v2 = <&cpub_opp_table_1>;
+ clocks = <&clkc CLKID_CPUB_CLK>;
+ clock-latency = <50000>;
+};
+
+&cpu102 {
+ cpu-supply = <&vddcpu_a>;
+ operating-points-v2 = <&cpub_opp_table_1>;
+ clocks = <&clkc CLKID_CPUB_CLK>;
+ clock-latency = <50000>;
+};
+
+&cpu103 {
+ cpu-supply = <&vddcpu_a>;
+ operating-points-v2 = <&cpub_opp_table_1>;
+ clocks = <&clkc CLKID_CPUB_CLK>;
+ clock-latency = <50000>;
+};
+
+&cvbs_vdac_port {
+ cvbs_vdac_out: endpoint {
+ remote-endpoint = <&cvbs_connector_in>;
+ };
+};
+
+&ext_mdio {
+ external_phy: ethernet-phy@0 {
+ /* Realtek RTL8211F (0x001cc916) */
+ reg = <0>;
+ max-speed = <1000>;
+
+ reset-assert-us = <10000>;
+ reset-deassert-us = <30000>;
+ reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
+
+ interrupt-parent = <&gpio_intc>;
+ /* MAC_INTR on GPIOZ_14 */
+ interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
+ };
+};
+
+ðmac {
+ pinctrl-0 = <ð_pins>, <ð_rgmii_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+ phy-mode = "rgmii";
+ phy-handle = <&external_phy>;
+ amlogic,tx-delay-ns = <2>;
+};
+
+&hdmi_tx {
+ status = "okay";
+ pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
+ pinctrl-names = "default";
+ hdmi-supply = <&vcc_5v>;
+};
+
+&hdmi_tx_tmds_port {
+ hdmi_tx_tmds_out: endpoint {
+ remote-endpoint = <&hdmi_connector_in>;
+ };
+};
+
+&ir {
+ status = "okay";
+ pinctrl-0 = <&remote_input_ao_pins>;
+ pinctrl-names = "default";
+};
+
+&pwm_ab {
+ pinctrl-0 = <&pwm_a_e_pins>;
+ pinctrl-names = "default";
+ clocks = <&xtal>;
+ clock-names = "clkin0";
+ status = "okay";
+};
+
+&pwm_AO_cd {
+ pinctrl-0 = <&pwm_ao_d_e_pins>;
+ pinctrl-names = "default";
+ clocks = <&xtal>;
+ clock-names = "clkin1";
+ status = "okay";
+};
+
+&pwm_ef {
+ pinctrl-0 = <&pwm_e_pins>;
+ pinctrl-names = "default";
+ clocks = <&xtal>;
+ clock-names = "clkin0";
+ status = "okay";
+};
+
+/* SDIO */
+&sd_emmc_a {
+ status = "okay";
+ pinctrl-0 = <&sdio_pins>;
+ pinctrl-1 = <&sdio_clk_gate_pins>;
+ pinctrl-names = "default", "clk-gate";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ bus-width = <4>;
+ cap-sd-highspeed;
+ max-frequency = <100000000>;
+
+ /* WiFi firmware requires power to be kept while in suspend */
+ keep-power-in-suspend;
+
+ non-removable;
+ disable-wp;
+
+ mmc-pwrseq = <&sdio_pwrseq>;
+
+ vmmc-supply = <&vddao_3v3>;
+ vqmmc-supply = <&vddao_1v8>;
+
+ brcmf: wifi@1 {
+ reg = <1>;
+ compatible = "brcm,bcm4329-fmac";
+ };
+};
+
+/* SD card */
+&sd_emmc_b {
+ status = "okay";
+ pinctrl-0 = <&sdcard_c_pins>;
+ pinctrl-1 = <&sdcard_clk_gate_c_pins>;
+ pinctrl-names = "default", "clk-gate";
+
+ bus-width = <4>;
+ cap-sd-highspeed;
+ max-frequency = <50000000>;
+ disable-wp;
+
+ cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
+ vmmc-supply = <&vddao_3v3>;
+ vqmmc-supply = <&vddao_3v3>;
+};
+
+/* eMMC */
+&sd_emmc_c {
+ status = "okay";
+ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
+ pinctrl-1 = <&emmc_clk_gate_pins>;
+ pinctrl-names = "default", "clk-gate";
+
+ bus-width = <8>;
+ cap-mmc-highspeed;
+ max-frequency = <100000000>;
+ disable-wp;
+
+ mmc-pwrseq = <&emmc_pwrseq>;
+ vmmc-supply = <&vcc_3v3>;
+ vqmmc-supply = <&flash_1v8>;
+};
+
+&uart_A {
+ status = "okay";
+ pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
+ pinctrl-names = "default";
+ uart-has-rtscts;
+
+ bluetooth {
+ compatible = "brcm,bcm43438-bt";
+ shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
+ max-speed = <2000000>;
+ clocks = <&wifi32k>;
+ clock-names = "lpo";
+ };
+};
+
+&uart_AO {
+ status = "okay";
+ pinctrl-0 = <&uart_ao_a_pins>;
+ pinctrl-names = "default";
+};
+
+&usb {
+ status = "okay";
+ dr_mode = "host";
+ vbus-supply = <&usb_pwr_en>;
+};
+
+&usb2_phy0 {
+ phy-supply = <&usb1_pow>;
+};
+
+&usb2_phy1 {
+ phy-supply = <&usb1_pow>;
+};
--
2.17.1
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/5] boards: amlogic: add Beelink S922X board family support
2020-12-18 8:45 [PATCH 0/5] board: amlogic: add Beelink GT-King/Pro support Christian Hewitt
2020-12-18 8:45 ` [PATCH 1/5] ARM: dts: import Beelink GT-King/Pro DTs from Linux 5.10 Christian Hewitt
@ 2020-12-18 8:45 ` Christian Hewitt
2020-12-18 9:42 ` Neil Armstrong
2020-12-18 8:45 ` [PATCH 3/5] boards: amlogic: add Beelink GT-King defconfig Christian Hewitt
` (3 subsequent siblings)
5 siblings, 1 reply; 12+ messages in thread
From: Christian Hewitt @ 2020-12-18 8:45 UTC (permalink / raw)
To: u-boot, u-boot-amlogic, linux-amlogic; +Cc: Christian Hewitt
Copied from Odroid N2. Add myself as maintainer.
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
board/amlogic/beelink-s922x/MAINTAINERS | 9 ++++
board/amlogic/beelink-s922x/Makefile | 6 +++
board/amlogic/beelink-s922x/beelink-s922x.c | 54 +++++++++++++++++++++
3 files changed, 69 insertions(+)
create mode 100644 board/amlogic/beelink-s922x/MAINTAINERS
create mode 100644 board/amlogic/beelink-s922x/Makefile
create mode 100644 board/amlogic/beelink-s922x/beelink-s922x.c
diff --git a/board/amlogic/beelink-s922x/MAINTAINERS b/board/amlogic/beelink-s922x/MAINTAINERS
new file mode 100644
index 0000000000..7f223df4ae
--- /dev/null
+++ b/board/amlogic/beelink-s922x/MAINTAINERS
@@ -0,0 +1,9 @@
+BEELINK-S922X
+M: Christian Hewitt <christianshewitt@gmail.com>
+S: Maintained
+L: u-boot-amlogic@groups.io
+F: board/amlogic/beelink-s922x/
+F: configs/beelink-gtking_defconfig
+F: configs/beelink-gtkingpro_defconfig
+F: doc/board/amlogic/beelink-gtking.rst
+F: doc/board/amlogic/beelink-gtkingpro.rst
diff --git a/board/amlogic/beelink-s922x/Makefile b/board/amlogic/beelink-s922x/Makefile
new file mode 100644
index 0000000000..27b1a74105
--- /dev/null
+++ b/board/amlogic/beelink-s922x/Makefile
@@ -0,0 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# (C) Copyright 2020 BayLibre, SAS
+# Author: Neil Armstrong <narmstrong@baylibre.com>
+
+obj-y := beelink-s922x.o
diff --git a/board/amlogic/beelink-s922x/beelink-s922x.c b/board/amlogic/beelink-s922x/beelink-s922x.c
new file mode 100644
index 0000000000..dc0d933a39
--- /dev/null
+++ b/board/amlogic/beelink-s922x/beelink-s922x.c
@@ -0,0 +1,54 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2020 BayLibre, SAS
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <env.h>
+#include <init.h>
+#include <net.h>
+#include <asm/io.h>
+#include <asm/arch/sm.h>
+#include <asm/arch/eth.h>
+#include <asm/arch/boot.h>
+
+#define EFUSE_MAC_OFFSET 20
+#define EFUSE_MAC_SIZE 12
+#define MAC_ADDR_LEN 6
+
+int misc_init_r(void)
+{
+ u8 mac_addr[MAC_ADDR_LEN];
+ char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3];
+ ssize_t len;
+
+ if (IS_ENABLED(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG) &&
+ meson_get_soc_rev(tmp, sizeof(tmp)) > 0)
+ env_set("soc_rev", tmp);
+
+ meson_eth_init(PHY_INTERFACE_MODE_RGMII, 0);
+
+ if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
+ len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
+ efuse_mac_addr, EFUSE_MAC_SIZE);
+ if (len != EFUSE_MAC_SIZE)
+ return 0;
+
+ /* MAC is stored in ASCII format, 1bytes = 2characters */
+ for (int i = 0; i < 6; i++) {
+ tmp[0] = efuse_mac_addr[i * 2];
+ tmp[1] = efuse_mac_addr[i * 2 + 1];
+ tmp[2] = '\0';
+ mac_addr[i] = simple_strtoul(tmp, NULL, 16);
+ }
+
+ if (is_valid_ethaddr(mac_addr))
+ eth_env_set_enetaddr("ethaddr", mac_addr);
+ else
+ meson_generate_serial_ethaddr();
+ }
+
+ return 0;
+}
--
2.17.1
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/5] boards: amlogic: add Beelink GT-King defconfig
2020-12-18 8:45 [PATCH 0/5] board: amlogic: add Beelink GT-King/Pro support Christian Hewitt
2020-12-18 8:45 ` [PATCH 1/5] ARM: dts: import Beelink GT-King/Pro DTs from Linux 5.10 Christian Hewitt
2020-12-18 8:45 ` [PATCH 2/5] boards: amlogic: add Beelink S922X board family support Christian Hewitt
@ 2020-12-18 8:45 ` Christian Hewitt
2020-12-18 9:43 ` Neil Armstrong
2020-12-18 8:45 ` [PATCH 4/5] boards: amlogic: add Beelink GT-King Pro defconfig Christian Hewitt
` (2 subsequent siblings)
5 siblings, 1 reply; 12+ messages in thread
From: Christian Hewitt @ 2020-12-18 8:45 UTC (permalink / raw)
To: u-boot, u-boot-amlogic, linux-amlogic; +Cc: Christian Hewitt
Add a defconfig for the Beelink GT-King Android STB, which is based
on the Amlogic W400 reference design.
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
configs/beelink-gtking_defconfig | 71 ++++++++++++++++++++++++++++++++
1 file changed, 71 insertions(+)
create mode 100644 configs/beelink-gtking_defconfig
diff --git a/configs/beelink-gtking_defconfig b/configs/beelink-gtking_defconfig
new file mode 100644
index 0000000000..ea428874af
--- /dev/null
+++ b/configs/beelink-gtking_defconfig
@@ -0,0 +1,71 @@
+CONFIG_ARM=y
+CONFIG_SYS_BOARD="beelink-s922x"
+CONFIG_ARCH_MESON=y
+CONFIG_SYS_TEXT_BASE=0x01000000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_ENV_SIZE=0x2000
+CONFIG_DM_GPIO=y
+CONFIG_MESON_G12A=y
+CONFIG_DEBUG_UART_BASE=0xff803000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_IDENT_STRING=" beelink"
+CONFIG_DEFAULT_DEVICE_TREE="meson-g12b-gtking"
+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_SF_TEST=y
+CONFIG_CMD_SPI=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_USB_MASS_STORAGE=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_REGULATOR=y
+CONFIG_OF_CONTROL=y
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_DM_MMC=y
+CONFIG_MMC_MESON_GX=y
+CONFIG_MTD=y
+CONFIG_DM_MTD=y
+CONFIG_PHY_REALTEK=y
+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_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_GADGET is not set
+CONFIG_USB_DWC3_MESON_G12A=y
+CONFIG_USB_KEYBOARD=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_VENDOR_NUM=0x1b8e
+CONFIG_USB_GADGET_PRODUCT_NUM=0xfada
+CONFIG_USB_GADGET_DWC2_OTG=y
+CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y
+CONFIG_USB_GADGET_DOWNLOAD=y
+CONFIG_DM_VIDEO=y
+# CONFIG_VIDEO_BPP8 is not set
+# CONFIG_VIDEO_BPP16 is not set
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_VIDEO_MESON=y
+CONFIG_VIDEO_DT_SIMPLEFB=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
+CONFIG_OF_LIBFDT_OVERLAY=y
--
2.17.1
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 4/5] boards: amlogic: add Beelink GT-King Pro defconfig
2020-12-18 8:45 [PATCH 0/5] board: amlogic: add Beelink GT-King/Pro support Christian Hewitt
` (2 preceding siblings ...)
2020-12-18 8:45 ` [PATCH 3/5] boards: amlogic: add Beelink GT-King defconfig Christian Hewitt
@ 2020-12-18 8:45 ` Christian Hewitt
2020-12-18 9:43 ` Neil Armstrong
2020-12-18 8:45 ` [PATCH 5/5] boards: amlogic: update documentation for Beelink GT-King/Pro Christian Hewitt
2020-12-18 9:49 ` [PATCH 0/5] board: amlogic: add Beelink GT-King/Pro support Neil Armstrong
5 siblings, 1 reply; 12+ messages in thread
From: Christian Hewitt @ 2020-12-18 8:45 UTC (permalink / raw)
To: u-boot, u-boot-amlogic, linux-amlogic; +Cc: Christian Hewitt
Add a defconfig for the Beelink GT-King Pro Android STB, which is based
on the Amlogic W400 reference design.
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
configs/beelink-gtkingpro_defconfig | 71 +++++++++++++++++++++++++++++
1 file changed, 71 insertions(+)
create mode 100644 configs/beelink-gtkingpro_defconfig
diff --git a/configs/beelink-gtkingpro_defconfig b/configs/beelink-gtkingpro_defconfig
new file mode 100644
index 0000000000..569031600a
--- /dev/null
+++ b/configs/beelink-gtkingpro_defconfig
@@ -0,0 +1,71 @@
+CONFIG_ARM=y
+CONFIG_SYS_BOARD="beelink-s922x"
+CONFIG_ARCH_MESON=y
+CONFIG_SYS_TEXT_BASE=0x01000000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_ENV_SIZE=0x2000
+CONFIG_DM_GPIO=y
+CONFIG_MESON_G12A=y
+CONFIG_DEBUG_UART_BASE=0xff803000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_IDENT_STRING=" beelink"
+CONFIG_DEFAULT_DEVICE_TREE="meson-g12b-gtking-pro"
+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_SF_TEST=y
+CONFIG_CMD_SPI=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_USB_MASS_STORAGE=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_REGULATOR=y
+CONFIG_OF_CONTROL=y
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_DM_MMC=y
+CONFIG_MMC_MESON_GX=y
+CONFIG_MTD=y
+CONFIG_DM_MTD=y
+CONFIG_PHY_REALTEK=y
+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_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_GADGET is not set
+CONFIG_USB_DWC3_MESON_G12A=y
+CONFIG_USB_KEYBOARD=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_VENDOR_NUM=0x1b8e
+CONFIG_USB_GADGET_PRODUCT_NUM=0xfada
+CONFIG_USB_GADGET_DWC2_OTG=y
+CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y
+CONFIG_USB_GADGET_DOWNLOAD=y
+CONFIG_DM_VIDEO=y
+# CONFIG_VIDEO_BPP8 is not set
+# CONFIG_VIDEO_BPP16 is not set
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_VIDEO_MESON=y
+CONFIG_VIDEO_DT_SIMPLEFB=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
+CONFIG_OF_LIBFDT_OVERLAY=y
--
2.17.1
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 5/5] boards: amlogic: update documentation for Beelink GT-King/Pro
2020-12-18 8:45 [PATCH 0/5] board: amlogic: add Beelink GT-King/Pro support Christian Hewitt
` (3 preceding siblings ...)
2020-12-18 8:45 ` [PATCH 4/5] boards: amlogic: add Beelink GT-King Pro defconfig Christian Hewitt
@ 2020-12-18 8:45 ` Christian Hewitt
2020-12-18 9:47 ` Neil Armstrong
2020-12-18 9:49 ` [PATCH 0/5] board: amlogic: add Beelink GT-King/Pro support Neil Armstrong
5 siblings, 1 reply; 12+ messages in thread
From: Christian Hewitt @ 2020-12-18 8:45 UTC (permalink / raw)
To: u-boot, u-boot-amlogic, linux-amlogic; +Cc: Christian Hewitt
Update the device matrix and add build instructions.
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
doc/board/amlogic/beelink-gtking.rst | 115 +++++++++++++++++++++++
doc/board/amlogic/beelink-gtkingpro.rst | 116 ++++++++++++++++++++++++
doc/board/amlogic/index.rst | 4 +-
3 files changed, 234 insertions(+), 1 deletion(-)
create mode 100644 doc/board/amlogic/beelink-gtking.rst
create mode 100644 doc/board/amlogic/beelink-gtkingpro.rst
diff --git a/doc/board/amlogic/beelink-gtking.rst b/doc/board/amlogic/beelink-gtking.rst
new file mode 100644
index 0000000000..56ce2cb273
--- /dev/null
+++ b/doc/board/amlogic/beelink-gtking.rst
@@ -0,0 +1,115 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+U-Boot for Beelink GT-King
+==========================
+
+The Shenzen AZW (Beelink) GT-King is based on the Amlogic W400 reference
+board with an S922X-H chip.
+
+- 4GB LPDDR4 RAM
+- 64GB eMMC storage
+- 10/100/1000 Base-T Ethernet
+- AP6356S Wireless (802.11 a/b/g/n/ac, BT 4.1)
+- HDMI 2.1 video
+- S/PDIF optical output
+- Analogue audio output
+- 1x USB 2.0 port
+- 2x USB 3.0 ports
+- IR receiver
+- 1x micro SD card slot
+
+Beelink do not provide public schematics, but have been willing
+to share them with known distro developers on request.
+
+U-Boot compilation
+------------------
+
+.. code-block:: bash
+
+ $ export CROSS_COMPILE=aarch64-none-elf-
+ $ make beelink-gtking_defconfig
+ $ make
+
+Image creation
+--------------
+
+Amlogic does not provide sources for the firmware and for tools needed
+to create the bootloader image. Beelink have provided the Amlogic "SDK"
+in their forums, but the u-boot sources included result in 2GB RAM being
+detected. The following FIPs were generated with newer private sources
+and give correct (4GB) RAM detection:
+
+https://github.com/LibreELEC/amlogic-boot-fip/tree/master/beelink-s922x
+
+NB: Beelink use a common board config for GT-King, GT-King Pro and the
+GS-King-X model, hence the "beelink-s922x" name.
+
+.. code-block:: bash
+
+ $ wget https://github.com/LibreELEC/amlogic-boot-fip/archive/master.zip
+ $ unzip master.zip
+ $ export FIPDIR=$PWD/amlogic-boot-fip/beelink-s922x
+
+Go back to the mainline U-Boot source tree then:
+
+.. code-block:: bash
+
+ $ mkdir fip
+ $ cp $FIPDIR/* 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
+
+ $ fip/aml_encrypt_g12b --bl30sig --input fip/bl30_new.bin \
+ --output fip/bl30_new.bin.g12a.enc \
+ --level v3
+ $ fip/aml_encrypt_g12b --bl3sig --input fip/bl30_new.bin.g12a.enc \
+ --output fip/bl30_new.bin.enc \
+ --level v3 --type bl30
+ $ fip/aml_encrypt_g12b --bl3sig --input fip/bl31.img \
+ --output fip/bl31.img.enc \
+ --level v3 --type bl31
+ $ fip/aml_encrypt_g12b --bl3sig --input fip/bl33.bin --compress lz4 \
+ --output fip/bl33.bin.enc \
+ --level v3 --type bl33
+ $ fip/aml_encrypt_g12b --bl2sig --input fip/bl2_new.bin \
+ --output fip/bl2.n.bin.sig
+ $ fip/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:
+
+.. code-block:: bash
+
+ $ 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/doc/board/amlogic/beelink-gtkingpro.rst b/doc/board/amlogic/beelink-gtkingpro.rst
new file mode 100644
index 0000000000..d750351361
--- /dev/null
+++ b/doc/board/amlogic/beelink-gtkingpro.rst
@@ -0,0 +1,116 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+U-Boot for Beelink GT-King Pro
+==============================
+
+The Shenzen AZW (Beelink) GT-King Pro is based on the Amlogic W400 reference
+board with an S922X-H chip.
+
+- 4GB LPDDR4 RAM
+- 64GB eMMC storage
+- 10/100/1000 Base-T Ethernet
+- AP6356S Wireless (802.11 a/b/g/n/ac, BT 4.1)
+- HDMI 2.1 video
+- Analogue audio output
+- 1x RS232 port
+- 2x USB 2.0 port
+- 2x USB 3.0 ports
+- IR receiver
+- 1x SD card slot
+- 1x Power on/off button
+
+Beelink do not provide public schematics, but have been willing
+to share them with known distro developers on request.
+
+U-Boot compilation
+------------------
+
+.. code-block:: bash
+
+ $ export CROSS_COMPILE=aarch64-none-elf-
+ $ make beelink-gtkingpro_defconfig
+ $ make
+
+Image creation
+--------------
+
+Amlogic does not provide sources for the firmware and for tools needed
+to create the bootloader image. Beelink have provided the Amlogic "SDK"
+in their forums, but the u-boot sources included result in 2GB RAM being
+detected. The following FIPs were generated with newer private sources
+and give correct (4GB) RAM detection:
+
+https://github.com/LibreELEC/amlogic-boot-fip/tree/master/beelink-s922x
+
+NB: Beelink use a common board config for GT-King, GT-King Pro and the
+GS-King-X model, hence the "beelink-s922x" name.
+
+.. code-block:: bash
+
+ $ wget https://github.com/LibreELEC/amlogic-boot-fip/archive/master.zip
+ $ unzip master.zip
+ $ export FIPDIR=$PWD/amlogic-boot-fip/beelink-s922x
+
+Go back to the mainline U-Boot source tree then:
+
+.. code-block:: bash
+
+ $ mkdir fip
+ $ cp $FIPDIR/* 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
+
+ $ fip/aml_encrypt_g12b --bl30sig --input fip/bl30_new.bin \
+ --output fip/bl30_new.bin.g12a.enc \
+ --level v3
+ $ fip/aml_encrypt_g12b --bl3sig --input fip/bl30_new.bin.g12a.enc \
+ --output fip/bl30_new.bin.enc \
+ --level v3 --type bl30
+ $ fip/aml_encrypt_g12b --bl3sig --input fip/bl31.img \
+ --output fip/bl31.img.enc \
+ --level v3 --type bl31
+ $ fip/aml_encrypt_g12b --bl3sig --input fip/bl33.bin --compress lz4 \
+ --output fip/bl33.bin.enc \
+ --level v3 --type bl33
+ $ fip/aml_encrypt_g12b --bl2sig --input fip/bl2_new.bin \
+ --output fip/bl2.n.bin.sig
+ $ fip/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:
+
+.. code-block:: bash
+
+ $ 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/doc/board/amlogic/index.rst b/doc/board/amlogic/index.rst
index a585d857df..275c3664b7 100644
--- a/doc/board/amlogic/index.rst
+++ b/doc/board/amlogic/index.rst
@@ -17,7 +17,7 @@ This matrix concerns the actual source code version.
+===============================+===========+=================+==============+============+============+=============+==============+
| Boards | Odroid-C2 | P212 | Khadas VIM2 | S400 | U200 | Odroid-N2 | SEI610 |
| | Nanopi-K2 | Khadas-VIM | Libretech-PC | | SEI510 | Khadas-VIM3 | Khadas-VIM3L |
-| | P200 | LibreTech-CC v1 | WeTek Core2 | | | | Odroid-C4 |
+| | P200 | LibreTech-CC v1 | WeTek Core2 | | | GT-King/Pro | Odroid-C4 |
| | P201 | LibreTech-AC v2 | | | | | |
+-------------------------------+-----------+-----------------+--------------+------------+------------+-------------+--------------+
| UART | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
@@ -77,6 +77,8 @@ Board Documentation
.. toctree::
:maxdepth: 1
+ beelink-gtking
+ beelink-gtkingpro
khadas-vim2
khadas-vim3l
khadas-vim3
--
2.17.1
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/5] ARM: dts: import Beelink GT-King/Pro DTs from Linux 5.10
2020-12-18 8:45 ` [PATCH 1/5] ARM: dts: import Beelink GT-King/Pro DTs from Linux 5.10 Christian Hewitt
@ 2020-12-18 9:42 ` Neil Armstrong
0 siblings, 0 replies; 12+ messages in thread
From: Neil Armstrong @ 2020-12-18 9:42 UTC (permalink / raw)
To: Christian Hewitt, u-boot, u-boot-amlogic, linux-amlogic
On 18/12/2020 09:45, Christian Hewitt wrote:
> Import the Beelink GT-King/Pro and supporting meson-g12b-w400.dtsi file
> from Linux 5.10.
>
> Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
> ---
> arch/arm/dts/Makefile | 2 +
> arch/arm/dts/meson-g12b-gtking-pro.dts | 125 ++++++++
> arch/arm/dts/meson-g12b-gtking.dts | 145 +++++++++
> arch/arm/dts/meson-g12b-w400.dtsi | 425 +++++++++++++++++++++++++
> 4 files changed, 697 insertions(+)
> create mode 100644 arch/arm/dts/meson-g12b-gtking-pro.dts
> create mode 100644 arch/arm/dts/meson-g12b-gtking.dts
> create mode 100644 arch/arm/dts/meson-g12b-w400.dtsi
>
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 02dd6a832f..287ac63da4 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -170,6 +170,8 @@ dtb-$(CONFIG_ARCH_MESON) += \
> meson-axg-s400.dtb \
> meson-g12a-u200.dtb \
> meson-g12a-sei510.dtb \
> + meson-g12b-gtking.dtb \
> + meson-g12b-gtking-pro.dtb \
> meson-g12b-odroid-n2.dtb \
> meson-g12b-odroid-n2-plus.dtb \
> meson-g12b-a311d-khadas-vim3.dtb \
> diff --git a/arch/arm/dts/meson-g12b-gtking-pro.dts b/arch/arm/dts/meson-g12b-gtking-pro.dts
> new file mode 100644
> index 0000000000..f0c56a16af
> --- /dev/null
> +++ b/arch/arm/dts/meson-g12b-gtking-pro.dts
> @@ -0,0 +1,125 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2019 BayLibre, SAS
> + * Author: Neil Armstrong <narmstrong@baylibre.com>
> + * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
> + */
> +
> +/dts-v1/;
> +
> +#include "meson-g12b-w400.dtsi"
> +#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
> +
> +/ {
> + compatible = "azw,gtking", "amlogic,g12b";
> + model = "Beelink GT-King Pro";
> +
> + gpio-keys-polled {
> + compatible = "gpio-keys-polled";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + poll-interval = <100>;
> +
> + power-button {
> + label = "power";
> + linux,code = <KEY_POWER>;
> + gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
> + };
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> +
> + white {
> + label = "power:white";
> + gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>;
> + default-state = "on";
> + };
> + };
> +
> + sound {
> + compatible = "amlogic,axg-sound-card";
> + model = "G12B-GTKING-PRO";
> + audio-aux-devs = <&tdmout_b>;
> + audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
> + "TDMOUT_B IN 1", "FRDDR_B OUT 1",
> + "TDMOUT_B IN 2", "FRDDR_C OUT 1",
> + "TDM_B Playback", "TDMOUT_B OUT";
> +
> + assigned-clocks = <&clkc CLKID_MPLL2>,
> + <&clkc CLKID_MPLL0>,
> + <&clkc CLKID_MPLL1>;
> + assigned-clock-parents = <0>, <0>, <0>;
> + assigned-clock-rates = <294912000>,
> + <270950400>,
> + <393216000>;
> + status = "okay";
> +
> + dai-link-0 {
> + sound-dai = <&frddr_a>;
> + };
> +
> + dai-link-1 {
> + sound-dai = <&frddr_b>;
> + };
> +
> + dai-link-2 {
> + sound-dai = <&frddr_c>;
> + };
> +
> + /* 8ch hdmi interface */
> + dai-link-3 {
> + sound-dai = <&tdmif_b>;
> + dai-format = "i2s";
> + dai-tdm-slot-tx-mask-0 = <1 1>;
> + dai-tdm-slot-tx-mask-1 = <1 1>;
> + dai-tdm-slot-tx-mask-2 = <1 1>;
> + dai-tdm-slot-tx-mask-3 = <1 1>;
> + mclk-fs = <256>;
> +
> + codec {
> + sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
> + };
> + };
> +
> + dai-link-4 {
> + sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
> +
> + codec {
> + sound-dai = <&hdmi_tx>;
> + };
> + };
> + };
> +};
> +
> +&arb {
> + status = "okay";
> +};
> +
> +&clkc_audio {
> + status = "okay";
> +};
> +
> +&frddr_a {
> + status = "okay";
> +};
> +
> +&frddr_b {
> + status = "okay";
> +};
> +
> +&frddr_c {
> + status = "okay";
> +};
> +
> +&tdmif_b {
> + status = "okay";
> +};
> +
> +&tdmout_b {
> + status = "okay";
> +};
> +
> +&tohdmitx {
> + status = "okay";
> +};
> diff --git a/arch/arm/dts/meson-g12b-gtking.dts b/arch/arm/dts/meson-g12b-gtking.dts
> new file mode 100644
> index 0000000000..eeb7bc5539
> --- /dev/null
> +++ b/arch/arm/dts/meson-g12b-gtking.dts
> @@ -0,0 +1,145 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2019 BayLibre, SAS
> + * Author: Neil Armstrong <narmstrong@baylibre.com>
> + * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
> + */
> +
> +/dts-v1/;
> +
> +#include "meson-g12b-w400.dtsi"
> +#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
> +
> +/ {
> + compatible = "azw,gtking", "amlogic,g12b";
> + model = "Beelink GT-King";
> +
> + spdif_dit: audio-codec-1 {
> + #sound-dai-cells = <0>;
> + compatible = "linux,spdif-dit";
> + status = "okay";
> + sound-name-prefix = "DIT";
> + };
> +
> + sound {
> + compatible = "amlogic,axg-sound-card";
> + model = "G12B-GTKING";
> + audio-aux-devs = <&tdmout_b>;
> + audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
> + "TDMOUT_B IN 1", "FRDDR_B OUT 1",
> + "TDMOUT_B IN 2", "FRDDR_C OUT 1",
> + "TDM_B Playback", "TDMOUT_B OUT",
> + "SPDIFOUT IN 0", "FRDDR_A OUT 3",
> + "SPDIFOUT IN 1", "FRDDR_B OUT 3",
> + "SPDIFOUT IN 2", "FRDDR_C OUT 3";
> +
> + assigned-clocks = <&clkc CLKID_MPLL2>,
> + <&clkc CLKID_MPLL0>,
> + <&clkc CLKID_MPLL1>;
> + assigned-clock-parents = <0>, <0>, <0>;
> + assigned-clock-rates = <294912000>,
> + <270950400>,
> + <393216000>;
> + status = "okay";
> +
> + dai-link-0 {
> + sound-dai = <&frddr_a>;
> + };
> +
> + dai-link-1 {
> + sound-dai = <&frddr_b>;
> + };
> +
> + dai-link-2 {
> + sound-dai = <&frddr_c>;
> + };
> +
> + /* 8ch hdmi interface */
> + dai-link-3 {
> + sound-dai = <&tdmif_b>;
> + dai-format = "i2s";
> + dai-tdm-slot-tx-mask-0 = <1 1>;
> + dai-tdm-slot-tx-mask-1 = <1 1>;
> + dai-tdm-slot-tx-mask-2 = <1 1>;
> + dai-tdm-slot-tx-mask-3 = <1 1>;
> + mclk-fs = <256>;
> +
> + codec {
> + sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
> + };
> + };
> +
> + /* spdif hdmi or toslink interface */
> + dai-link-4 {
> + sound-dai = <&spdifout>;
> +
> + codec-0 {
> + sound-dai = <&spdif_dit>;
> + };
> +
> + codec-1 {
> + sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>;
> + };
> + };
> +
> + /* spdif hdmi interface */
> + dai-link-5 {
> + sound-dai = <&spdifout_b>;
> +
> + codec {
> + sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>;
> + };
> + };
> +
> + /* hdmi glue */
> + dai-link-6 {
> + sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
> +
> + codec {
> + sound-dai = <&hdmi_tx>;
> + };
> + };
> + };
> +};
> +
> +&arb {
> + status = "okay";
> +};
> +
> +&clkc_audio {
> + status = "okay";
> +};
> +
> +&frddr_a {
> + status = "okay";
> +};
> +
> +&frddr_b {
> + status = "okay";
> +};
> +
> +&frddr_c {
> + status = "okay";
> +};
> +
> +&spdifout {
> + pinctrl-0 = <&spdif_out_h_pins>;
> + pinctrl-names = "default";
> + status = "okay";
> +};
> +
> +&spdifout_b {
> + status = "okay";
> +};
> +
> +&tdmif_b {
> + status = "okay";
> +};
> +
> +&tdmout_b {
> + status = "okay";
> +};
> +
> +&tohdmitx {
> + status = "okay";
> +};
> diff --git a/arch/arm/dts/meson-g12b-w400.dtsi b/arch/arm/dts/meson-g12b-w400.dtsi
> new file mode 100644
> index 0000000000..2802ddbb83
> --- /dev/null
> +++ b/arch/arm/dts/meson-g12b-w400.dtsi
> @@ -0,0 +1,425 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2019 BayLibre, SAS
> + * Author: Neil Armstrong <narmstrong@baylibre.com>
> + * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
> + */
> +
> +/dts-v1/;
> +
> +#include "meson-g12b.dtsi"
> +#include "meson-g12b-s922x.dtsi"
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/gpio/meson-g12a-gpio.h>
> +
> +/ {
> + aliases {
> + serial0 = &uart_AO;
> + ethernet0 = ðmac;
> + };
> +
> + chosen {
> + stdout-path = "serial0:115200n8";
> + };
> +
> + memory@0 {
> + device_type = "memory";
> + reg = <0x0 0x0 0x0 0x40000000>;
> + };
> +
> + emmc_pwrseq: emmc-pwrseq {
> + compatible = "mmc-pwrseq-emmc";
> + reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
> + };
> +
> + sdio_pwrseq: sdio-pwrseq {
> + compatible = "mmc-pwrseq-simple";
> + reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
> + clocks = <&wifi32k>;
> + clock-names = "ext_clock";
> + };
> +
> + flash_1v8: regulator-flash_1v8 {
> + compatible = "regulator-fixed";
> + regulator-name = "FLASH_1V8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + vin-supply = <&vcc_3v3>;
> + regulator-always-on;
> + };
> +
> + main_12v: regulator-main_12v {
> + compatible = "regulator-fixed";
> + regulator-name = "12V";
> + regulator-min-microvolt = <12000000>;
> + regulator-max-microvolt = <12000000>;
> + regulator-always-on;
> + };
> +
> + vcc_5v: regulator-vcc_5v {
> + compatible = "regulator-fixed";
> + regulator-name = "VCC_5V";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + vin-supply = <&main_12v>;
> +
> + gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
> + enable-active-high;
> + };
> +
> + vcc_1v8: regulator-vcc_1v8 {
> + compatible = "regulator-fixed";
> + regulator-name = "VCC_1V8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + vin-supply = <&vcc_3v3>;
> + 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 = <&vddao_3v3>;
> + regulator-always-on;
> + /* FIXME: actually controlled by VDDCPU_B_EN */
> + };
> +
> + vddcpu_a: regulator-vddcpu-a {
> + /*
> + * MP1653 Regulator.
> + */
> + compatible = "pwm-regulator";
> +
> + regulator-name = "VDDCPU_A";
> + regulator-min-microvolt = <721000>;
> + regulator-max-microvolt = <1022000>;
> +
> + vin-supply = <&main_12v>;
> +
> + pwms = <&pwm_ab 0 1250 0>;
> + pwm-dutycycle-range = <100 0>;
> +
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + vddcpu_b: regulator-vddcpu-b {
> + /*
> + * MP1652 Regulator.
> + */
> + compatible = "pwm-regulator";
> +
> + regulator-name = "VDDCPU_B";
> + regulator-min-microvolt = <721000>;
> + regulator-max-microvolt = <1022000>;
> +
> + vin-supply = <&main_12v>;
> +
> + pwms = <&pwm_AO_cd 1 1250 0>;
> + pwm-dutycycle-range = <100 0>;
> +
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + usb1_pow: regulator-usb1-pow {
> + compatible = "regulator-fixed";
> + regulator-name = "USB1_POW";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + vin-supply = <&vcc_5v>;
> +
> + /* connected to SY6280A Power Switch */
> + gpio = <&gpio GPIOA_8 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + usb_pwr_en: regulator-usb-pwr-en {
> + compatible = "regulator-fixed";
> + regulator-name = "USB_PWR_EN";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + vin-supply = <&vcc_5v>;
> +
> + /* Connected to USB3 Type-A Port power enable */
> + gpio = <&gpio GPIOAO_7 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + vddao_1v8: regulator-vddao-1v8 {
> + compatible = "regulator-fixed";
> + regulator-name = "VDDAO_1V8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + vin-supply = <&vddao_3v3>;
> + regulator-always-on;
> + };
> +
> + vddao_3v3: regulator-vddao-3v3 {
> + compatible = "regulator-fixed";
> + regulator-name = "VDDAO_3V3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + vin-supply = <&main_12v>;
> + regulator-always-on;
> + };
> +
> + cvbs-connector {
> + compatible = "composite-video-connector";
> +
> + port {
> + cvbs_connector_in: endpoint {
> + remote-endpoint = <&cvbs_vdac_out>;
> + };
> + };
> + };
> +
> + hdmi-connector {
> + compatible = "hdmi-connector";
> + type = "a";
> +
> + port {
> + hdmi_connector_in: endpoint {
> + remote-endpoint = <&hdmi_tx_tmds_out>;
> + };
> + };
> + };
> +
> + wifi32k: wifi32k {
> + compatible = "pwm-clock";
> + #clock-cells = <0>;
> + clock-frequency = <32768>;
> + pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
> + };
> +};
> +
> +&cec_AO {
> + pinctrl-0 = <&cec_ao_a_h_pins>;
> + pinctrl-names = "default";
> + status = "disabled";
> + hdmi-phandle = <&hdmi_tx>;
> +};
> +
> +&cecb_AO {
> + pinctrl-0 = <&cec_ao_b_h_pins>;
> + pinctrl-names = "default";
> + status = "okay";
> + hdmi-phandle = <&hdmi_tx>;
> +};
> +
> +&cpu0 {
> + cpu-supply = <&vddcpu_b>;
> + operating-points-v2 = <&cpu_opp_table_0>;
> + clocks = <&clkc CLKID_CPU_CLK>;
> + clock-latency = <50000>;
> +};
> +
> +&cpu1 {
> + cpu-supply = <&vddcpu_b>;
> + operating-points-v2 = <&cpu_opp_table_0>;
> + clocks = <&clkc CLKID_CPU_CLK>;
> + clock-latency = <50000>;
> +};
> +
> +&cpu100 {
> + cpu-supply = <&vddcpu_a>;
> + operating-points-v2 = <&cpub_opp_table_1>;
> + clocks = <&clkc CLKID_CPUB_CLK>;
> + clock-latency = <50000>;
> +};
> +
> +&cpu101 {
> + cpu-supply = <&vddcpu_a>;
> + operating-points-v2 = <&cpub_opp_table_1>;
> + clocks = <&clkc CLKID_CPUB_CLK>;
> + clock-latency = <50000>;
> +};
> +
> +&cpu102 {
> + cpu-supply = <&vddcpu_a>;
> + operating-points-v2 = <&cpub_opp_table_1>;
> + clocks = <&clkc CLKID_CPUB_CLK>;
> + clock-latency = <50000>;
> +};
> +
> +&cpu103 {
> + cpu-supply = <&vddcpu_a>;
> + operating-points-v2 = <&cpub_opp_table_1>;
> + clocks = <&clkc CLKID_CPUB_CLK>;
> + clock-latency = <50000>;
> +};
> +
> +&cvbs_vdac_port {
> + cvbs_vdac_out: endpoint {
> + remote-endpoint = <&cvbs_connector_in>;
> + };
> +};
> +
> +&ext_mdio {
> + external_phy: ethernet-phy@0 {
> + /* Realtek RTL8211F (0x001cc916) */
> + reg = <0>;
> + max-speed = <1000>;
> +
> + reset-assert-us = <10000>;
> + reset-deassert-us = <30000>;
> + reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
> +
> + interrupt-parent = <&gpio_intc>;
> + /* MAC_INTR on GPIOZ_14 */
> + interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
> + };
> +};
> +
> +ðmac {
> + pinctrl-0 = <ð_pins>, <ð_rgmii_pins>;
> + pinctrl-names = "default";
> + status = "okay";
> + phy-mode = "rgmii";
> + phy-handle = <&external_phy>;
> + amlogic,tx-delay-ns = <2>;
> +};
> +
> +&hdmi_tx {
> + status = "okay";
> + pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
> + pinctrl-names = "default";
> + hdmi-supply = <&vcc_5v>;
> +};
> +
> +&hdmi_tx_tmds_port {
> + hdmi_tx_tmds_out: endpoint {
> + remote-endpoint = <&hdmi_connector_in>;
> + };
> +};
> +
> +&ir {
> + status = "okay";
> + pinctrl-0 = <&remote_input_ao_pins>;
> + pinctrl-names = "default";
> +};
> +
> +&pwm_ab {
> + pinctrl-0 = <&pwm_a_e_pins>;
> + pinctrl-names = "default";
> + clocks = <&xtal>;
> + clock-names = "clkin0";
> + status = "okay";
> +};
> +
> +&pwm_AO_cd {
> + pinctrl-0 = <&pwm_ao_d_e_pins>;
> + pinctrl-names = "default";
> + clocks = <&xtal>;
> + clock-names = "clkin1";
> + status = "okay";
> +};
> +
> +&pwm_ef {
> + pinctrl-0 = <&pwm_e_pins>;
> + pinctrl-names = "default";
> + clocks = <&xtal>;
> + clock-names = "clkin0";
> + status = "okay";
> +};
> +
> +/* SDIO */
> +&sd_emmc_a {
> + status = "okay";
> + pinctrl-0 = <&sdio_pins>;
> + pinctrl-1 = <&sdio_clk_gate_pins>;
> + pinctrl-names = "default", "clk-gate";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + bus-width = <4>;
> + cap-sd-highspeed;
> + max-frequency = <100000000>;
> +
> + /* WiFi firmware requires power to be kept while in suspend */
> + keep-power-in-suspend;
> +
> + non-removable;
> + disable-wp;
> +
> + mmc-pwrseq = <&sdio_pwrseq>;
> +
> + vmmc-supply = <&vddao_3v3>;
> + vqmmc-supply = <&vddao_1v8>;
> +
> + brcmf: wifi@1 {
> + reg = <1>;
> + compatible = "brcm,bcm4329-fmac";
> + };
> +};
> +
> +/* SD card */
> +&sd_emmc_b {
> + status = "okay";
> + pinctrl-0 = <&sdcard_c_pins>;
> + pinctrl-1 = <&sdcard_clk_gate_c_pins>;
> + pinctrl-names = "default", "clk-gate";
> +
> + bus-width = <4>;
> + cap-sd-highspeed;
> + max-frequency = <50000000>;
> + disable-wp;
> +
> + cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
> + vmmc-supply = <&vddao_3v3>;
> + vqmmc-supply = <&vddao_3v3>;
> +};
> +
> +/* eMMC */
> +&sd_emmc_c {
> + status = "okay";
> + pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
> + pinctrl-1 = <&emmc_clk_gate_pins>;
> + pinctrl-names = "default", "clk-gate";
> +
> + bus-width = <8>;
> + cap-mmc-highspeed;
> + max-frequency = <100000000>;
> + disable-wp;
> +
> + mmc-pwrseq = <&emmc_pwrseq>;
> + vmmc-supply = <&vcc_3v3>;
> + vqmmc-supply = <&flash_1v8>;
> +};
> +
> +&uart_A {
> + status = "okay";
> + pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
> + pinctrl-names = "default";
> + uart-has-rtscts;
> +
> + bluetooth {
> + compatible = "brcm,bcm43438-bt";
> + shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
> + max-speed = <2000000>;
> + clocks = <&wifi32k>;
> + clock-names = "lpo";
> + };
> +};
> +
> +&uart_AO {
> + status = "okay";
> + pinctrl-0 = <&uart_ao_a_pins>;
> + pinctrl-names = "default";
> +};
> +
> +&usb {
> + status = "okay";
> + dr_mode = "host";
> + vbus-supply = <&usb_pwr_en>;
> +};
> +
> +&usb2_phy0 {
> + phy-supply = <&usb1_pow>;
> +};
> +
> +&usb2_phy1 {
> + phy-supply = <&usb1_pow>;
> +};
>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/5] boards: amlogic: add Beelink S922X board family support
2020-12-18 8:45 ` [PATCH 2/5] boards: amlogic: add Beelink S922X board family support Christian Hewitt
@ 2020-12-18 9:42 ` Neil Armstrong
0 siblings, 0 replies; 12+ messages in thread
From: Neil Armstrong @ 2020-12-18 9:42 UTC (permalink / raw)
To: Christian Hewitt, u-boot, u-boot-amlogic, linux-amlogic
On 18/12/2020 09:45, Christian Hewitt wrote:
> Copied from Odroid N2. Add myself as maintainer.
>
> Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
> ---
> board/amlogic/beelink-s922x/MAINTAINERS | 9 ++++
> board/amlogic/beelink-s922x/Makefile | 6 +++
> board/amlogic/beelink-s922x/beelink-s922x.c | 54 +++++++++++++++++++++
> 3 files changed, 69 insertions(+)
> create mode 100644 board/amlogic/beelink-s922x/MAINTAINERS
> create mode 100644 board/amlogic/beelink-s922x/Makefile
> create mode 100644 board/amlogic/beelink-s922x/beelink-s922x.c
>
> diff --git a/board/amlogic/beelink-s922x/MAINTAINERS b/board/amlogic/beelink-s922x/MAINTAINERS
> new file mode 100644
> index 0000000000..7f223df4ae
> --- /dev/null
> +++ b/board/amlogic/beelink-s922x/MAINTAINERS
> @@ -0,0 +1,9 @@
> +BEELINK-S922X
> +M: Christian Hewitt <christianshewitt@gmail.com>
> +S: Maintained
> +L: u-boot-amlogic@groups.io
> +F: board/amlogic/beelink-s922x/
> +F: configs/beelink-gtking_defconfig
> +F: configs/beelink-gtkingpro_defconfig
> +F: doc/board/amlogic/beelink-gtking.rst
> +F: doc/board/amlogic/beelink-gtkingpro.rst
> diff --git a/board/amlogic/beelink-s922x/Makefile b/board/amlogic/beelink-s922x/Makefile
> new file mode 100644
> index 0000000000..27b1a74105
> --- /dev/null
> +++ b/board/amlogic/beelink-s922x/Makefile
> @@ -0,0 +1,6 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +# (C) Copyright 2020 BayLibre, SAS
> +# Author: Neil Armstrong <narmstrong@baylibre.com>
> +
> +obj-y := beelink-s922x.o
> diff --git a/board/amlogic/beelink-s922x/beelink-s922x.c b/board/amlogic/beelink-s922x/beelink-s922x.c
> new file mode 100644
> index 0000000000..dc0d933a39
> --- /dev/null
> +++ b/board/amlogic/beelink-s922x/beelink-s922x.c
> @@ -0,0 +1,54 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2020 BayLibre, SAS
> + * Author: Neil Armstrong <narmstrong@baylibre.com>
> + */
> +
> +#include <common.h>
> +#include <dm.h>
> +#include <env.h>
> +#include <init.h>
> +#include <net.h>
> +#include <asm/io.h>
> +#include <asm/arch/sm.h>
> +#include <asm/arch/eth.h>
> +#include <asm/arch/boot.h>
> +
> +#define EFUSE_MAC_OFFSET 20
> +#define EFUSE_MAC_SIZE 12
> +#define MAC_ADDR_LEN 6
> +
> +int misc_init_r(void)
> +{
> + u8 mac_addr[MAC_ADDR_LEN];
> + char efuse_mac_addr[EFUSE_MAC_SIZE], tmp[3];
> + ssize_t len;
> +
> + if (IS_ENABLED(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG) &&
> + meson_get_soc_rev(tmp, sizeof(tmp)) > 0)
> + env_set("soc_rev", tmp);
> +
> + meson_eth_init(PHY_INTERFACE_MODE_RGMII, 0);
> +
> + if (!eth_env_get_enetaddr("ethaddr", mac_addr)) {
> + len = meson_sm_read_efuse(EFUSE_MAC_OFFSET,
> + efuse_mac_addr, EFUSE_MAC_SIZE);
> + if (len != EFUSE_MAC_SIZE)
> + return 0;
> +
> + /* MAC is stored in ASCII format, 1bytes = 2characters */
> + for (int i = 0; i < 6; i++) {
> + tmp[0] = efuse_mac_addr[i * 2];
> + tmp[1] = efuse_mac_addr[i * 2 + 1];
> + tmp[2] = '\0';
> + mac_addr[i] = simple_strtoul(tmp, NULL, 16);
> + }
> +
> + if (is_valid_ethaddr(mac_addr))
> + eth_env_set_enetaddr("ethaddr", mac_addr);
> + else
> + meson_generate_serial_ethaddr();
> + }
> +
> + return 0;
> +}
>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/5] boards: amlogic: add Beelink GT-King defconfig
2020-12-18 8:45 ` [PATCH 3/5] boards: amlogic: add Beelink GT-King defconfig Christian Hewitt
@ 2020-12-18 9:43 ` Neil Armstrong
0 siblings, 0 replies; 12+ messages in thread
From: Neil Armstrong @ 2020-12-18 9:43 UTC (permalink / raw)
To: Christian Hewitt, u-boot, u-boot-amlogic, linux-amlogic
On 18/12/2020 09:45, Christian Hewitt wrote:
> Add a defconfig for the Beelink GT-King Android STB, which is based
> on the Amlogic W400 reference design.
>
> Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
> ---
> configs/beelink-gtking_defconfig | 71 ++++++++++++++++++++++++++++++++
> 1 file changed, 71 insertions(+)
> create mode 100644 configs/beelink-gtking_defconfig
>
> diff --git a/configs/beelink-gtking_defconfig b/configs/beelink-gtking_defconfig
> new file mode 100644
> index 0000000000..ea428874af
> --- /dev/null
> +++ b/configs/beelink-gtking_defconfig
> @@ -0,0 +1,71 @@
> +CONFIG_ARM=y
> +CONFIG_SYS_BOARD="beelink-s922x"
> +CONFIG_ARCH_MESON=y
> +CONFIG_SYS_TEXT_BASE=0x01000000
> +CONFIG_NR_DRAM_BANKS=1
> +CONFIG_ENV_SIZE=0x2000
> +CONFIG_DM_GPIO=y
> +CONFIG_MESON_G12A=y
> +CONFIG_DEBUG_UART_BASE=0xff803000
> +CONFIG_DEBUG_UART_CLOCK=24000000
> +CONFIG_IDENT_STRING=" beelink"
> +CONFIG_DEFAULT_DEVICE_TREE="meson-g12b-gtking"
> +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_SF_TEST=y
> +CONFIG_CMD_SPI=y
> +CONFIG_CMD_USB=y
> +CONFIG_CMD_USB_MASS_STORAGE=y
> +# CONFIG_CMD_SETEXPR is not set
> +CONFIG_CMD_REGULATOR=y
> +CONFIG_OF_CONTROL=y
> +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> +CONFIG_NET_RANDOM_ETHADDR=y
> +CONFIG_DM_MMC=y
> +CONFIG_MMC_MESON_GX=y
> +CONFIG_MTD=y
> +CONFIG_DM_MTD=y
> +CONFIG_PHY_REALTEK=y
> +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_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_GADGET is not set
> +CONFIG_USB_DWC3_MESON_G12A=y
> +CONFIG_USB_KEYBOARD=y
> +CONFIG_USB_GADGET=y
> +CONFIG_USB_GADGET_VENDOR_NUM=0x1b8e
> +CONFIG_USB_GADGET_PRODUCT_NUM=0xfada
> +CONFIG_USB_GADGET_DWC2_OTG=y
> +CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y
> +CONFIG_USB_GADGET_DOWNLOAD=y
> +CONFIG_DM_VIDEO=y
> +# CONFIG_VIDEO_BPP8 is not set
> +# CONFIG_VIDEO_BPP16 is not set
> +CONFIG_SYS_WHITE_ON_BLACK=y
> +CONFIG_VIDEO_MESON=y
> +CONFIG_VIDEO_DT_SIMPLEFB=y
> +CONFIG_SPLASH_SCREEN=y
> +CONFIG_SPLASH_SCREEN_ALIGN=y
> +CONFIG_OF_LIBFDT_OVERLAY=y
>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/5] boards: amlogic: add Beelink GT-King Pro defconfig
2020-12-18 8:45 ` [PATCH 4/5] boards: amlogic: add Beelink GT-King Pro defconfig Christian Hewitt
@ 2020-12-18 9:43 ` Neil Armstrong
0 siblings, 0 replies; 12+ messages in thread
From: Neil Armstrong @ 2020-12-18 9:43 UTC (permalink / raw)
To: Christian Hewitt, u-boot, u-boot-amlogic, linux-amlogic
On 18/12/2020 09:45, Christian Hewitt wrote:
> Add a defconfig for the Beelink GT-King Pro Android STB, which is based
> on the Amlogic W400 reference design.
>
> Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
> ---
> configs/beelink-gtkingpro_defconfig | 71 +++++++++++++++++++++++++++++
> 1 file changed, 71 insertions(+)
> create mode 100644 configs/beelink-gtkingpro_defconfig
>
> diff --git a/configs/beelink-gtkingpro_defconfig b/configs/beelink-gtkingpro_defconfig
> new file mode 100644
> index 0000000000..569031600a
> --- /dev/null
> +++ b/configs/beelink-gtkingpro_defconfig
> @@ -0,0 +1,71 @@
> +CONFIG_ARM=y
> +CONFIG_SYS_BOARD="beelink-s922x"
> +CONFIG_ARCH_MESON=y
> +CONFIG_SYS_TEXT_BASE=0x01000000
> +CONFIG_NR_DRAM_BANKS=1
> +CONFIG_ENV_SIZE=0x2000
> +CONFIG_DM_GPIO=y
> +CONFIG_MESON_G12A=y
> +CONFIG_DEBUG_UART_BASE=0xff803000
> +CONFIG_DEBUG_UART_CLOCK=24000000
> +CONFIG_IDENT_STRING=" beelink"
> +CONFIG_DEFAULT_DEVICE_TREE="meson-g12b-gtking-pro"
> +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_SF_TEST=y
> +CONFIG_CMD_SPI=y
> +CONFIG_CMD_USB=y
> +CONFIG_CMD_USB_MASS_STORAGE=y
> +# CONFIG_CMD_SETEXPR is not set
> +CONFIG_CMD_REGULATOR=y
> +CONFIG_OF_CONTROL=y
> +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> +CONFIG_NET_RANDOM_ETHADDR=y
> +CONFIG_DM_MMC=y
> +CONFIG_MMC_MESON_GX=y
> +CONFIG_MTD=y
> +CONFIG_DM_MTD=y
> +CONFIG_PHY_REALTEK=y
> +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_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_GADGET is not set
> +CONFIG_USB_DWC3_MESON_G12A=y
> +CONFIG_USB_KEYBOARD=y
> +CONFIG_USB_GADGET=y
> +CONFIG_USB_GADGET_VENDOR_NUM=0x1b8e
> +CONFIG_USB_GADGET_PRODUCT_NUM=0xfada
> +CONFIG_USB_GADGET_DWC2_OTG=y
> +CONFIG_USB_GADGET_DWC2_OTG_PHY_BUS_WIDTH_8=y
> +CONFIG_USB_GADGET_DOWNLOAD=y
> +CONFIG_DM_VIDEO=y
> +# CONFIG_VIDEO_BPP8 is not set
> +# CONFIG_VIDEO_BPP16 is not set
> +CONFIG_SYS_WHITE_ON_BLACK=y
> +CONFIG_VIDEO_MESON=y
> +CONFIG_VIDEO_DT_SIMPLEFB=y
> +CONFIG_SPLASH_SCREEN=y
> +CONFIG_SPLASH_SCREEN_ALIGN=y
> +CONFIG_OF_LIBFDT_OVERLAY=y
>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 5/5] boards: amlogic: update documentation for Beelink GT-King/Pro
2020-12-18 8:45 ` [PATCH 5/5] boards: amlogic: update documentation for Beelink GT-King/Pro Christian Hewitt
@ 2020-12-18 9:47 ` Neil Armstrong
0 siblings, 0 replies; 12+ messages in thread
From: Neil Armstrong @ 2020-12-18 9:47 UTC (permalink / raw)
To: Christian Hewitt, u-boot, u-boot-amlogic, linux-amlogic
On 18/12/2020 09:45, Christian Hewitt wrote:
> Update the device matrix and add build instructions.
>
> Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
> ---
> doc/board/amlogic/beelink-gtking.rst | 115 +++++++++++++++++++++++
> doc/board/amlogic/beelink-gtkingpro.rst | 116 ++++++++++++++++++++++++
> doc/board/amlogic/index.rst | 4 +-
> 3 files changed, 234 insertions(+), 1 deletion(-)
> create mode 100644 doc/board/amlogic/beelink-gtking.rst
> create mode 100644 doc/board/amlogic/beelink-gtkingpro.rst
>
> diff --git a/doc/board/amlogic/beelink-gtking.rst b/doc/board/amlogic/beelink-gtking.rst
> new file mode 100644
> index 0000000000..56ce2cb273
> --- /dev/null
> +++ b/doc/board/amlogic/beelink-gtking.rst
> @@ -0,0 +1,115 @@
> +.. SPDX-License-Identifier: GPL-2.0+
> +
> +U-Boot for Beelink GT-King
> +==========================
> +
> +The Shenzen AZW (Beelink) GT-King is based on the Amlogic W400 reference
> +board with an S922X-H chip.
> +
> +- 4GB LPDDR4 RAM
> +- 64GB eMMC storage
> +- 10/100/1000 Base-T Ethernet
> +- AP6356S Wireless (802.11 a/b/g/n/ac, BT 4.1)
> +- HDMI 2.1 video
> +- S/PDIF optical output
> +- Analogue audio output
> +- 1x USB 2.0 port
> +- 2x USB 3.0 ports
> +- IR receiver
> +- 1x micro SD card slot
> +
> +Beelink do not provide public schematics, but have been willing
> +to share them with known distro developers on request.
> +
> +U-Boot compilation
> +------------------
> +
> +.. code-block:: bash
> +
> + $ export CROSS_COMPILE=aarch64-none-elf-
> + $ make beelink-gtking_defconfig
> + $ make
> +
> +Image creation
> +--------------
> +
> +Amlogic does not provide sources for the firmware and for tools needed
> +to create the bootloader image. Beelink have provided the Amlogic "SDK"
> +in their forums, but the u-boot sources included result in 2GB RAM being
> +detected. The following FIPs were generated with newer private sources
> +and give correct (4GB) RAM detection:
> +
> +https://github.com/LibreELEC/amlogic-boot-fip/tree/master/beelink-s922x
> +
> +NB: Beelink use a common board config for GT-King, GT-King Pro and the
> +GS-King-X model, hence the "beelink-s922x" name.
> +
> +.. code-block:: bash
> +
> + $ wget https://github.com/LibreELEC/amlogic-boot-fip/archive/master.zip
> + $ unzip master.zip
> + $ export FIPDIR=$PWD/amlogic-boot-fip/beelink-s922x
> +
> +Go back to the mainline U-Boot source tree then:
> +
> +.. code-block:: bash
> +
> + $ mkdir fip
> + $ cp $FIPDIR/* 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
> +
> + $ fip/aml_encrypt_g12b --bl30sig --input fip/bl30_new.bin \
> + --output fip/bl30_new.bin.g12a.enc \
> + --level v3
> + $ fip/aml_encrypt_g12b --bl3sig --input fip/bl30_new.bin.g12a.enc \
> + --output fip/bl30_new.bin.enc \
> + --level v3 --type bl30
> + $ fip/aml_encrypt_g12b --bl3sig --input fip/bl31.img \
> + --output fip/bl31.img.enc \
> + --level v3 --type bl31
> + $ fip/aml_encrypt_g12b --bl3sig --input fip/bl33.bin --compress lz4 \
> + --output fip/bl33.bin.enc \
> + --level v3 --type bl33
> + $ fip/aml_encrypt_g12b --bl2sig --input fip/bl2_new.bin \
> + --output fip/bl2.n.bin.sig
> + $ fip/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:
> +
> +.. code-block:: bash
> +
> + $ 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/doc/board/amlogic/beelink-gtkingpro.rst b/doc/board/amlogic/beelink-gtkingpro.rst
> new file mode 100644
> index 0000000000..d750351361
> --- /dev/null
> +++ b/doc/board/amlogic/beelink-gtkingpro.rst
> @@ -0,0 +1,116 @@
> +.. SPDX-License-Identifier: GPL-2.0+
> +
> +U-Boot for Beelink GT-King Pro
> +==============================
> +
> +The Shenzen AZW (Beelink) GT-King Pro is based on the Amlogic W400 reference
> +board with an S922X-H chip.
> +
> +- 4GB LPDDR4 RAM
> +- 64GB eMMC storage
> +- 10/100/1000 Base-T Ethernet
> +- AP6356S Wireless (802.11 a/b/g/n/ac, BT 4.1)
> +- HDMI 2.1 video
> +- Analogue audio output
> +- 1x RS232 port
> +- 2x USB 2.0 port
> +- 2x USB 3.0 ports
> +- IR receiver
> +- 1x SD card slot
> +- 1x Power on/off button
> +
> +Beelink do not provide public schematics, but have been willing
> +to share them with known distro developers on request.
> +
> +U-Boot compilation
> +------------------
> +
> +.. code-block:: bash
> +
> + $ export CROSS_COMPILE=aarch64-none-elf-
> + $ make beelink-gtkingpro_defconfig
> + $ make
> +
> +Image creation
> +--------------
> +
> +Amlogic does not provide sources for the firmware and for tools needed
> +to create the bootloader image. Beelink have provided the Amlogic "SDK"
> +in their forums, but the u-boot sources included result in 2GB RAM being
> +detected. The following FIPs were generated with newer private sources
> +and give correct (4GB) RAM detection:
> +
> +https://github.com/LibreELEC/amlogic-boot-fip/tree/master/beelink-s922x
> +
> +NB: Beelink use a common board config for GT-King, GT-King Pro and the
> +GS-King-X model, hence the "beelink-s922x" name.
> +
> +.. code-block:: bash
> +
> + $ wget https://github.com/LibreELEC/amlogic-boot-fip/archive/master.zip
> + $ unzip master.zip
> + $ export FIPDIR=$PWD/amlogic-boot-fip/beelink-s922x
> +
> +Go back to the mainline U-Boot source tree then:
> +
> +.. code-block:: bash
> +
> + $ mkdir fip
> + $ cp $FIPDIR/* 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
> +
> + $ fip/aml_encrypt_g12b --bl30sig --input fip/bl30_new.bin \
> + --output fip/bl30_new.bin.g12a.enc \
> + --level v3
> + $ fip/aml_encrypt_g12b --bl3sig --input fip/bl30_new.bin.g12a.enc \
> + --output fip/bl30_new.bin.enc \
> + --level v3 --type bl30
> + $ fip/aml_encrypt_g12b --bl3sig --input fip/bl31.img \
> + --output fip/bl31.img.enc \
> + --level v3 --type bl31
> + $ fip/aml_encrypt_g12b --bl3sig --input fip/bl33.bin --compress lz4 \
> + --output fip/bl33.bin.enc \
> + --level v3 --type bl33
> + $ fip/aml_encrypt_g12b --bl2sig --input fip/bl2_new.bin \
> + --output fip/bl2.n.bin.sig
> + $ fip/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:
> +
> +.. code-block:: bash
> +
> + $ 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/doc/board/amlogic/index.rst b/doc/board/amlogic/index.rst
> index a585d857df..275c3664b7 100644
> --- a/doc/board/amlogic/index.rst
> +++ b/doc/board/amlogic/index.rst
> @@ -17,7 +17,7 @@ This matrix concerns the actual source code version.
> +===============================+===========+=================+==============+============+============+=============+==============+
> | Boards | Odroid-C2 | P212 | Khadas VIM2 | S400 | U200 | Odroid-N2 | SEI610 |
> | | Nanopi-K2 | Khadas-VIM | Libretech-PC | | SEI510 | Khadas-VIM3 | Khadas-VIM3L |
> -| | P200 | LibreTech-CC v1 | WeTek Core2 | | | | Odroid-C4 |
> +| | P200 | LibreTech-CC v1 | WeTek Core2 | | | GT-King/Pro | Odroid-C4 |
> | | P201 | LibreTech-AC v2 | | | | | |
> +-------------------------------+-----------+-----------------+--------------+------------+------------+-------------+--------------+
> | UART | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |
> @@ -77,6 +77,8 @@ Board Documentation
> .. toctree::
> :maxdepth: 1
>
> + beelink-gtking
> + beelink-gtkingpro
> khadas-vim2
> khadas-vim3l
> khadas-vim3
>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/5] board: amlogic: add Beelink GT-King/Pro support
2020-12-18 8:45 [PATCH 0/5] board: amlogic: add Beelink GT-King/Pro support Christian Hewitt
` (4 preceding siblings ...)
2020-12-18 8:45 ` [PATCH 5/5] boards: amlogic: update documentation for Beelink GT-King/Pro Christian Hewitt
@ 2020-12-18 9:49 ` Neil Armstrong
5 siblings, 0 replies; 12+ messages in thread
From: Neil Armstrong @ 2020-12-18 9:49 UTC (permalink / raw)
To: Christian Hewitt, u-boot, u-boot-amlogic, linux-amlogic
On 18/12/2020 09:45, Christian Hewitt wrote:
> This patchset adds support for the Beelink GT-King and GT-King Pro boxes
> based on the Amlogic S922X (G12B/W400) SoC. Patches are based on the
> u-boot-amlogic-next branch in the custodians tree.
>
> Christian Hewitt (5):
> ARM: dts: import Beelink GT-King/Pro DTs from Linux 5.10
> boards: amlogic: add Beelink S922X board family support
> boards: amlogic: add Beelink GT-King defconfig
> boards: amlogic: add Beelink GT-King Pro defconfig
> boards: amlogic: update documentation for Beelink GT-King/Pro
>
> arch/arm/dts/Makefile | 2 +
> arch/arm/dts/meson-g12b-gtking-pro.dts | 125 ++++++
> arch/arm/dts/meson-g12b-gtking.dts | 145 +++++++
> arch/arm/dts/meson-g12b-w400.dtsi | 425 ++++++++++++++++++++
> board/amlogic/beelink-s922x/MAINTAINERS | 9 +
> board/amlogic/beelink-s922x/Makefile | 6 +
> board/amlogic/beelink-s922x/beelink-s922x.c | 54 +++
> configs/beelink-gtking_defconfig | 71 ++++
> configs/beelink-gtkingpro_defconfig | 71 ++++
> doc/board/amlogic/beelink-gtking.rst | 115 ++++++
> doc/board/amlogic/beelink-gtkingpro.rst | 116 ++++++
> doc/board/amlogic/index.rst | 4 +-
> 12 files changed, 1142 insertions(+), 1 deletion(-)
> create mode 100644 arch/arm/dts/meson-g12b-gtking-pro.dts
> create mode 100644 arch/arm/dts/meson-g12b-gtking.dts
> create mode 100644 arch/arm/dts/meson-g12b-w400.dtsi
> create mode 100644 board/amlogic/beelink-s922x/MAINTAINERS
> create mode 100644 board/amlogic/beelink-s922x/Makefile
> create mode 100644 board/amlogic/beelink-s922x/beelink-s922x.c
> create mode 100644 configs/beelink-gtking_defconfig
> create mode 100644 configs/beelink-gtkingpro_defconfig
> create mode 100644 doc/board/amlogic/beelink-gtking.rst
> create mode 100644 doc/board/amlogic/beelink-gtkingpro.rst
>
Applying to u-boot-amlogic-next
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2020-12-18 9:50 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-18 8:45 [PATCH 0/5] board: amlogic: add Beelink GT-King/Pro support Christian Hewitt
2020-12-18 8:45 ` [PATCH 1/5] ARM: dts: import Beelink GT-King/Pro DTs from Linux 5.10 Christian Hewitt
2020-12-18 9:42 ` Neil Armstrong
2020-12-18 8:45 ` [PATCH 2/5] boards: amlogic: add Beelink S922X board family support Christian Hewitt
2020-12-18 9:42 ` Neil Armstrong
2020-12-18 8:45 ` [PATCH 3/5] boards: amlogic: add Beelink GT-King defconfig Christian Hewitt
2020-12-18 9:43 ` Neil Armstrong
2020-12-18 8:45 ` [PATCH 4/5] boards: amlogic: add Beelink GT-King Pro defconfig Christian Hewitt
2020-12-18 9:43 ` Neil Armstrong
2020-12-18 8:45 ` [PATCH 5/5] boards: amlogic: update documentation for Beelink GT-King/Pro Christian Hewitt
2020-12-18 9:47 ` Neil Armstrong
2020-12-18 9:49 ` [PATCH 0/5] board: amlogic: add Beelink GT-King/Pro support Neil Armstrong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).