Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
I2C functions support.
Here is a diagram of AIM300 AIoT Carrie Board and SoM
+--------------------------------------------------+
| AIM300 AIOT Carrier Board |
| |
| +-----------------+ |
|power----->| Fixed regulator |---------+ |
| +-----------------+ | |
| | |
| v VPH_PWR |
| +----------------------------------------------+ |
| | AIM300 SOM | | |
| | |VPH_PWR | |
| | v | |
| | +-------+ +--------+ +------+ | |
| | | UFS | | QCS8550| |PMIC | | |
| | +-------+ +--------+ +------+ | |
| | | |
| +----------------------------------------------+ |
| |
| +----+ +------+ |
| |USB | | UART | |
| +----+ +------+ |
+--------------------------------------------------+
Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/qcs8550-aim300-aiot.dts | 322 ++++++++++++++++++
2 files changed, 323 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 99d606a15449..db093c8e4c1e 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -101,6 +101,7 @@ dtb-$(CONFIG_ARCH_QCOM) += qcm6490-idp.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-4000.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2.dtb
+dtb-$(CONFIG_ARCH_QCOM) += qcs8550-aim300-aiot.dtb
dtb-$(CONFIG_ARCH_QCOM) += qdu1000-idp.dtb
dtb-$(CONFIG_ARCH_QCOM) += qrb2210-rb1.dtb
dtb-$(CONFIG_ARCH_QCOM) += qrb4210-rb2.dtb
diff --git a/arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts b/arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
new file mode 100644
index 000000000000..49759274fb4a
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
@@ -0,0 +1,322 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include "qcs8550-aim300.dtsi"
+#include "pm8010.dtsi"
+#include "pmr735d_a.dtsi"
+#include "pmr735d_b.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. QCS8550 AIM300 AIOT";
+ compatible = "qcom,qcs8550-aim300-aiot", "qcom,qcs8550-aim300", "qcom,qcs8550",
+ "qcom,sm8550";
+
+ aliases {
+ serial0 = &uart7;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&volume_up_n>;
+ pinctrl-names = "default";
+
+ key-volume-up {
+ label = "Volume Up";
+ debounce-interval = <15>;
+ gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_VOLUMEUP>;
+ linux,can-disable;
+ wakeup-source;
+ };
+ };
+
+ pmic-glink {
+ compatible = "qcom,sm8550-pmic-glink", "qcom,pmic-glink";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ orientation-gpios = <&tlmm 11 GPIO_ACTIVE_HIGH>;
+
+ 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_hs_in: endpoint {
+ remote-endpoint = <&usb_1_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_ss_in: endpoint {
+ remote-endpoint = <&redriver_ss_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ pmic_glink_sbu: endpoint {
+ remote-endpoint = <&fsa4480_sbu_mux>;
+ };
+ };
+ };
+ };
+ };
+
+ 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 {
+ vdd-bob1-supply = <&vph_pwr>;
+ vdd-bob2-supply = <&vph_pwr>;
+ };
+
+ regulators-3 {
+ vdd-s4-supply = <&vph_pwr>;
+ vdd-s5-supply = <&vph_pwr>;
+ };
+
+ regulators-4 {
+ vdd-s4-supply = <&vph_pwr>;
+ };
+
+ regulators-5 {
+ vdd-s1-supply = <&vph_pwr>;
+ vdd-s2-supply = <&vph_pwr>;
+ vdd-s3-supply = <&vph_pwr>;
+ vdd-s4-supply = <&vph_pwr>;
+ vdd-s5-supply = <&vph_pwr>;
+ vdd-s6-supply = <&vph_pwr>;
+ };
+};
+
+&i2c_hub_2 {
+ status = "okay";
+
+ typec-mux@42 {
+ compatible = "fcs,fsa4480";
+ reg = <0x42>;
+
+ vcc-supply = <&vreg_bob1>;
+
+ mode-switch;
+ orientation-switch;
+
+ port {
+ fsa4480_sbu_mux: endpoint {
+ remote-endpoint = <&pmic_glink_sbu>;
+ };
+ };
+ };
+
+ typec-retimer@1c {
+ compatible = "onnn,nb7vpq904m";
+ reg = <0x1c>;
+
+ vcc-supply = <&vreg_l15b_1p8>;
+
+ orientation-switch;
+ retimer-switch;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ redriver_ss_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss_in>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ redriver_ss_in: endpoint {
+ data-lanes = <3 2 1 0>;
+ remote-endpoint = <&usb_dp_qmpphy_out>;
+ };
+ };
+ };
+ };
+};
+
+&mdss_dsi0 {
+ status = "okay";
+
+ panel@0 {
+ compatible = "visionox,vtdr6130";
+ reg = <0>;
+
+ pinctrl-0 = <&dsi_active>, <&te_active>;
+ pinctrl-1 = <&dsi_suspend>, <&te_suspend>;
+ pinctrl-names = "default", "sleep";
+
+ reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
+
+ vci-supply = <&vreg_l13b_3p0>;
+ vdd-supply = <&vreg_l11b_1p2>;
+ vddio-supply = <&vreg_l12b_1p8>;
+
+ port {
+ panel0_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&panel0_in>;
+ data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+ status = "okay";
+};
+
+&pcie0 {
+ status = "okay";
+};
+
+&pcie0_phy {
+ status = "okay";
+};
+
+&pcie1 {
+ status = "okay";
+};
+
+&pcie1_phy {
+ status = "okay";
+};
+
+&pm8550_gpios {
+ volume_up_n: volume-up-n-state {
+ pins = "gpio6";
+ function = "normal";
+ power-source = <1>;
+ bias-pull-up;
+ input-enable;
+ };
+};
+
+&pon_pwrkey {
+ status = "okay";
+};
+
+&pon_resin {
+ linux,code = <KEY_VOLUMEDOWN>;
+
+ status = "okay";
+};
+
+&qupv3_id_0 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/qcs8550/adsp.mbn",
+ "qcom/qcs8550/adsp_dtbs.elf";
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/qcs8550/cdsp.mbn",
+ "qcom/qcs8550/cdsp_dtbs.elf";
+ status = "okay";
+};
+
+&swr1 {
+ status = "okay";
+};
+
+&swr2 {
+ status = "okay";
+};
+
+&tlmm {
+ gpio-reserved-ranges = <32 8>;
+
+ dsi_active: dsi-active-state {
+ pins = "gpio133";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ dsi_suspend: dsi-suspend-state {
+ pins = "gpio133";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ te_active: te-active-state {
+ pins = "gpio86";
+ function = "mdp_vsync";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ te_suspend: te-suspend-state {
+ pins = "gpio86";
+ function = "mdp_vsync";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+};
+
+&uart7 {
+ status = "okay";
+};
+
+&usb_1 {
+ status = "okay";
+};
+
+&usb_1_dwc3_hs {
+ remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_hsphy {
+ status = "okay";
+};
+
+&usb_dp_qmpphy {
+ status = "okay";
+};
+
+&usb_dp_qmpphy_out {
+ remote-endpoint = <&redriver_ss_in>;
+};
--
2.25.1
On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
> I2C functions support.
> Here is a diagram of AIM300 AIoT Carrie Board and SoM
> +--------------------------------------------------+
> | AIM300 AIOT Carrier Board |
> | |
> | +-----------------+ |
> |power----->| Fixed regulator |---------+ |
> | +-----------------+ | |
> | | |
> | v VPH_PWR |
> | +----------------------------------------------+ |
> | | AIM300 SOM | | |
> | | |VPH_PWR | |
> | | v | |
> | | +-------+ +--------+ +------+ | |
> | | | UFS | | QCS8550| |PMIC | | |
> | | +-------+ +--------+ +------+ | |
> | | | |
> | +----------------------------------------------+ |
> | |
> | +----+ +------+ |
> | |USB | | UART | |
> | +----+ +------+ |
> +--------------------------------------------------+
>
> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../boot/dts/qcom/qcs8550-aim300-aiot.dts | 322 ++++++++++++++++++
> 2 files changed, 323 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
[trimmed]
> +&remoteproc_adsp {
> + firmware-name = "qcom/qcs8550/adsp.mbn",
> + "qcom/qcs8550/adsp_dtbs.elf";
Please excuse me, I think I missed those on the previous run.
adsp_dtb.mbn
> + status = "okay";
> +};
> +
> +&remoteproc_cdsp {
> + firmware-name = "qcom/qcs8550/cdsp.mbn",
> + "qcom/qcs8550/cdsp_dtbs.elf";
cdsp_dtb.mbn
> + status = "okay";
> +};
> +
> +&swr1 {
> + status = "okay";
> +};
> +
> +&swr2 {
> + status = "okay";
> +};
> +
> +&tlmm {
> + gpio-reserved-ranges = <32 8>;
> +
> + dsi_active: dsi-active-state {
> + pins = "gpio133";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-disable;
> + };
s/dsi/panel[-_]reset/
> +
> + dsi_suspend: dsi-suspend-state {
> + pins = "gpio133";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-down;
> + };
> +
> + te_active: te-active-state {
> + pins = "gpio86";
> + function = "mdp_vsync";
> + drive-strength = <2>;
> + bias-pull-down;
> + };
> +
> + te_suspend: te-suspend-state {
> + pins = "gpio86";
> + function = "mdp_vsync";
> + drive-strength = <2>;
> + bias-pull-down;
> + };
What is the difference between these two?
> +};
--
With best wishes
Dmitry
On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
> On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
>> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
>> I2C functions support.
>> Here is a diagram of AIM300 AIoT Carrie Board and SoM
>> +--------------------------------------------------+
>> | AIM300 AIOT Carrier Board |
>> | |
>> | +-----------------+ |
>> |power----->| Fixed regulator |---------+ |
>> | +-----------------+ | |
>> | | |
>> | v VPH_PWR |
>> | +----------------------------------------------+ |
>> | | AIM300 SOM | | |
>> | | |VPH_PWR | |
>> | | v | |
>> | | +-------+ +--------+ +------+ | |
>> | | | UFS | | QCS8550| |PMIC | | |
>> | | +-------+ +--------+ +------+ | |
>> | | | |
>> | +----------------------------------------------+ |
>> | |
>> | +----+ +------+ |
>> | |USB | | UART | |
>> | +----+ +------+ |
>> +--------------------------------------------------+
>>
>> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
>> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
>> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
>> ---
>> arch/arm64/boot/dts/qcom/Makefile | 1 +
>> .../boot/dts/qcom/qcs8550-aim300-aiot.dts | 322 ++++++++++++++++++
>> 2 files changed, 323 insertions(+)
>> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
>
> [trimmed]
>
>> +&remoteproc_adsp {
>> + firmware-name = "qcom/qcs8550/adsp.mbn",
>> + "qcom/qcs8550/adsp_dtbs.elf";
>
> Please excuse me, I think I missed those on the previous run.
>
> adsp_dtb.mbn
Currently, waht we have released is adsp_dtbs.elf. If we modify it to
adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.
>
>> + status = "okay";
>> +};
>> +
>> +&remoteproc_cdsp {
>> + firmware-name = "qcom/qcs8550/cdsp.mbn",
>> + "qcom/qcs8550/cdsp_dtbs.elf";
>
> cdsp_dtb.mbn
CDSP also as above ADSP.
>
>> + status = "okay";
>> +};
>> +
>> +&swr1 {
>> + status = "okay";
>> +};
>> +
>> +&swr2 {
>> + status = "okay";
>> +};
>> +
>> +&tlmm {
>> + gpio-reserved-ranges = <32 8>;
>> +
>> + dsi_active: dsi-active-state {
>> + pins = "gpio133";
>> + function = "gpio";
>> + drive-strength = <8>;
>> + bias-disable;
>> + };
>
> s/dsi/panel[-_]reset/
I will update this (like: "dsi_active" to "panel_resest_active") as your
recommendation.
>
>> +
>> + dsi_suspend: dsi-suspend-state {
>> + pins = "gpio133";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-pull-down;
>> + };
This also do update as "s/dsi/panel[-_]reset/".
>> +
>> + te_active: te-active-state {
>> + pins = "gpio86";
>> + function = "mdp_vsync";
>> + drive-strength = <2>;
>> + bias-pull-down;
>> + };
>> +
>> + te_suspend: te-suspend-state {
>> + pins = "gpio86";
>> + function = "mdp_vsync";
>> + drive-strength = <2>;
>> + bias-pull-down;
>> + };
>
> What is the difference between these two?
TE pin needs to be pulled down for both active and suspend states. There
is no difference.
>
>> +};
>
--
Thx and BRs,
Tengfei Fan
On Fri, 31 May 2024 at 11:35, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>
>
>
> On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
> > On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
> >> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
> >> I2C functions support.
> >> Here is a diagram of AIM300 AIoT Carrie Board and SoM
> >> +--------------------------------------------------+
> >> | AIM300 AIOT Carrier Board |
> >> | |
> >> | +-----------------+ |
> >> |power----->| Fixed regulator |---------+ |
> >> | +-----------------+ | |
> >> | | |
> >> | v VPH_PWR |
> >> | +----------------------------------------------+ |
> >> | | AIM300 SOM | | |
> >> | | |VPH_PWR | |
> >> | | v | |
> >> | | +-------+ +--------+ +------+ | |
> >> | | | UFS | | QCS8550| |PMIC | | |
> >> | | +-------+ +--------+ +------+ | |
> >> | | | |
> >> | +----------------------------------------------+ |
> >> | |
> >> | +----+ +------+ |
> >> | |USB | | UART | |
> >> | +----+ +------+ |
> >> +--------------------------------------------------+
> >>
> >> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
> >> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
> >> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> >> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> >> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
> >> ---
> >> arch/arm64/boot/dts/qcom/Makefile | 1 +
> >> .../boot/dts/qcom/qcs8550-aim300-aiot.dts | 322 ++++++++++++++++++
> >> 2 files changed, 323 insertions(+)
> >> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
> >
> > [trimmed]
> >
> >> +&remoteproc_adsp {
> >> + firmware-name = "qcom/qcs8550/adsp.mbn",
> >> + "qcom/qcs8550/adsp_dtbs.elf";
> >
> > Please excuse me, I think I missed those on the previous run.
> >
> > adsp_dtb.mbn
>
> Currently, waht we have released is adsp_dtbs.elf. If we modify it to
> adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.
Released where? linux-firmware doesn't have such a file. And the modem
partition most likely has a different path for it anyway.
>
> >
> >> + status = "okay";
> >> +};
> >> +
> >> +&remoteproc_cdsp {
> >> + firmware-name = "qcom/qcs8550/cdsp.mbn",
> >> + "qcom/qcs8550/cdsp_dtbs.elf";
> >
> > cdsp_dtb.mbn
>
> CDSP also as above ADSP.
>
> >
> >> +
> >> + te_active: te-active-state {
> >> + pins = "gpio86";
> >> + function = "mdp_vsync";
> >> + drive-strength = <2>;
> >> + bias-pull-down;
> >> + };
> >> +
> >> + te_suspend: te-suspend-state {
> >> + pins = "gpio86";
> >> + function = "mdp_vsync";
> >> + drive-strength = <2>;
> >> + bias-pull-down;
> >> + };
> >
> > What is the difference between these two?
>
> TE pin needs to be pulled down for both active and suspend states. There
> is no difference.
So why do you need two different states for it?
--
With best wishes
Dmitry
On 5/31/2024 4:38 PM, Dmitry Baryshkov wrote:
> On Fri, 31 May 2024 at 11:35, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>>
>>
>>
>> On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
>>> On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
>>>> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
>>>> I2C functions support.
>>>> Here is a diagram of AIM300 AIoT Carrie Board and SoM
>>>> +--------------------------------------------------+
>>>> | AIM300 AIOT Carrier Board |
>>>> | |
>>>> | +-----------------+ |
>>>> |power----->| Fixed regulator |---------+ |
>>>> | +-----------------+ | |
>>>> | | |
>>>> | v VPH_PWR |
>>>> | +----------------------------------------------+ |
>>>> | | AIM300 SOM | | |
>>>> | | |VPH_PWR | |
>>>> | | v | |
>>>> | | +-------+ +--------+ +------+ | |
>>>> | | | UFS | | QCS8550| |PMIC | | |
>>>> | | +-------+ +--------+ +------+ | |
>>>> | | | |
>>>> | +----------------------------------------------+ |
>>>> | |
>>>> | +----+ +------+ |
>>>> | |USB | | UART | |
>>>> | +----+ +------+ |
>>>> +--------------------------------------------------+
>>>>
>>>> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
>>>> ---
>>>> arch/arm64/boot/dts/qcom/Makefile | 1 +
>>>> .../boot/dts/qcom/qcs8550-aim300-aiot.dts | 322 ++++++++++++++++++
>>>> 2 files changed, 323 insertions(+)
>>>> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
>>>
>>> [trimmed]
>>>
>>>> +&remoteproc_adsp {
>>>> + firmware-name = "qcom/qcs8550/adsp.mbn",
>>>> + "qcom/qcs8550/adsp_dtbs.elf";
>>>
>>> Please excuse me, I think I missed those on the previous run.
>>>
>>> adsp_dtb.mbn
>>
>> Currently, waht we have released is adsp_dtbs.elf. If we modify it to
>> adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.
>
> Released where? linux-firmware doesn't have such a file. And the modem
> partition most likely has a different path for it anyway.
Firmware releases can be obtained from
https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
after users sign up for free accounts on both
https://qpm-git.qualcomm.com and https://chipmaster2.qti.qualcomm.com.
>
>>
>>>
>>>> + status = "okay";
>>>> +};
>>>> +
>>>> +&remoteproc_cdsp {
>>>> + firmware-name = "qcom/qcs8550/cdsp.mbn",
>>>> + "qcom/qcs8550/cdsp_dtbs.elf";
>>>
>>> cdsp_dtb.mbn
>>
>> CDSP also as above ADSP.
>>
>>>
>
>>>> +
>>>> + te_active: te-active-state {
>>>> + pins = "gpio86";
>>>> + function = "mdp_vsync";
>>>> + drive-strength = <2>;
>>>> + bias-pull-down;
>>>> + };
>>>> +
>>>> + te_suspend: te-suspend-state {
>>>> + pins = "gpio86"
>>>> + function = "mdp_vsync";
>>>> + drive-strength = <2>;
>>>> + bias-pull-down;
>>>> + };
>>>
>>> What is the difference between these two?
>>
>> TE pin needs to be pulled down for both active and suspend states. There
>> is no difference.
>
> So why do you need two different states for it?
Dividing into two different states can provide a clearer expression of
whether the corresponging functionality is avtive or suspend.
We can also find similar settings in the other SM8550 and SM8650
platform dts files, such as sm8550-qrd.dts and sm8650-qrd.dts.
[1] sm8550-qrd.dts:
https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8550-qrd.dts#L1052
[2] sm8650-qrd.dts:
https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8650-qrd.dts#L1098
>
>
>
>
>
--
Thx and BRs,
Tengfei Fan
On Mon, 3 Jun 2024 at 10:38, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>
>
>
> On 5/31/2024 4:38 PM, Dmitry Baryshkov wrote:
> > On Fri, 31 May 2024 at 11:35, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
> >>
> >>
> >>
> >> On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
> >>> On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
> >>>> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
> >>>> I2C functions support.
> >>>> Here is a diagram of AIM300 AIoT Carrie Board and SoM
> >>>> +--------------------------------------------------+
> >>>> | AIM300 AIOT Carrier Board |
> >>>> | |
> >>>> | +-----------------+ |
> >>>> |power----->| Fixed regulator |---------+ |
> >>>> | +-----------------+ | |
> >>>> | | |
> >>>> | v VPH_PWR |
> >>>> | +----------------------------------------------+ |
> >>>> | | AIM300 SOM | | |
> >>>> | | |VPH_PWR | |
> >>>> | | v | |
> >>>> | | +-------+ +--------+ +------+ | |
> >>>> | | | UFS | | QCS8550| |PMIC | | |
> >>>> | | +-------+ +--------+ +------+ | |
> >>>> | | | |
> >>>> | +----------------------------------------------+ |
> >>>> | |
> >>>> | +----+ +------+ |
> >>>> | |USB | | UART | |
> >>>> | +----+ +------+ |
> >>>> +--------------------------------------------------+
> >>>>
> >>>> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
> >>>> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
> >>>> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> >>>> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> >>>> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
> >>>> ---
> >>>> arch/arm64/boot/dts/qcom/Makefile | 1 +
> >>>> .../boot/dts/qcom/qcs8550-aim300-aiot.dts | 322 ++++++++++++++++++
> >>>> 2 files changed, 323 insertions(+)
> >>>> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
> >>>
> >>> [trimmed]
> >>>
> >>>> +&remoteproc_adsp {
> >>>> + firmware-name = "qcom/qcs8550/adsp.mbn",
> >>>> + "qcom/qcs8550/adsp_dtbs.elf";
> >>>
> >>> Please excuse me, I think I missed those on the previous run.
> >>>
> >>> adsp_dtb.mbn
> >>
> >> Currently, waht we have released is adsp_dtbs.elf. If we modify it to
> >> adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.
> >
> > Released where? linux-firmware doesn't have such a file. And the modem
> > partition most likely has a different path for it anyway.
>
> Firmware releases can be obtained from
> https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
> after users sign up for free accounts on both
> https://qpm-git.qualcomm.com and https://chipmaster2.qti.qualcomm.com.
I'm getting 403 when accessing qpm-git (both with my Linaro
credentials and with gmail ones).
If I try to git-clone the URL you've provided, I'm getting "Not found"
when using a gmail account and CURL error when using Linaro
createntials.
error: RPC failed; HTTP 302 curl 22 The requested URL returned error: 302
Not to mention that the URL wasn't mentioned anywhere beforehand. So I
can hardly call that 'released'
>
> >
> >>
> >>>
> >>>> + status = "okay";
> >>>> +};
> >>>> +
> >>>> +&remoteproc_cdsp {
> >>>> + firmware-name = "qcom/qcs8550/cdsp.mbn",
> >>>> + "qcom/qcs8550/cdsp_dtbs.elf";
> >>>
> >>> cdsp_dtb.mbn
> >>
> >> CDSP also as above ADSP.
> >>
> >>>
> >
> >>>> +
> >>>> + te_active: te-active-state {
> >>>> + pins = "gpio86";
> >>>> + function = "mdp_vsync";
> >>>> + drive-strength = <2>;
> >>>> + bias-pull-down;
> >>>> + };
> >>>> +
> >>>> + te_suspend: te-suspend-state {
> >>>> + pins = "gpio86"
> >>>> + function = "mdp_vsync";
> >>>> + drive-strength = <2>;
> >>>> + bias-pull-down;
> >>>> + };
> >>>
> >>> What is the difference between these two?
> >>
> >> TE pin needs to be pulled down for both active and suspend states. There
> >> is no difference.
> >
> > So why do you need two different states for it?
>
> Dividing into two different states can provide a clearer expression of
> whether the corresponging functionality is avtive or suspend.
How?
>
> We can also find similar settings in the other SM8550 and SM8650
> platform dts files, such as sm8550-qrd.dts and sm8650-qrd.dts.
Which means more items to cleanup.
See the discussion starting from
https://lore.kernel.org/linux-arm-msm/36f22383-79a3-427e-bf17-35ce2e1dd620@linaro.org/
>
> [1] sm8550-qrd.dts:
> https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8550-qrd.dts#L1052
>
> [2] sm8650-qrd.dts:
> https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8650-qrd.dts#L1098
>
> >
> >
> >
> >
> >
>
> --
> Thx and BRs,
> Tengfei Fan
--
With best wishes
Dmitry
On 6/3/2024 3:52 PM, Dmitry Baryshkov wrote:
> On Mon, 3 Jun 2024 at 10:38, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>>
>>
>>
>> On 5/31/2024 4:38 PM, Dmitry Baryshkov wrote:
>>> On Fri, 31 May 2024 at 11:35, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>>>>
>>>>
>>>>
>>>> On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
>>>>> On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
>>>>>> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
>>>>>> I2C functions support.
>>>>>> Here is a diagram of AIM300 AIoT Carrie Board and SoM
>>>>>> +--------------------------------------------------+
>>>>>> | AIM300 AIOT Carrier Board |
>>>>>> | |
>>>>>> | +-----------------+ |
>>>>>> |power----->| Fixed regulator |---------+ |
>>>>>> | +-----------------+ | |
>>>>>> | | |
>>>>>> | v VPH_PWR |
>>>>>> | +----------------------------------------------+ |
>>>>>> | | AIM300 SOM | | |
>>>>>> | | |VPH_PWR | |
>>>>>> | | v | |
>>>>>> | | +-------+ +--------+ +------+ | |
>>>>>> | | | UFS | | QCS8550| |PMIC | | |
>>>>>> | | +-------+ +--------+ +------+ | |
>>>>>> | | | |
>>>>>> | +----------------------------------------------+ |
>>>>>> | |
>>>>>> | +----+ +------+ |
>>>>>> | |USB | | UART | |
>>>>>> | +----+ +------+ |
>>>>>> +--------------------------------------------------+
>>>>>>
>>>>>> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>>>> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>>>> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>>>> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>>>> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
>>>>>> ---
>>>>>> arch/arm64/boot/dts/qcom/Makefile | 1 +
>>>>>> .../boot/dts/qcom/qcs8550-aim300-aiot.dts | 322 ++++++++++++++++++
>>>>>> 2 files changed, 323 insertions(+)
>>>>>> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
>>>>>
>>>>> [trimmed]
>>>>>
>>>>>> +&remoteproc_adsp {
>>>>>> + firmware-name = "qcom/qcs8550/adsp.mbn",
>>>>>> + "qcom/qcs8550/adsp_dtbs.elf";
>>>>>
>>>>> Please excuse me, I think I missed those on the previous run.
>>>>>
>>>>> adsp_dtb.mbn
>>>>
>>>> Currently, waht we have released is adsp_dtbs.elf. If we modify it to
>>>> adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.
>>>
>>> Released where? linux-firmware doesn't have such a file. And the modem
>>> partition most likely has a different path for it anyway.
>>
>> Firmware releases can be obtained from
>> https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
>> after users sign up for free accounts on both
>> https://qpm-git.qualcomm.com and https://chipmaster2.qti.qualcomm.com.
>
> I'm getting 403 when accessing qpm-git (both with my Linaro
> credentials and with gmail ones).
> If I try to git-clone the URL you've provided, I'm getting "Not found"
> when using a gmail account and CURL error when using Linaro
> createntials.
>
> error: RPC failed; HTTP 302 curl 22 The requested URL returned error: 302
>
> Not to mention that the URL wasn't mentioned anywhere beforehand. So I
> can hardly call that 'released'
>
Hi Dmitry,
Let me elabarote the way to get access to firmware of aim300.
Visit the website Qualcomm used to release software which is
chipcode.qti.qualcomm.com.
Use sign up to create a Qualcomm ID with email you have.
Login with your Qualcomm ID. Search for Qualcomm_Linux.SPF.1.0.
This is Qualcomm Linux release. Select
qualcomm-linux-spf-1-0_test_device_public. You should be able to find
the firmware release. You need to agree PKLA license during this process.
After that, you can edit ~/.netrc to add your username and password
which you just create as Qualcomm ID to chipmaster2.qti.qualcomm.com and
qpm-git.qualcomm.com.
git clone
https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
Firmware package is under
qualcomm-linux-spf-1-0_test_device_public/QCM8550.LE.2.0/common/build/ufs/bin/QCS8550_fw.zip.
Unzip this file. Firmware is under QCS8550_fw/lib/firmware/qcom/qcs8550/
>>
>>>
>>>>
>>>>>
>>>>>> + status = "okay";
>>>>>> +};
>>>>>> +
>>>>>> +&remoteproc_cdsp {
>>>>>> + firmware-name = "qcom/qcs8550/cdsp.mbn",
>>>>>> + "qcom/qcs8550/cdsp_dtbs.elf";
>>>>>
>>>>> cdsp_dtb.mbn
>>>>
>>>> CDSP also as above ADSP.
>>>>
>>>>>
>>>
>>>>>> +
>>>>>> + te_active: te-active-state {
>>>>>> + pins = "gpio86";
>>>>>> + function = "mdp_vsync";
>>>>>> + drive-strength = <2>;
>>>>>> + bias-pull-down;
>>>>>> + };
>>>>>> +
>>>>>> + te_suspend: te-suspend-state {
>>>>>> + pins = "gpio86"
>>>>>> + function = "mdp_vsync";
>>>>>> + drive-strength = <2>;
>>>>>> + bias-pull-down;
>>>>>> + };
>>>>>
>>>>> What is the difference between these two?
>>>>
>>>> TE pin needs to be pulled down for both active and suspend states. There
>>>> is no difference.
>>>
>>> So why do you need two different states for it?
>>
>> Dividing into two different states can provide a clearer expression of
>> whether the corresponging functionality is avtive or suspend.
>
> How?
>
>>
>> We can also find similar settings in the other SM8550 and SM8650
>> platform dts files, such as sm8550-qrd.dts and sm8650-qrd.dts.
>
> Which means more items to cleanup.
>
> See the discussion starting from
> https://lore.kernel.org/linux-arm-msm/36f22383-79a3-427e-bf17-35ce2e1dd620@linaro.org/
>
>>
>> [1] sm8550-qrd.dts:
>> https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8550-qrd.dts#L1052
>>
>> [2] sm8650-qrd.dts:
>> https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8650-qrd.dts#L1098
>>
>>>
>>>
>>>
>>>
>>>
>>
>> --
>> Thx and BRs,
>> Tengfei Fan
>
>
>
--
Thanks,
Tingwei
On Thu, 6 Jun 2024 at 12:27, Tingwei Zhang <quic_tingweiz@quicinc.com> wrote:
>
> On 6/3/2024 3:52 PM, Dmitry Baryshkov wrote:
> > On Mon, 3 Jun 2024 at 10:38, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
> >>
> >>
> >>
> >> On 5/31/2024 4:38 PM, Dmitry Baryshkov wrote:
> >>> On Fri, 31 May 2024 at 11:35, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
> >>>>
> >>>>
> >>>>
> >>>> On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
> >>>>> On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
> >>>>>> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
> >>>>>> I2C functions support.
> >>>>>> Here is a diagram of AIM300 AIoT Carrie Board and SoM
> >>>>>> +--------------------------------------------------+
> >>>>>> | AIM300 AIOT Carrier Board |
> >>>>>> | |
> >>>>>> | +-----------------+ |
> >>>>>> |power----->| Fixed regulator |---------+ |
> >>>>>> | +-----------------+ | |
> >>>>>> | | |
> >>>>>> | v VPH_PWR |
> >>>>>> | +----------------------------------------------+ |
> >>>>>> | | AIM300 SOM | | |
> >>>>>> | | |VPH_PWR | |
> >>>>>> | | v | |
> >>>>>> | | +-------+ +--------+ +------+ | |
> >>>>>> | | | UFS | | QCS8550| |PMIC | | |
> >>>>>> | | +-------+ +--------+ +------+ | |
> >>>>>> | | | |
> >>>>>> | +----------------------------------------------+ |
> >>>>>> | |
> >>>>>> | +----+ +------+ |
> >>>>>> | |USB | | UART | |
> >>>>>> | +----+ +------+ |
> >>>>>> +--------------------------------------------------+
> >>>>>>
> >>>>>> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
> >>>>>> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
> >>>>>> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> >>>>>> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> >>>>>> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
> >>>>>> ---
> >>>>>> arch/arm64/boot/dts/qcom/Makefile | 1 +
> >>>>>> .../boot/dts/qcom/qcs8550-aim300-aiot.dts | 322 ++++++++++++++++++
> >>>>>> 2 files changed, 323 insertions(+)
> >>>>>> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
> >>>>>
> >>>>> [trimmed]
> >>>>>
> >>>>>> +&remoteproc_adsp {
> >>>>>> + firmware-name = "qcom/qcs8550/adsp.mbn",
> >>>>>> + "qcom/qcs8550/adsp_dtbs.elf";
> >>>>>
> >>>>> Please excuse me, I think I missed those on the previous run.
> >>>>>
> >>>>> adsp_dtb.mbn
> >>>>
> >>>> Currently, waht we have released is adsp_dtbs.elf. If we modify it to
> >>>> adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.
> >>>
> >>> Released where? linux-firmware doesn't have such a file. And the modem
> >>> partition most likely has a different path for it anyway.
> >>
> >> Firmware releases can be obtained from
> >> https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
> >> after users sign up for free accounts on both
> >> https://qpm-git.qualcomm.com and https://chipmaster2.qti.qualcomm.com.
> >
> > I'm getting 403 when accessing qpm-git (both with my Linaro
> > credentials and with gmail ones).
> > If I try to git-clone the URL you've provided, I'm getting "Not found"
> > when using a gmail account and CURL error when using Linaro
> > createntials.
> >
> > error: RPC failed; HTTP 302 curl 22 The requested URL returned error: 302
> >
> > Not to mention that the URL wasn't mentioned anywhere beforehand. So I
> > can hardly call that 'released'
> >
> Hi Dmitry,
>
> Let me elabarote the way to get access to firmware of aim300.
>
> Visit the website Qualcomm used to release software which is
> chipcode.qti.qualcomm.com.
> Use sign up to create a Qualcomm ID with email you have.
> Login with your Qualcomm ID. Search for Qualcomm_Linux.SPF.1.0.
> This is Qualcomm Linux release. Select
> qualcomm-linux-spf-1-0_test_device_public. You should be able to find
> the firmware release. You need to agree PKLA license during this process.
>
> After that, you can edit ~/.netrc to add your username and password
> which you just create as Qualcomm ID to chipmaster2.qti.qualcomm.com and
> qpm-git.qualcomm.com.
> git clone
> https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
Cloning into 'qualcomm-linux-spf-1-0_test_device_public'...
Username for 'https://chipmaster2.qti.qualcomm.com': dbaryshkov@gmail.com
Password for 'https://dbaryshkov@gmail.com@chipmaster2.qti.qualcomm.com':
warning: redirecting to
https://chipmaster2.qti.qualcomm.com/home/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git/
error: RPC failed; HTTP 302 curl 22 The requested URL returned error: 302
fatal: the remote end hung up unexpectedly
> Firmware package is under
> qualcomm-linux-spf-1-0_test_device_public/QCM8550.LE.2.0/common/build/ufs/bin/QCS8550_fw.zip.
The licence file is not present inside the repository. So after
clicking through it it I have no way to check the terms of the
licence.
> Unzip this file. Firmware is under QCS8550_fw/lib/firmware/qcom/qcs8550/
Is there anything specific to qcs8550 vs sm8550? If not, it should go
to firmware/qcom/sm8550/ instead.
However, back to the original question. We are looking for the
unification of the firmware names, not for the further diversions of
them. Few weeks ago we got another ping from arm-soc maintainers to
stop including firmware-names into the DT files. From my point of
view, no matter what file name was used in the binary release, please
use adsp_dtb.mbn for upstream submission.
> >>
> >>>
> >>>>
> >>>>>
> >>>>>> + status = "okay";
> >>>>>> +};
> >>>>>> +
> >>>>>> +&remoteproc_cdsp {
> >>>>>> + firmware-name = "qcom/qcs8550/cdsp.mbn",
> >>>>>> + "qcom/qcs8550/cdsp_dtbs.elf";
> >>>>>
> >>>>> cdsp_dtb.mbn
> >>>>
> >>>> CDSP also as above ADSP.
--
With best wishes
Dmitry
On 6/6/2024 6:54 PM, Dmitry Baryshkov wrote:
> On Thu, 6 Jun 2024 at 12:27, Tingwei Zhang <quic_tingweiz@quicinc.com> wrote:
>>
>> On 6/3/2024 3:52 PM, Dmitry Baryshkov wrote:
>>> On Mon, 3 Jun 2024 at 10:38, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>>>>
>>>>
>>>>
>>>> On 5/31/2024 4:38 PM, Dmitry Baryshkov wrote:
>>>>> On Fri, 31 May 2024 at 11:35, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
>>>>>>> On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
>>>>>>>> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
>>>>>>>> I2C functions support.
>>>>>>>> Here is a diagram of AIM300 AIoT Carrie Board and SoM
>>>>>>>> +--------------------------------------------------+
>>>>>>>> | AIM300 AIOT Carrier Board |
>>>>>>>> | |
>>>>>>>> | +-----------------+ |
>>>>>>>> |power----->| Fixed regulator |---------+ |
>>>>>>>> | +-----------------+ | |
>>>>>>>> | | |
>>>>>>>> | v VPH_PWR |
>>>>>>>> | +----------------------------------------------+ |
>>>>>>>> | | AIM300 SOM | | |
>>>>>>>> | | |VPH_PWR | |
>>>>>>>> | | v | |
>>>>>>>> | | +-------+ +--------+ +------+ | |
>>>>>>>> | | | UFS | | QCS8550| |PMIC | | |
>>>>>>>> | | +-------+ +--------+ +------+ | |
>>>>>>>> | | | |
>>>>>>>> | +----------------------------------------------+ |
>>>>>>>> | |
>>>>>>>> | +----+ +------+ |
>>>>>>>> | |USB | | UART | |
>>>>>>>> | +----+ +------+ |
>>>>>>>> +--------------------------------------------------+
>>>>>>>>
>>>>>>>> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>>>>>> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>>>>>> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>>>>>> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>>>>>> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
>>>>>>>> ---
>>>>>>>> arch/arm64/boot/dts/qcom/Makefile | 1 +
>>>>>>>> .../boot/dts/qcom/qcs8550-aim300-aiot.dts | 322 ++++++++++++++++++
>>>>>>>> 2 files changed, 323 insertions(+)
>>>>>>>> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
>>>>>>>
>>>>>>> [trimmed]
>>>>>>>
>>>>>>>> +&remoteproc_adsp {
>>>>>>>> + firmware-name = "qcom/qcs8550/adsp.mbn",
>>>>>>>> + "qcom/qcs8550/adsp_dtbs.elf";
>>>>>>>
>>>>>>> Please excuse me, I think I missed those on the previous run.
>>>>>>>
>>>>>>> adsp_dtb.mbn
>>>>>>
>>>>>> Currently, waht we have released is adsp_dtbs.elf. If we modify it to
>>>>>> adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.
>>>>>
>>>>> Released where? linux-firmware doesn't have such a file. And the modem
>>>>> partition most likely has a different path for it anyway.
>>>>
>>>> Firmware releases can be obtained from
>>>> https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
>>>> after users sign up for free accounts on both
>>>> https://qpm-git.qualcomm.com and https://chipmaster2.qti.qualcomm.com.
>>>
>>> I'm getting 403 when accessing qpm-git (both with my Linaro
>>> credentials and with gmail ones).
>>> If I try to git-clone the URL you've provided, I'm getting "Not found"
>>> when using a gmail account and CURL error when using Linaro
>>> createntials.
>>>
>>> error: RPC failed; HTTP 302 curl 22 The requested URL returned error: 302
>>>
>>> Not to mention that the URL wasn't mentioned anywhere beforehand. So I
>>> can hardly call that 'released'
>>>
>> Hi Dmitry,
>>
>> Let me elabarote the way to get access to firmware of aim300.
>>
>> Visit the website Qualcomm used to release software which is
>> chipcode.qti.qualcomm.com.
>> Use sign up to create a Qualcomm ID with email you have.
>> Login with your Qualcomm ID. Search for Qualcomm_Linux.SPF.1.0.
>> This is Qualcomm Linux release. Select
>> qualcomm-linux-spf-1-0_test_device_public. You should be able to find
>> the firmware release. You need to agree PKLA license during this process.
>>
>> After that, you can edit ~/.netrc to add your username and password
>> which you just create as Qualcomm ID to chipmaster2.qti.qualcomm.com and
>> qpm-git.qualcomm.com.
>> git clone
>> https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
>
> Cloning into 'qualcomm-linux-spf-1-0_test_device_public'...
> Username for 'https://chipmaster2.qti.qualcomm.com': dbaryshkov@gmail.com
> Password for 'https://dbaryshkov@gmail.com@chipmaster2.qti.qualcomm.com':
> warning: redirecting to
> https://chipmaster2.qti.qualcomm.com/home/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git/
> error: RPC failed; HTTP 302 curl 22 The requested URL returned error: 302
> fatal: the remote end hung up unexpectedly
>
>
>> Firmware package is under
>> qualcomm-linux-spf-1-0_test_device_public/QCM8550.LE.2.0/common/build/ufs/bin/QCS8550_fw.zip.
>
> The licence file is not present inside the repository. So after
> clicking through it it I have no way to check the terms of the
> licence.
>
>> Unzip this file. Firmware is under QCS8550_fw/lib/firmware/qcom/qcs8550/
>
> Is there anything specific to qcs8550 vs sm8550? If not, it should go
> to firmware/qcom/sm8550/ instead.
>
> However, back to the original question. We are looking for the
> unification of the firmware names, not for the further diversions of
> them. Few weeks ago we got another ping from arm-soc maintainers to
> stop including firmware-names into the DT files. From my point of
> view, no matter what file name was used in the binary release, please
> use adsp_dtb.mbn for upstream submission.
>
*_dtb.mbn will be used instead of *_dtb.elf in the next version patch
series.
>>>>
>>>>>
>>>>>>
>>>>>>>
>>>>>>>> + status = "okay";
>>>>>>>> +};
>>>>>>>> +
>>>>>>>> +&remoteproc_cdsp {
>>>>>>>> + firmware-name = "qcom/qcs8550/cdsp.mbn",
>>>>>>>> + "qcom/qcs8550/cdsp_dtbs.elf";
>>>>>>>
>>>>>>> cdsp_dtb.mbn
>>>>>>
>>>>>> CDSP also as above ADSP.
>
>
--
Thx and BRs,
Tengfei Fan
On 6/3/2024 3:52 PM, Dmitry Baryshkov wrote:
> On Mon, 3 Jun 2024 at 10:38, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>>
>>
>>
>> On 5/31/2024 4:38 PM, Dmitry Baryshkov wrote:
>>> On Fri, 31 May 2024 at 11:35, Tengfei Fan <quic_tengfan@quicinc.com> wrote:
>>>>
>>>>
>>>>
>>>> On 5/29/2024 11:18 PM, Dmitry Baryshkov wrote:
>>>>> On Wed, May 29, 2024 at 06:09:26PM +0800, Tengfei Fan wrote:
>>>>>> Add AIM300 AIoT Carrier board DTS support, including usb, UART, PCIe,
>>>>>> I2C functions support.
>>>>>> Here is a diagram of AIM300 AIoT Carrie Board and SoM
>>>>>> +--------------------------------------------------+
>>>>>> | AIM300 AIOT Carrier Board |
>>>>>> | |
>>>>>> | +-----------------+ |
>>>>>> |power----->| Fixed regulator |---------+ |
>>>>>> | +-----------------+ | |
>>>>>> | | |
>>>>>> | v VPH_PWR |
>>>>>> | +----------------------------------------------+ |
>>>>>> | | AIM300 SOM | | |
>>>>>> | | |VPH_PWR | |
>>>>>> | | v | |
>>>>>> | | +-------+ +--------+ +------+ | |
>>>>>> | | | UFS | | QCS8550| |PMIC | | |
>>>>>> | | +-------+ +--------+ +------+ | |
>>>>>> | | | |
>>>>>> | +----------------------------------------------+ |
>>>>>> | |
>>>>>> | +----+ +------+ |
>>>>>> | |USB | | UART | |
>>>>>> | +----+ +------+ |
>>>>>> +--------------------------------------------------+
>>>>>>
>>>>>> Co-developed-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>>>> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
>>>>>> Co-developed-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>>>> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
>>>>>> Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
>>>>>> ---
>>>>>> arch/arm64/boot/dts/qcom/Makefile | 1 +
>>>>>> .../boot/dts/qcom/qcs8550-aim300-aiot.dts | 322 ++++++++++++++++++
>>>>>> 2 files changed, 323 insertions(+)
>>>>>> create mode 100644 arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts
>>>>>
>>>>> [trimmed]
>>>>>
>>>>>> +&remoteproc_adsp {
>>>>>> + firmware-name = "qcom/qcs8550/adsp.mbn",
>>>>>> + "qcom/qcs8550/adsp_dtbs.elf";
>>>>>
>>>>> Please excuse me, I think I missed those on the previous run.
>>>>>
>>>>> adsp_dtb.mbn
>>>>
>>>> Currently, waht we have released is adsp_dtbs.elf. If we modify it to
>>>> adsp_dtb.mbn, it may cause the ADSP functionality can not boot normally.
>>>
>>> Released where? linux-firmware doesn't have such a file. And the modem
>>> partition most likely has a different path for it anyway.
>>
>> Firmware releases can be obtained from
>> https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_test_device_public.git
>> after users sign up for free accounts on both
>> https://qpm-git.qualcomm.com and https://chipmaster2.qti.qualcomm.com.
>
> I'm getting 403 when accessing qpm-git (both with my Linaro
> credentials and with gmail ones).
> If I try to git-clone the URL you've provided, I'm getting "Not found"
> when using a gmail account and CURL error when using Linaro
> createntials.
>
> error: RPC failed; HTTP 302 curl 22 The requested URL returned error: 302
>
> Not to mention that the URL wasn't mentioned anywhere beforehand. So I
> can hardly call that 'released'
>
>>
>>>
>>>>
>>>>>
>>>>>> + status = "okay";
>>>>>> +};
>>>>>> +
>>>>>> +&remoteproc_cdsp {
>>>>>> + firmware-name = "qcom/qcs8550/cdsp.mbn",
>>>>>> + "qcom/qcs8550/cdsp_dtbs.elf";
>>>>>
>>>>> cdsp_dtb.mbn
>>>>
>>>> CDSP also as above ADSP.
>>>>
>>>>>
>>>
>>>>>> +
>>>>>> + te_active: te-active-state {
>>>>>> + pins = "gpio86";
>>>>>> + function = "mdp_vsync";
>>>>>> + drive-strength = <2>;
>>>>>> + bias-pull-down;
>>>>>> + };
>>>>>> +
>>>>>> + te_suspend: te-suspend-state {
>>>>>> + pins = "gpio86"
>>>>>> + function = "mdp_vsync";
>>>>>> + drive-strength = <2>;
>>>>>> + bias-pull-down;
>>>>>> + };
>>>>>
>>>>> What is the difference between these two?
>>>>
>>>> TE pin needs to be pulled down for both active and suspend states. There
>>>> is no difference.
>>>
>>> So why do you need two different states for it?
>>
>> Dividing into two different states can provide a clearer expression of
>> whether the corresponging functionality is avtive or suspend.
>
> How?
I understand your consideration from the upstream patch link which you
shared. Insteading of maintaining two separate state nodes, I will
update a default state node in the next patch series.
>
>>
>> We can also find similar settings in the other SM8550 and SM8650
>> platform dts files, such as sm8550-qrd.dts and sm8650-qrd.dts.
>
> Which means more items to cleanup.
>
> See the discussion starting from
> https://lore.kernel.org/linux-arm-msm/36f22383-79a3-427e-bf17-35ce2e1dd620@linaro.org/
>
>>
>> [1] sm8550-qrd.dts:
>> https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8550-qrd.dts#L1052
>>
>> [2] sm8650-qrd.dts:
>> https://elixir.bootlin.com/linux/v6.9.3/source/arch/arm64/boot/dts/qcom/sm8650-qrd.dts#L1098
>>
>>>
>>>
>>>
>>>
>>>
>>
>> --
>> Thx and BRs,
>> Tengfei Fan
>
>
>
--
Thx and BRs,
Tengfei Fan
© 2016 - 2025 Red Hat, Inc.