* [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
@ 2025-03-06 12:25 Georg Gottleuber
2025-03-06 12:41 ` Krzysztof Kozlowski
2025-03-06 12:50 ` Konrad Dybcio
0 siblings, 2 replies; 18+ messages in thread
From: Georg Gottleuber @ 2025-03-06 12:25 UTC (permalink / raw)
To: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio,
Georg Gottleuber, wse, cs
Initial support for TUXEDO Elite 14 Gen1 based on Qualcomm Snapdragon X
Elite SoC (X1E78100).
Working:
* Touchpad
* Keyboard
* eDP (no brightness control yet)
* NVMe
* USB Type-C port
* WiFi (WiFi 7 untested)
* GPU (software rendering)
Not working:
* GPU (WIP: firmware loading but output is jerky)
* USB Type-A (WIP)
* Suspend with substantial energy saving
* Audio, Speakers, Microphones
* Camera
* Fingerprint Reader
Signed-off-by: Georg Gottleuber <ggo@tuxedocomputers.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../qcom/x1e80100-tuxedo-elite-14-gen1.dts | 798 ++++++++++++++++++
2 files changed, 799 insertions(+)
create mode 100644
arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 140b0b2abfb5..f0a9d677d957 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -298,3 +298,4 @@ dtb-$(CONFIG_ARCH_QCOM) += x1e80100-lenovo-yoga-slim7x.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus13.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus15.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-qcp.dtb
+dtb-$(CONFIG_ARCH_QCOM) += x1e80100-tuxedo-elite-14-gen1.dtb
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
new file mode 100644
index 000000000000..86bdec4a2dd8
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
@@ -0,0 +1,798 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2025 TUXEDO Computers GmbH
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "x1e80100.dtsi"
+#include "x1e80100-pmics.dtsi"
+
+/ {
+ model = "TUXEDO Elite 14 Gen1";
+ compatible = "tuxedo,elite14gen1", "qcom,x1e80100";
+
+ aliases {
+ serial0 = &uart21;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&hall_int_n_default>;
+ pinctrl-names = "default";
+
+ switch-lid {
+ gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
+ linux,input-type = <EV_SW>;
+ linux,code = <SW_LID>;
+ wakeup-source;
+ };
+ };
+
+ pmic-glink {
+ compatible = "qcom,x1e80100-pmic-glink",
+ "qcom,sm8550-pmic-glink",
+ "qcom,pmic-glink";
+ orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* Left-side rear port */
+ connector@0 {
+ compatible = "usb-c-connector";
+ reg = <0>;
+ power-role = "dual";
+ data-role = "dual";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ pmic_glink_ss0_hs_in: endpoint {
+ remote-endpoint = <&usb_1_ss0_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_ss0_ss_in: endpoint {
+ remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+ };
+ };
+ };
+ };
+ };
+
+ reserved-memory {
+ linux,cma {
+ compatible = "shared-dma-pool";
+ size = <0x0 0x8000000>;
+ reusable;
+ linux,cma-default;
+ };
+ };
+
+ vreg_edp_3p3: regulator-edp-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_EDP_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ // EDP_VDD_EN_GPIO54
+ gpio = <&tlmm 54 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&edp_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vreg_nvme: regulator-nvme {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_NVME_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ // NVME_REG_EN_GPIO18
+ gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&nvme_reg_en>;
+ pinctrl-names = "default";
+ regulator-boot-on;
+ };
+
+ vph_pwr: regulator-vph-pwr {
+ compatible = "regulator-fixed";
+
+ regulator-name = "vph_pwr";
+ regulator-min-microvolt = <3700000>;
+ regulator-max-microvolt = <3700000>;
+
+ regulator-always-on;
+ regulator-boot-on;
+ };
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pm8550-rpmh-regulators";
+ qcom,pmic-id = "b";
+ vdd-bob1-supply = <&vph_pwr>;
+ vdd-bob2-supply = <&vph_pwr>;
+ vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
+ vdd-l2-l13-l14-supply = <&vreg_bob1>;
+ vdd-l5-l16-supply = <&vreg_bob1>;
+ vdd-l6-l7-supply = <&vreg_bob2>;
+ vdd-l8-l9-supply = <&vreg_bob1>;
+ vdd-l12-supply = <&vreg_s5j_1p2>;
+ vdd-l15-supply = <&vreg_s4c_1p8>;
+ vdd-l17-supply = <&vreg_bob2>;
+
+ vreg_bob1: bob1 {
+ regulator-name = "vreg_bob1";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <3960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_bob2: bob2 {
+ regulator-name = "vreg_bob2";
+ regulator-min-microvolt = <2504000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2b_3p0: ldo2 {
+ regulator-name = "vreg_l2b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4b_1p8: ldo4 {
+ regulator-name = "vreg_l4b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6b_1p8: ldo6 {
+ regulator-name = "vreg_l6b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7b_2p8: ldo7 {
+ regulator-name = "vreg_l7b_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l8b_3p0: ldo8 {
+ regulator-name = "vreg_l8b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9b_2p9: ldo9 {
+ regulator-name = "vreg_l9b_2p9";
+ regulator-min-microvolt = <2960000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l10b_1p8: ldo10 {
+ regulator-name = "vreg_l10b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12b_1p2: ldo12 {
+ regulator-name = "vreg_l12b_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l13b_3p0: ldo13 {
+ regulator-name = "vreg_l13b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l14b_3p0: ldo14 {
+ regulator-name = "vreg_l14b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l15b_1p8: ldo15 {
+ regulator-name = "vreg_l15b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l16b_2p8: ldo16 {
+ regulator-name = "vreg_l16b_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l17b_2p5: ldo17 {
+ regulator-name = "vreg_l17b_2p5";
+ regulator-min-microvolt = <2504000>;
+ regulator-max-microvolt = <2504000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-1 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "c";
+
+ vdd-l1-supply = <&vreg_s5j_1p2>;
+ vdd-l2-supply = <&vreg_s1f_0p7>;
+ vdd-l3-supply = <&vreg_s1f_0p7>;
+ vdd-s4-supply = <&vph_pwr>;
+
+ vreg_s4c_1p8: smps4 {
+ regulator-name = "vreg_s4c_1p8";
+ regulator-min-microvolt = <1856000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1c_1p2: ldo1 {
+ regulator-name = "vreg_l1c_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2c_0p8: ldo2 {
+ regulator-name = "vreg_l2c_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3c_0p9: ldo3 {
+ regulator-name = "vreg_l3c_0p9";
+ regulator-min-microvolt = <920000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-2 {
+ compatible = "qcom,pmc8380-rpmh-regulators";
+ qcom,pmic-id = "d";
+
+ vdd-l1-supply = <&vreg_s1f_0p7>;
+ vdd-l2-supply = <&vreg_s1f_0p7>;
+ vdd-l3-supply = <&vreg_s4c_1p8>;
+ vdd-s1-supply = <&vph_pwr>;
+
+ vreg_l1d_0p8: ldo1 {
+ regulator-name = "vreg_l1d_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2d_0p9: ldo2 {
+ regulator-name = "vreg_l2d_0p9";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3d_1p8: ldo3 {
+ regulator-name = "vreg_l3d_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-3 {
+ compatible = "qcom,pmc8380-rpmh-regulators";
+ qcom,pmic-id = "e";
+
+ vdd-l2-supply = <&vreg_s1f_0p7>;
+ vdd-l3-supply = <&vreg_s5j_1p2>;
+
+ vreg_l2e_0p8: ldo2 {
+ regulator-name = "vreg_l2e_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3e_1p2: ldo3 {
+ regulator-name = "vreg_l3e_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-4 {
+ compatible = "qcom,pmc8380-rpmh-regulators";
+ qcom,pmic-id = "f";
+
+ vdd-l1-supply = <&vreg_s5j_1p2>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s5j_1p2>;
+ vdd-s1-supply = <&vph_pwr>;
+
+ vreg_s1f_0p7: smps1 {
+ regulator-name = "vreg_s1f_0p7";
+ regulator-min-microvolt = <700000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-6 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "i";
+
+ vdd-l1-supply = <&vreg_s4c_1p8>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s1f_0p7>;
+ vdd-s1-supply = <&vph_pwr>;
+ vdd-s2-supply = <&vph_pwr>;
+
+ vreg_s1i_0p9: smps1 {
+ regulator-name = "vreg_s1i_0p9";
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s2i_1p0: smps2 {
+ regulator-name = "vreg_s2i_1p0";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1i_1p8: ldo1 {
+ regulator-name = "vreg_l1i_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2i_1p2: ldo2 {
+ regulator-name = "vreg_l2i_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3i_0p8: ldo3 {
+ regulator-name = "vreg_l3i_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-7 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "j";
+
+ vdd-l1-supply = <&vreg_s1f_0p7>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s1f_0p7>;
+ vdd-s5-supply = <&vph_pwr>;
+
+ vreg_s5j_1p2: smps5 {
+ regulator-name = "vreg_s5j_1p2";
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1304000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1j_0p9: ldo1 {
+ regulator-name = "vreg_l1j_0p9";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2j_1p2: ldo2 {
+ regulator-name = "vreg_l2j_1p2";
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1256000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3j_0p8: ldo3 {
+ regulator-name = "vreg_l3j_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&gpu {
+ status = "okay";
+
+ zap-shader {
+ firmware-name = "qcom/a740_zap.mbn";
+ };
+};
+
+&i2c0 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ touchpad@2c {
+ compatible = "hid-over-i2c";
+ reg = <0x2c>;
+
+ hid-descr-addr = <0x20>;
+ interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
+
+ pinctrl-0 = <&tpad_default>;
+ pinctrl-names = "default";
+
+ wakeup-source;
+ };
+
+ keyboard@3a {
+ compatible = "hid-over-i2c";
+ reg = <0x3a>;
+
+ hid-descr-addr = <0x1>;
+ interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
+
+ pinctrl-0 = <&kybd_default>;
+ pinctrl-names = "default";
+
+ wakeup-source;
+ };
+};
+
+&i2c5 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ eusb3_repeater: redriver@47 {
+ compatible = "nxp,ptn3222";
+ reg = <0x47>;
+ #phy-cells = <0>;
+
+ vdd1v8-supply = <&vreg_l4b_1p8>;
+ vdd3v3-supply = <&vreg_l13b_3p0>;
+
+ reset-gpios = <&tlmm 124 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&eusb3_reset_n>;
+ pinctrl-names = "default";
+ };
+
+ eusb5_repeater: redriver@43 {
+ compatible = "nxp,ptn3222";
+ reg = <0x43>;
+ #phy-cells = <0>;
+
+ vdd1v8-supply = <&vreg_l4b_1p8>;
+ vdd3v3-supply = <&vreg_l13b_3p0>;
+
+ reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&eusb6_reset_n>;
+ pinctrl-names = "default";
+ };
+
+ eusb6_repeater: redriver@4f {
+ compatible = "nxp,ptn3222";
+ reg = <0x4f>;
+ #phy-cells = <0>;
+
+ vdd1v8-supply = <&vreg_l4b_1p8>;
+ vdd3v3-supply = <&vreg_l13b_3p0>;
+
+ reset-gpios = <&tlmm 111 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&eusb6_reset_n>;
+ pinctrl-names = "default";
+ };
+
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dp3 {
+ compatible = "qcom,x1e80100-dp";
+ /delete-property/ #sound-dai-cells;
+
+ status = "okay";
+
+ aux-bus {
+ panel {
+ compatible = "edp-panel";
+ power-supply = <&vreg_edp_3p3>;
+
+ port {
+ edp_panel_in: endpoint {
+ remote-endpoint = <&mdss_dp3_out>;
+ };
+ };
+ };
+ };
+
+ ports {
+ port@1 {
+ reg = <1>;
+
+ mdss_dp3_out: endpoint {
+ data-lanes = <0 1 2 3>;
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
+ remote-endpoint = <&edp_panel_in>;
+ };
+ };
+ };
+};
+
+&mdss_dp3_phy {
+ vdda-phy-supply = <&vreg_l3j_0p8>;
+ vdda-pll-supply = <&vreg_l2j_1p2>;
+
+ status = "okay";
+};
+
+&pcie4 {
+ status = "okay";
+};
+
+&pcie4_phy {
+ vdda-phy-supply = <&vreg_l3j_0p8>;
+ vdda-pll-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&pcie6a {
+ perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+
+ wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+
+ vddpe-3v3-supply = <&vreg_nvme>;
+
+ pinctrl-0 = <&pcie6a_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie6a_phy {
+ vdda-phy-supply = <&vreg_l1d_0p8>;
+ vdda-pll-supply = <&vreg_l2j_1p2>;
+
+ status = "okay";
+};
+
+&qupv3_0 {
+ status = "okay";
+};
+
+&qupv3_1 {
+ status = "okay";
+};
+
+&qupv3_2 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/x1e80100/adsp.mbn",
+ "qcom/x1e80100/adsp_dtb.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/x1e80100/cdsp.mbn",
+ "qcom/x1e80100/cdsp_dtb.mbn";
+
+ status = "okay";
+};
+
+&smb2360_0 {
+ status = "okay";
+};
+
+&smb2360_0_eusb2_repeater {
+ vdd18-supply = <&vreg_l3d_1p8>;
+ vdd3-supply = <&vreg_l2b_3p0>;
+};
+
+&smb2360_1 {
+ status = "okay";
+};
+
+&tlmm {
+ gpio-reserved-ranges = <28 4>, /* Unused */
+ <44 4>, /* SPI (TPM) */
+ <238 1>; /* UFS Reset */
+
+ kybd_default: kybd-default-state {
+ pins = "gpio67";
+ function = "gpio";
+ bias-disable;
+ };
+
+ edp_reg_en: edp-reg-en-state {
+ pins = "gpio54";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-pull-up;
+ };
+
+ nvme_reg_en: nvme-reg-en-state {
+ pins = "gpio18";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ hall_int_n_default: hall-int-n-state {
+ pins = "gpio92";
+ function = "gpio";
+ bias-disable;
+ };
+
+ eusb3_reset_n: eusb3-reset-n-state {
+ pins = "gpio124";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ output-low;
+ };
+
+ eusb6_reset_n: eusb6-reset-n-state {
+ pins = "gpio111";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ output-low;
+ };
+
+ eusb5_reset_n: eusb5-reset-n-state {
+ pins = "gpio184";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ output-low;
+ };
+
+ pcie4_default: pcie4-default-state {
+ perst-n-pins {
+ pins = "gpio146";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ clkreq-n-pins {
+ pins = "gpio147";
+ function = "pcie4_clk";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ wake-n-pins {
+ pins = "gpio148";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ pcie6a_default: pcie6a-default-state {
+ perst-n-pins {
+ pins = "gpio152";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ clkreq-n-pins {
+ pins = "gpio153";
+ function = "pcie6a_clk";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ wake-n-pins {
+ pins = "gpio154";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ tpad_default: tpad-default-state {
+ pins = "gpio3";
+ function = "gpio";
+ bias-disable;
+ };
+
+ wcd_default: wcd-reset-n-active-state {
+ pins = "gpio191";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ output-low;
+ };
+};
+
+&usb_1_ss0_hsphy {
+ vdd-supply = <&vreg_l3j_0p8>;
+ vdda12-supply = <&vreg_l2j_1p2>;
+
+ phys = <&smb2360_0_eusb2_repeater>;
+
+ status = "okay";
+};
+
+&usb_1_ss0_qmpphy {
+ vdda-phy-supply = <&vreg_l2j_1p2>;
+ vdda-pll-supply = <&vreg_l1j_0p9>;
+
+ status = "okay";
+};
+
+&usb_1_ss0 {
+ status = "okay";
+};
+
+&usb_1_ss0_dwc3 {
+ dr_mode = "host";
+};
+
+&usb_1_ss0_dwc3_hs {
+ remote-endpoint = <&pmic_glink_ss0_hs_in>;
+};
+
+&usb_1_ss0_qmpphy_out {
+ remote-endpoint = <&pmic_glink_ss0_ss_in>;
+};
+
--
2.47.2
^ permalink raw reply related [flat|nested] 18+ messages in thread* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-06 12:25 [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1 Georg Gottleuber
@ 2025-03-06 12:41 ` Krzysztof Kozlowski
2025-03-06 13:56 ` Georg Gottleuber
2025-03-06 12:50 ` Konrad Dybcio
1 sibling, 1 reply; 18+ messages in thread
From: Krzysztof Kozlowski @ 2025-03-06 12:41 UTC (permalink / raw)
To: Georg Gottleuber, Bjorn Andersson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio, wse, cs
On 06/03/2025 13:25, Georg Gottleuber wrote:
> Initial support for TUXEDO Elite 14 Gen1 based on Qualcomm Snapdragon X
> Elite SoC (X1E78100).
>
> Working:
> * Touchpad
> * Keyboard
> * eDP (no brightness control yet)
> * NVMe
> * USB Type-C port
> * WiFi (WiFi 7 untested)
> * GPU (software rendering)
>
> Not working:
> * GPU (WIP: firmware loading but output is jerky)
> * USB Type-A (WIP)
> * Suspend with substantial energy saving
> * Audio, Speakers, Microphones
> * Camera
> * Fingerprint Reader
>
> Signed-off-by: Georg Gottleuber <ggo@tuxedocomputers.com>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../qcom/x1e80100-tuxedo-elite-14-gen1.dts | 798 ++++++++++++++++++
> 2 files changed, 799 insertions(+)
> create mode 100644
> arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 140b0b2abfb5..f0a9d677d957 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -298,3 +298,4 @@ dtb-$(CONFIG_ARCH_QCOM) += x1e80100-lenovo-yoga-slim7x.dtb
> dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus13.dtb
> dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus15.dtb
> dtb-$(CONFIG_ARCH_QCOM) += x1e80100-qcp.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += x1e80100-tuxedo-elite-14-gen1.dtb
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> new file mode 100644
> index 000000000000..86bdec4a2dd8
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> @@ -0,0 +1,798 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
> + * Copyright (c) 2025 TUXEDO Computers GmbH
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> +
> +#include "x1e80100.dtsi"
> +#include "x1e80100-pmics.dtsi"
> +
> +/ {
> + model = "TUXEDO Elite 14 Gen1";
> + compatible = "tuxedo,elite14gen1", "qcom,x1e80100";
Please run scripts/checkpatch.pl and fix reported warnings. After that,
run also `scripts/checkpatch.pl --strict` and (probably) fix more
warnings. Some warnings can be ignored, especially from --strict run,
but the code here looks like it needs a fix. Feel free to get in touch
if the warning is not clear.
It does not look like you tested the DTS against bindings. Please run
`make dtbs_check W=1` (see
Documentation/devicetree/bindings/writing-schema.rst or
https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/
for instructions).
Maybe you need to update your dtschema and yamllint. Don't rely on
distro packages for dtschema and be sure you are using the latest
released dtschema.
...
> +
> + eusb3_repeater: redriver@47 {
> + compatible = "nxp,ptn3222";
> + reg = <0x47>;
> + #phy-cells = <0>;
> +
> + vdd1v8-supply = <&vreg_l4b_1p8>;
> + vdd3v3-supply = <&vreg_l13b_3p0>;
> +
> + reset-gpios = <&tlmm 124 GPIO_ACTIVE_LOW>;
> +
> + pinctrl-0 = <&eusb3_reset_n>;
> + pinctrl-names = "default";
No graph? Isn't it needed?
> + };
> +
> + eusb5_repeater: redriver@43 {
> + compatible = "nxp,ptn3222";
> + reg = <0x43>;
> + #phy-cells = <0>;
> +
> + vdd1v8-supply = <&vreg_l4b_1p8>;
> + vdd3v3-supply = <&vreg_l13b_3p0>;
> +
> + reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>;
> +
> + pinctrl-0 = <&eusb6_reset_n>;
> + pinctrl-names = "default";
> + };
> +
> + eusb6_repeater: redriver@4f {
> + compatible = "nxp,ptn3222";
> + reg = <0x4f>;
> + #phy-cells = <0>;
> +
> + vdd1v8-supply = <&vreg_l4b_1p8>;
> + vdd3v3-supply = <&vreg_l13b_3p0>;
> +
> + reset-gpios = <&tlmm 111 GPIO_ACTIVE_LOW>;
> +
> + pinctrl-0 = <&eusb6_reset_n>;
> + pinctrl-names = "default";
> + };
> +
Stray blank line
> +};
> +
> +&mdss {
> + status = "okay";
> +};
> +
> +
> +&usb_1_ss0_dwc3_hs {
> + remote-endpoint = <&pmic_glink_ss0_hs_in>;
> +};
> +
> +&usb_1_ss0_qmpphy_out {
> + remote-endpoint = <&pmic_glink_ss0_ss_in>;
> +};
> +
Here as well
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-06 12:41 ` Krzysztof Kozlowski
@ 2025-03-06 13:56 ` Georg Gottleuber
2025-03-06 14:03 ` Krzysztof Kozlowski
0 siblings, 1 reply; 18+ messages in thread
From: Georg Gottleuber @ 2025-03-06 13:56 UTC (permalink / raw)
To: Krzysztof Kozlowski, Georg Gottleuber, Bjorn Andersson,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio, wse, cs
Am 06.03.25 um 13:41 schrieb Krzysztof Kozlowski:
...
>
> Please run scripts/checkpatch.pl and fix reported warnings. After that,
> run also `scripts/checkpatch.pl --strict` and (probably) fix more
> warnings. Some warnings can be ignored, especially from --strict run,
> but the code here looks like it needs a fix. Feel free to get in touch
> if the warning is not clear.
>
> It does not look like you tested the DTS against bindings. Please run
> `make dtbs_check W=1` (see
> Documentation/devicetree/bindings/writing-schema.rst or
> https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/
> for instructions).
> Maybe you need to update your dtschema and yamllint. Don't rely on
> distro packages for dtschema and be sure you are using the latest
> released dtschema.
Thank you for the advice and the offer to answer further questions.
Didn't know that dtb_check exists.
> ...
>
>> +
>> + eusb3_repeater: redriver@47 {
>> + compatible = "nxp,ptn3222";
>> + reg = <0x47>;
>> + #phy-cells = <0>;
>> +
>> + vdd1v8-supply = <&vreg_l4b_1p8>;
>> + vdd3v3-supply = <&vreg_l13b_3p0>;
>> +
>> + reset-gpios = <&tlmm 124 GPIO_ACTIVE_LOW>;
>> +
>> + pinctrl-0 = <&eusb3_reset_n>;
>> + pinctrl-names = "default";
>
> No graph? Isn't it needed?
What do you mean by ‘no graph’?
>> + };
>> +
>> + eusb5_repeater: redriver@43 {
>> + compatible = "nxp,ptn3222";
>> + reg = <0x43>;
>> + #phy-cells = <0>;
>> +
>> + vdd1v8-supply = <&vreg_l4b_1p8>;
>> + vdd3v3-supply = <&vreg_l13b_3p0>;
>> +
>> + reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>;
>> +
>> + pinctrl-0 = <&eusb6_reset_n>;
>> + pinctrl-names = "default";
>> + };
>> +
>> + eusb6_repeater: redriver@4f {
>> + compatible = "nxp,ptn3222";
>> + reg = <0x4f>;
>> + #phy-cells = <0>;
>> +
>> + vdd1v8-supply = <&vreg_l4b_1p8>;
>> + vdd3v3-supply = <&vreg_l13b_3p0>;
>> +
>> + reset-gpios = <&tlmm 111 GPIO_ACTIVE_LOW>;
>> +
>> + pinctrl-0 = <&eusb6_reset_n>;
>> + pinctrl-names = "default";
>> + };
>> +
>
> Stray blank line
Sorry. Will fix this.
>> +};
>> +
>> +&mdss {
>> + status = "okay";
>> +};
>> +
>
>
>> +
>> +&usb_1_ss0_dwc3_hs {
>> + remote-endpoint = <&pmic_glink_ss0_hs_in>;
>> +};
>> +
>> +&usb_1_ss0_qmpphy_out {
>> + remote-endpoint = <&pmic_glink_ss0_ss_in>;
>> +};
>> +
>
> Here as well
Same here.
Regards,
Georg
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-06 13:56 ` Georg Gottleuber
@ 2025-03-06 14:03 ` Krzysztof Kozlowski
2025-03-06 16:45 ` Dmitry Baryshkov
0 siblings, 1 reply; 18+ messages in thread
From: Krzysztof Kozlowski @ 2025-03-06 14:03 UTC (permalink / raw)
To: Georg Gottleuber, Georg Gottleuber, Bjorn Andersson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio, wse, cs
On 06/03/2025 14:56, Georg Gottleuber wrote:
>
>> ...
>>
>>> +
>>> + eusb3_repeater: redriver@47 {
>>> + compatible = "nxp,ptn3222";
>>> + reg = <0x47>;
>>> + #phy-cells = <0>;
>>> +
>>> + vdd1v8-supply = <&vreg_l4b_1p8>;
>>> + vdd3v3-supply = <&vreg_l13b_3p0>;
>>> +
>>> + reset-gpios = <&tlmm 124 GPIO_ACTIVE_LOW>;
>>> +
>>> + pinctrl-0 = <&eusb3_reset_n>;
>>> + pinctrl-names = "default";
>>
>> No graph? Isn't it needed?
>
> What do you mean by ‘no graph’?
ports connecting this within USB graph between controller and connector.
Just like other devices with redriver.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-06 14:03 ` Krzysztof Kozlowski
@ 2025-03-06 16:45 ` Dmitry Baryshkov
0 siblings, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-06 16:45 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Georg Gottleuber, Georg Gottleuber, Bjorn Andersson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree,
linux-kernel, Konrad Dybcio, wse, cs
On Thu, Mar 06, 2025 at 03:03:32PM +0100, Krzysztof Kozlowski wrote:
> On 06/03/2025 14:56, Georg Gottleuber wrote:
> >
> >> ...
> >>
> >>> +
> >>> + eusb3_repeater: redriver@47 {
> >>> + compatible = "nxp,ptn3222";
> >>> + reg = <0x47>;
> >>> + #phy-cells = <0>;
> >>> +
> >>> + vdd1v8-supply = <&vreg_l4b_1p8>;
> >>> + vdd3v3-supply = <&vreg_l13b_3p0>;
> >>> +
> >>> + reset-gpios = <&tlmm 124 GPIO_ACTIVE_LOW>;
> >>> +
> >>> + pinctrl-0 = <&eusb3_reset_n>;
> >>> + pinctrl-names = "default";
> >>
> >> No graph? Isn't it needed?
> >
> > What do you mean by ‘no graph’?
>
> ports connecting this within USB graph between controller and connector.
> Just like other devices with redriver.
No, eUSB2 redrivers don't need (and don't use) OF graph, they are
basic PHYs. See Documentation/devicetree/bindings/phy/nxp,ptn3222.yaml
So this one is correct.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-06 12:25 [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1 Georg Gottleuber
2025-03-06 12:41 ` Krzysztof Kozlowski
@ 2025-03-06 12:50 ` Konrad Dybcio
2025-03-06 15:22 ` Georg Gottleuber
2025-03-07 6:45 ` Dmitry Baryshkov
1 sibling, 2 replies; 18+ messages in thread
From: Konrad Dybcio @ 2025-03-06 12:50 UTC (permalink / raw)
To: Georg Gottleuber, Bjorn Andersson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, wse, cs
On 6.03.2025 1:25 PM, Georg Gottleuber wrote:
> Initial support for TUXEDO Elite 14 Gen1 based on Qualcomm Snapdragon X
> Elite SoC (X1E78100).
>
> Working:
> * Touchpad
> * Keyboard
> * eDP (no brightness control yet)
in case your panel as a PWM backlight, you will need to set the PWM
output pin function explicitly, see x1e80100-microsoft-romulus.dtsi
> * NVMe
> * USB Type-C port
> * WiFi (WiFi 7 untested)
> * GPU (software rendering)
>
> Not working:
> * GPU (WIP: firmware loading but output is jerky)
Please tell us more
> * USB Type-A (WIP)
> * Suspend with substantial energy saving
> * Audio, Speakers, Microphones
> * Camera
> * Fingerprint Reader
If it's connected to the multiport controller, you should be able to
just enable it, like on the T14s, similarly to the Type-A port
[...]
> Signed-off-by: Georg Gottleuber <ggo@tuxedocomputers.com>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../qcom/x1e80100-tuxedo-elite-14-gen1.dts | 798 ++++++++++++++++++
> 2 files changed, 799 insertions(+)
> create mode 100644
> arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 140b0b2abfb5..f0a9d677d957 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -298,3 +298,4 @@ dtb-$(CONFIG_ARCH_QCOM) += x1e80100-lenovo-yoga-slim7x.dtb
> dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus13.dtb
> dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus15.dtb
> dtb-$(CONFIG_ARCH_QCOM) += x1e80100-qcp.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += x1e80100-tuxedo-elite-14-gen1.dtb
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> new file mode 100644
> index 000000000000..86bdec4a2dd8
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> @@ -0,0 +1,798 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
> + * Copyright (c) 2025 TUXEDO Computers GmbH
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> +
> +#include "x1e80100.dtsi"
> +#include "x1e80100-pmics.dtsi"
> +
> +/ {
> + model = "TUXEDO Elite 14 Gen1";
Please use 8-wide tabs instead of spaces
> + compatible = "tuxedo,elite14gen1", "qcom,x1e80100";
You'll need to define a new vendor in:
Documentation/devicetree/bindings/vendor-prefixes.yaml
[...]
> + vreg_edp_3p3: regulator-edp-3p3 {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VREG_EDP_3P3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> +
> + // EDP_VDD_EN_GPIO54
C-style (/* foo */) comments are preferred, but these ones can be
removed, as they repeat what the code says
[...]
> +&gpu {
> + status = "okay";
> +
> + zap-shader {
> + firmware-name = "qcom/a740_zap.mbn";
Are the laptop's OEM key/security fuses not blown?
Konrad
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-06 12:50 ` Konrad Dybcio
@ 2025-03-06 15:22 ` Georg Gottleuber
2025-03-06 18:15 ` Konrad Dybcio
2025-03-07 6:45 ` Dmitry Baryshkov
1 sibling, 1 reply; 18+ messages in thread
From: Georg Gottleuber @ 2025-03-06 15:22 UTC (permalink / raw)
To: Konrad Dybcio, Georg Gottleuber, Bjorn Andersson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, wse, cs
Am 06.03.25 um 13:50 schrieb Konrad Dybcio:
> On 6.03.2025 1:25 PM, Georg Gottleuber wrote:
>> Initial support for TUXEDO Elite 14 Gen1 based on Qualcomm Snapdragon X
>> Elite SoC (X1E78100).
>>
>> Working:
>> * Touchpad
>> * Keyboard
>> * eDP (no brightness control yet)
>
> in case your panel as a PWM backlight, you will need to set the PWM
> output pin function explicitly, see x1e80100-microsoft-romulus.dtsi
Thank you, will check this.
>> * NVMe
>> * USB Type-C port
>> * WiFi (WiFi 7 untested)
>> * GPU (software rendering)
>>
>> Not working:
>> * GPU (WIP: firmware loading but output is jerky)
>
> Please tell us more
Oh, this is already an older thing: with kernel 6.10 loading
gen70500_gmu.bin and gen70500_sqe.fw leading to partly slow and
stuttering video output. Sometimes it rendered black edges / borders to
KDE menus. Surely I did something wrong.
I have just tried to reproduce the same setup, but I couldn't get it to
work just now. If you are interested, I can try it again with a
new/current kernel. (which is preferred? linux? linux-next?)
>> * USB Type-A (WIP)
>> * Suspend with substantial energy saving
>> * Audio, Speakers, Microphones
>> * Camera
>> * Fingerprint Reader
>
> If it's connected to the multiport controller, you should be able to
> just enable it, like on the T14s, similarly to the Type-A port
sounds promising
> [...]
>
>> Signed-off-by: Georg Gottleuber <ggo@tuxedocomputers.com>
>> ---
>> arch/arm64/boot/dts/qcom/Makefile | 1 +
>> .../qcom/x1e80100-tuxedo-elite-14-gen1.dts | 798 ++++++++++++++++++
>> 2 files changed, 799 insertions(+)
>> create mode 100644
>> arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
>>
>> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
>> index 140b0b2abfb5..f0a9d677d957 100644
>> --- a/arch/arm64/boot/dts/qcom/Makefile
>> +++ b/arch/arm64/boot/dts/qcom/Makefile
>> @@ -298,3 +298,4 @@ dtb-$(CONFIG_ARCH_QCOM) += x1e80100-lenovo-yoga-slim7x.dtb
>> dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus13.dtb
>> dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus15.dtb
>> dtb-$(CONFIG_ARCH_QCOM) += x1e80100-qcp.dtb
>> +dtb-$(CONFIG_ARCH_QCOM) += x1e80100-tuxedo-elite-14-gen1.dtb
>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
>> new file mode 100644
>> index 000000000000..86bdec4a2dd8
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
>> @@ -0,0 +1,798 @@
>> +// SPDX-License-Identifier: BSD-3-Clause
>> +/*
>> + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
>> + * Copyright (c) 2025 TUXEDO Computers GmbH
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include <dt-bindings/gpio/gpio.h>
>> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
>> +
>> +#include "x1e80100.dtsi"
>> +#include "x1e80100-pmics.dtsi"
>> +
>> +/ {
>> + model = "TUXEDO Elite 14 Gen1";
>
> Please use 8-wide tabs instead of spaces
Sorry.
>> + compatible = "tuxedo,elite14gen1", "qcom,x1e80100";
>
> You'll need to define a new vendor in:
>
> Documentation/devicetree/bindings/vendor-prefixes.yaml
>
> [...]
>
>> + vreg_edp_3p3: regulator-edp-3p3 {
>> + compatible = "regulator-fixed";
>> +
>> + regulator-name = "VREG_EDP_3P3";
>> + regulator-min-microvolt = <3300000>;
>> + regulator-max-microvolt = <3300000>;
>> +
>> + // EDP_VDD_EN_GPIO54
>
> C-style (/* foo */) comments are preferred, but these ones can be
> removed, as they repeat what the code says
I have overlooked this. Sorry.
> [...]
>
>> +&gpu {
>> + status = "okay";
>> +
>> + zap-shader {
>> + firmware-name = "qcom/a740_zap.mbn";
>
> Are the laptop's OEM key/security fuses not blown?
I'm not sure. How can I verify this?
Regards,
Georg
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-06 15:22 ` Georg Gottleuber
@ 2025-03-06 18:15 ` Konrad Dybcio
2025-03-06 19:30 ` Michael Srba
0 siblings, 1 reply; 18+ messages in thread
From: Konrad Dybcio @ 2025-03-06 18:15 UTC (permalink / raw)
To: Georg Gottleuber, Georg Gottleuber, Bjorn Andersson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, wse, cs
On 6.03.2025 4:22 PM, Georg Gottleuber wrote:
>
>
> Am 06.03.25 um 13:50 schrieb Konrad Dybcio:
>> On 6.03.2025 1:25 PM, Georg Gottleuber wrote:
>>> Initial support for TUXEDO Elite 14 Gen1 based on Qualcomm Snapdragon X
>>> Elite SoC (X1E78100).
>>>
>>> Working:
>>> * Touchpad
>>> * Keyboard
>>> * eDP (no brightness control yet)
>>
>> in case your panel as a PWM backlight, you will need to set the PWM
>> output pin function explicitly, see x1e80100-microsoft-romulus.dtsi
>
> Thank you, will check this.
>
>>> * NVMe
>>> * USB Type-C port
>>> * WiFi (WiFi 7 untested)
>>> * GPU (software rendering)
>>>
>>> Not working:
>>> * GPU (WIP: firmware loading but output is jerky)
>>
>> Please tell us more
>
> Oh, this is already an older thing: with kernel 6.10 loading
> gen70500_gmu.bin and gen70500_sqe.fw leading to partly slow and
> stuttering video output. Sometimes it rendered black edges / borders to
> KDE menus. Surely I did something wrong.
>
> I have just tried to reproduce the same setup, but I couldn't get it to
> work just now. If you are interested, I can try it again with a
> new/current kernel. (which is preferred? linux? linux-next?)
linux-next/master is good
[...]
>>> +&gpu {
>>> + status = "okay";
>>> +
>>> + zap-shader {
>>> + firmware-name = "qcom/a740_zap.mbn";
>>
>> Are the laptop's OEM key/security fuses not blown?
>
> I'm not sure. How can I verify this?
If you took the ZAP file from linux-firmware and it loaded, they are
not blown.. meaning secure boot (not to be confused with UEFI secure
boot) is not there and anyone can replace the entire secure firmware
stack with what they please
Konrad
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-06 18:15 ` Konrad Dybcio
@ 2025-03-06 19:30 ` Michael Srba
0 siblings, 0 replies; 18+ messages in thread
From: Michael Srba @ 2025-03-06 19:30 UTC (permalink / raw)
To: Konrad Dybcio, Georg Gottleuber, Georg Gottleuber,
Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, wse, cs
On 06. 03. 25 19:15, Konrad Dybcio wrote:
> On 6.03.2025 4:22 PM, Georg Gottleuber wrote:
>>
>> Am 06.03.25 um 13:50 schrieb Konrad Dybcio:
>>> On 6.03.2025 1:25 PM, Georg Gottleuber wrote:
>>>> Initial support for TUXEDO Elite 14 Gen1 based on Qualcomm Snapdragon X
>>>> Elite SoC (X1E78100).
>>>>
>>>> Working:
>>>> * Touchpad
>>>> * Keyboard
>>>> * eDP (no brightness control yet)
>>> in case your panel as a PWM backlight, you will need to set the PWM
>>> output pin function explicitly, see x1e80100-microsoft-romulus.dtsi
>> Thank you, will check this.
>>
>>>> * NVMe
>>>> * USB Type-C port
>>>> * WiFi (WiFi 7 untested)
>>>> * GPU (software rendering)
>>>>
>>>> Not working:
>>>> * GPU (WIP: firmware loading but output is jerky)
>>> Please tell us more
>> Oh, this is already an older thing: with kernel 6.10 loading
>> gen70500_gmu.bin and gen70500_sqe.fw leading to partly slow and
>> stuttering video output. Sometimes it rendered black edges / borders to
>> KDE menus. Surely I did something wrong.
>>
>> I have just tried to reproduce the same setup, but I couldn't get it to
>> work just now. If you are interested, I can try it again with a
>> new/current kernel. (which is preferred? linux? linux-next?)
> linux-next/master is good
>
> [...]
>
>>>> +&gpu {
>>>> + status = "okay";
>>>> +
>>>> + zap-shader {
>>>> + firmware-name = "qcom/a740_zap.mbn";
>>> Are the laptop's OEM key/security fuses not blown?
>> I'm not sure. How can I verify this?
> If you took the ZAP file from linux-firmware and it loaded, they are
> not blown.. meaning secure boot (not to be confused with UEFI secure
> boot) is not there and anyone can replace the entire secure firmware
> stack with what they please
>
> Konrad
>
Which to be clear is probably something Tuxedo would want, because it's by far the simplest way to ensure that the person who buys the device can do that. Even without the SPI flash being write protected and requiring physical access to unprotect (which I believe is what google went with for chromebooks), afaik Linux can't access the spi flash in the default configuration so it would still not be particularly feasible for someone without physical access to abuse this.
Although I'm a bit confused here, because to my knowledge being able to replace the "entire secure firmware stack" before it even has a chance to run (which is what anyone wanting to replace it would presumably intend to do) is considered a privilege escalation CVE by qualcomm and is not something you are supposed to be able to do without their blessing. I suppose they may be a bit more lax about allowing the OEM (and therefore the user if the OEM graciously doesn't lock the device down) to skip XBL_SEC (or whatever it's called now) with TME now being the first core to boot, which would certainly be nice even if it's literally "you can have it as long as it is no longer equivalent to full control over your hw, which is what you wanted in the first place"
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-06 12:50 ` Konrad Dybcio
2025-03-06 15:22 ` Georg Gottleuber
@ 2025-03-07 6:45 ` Dmitry Baryshkov
2025-03-18 15:24 ` Georg Gottleuber
1 sibling, 1 reply; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-07 6:45 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Georg Gottleuber, Bjorn Andersson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree,
linux-kernel, wse, cs
On Thu, Mar 06, 2025 at 01:50:56PM +0100, Konrad Dybcio wrote:
> On 6.03.2025 1:25 PM, Georg Gottleuber wrote:
> > Initial support for TUXEDO Elite 14 Gen1 based on Qualcomm Snapdragon X
> > Elite SoC (X1E78100).
> >
> > Working:
> > * Touchpad
> > * Keyboard
> > * eDP (no brightness control yet)
>
> in case your panel as a PWM backlight, you will need to set the PWM
> output pin function explicitly, see x1e80100-microsoft-romulus.dtsi
>
> > * NVMe
> > * USB Type-C port
> > * WiFi (WiFi 7 untested)
> > * GPU (software rendering)
> >
> > Not working:
> > * GPU (WIP: firmware loading but output is jerky)
>
> Please tell us more
>
> > * USB Type-A (WIP)
> > * Suspend with substantial energy saving
> > * Audio, Speakers, Microphones
> > * Camera
> > * Fingerprint Reader
>
> If it's connected to the multiport controller, you should be able to
> just enable it, like on the T14s, similarly to the Type-A port
>
> [...]
>
> > Signed-off-by: Georg Gottleuber <ggo@tuxedocomputers.com>
> > ---
> > arch/arm64/boot/dts/qcom/Makefile | 1 +
> > .../qcom/x1e80100-tuxedo-elite-14-gen1.dts | 798 ++++++++++++++++++
> > 2 files changed, 799 insertions(+)
> > create mode 100644
> > arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> >
> > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> > index 140b0b2abfb5..f0a9d677d957 100644
> > --- a/arch/arm64/boot/dts/qcom/Makefile
> > +++ b/arch/arm64/boot/dts/qcom/Makefile
> > @@ -298,3 +298,4 @@ dtb-$(CONFIG_ARCH_QCOM) += x1e80100-lenovo-yoga-slim7x.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus13.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus15.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += x1e80100-qcp.dtb
> > +dtb-$(CONFIG_ARCH_QCOM) += x1e80100-tuxedo-elite-14-gen1.dtb
> > diff --git a/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> > new file mode 100644
> > index 000000000000..86bdec4a2dd8
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
>
> > +&gpu {
> > + status = "okay";
> > +
> > + zap-shader {
> > + firmware-name = "qcom/a740_zap.mbn";
>
> Are the laptop's OEM key/security fuses not blown?
Can this laptop use "qcom/x1e80100/gen70500_zap.mbn" which is already a
part of linux-firmware?
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-07 6:45 ` Dmitry Baryshkov
@ 2025-03-18 15:24 ` Georg Gottleuber
2025-03-18 15:57 ` Konrad Dybcio
` (2 more replies)
0 siblings, 3 replies; 18+ messages in thread
From: Georg Gottleuber @ 2025-03-18 15:24 UTC (permalink / raw)
To: Dmitry Baryshkov, Konrad Dybcio
Cc: Georg Gottleuber, Bjorn Andersson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree,
linux-kernel, wse, cs
[-- Attachment #1: Type: text/plain, Size: 860 bytes --]
Am 07.03.25 um 07:45 schrieb Dmitry Baryshkov:
[...]
>>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
>>> new file mode 100644
>>> index 000000000000..86bdec4a2dd8
>>> --- /dev/null
>>> +++ b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
>>
>>> +&gpu {
>>> + status = "okay";
>>> +
>>> + zap-shader {
>>> + firmware-name = "qcom/a740_zap.mbn";
>>
>> Are the laptop's OEM key/security fuses not blown?
>
> Can this laptop use "qcom/x1e80100/gen70500_zap.mbn" which is already a
> part of linux-firmware?
It seems so.
Because there were no logs about loading zap.mbn, I activated dyndbg
(dyndbg="file drivers/base/firmware_loader/main.c +fmp"). See attachment
for dmesg output. But GUI freezes after sddm login.
Best regards,
Georg
[-- Attachment #2: dmesg_loading_zap.log --]
[-- Type: text/x-log, Size: 2271 bytes --]
[ 38.585691] firmware_class:fw_log_firmware_info: msm_dpu ae01000.display-controller: Loaded FW: qcom/gen70500_sqe.fw, sha256: 05ae89e6dea62268cec3f4abb5d7d6db2c95270ff105fd056f77262e39d2e527
[ 38.585693] msm_dpu ae01000.display-controller: [drm:adreno_request_fw [msm]] loaded qcom/gen70500_sqe.fw from new location
[ 38.585708] firmware_class:__allocate_fw_priv: firmware_class: __allocate_fw_priv: fw-qcom/gen70500_gmu.bin fw_priv=0000000025167cab
[ 38.585816] firmware_class:fw_get_filesystem_firmware: msm_dpu ae01000.display-controller: Loading firmware from /lib/firmware/qcom/gen70500_gmu.bin
[ 38.585818] firmware_class:fw_get_filesystem_firmware: msm_dpu ae01000.display-controller: direct-loading qcom/gen70500_gmu.bin
[ 38.585819] firmware_class:fw_set_page_data: firmware_class: fw_set_page_data: fw-qcom/gen70500_gmu.bin fw_priv=0000000025167cab data=00000000e91785a9 size=81312
[ 38.585856] firmware_class:fw_log_firmware_info: msm_dpu ae01000.display-controller: Loaded FW: qcom/gen70500_gmu.bin, sha256: 5dfba247d548cabcb892ffa716e8dc82a345fd54b5dbae46ba523230e7ae37dd
[ 38.585858] msm_dpu ae01000.display-controller: [drm:adreno_request_fw [msm]] loaded qcom/gen70500_gmu.bin from new location
[ 38.588671] [drm] Loaded GMU firmware v4.3.17
[ 38.653154] firmware_class:__allocate_fw_priv: firmware_class: __allocate_fw_priv: fw-qcom/x1e80100/gen70500_zap.mbn fw_priv=0000000023d4bdba
[ 38.653329] firmware_class:fw_get_filesystem_firmware: msm_dpu ae01000.display-controller: Loading firmware from /lib/firmware/qcom/x1e80100/gen70500_zap.mbn
[ 38.653331] firmware_class:fw_get_filesystem_firmware: msm_dpu ae01000.display-controller: direct-loading qcom/x1e80100/gen70500_zap.mbn
[ 38.653333] firmware_class:fw_set_page_data: firmware_class: fw_set_page_data: fw-qcom/x1e80100/gen70500_zap.mbn fw_priv=0000000023d4bdba data=000000002768b5f9 size=12088
[ 38.653344] firmware_class:fw_log_firmware_info: msm_dpu ae01000.display-controller: Loaded FW: qcom/x1e80100/gen70500_zap.mbn, sha256: abaef5222856ce976014512d40f87d63b380a604dbb095c469f02feb924e0b26
[ 38.657789] firmware_class:__free_fw_priv: firmware_class: __free_fw_priv: fw-qcom/x1e80100/gen70500_zap.mbn fw_priv=0000000023d4bdba data=000000002768b5f9 size=12088
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-18 15:24 ` Georg Gottleuber
@ 2025-03-18 15:57 ` Konrad Dybcio
2025-03-18 17:17 ` Rob Clark
2025-03-18 21:36 ` Dmitry Baryshkov
2 siblings, 0 replies; 18+ messages in thread
From: Konrad Dybcio @ 2025-03-18 15:57 UTC (permalink / raw)
To: Georg Gottleuber, Dmitry Baryshkov
Cc: Georg Gottleuber, Bjorn Andersson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree,
linux-kernel, wse, cs
On 3/18/25 4:24 PM, Georg Gottleuber wrote:
> Am 07.03.25 um 07:45 schrieb Dmitry Baryshkov:
> [...]
>>>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
>>>> new file mode 100644
>>>> index 000000000000..86bdec4a2dd8
>>>> --- /dev/null
>>>> +++ b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
>>>
>>>> +&gpu {
>>>> + status = "okay";
>>>> +
>>>> + zap-shader {
>>>> + firmware-name = "qcom/a740_zap.mbn";
>>>
>>> Are the laptop's OEM key/security fuses not blown?
>>
>> Can this laptop use "qcom/x1e80100/gen70500_zap.mbn" which is already a
>> part of linux-firmware?
>
> It seems so.
>
> Because there were no logs about loading zap.mbn, I activated dyndbg
> (dyndbg="file drivers/base/firmware_loader/main.c +fmp"). See attachment
> for dmesg output. But GUI freezes after sddm login.
Okay, have you updated mesa to something recent? Try the current state of
main branch
Konrad
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-18 15:24 ` Georg Gottleuber
2025-03-18 15:57 ` Konrad Dybcio
@ 2025-03-18 17:17 ` Rob Clark
2025-03-18 21:36 ` Dmitry Baryshkov
2 siblings, 0 replies; 18+ messages in thread
From: Rob Clark @ 2025-03-18 17:17 UTC (permalink / raw)
To: Georg Gottleuber
Cc: Dmitry Baryshkov, Konrad Dybcio, Georg Gottleuber,
Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-msm, devicetree, linux-kernel, wse, cs
On Tue, Mar 18, 2025 at 8:28 AM Georg Gottleuber
<g.gottleuber@tuxedocomputers.com> wrote:
>
> Am 07.03.25 um 07:45 schrieb Dmitry Baryshkov:
> [...]
> >>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> >>> new file mode 100644
> >>> index 000000000000..86bdec4a2dd8
> >>> --- /dev/null
> >>> +++ b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> >>
> >>> +&gpu {
> >>> + status = "okay";
> >>> +
> >>> + zap-shader {
> >>> + firmware-name = "qcom/a740_zap.mbn";
> >>
> >> Are the laptop's OEM key/security fuses not blown?
> >
> > Can this laptop use "qcom/x1e80100/gen70500_zap.mbn" which is already a
> > part of linux-firmware?
>
> It seems so.
>
> Because there were no logs about loading zap.mbn, I activated dyndbg
> (dyndbg="file drivers/base/firmware_loader/main.c +fmp"). See attachment
> for dmesg output. But GUI freezes after sddm login.
Hmm, if zap were incorrectly signed, the error would come after
firmware_loader. You should see something with "Unable to authorize
the image" (`dmesg | grep drm` would show it).
As Konrad mentioned, make sure you have mesa v24.3 or later, v24.2 is
missing some needed fixes
BR,
-R
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-18 15:24 ` Georg Gottleuber
2025-03-18 15:57 ` Konrad Dybcio
2025-03-18 17:17 ` Rob Clark
@ 2025-03-18 21:36 ` Dmitry Baryshkov
2025-03-21 15:49 ` Ettore Chimenti
2 siblings, 1 reply; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-18 21:36 UTC (permalink / raw)
To: Georg Gottleuber
Cc: Dmitry Baryshkov, Konrad Dybcio, Georg Gottleuber,
Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-msm, devicetree, linux-kernel, wse, cs
On Tue, Mar 18, 2025 at 04:24:27PM +0100, Georg Gottleuber wrote:
> Am 07.03.25 um 07:45 schrieb Dmitry Baryshkov:
> [...]
> >>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> >>> new file mode 100644
> >>> index 000000000000..86bdec4a2dd8
> >>> --- /dev/null
> >>> +++ b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> >>
> >>> +&gpu {
> >>> + status = "okay";
> >>> +
> >>> + zap-shader {
> >>> + firmware-name = "qcom/a740_zap.mbn";
> >>
> >> Are the laptop's OEM key/security fuses not blown?
> >
> > Can this laptop use "qcom/x1e80100/gen70500_zap.mbn" which is already a
> > part of linux-firmware?
>
> It seems so.
>
> Because there were no logs about loading zap.mbn, I activated dyndbg
> (dyndbg="file drivers/base/firmware_loader/main.c +fmp"). See attachment
> for dmesg output. But GUI freezes after sddm login.
Does it happen only with this ZAP or does it happen with the ZAP from
WIndows too? Can you run some simple GPU workload, like kmscube from the
console?
>
> Best regards,
> Georg
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-18 21:36 ` Dmitry Baryshkov
@ 2025-03-21 15:49 ` Ettore Chimenti
2025-03-21 15:51 ` Dmitry Baryshkov
0 siblings, 1 reply; 18+ messages in thread
From: Ettore Chimenti @ 2025-03-21 15:49 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Georg Gottleuber, Dmitry Baryshkov, Konrad Dybcio,
Georg Gottleuber, Bjorn Andersson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree,
linux-kernel, wse, cs
Hi Dmitry,
On Tue, Mar 18, 2025 at 11:36:32PM +0200, Dmitry Baryshkov wrote:
> On Tue, Mar 18, 2025 at 04:24:27PM +0100, Georg Gottleuber wrote:
> > Am 07.03.25 um 07:45 schrieb Dmitry Baryshkov:
> > [...]
> > >>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> > >>> new file mode 100644
> > >>> index 000000000000..86bdec4a2dd8
> > >>> --- /dev/null
> > >>> +++ b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> > >>
> > >>> +&gpu {
> > >>> + status = "okay";
> > >>> +
> > >>> + zap-shader {
> > >>> + firmware-name = "qcom/a740_zap.mbn";
> > >>
> > >> Are the laptop's OEM key/security fuses not blown?
> > >
> > > Can this laptop use "qcom/x1e80100/gen70500_zap.mbn" which is already a
> > > part of linux-firmware?
> >
> > It seems so.
> >
> > Because there were no logs about loading zap.mbn, I activated dyndbg
> > (dyndbg="file drivers/base/firmware_loader/main.c +fmp"). See attachment
> > for dmesg output. But GUI freezes after sddm login.
>
> Does it happen only with this ZAP or does it happen with the ZAP from
> WIndows too? Can you run some simple GPU workload, like kmscube from the
> console?
>
It seems to work fine changing the `firmware-name` property to
"qcom/x1e80100/gen70500_zap.mbn" and updating to latest mesa on Debian
Sid (25.0.1).
Also tried with linux-firmware binary blob.
--
Best Regards,
Ettore
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-21 15:49 ` Ettore Chimenti
@ 2025-03-21 15:51 ` Dmitry Baryshkov
2025-03-28 11:34 ` Georg Gottleuber
0 siblings, 1 reply; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-21 15:51 UTC (permalink / raw)
To: Ettore Chimenti
Cc: Georg Gottleuber, Dmitry Baryshkov, Konrad Dybcio,
Georg Gottleuber, Bjorn Andersson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree,
linux-kernel, wse, cs
On Fri, 21 Mar 2025 at 17:49, Ettore Chimenti
<ettore.chimenti@linaro.org> wrote:
>
> Hi Dmitry,
>
> On Tue, Mar 18, 2025 at 11:36:32PM +0200, Dmitry Baryshkov wrote:
> > On Tue, Mar 18, 2025 at 04:24:27PM +0100, Georg Gottleuber wrote:
> > > Am 07.03.25 um 07:45 schrieb Dmitry Baryshkov:
> > > [...]
> > > >>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> > > >>> new file mode 100644
> > > >>> index 000000000000..86bdec4a2dd8
> > > >>> --- /dev/null
> > > >>> +++ b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> > > >>
> > > >>> +&gpu {
> > > >>> + status = "okay";
> > > >>> +
> > > >>> + zap-shader {
> > > >>> + firmware-name = "qcom/a740_zap.mbn";
> > > >>
> > > >> Are the laptop's OEM key/security fuses not blown?
> > > >
> > > > Can this laptop use "qcom/x1e80100/gen70500_zap.mbn" which is already a
> > > > part of linux-firmware?
> > >
> > > It seems so.
> > >
> > > Because there were no logs about loading zap.mbn, I activated dyndbg
> > > (dyndbg="file drivers/base/firmware_loader/main.c +fmp"). See attachment
> > > for dmesg output. But GUI freezes after sddm login.
> >
> > Does it happen only with this ZAP or does it happen with the ZAP from
> > WIndows too? Can you run some simple GPU workload, like kmscube from the
> > console?
> >
>
> It seems to work fine changing the `firmware-name` property to
> "qcom/x1e80100/gen70500_zap.mbn" and updating to latest mesa on Debian
> Sid (25.0.1).
>
> Also tried with linux-firmware binary blob.
Then please post an updated patch, using firmware & ZAP from linux-firmware.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-21 15:51 ` Dmitry Baryshkov
@ 2025-03-28 11:34 ` Georg Gottleuber
2025-03-28 12:42 ` Dmitry Baryshkov
0 siblings, 1 reply; 18+ messages in thread
From: Georg Gottleuber @ 2025-03-28 11:34 UTC (permalink / raw)
To: Dmitry Baryshkov, Ettore Chimenti
Cc: Dmitry Baryshkov, Konrad Dybcio, Georg Gottleuber,
Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-msm, devicetree, linux-kernel, wse, cs
Am 21.03.25 um 16:51 schrieb Dmitry Baryshkov:
> On Fri, 21 Mar 2025 at 17:49, Ettore Chimenti
> <ettore.chimenti@linaro.org> wrote:
>>
>> Hi Dmitry,
>>
>> On Tue, Mar 18, 2025 at 11:36:32PM +0200, Dmitry Baryshkov wrote:
>>> On Tue, Mar 18, 2025 at 04:24:27PM +0100, Georg Gottleuber wrote:
>>>> Am 07.03.25 um 07:45 schrieb Dmitry Baryshkov:
>>>> [...]
>>>>>>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
>>>>>>> new file mode 100644
>>>>>>> index 000000000000..86bdec4a2dd8
>>>>>>> --- /dev/null
>>>>>>> +++ b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
>>>>>>
>>>>>>> +&gpu {
>>>>>>> + status = "okay";
>>>>>>> +
>>>>>>> + zap-shader {
>>>>>>> + firmware-name = "qcom/a740_zap.mbn";
>>>>>>
>>>>>> Are the laptop's OEM key/security fuses not blown?
>>>>>
>>>>> Can this laptop use "qcom/x1e80100/gen70500_zap.mbn" which is already a
>>>>> part of linux-firmware?
>>>>
>>>> It seems so.
>>>>
>>>> Because there were no logs about loading zap.mbn, I activated dyndbg
>>>> (dyndbg="file drivers/base/firmware_loader/main.c +fmp"). See attachment
>>>> for dmesg output. But GUI freezes after sddm login.
>>>
>>> Does it happen only with this ZAP or does it happen with the ZAP from
>>> WIndows too? Can you run some simple GPU workload, like kmscube from the
>>> console?
>>>
>>
>> It seems to work fine changing the `firmware-name` property to
>> "qcom/x1e80100/gen70500_zap.mbn" and updating to latest mesa on Debian
>> Sid (25.0.1).
>>
>> Also tried with linux-firmware binary blob.
>
> Then please post an updated patch, using firmware & ZAP from linux-firmware.
I'm sorry, all our devices are engineering examples (including Ettores).
The mass production devices will be fused.
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1
2025-03-28 11:34 ` Georg Gottleuber
@ 2025-03-28 12:42 ` Dmitry Baryshkov
0 siblings, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2025-03-28 12:42 UTC (permalink / raw)
To: Georg Gottleuber
Cc: Ettore Chimenti, Dmitry Baryshkov, Konrad Dybcio,
Georg Gottleuber, Bjorn Andersson, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree,
linux-kernel, wse, cs
On Fri, Mar 28, 2025 at 12:34:43PM +0100, Georg Gottleuber wrote:
>
>
> Am 21.03.25 um 16:51 schrieb Dmitry Baryshkov:
> > On Fri, 21 Mar 2025 at 17:49, Ettore Chimenti
> > <ettore.chimenti@linaro.org> wrote:
> >>
> >> Hi Dmitry,
> >>
> >> On Tue, Mar 18, 2025 at 11:36:32PM +0200, Dmitry Baryshkov wrote:
> >>> On Tue, Mar 18, 2025 at 04:24:27PM +0100, Georg Gottleuber wrote:
> >>>> Am 07.03.25 um 07:45 schrieb Dmitry Baryshkov:
> >>>> [...]
> >>>>>>> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> >>>>>>> new file mode 100644
> >>>>>>> index 000000000000..86bdec4a2dd8
> >>>>>>> --- /dev/null
> >>>>>>> +++ b/arch/arm64/boot/dts/qcom/x1e80100-tuxedo-elite-14-gen1.dts
> >>>>>>
> >>>>>>> +&gpu {
> >>>>>>> + status = "okay";
> >>>>>>> +
> >>>>>>> + zap-shader {
> >>>>>>> + firmware-name = "qcom/a740_zap.mbn";
> >>>>>>
> >>>>>> Are the laptop's OEM key/security fuses not blown?
> >>>>>
> >>>>> Can this laptop use "qcom/x1e80100/gen70500_zap.mbn" which is already a
> >>>>> part of linux-firmware?
> >>>>
> >>>> It seems so.
> >>>>
> >>>> Because there were no logs about loading zap.mbn, I activated dyndbg
> >>>> (dyndbg="file drivers/base/firmware_loader/main.c +fmp"). See attachment
> >>>> for dmesg output. But GUI freezes after sddm login.
> >>>
> >>> Does it happen only with this ZAP or does it happen with the ZAP from
> >>> WIndows too? Can you run some simple GPU workload, like kmscube from the
> >>> console?
> >>>
> >>
> >> It seems to work fine changing the `firmware-name` property to
> >> "qcom/x1e80100/gen70500_zap.mbn" and updating to latest mesa on Debian
> >> Sid (25.0.1).
> >>
> >> Also tried with linux-firmware binary blob.
> >
> > Then please post an updated patch, using firmware & ZAP from linux-firmware.
>
> I'm sorry, all our devices are engineering examples (including Ettores).
> The mass production devices will be fused.
Then all the firmware names should be adjusted accordingly. Please see
the names used by Lenovo T14s as an example.
Also we'd really appreciate the firmware being contributed to
linux-firmware repo (again, see Lenovo example).
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2025-03-28 12:42 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-06 12:25 [PATCH] arm64: dts: qcom: Add device tree for TUXEDO Elite 14 Gen1 Georg Gottleuber
2025-03-06 12:41 ` Krzysztof Kozlowski
2025-03-06 13:56 ` Georg Gottleuber
2025-03-06 14:03 ` Krzysztof Kozlowski
2025-03-06 16:45 ` Dmitry Baryshkov
2025-03-06 12:50 ` Konrad Dybcio
2025-03-06 15:22 ` Georg Gottleuber
2025-03-06 18:15 ` Konrad Dybcio
2025-03-06 19:30 ` Michael Srba
2025-03-07 6:45 ` Dmitry Baryshkov
2025-03-18 15:24 ` Georg Gottleuber
2025-03-18 15:57 ` Konrad Dybcio
2025-03-18 17:17 ` Rob Clark
2025-03-18 21:36 ` Dmitry Baryshkov
2025-03-21 15:49 ` Ettore Chimenti
2025-03-21 15:51 ` Dmitry Baryshkov
2025-03-28 11:34 ` Georg Gottleuber
2025-03-28 12:42 ` Dmitry Baryshkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox