pixel4 xl debug记录

烧写需要哪些image:
boot
dtbo
vbmeta
vbmeta_system
super_empty

进入fastbootd 模式
product system vendor

1, 单独运行boot.img
adb reboot bootloader
fastboot boot boot.img
2,打包左右的image 为update.zip
进行脚本的烧写

下面是调试信息:
1, 全部提换kernel out, 修改just status=okay
wifi 不能使用,touch 不能使用,屏幕正常显示

2, 全部提换kernel out, 修改如掉dp connector 修改
烧录不进去,屏幕黑屏
Writing 'vbmeta_a' OKAY [ 0.071s]
extracting vbmeta_system.img (0 MB) to disk... took 0.001s
archive does not contain 'vbmeta_system.sig'
Sending 'vbmeta_system_a' (4 KB) OKAY [ 0.138s]
Writing 'vbmeta_system_a' OKAY [ 0.064s]
archive does not contain 'vendor_boot.img'
extracting super_empty.img (0 MB) to disk... took 0.001s
Rebooting into fastboot OKAY [ 0.064s]
< waiting for any device >

等待很长时间也没有响应

3, 仅仅替换dtbo.img, 修改如掉dp connector 修改
烧录不进去,屏幕有显示crash ,见拍照

4,kernel 不做任何修改, android 原生, kernel 不copy
系统能起来,touch可以使用

5,android 原生提换dtbo.img ,重新build boot.img , 仅仅烧写boot.img dbto.img vbmeta.img
adb root adb disable-verity
系统结果:系统不能启动crash

6,android 原生提换dtbo.img sm8150.dtb, sm8150-v2.dtb,重新build boot.img , 仅仅烧写boot.img dbto.img vbmeta.img
adb root adb disable-verity
系统结果:系统不能启动crash

=======debug==i2c==========================================================================

define ENOTCONN 107 /* Transport endpoint is not connected */

/home/xfwang/nreal/pixkernel/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-gcc

--------------------google 下载的android---------------------

&sde_dp {
qcom,dp-usbpd-detection = <&pm8150b_pdphy>;
qcom,ext-disp = <&ext_disp>;
qcom,dp-aux-switch = <&fsa4480>;

    qcom,usbplug-cc-gpio = <&tlmm 38 0>;

    pinctrl-names = "mdss_dp_active", "mdss_dp_sleep";
    pinctrl-0 = <&sde_dp_usbplug_cc_active>;
    pinctrl-1 = <&sde_dp_usbplug_cc_suspend>;

};

&mdss_mdp {
connectors = <&sde_rscc &sde_wb &sde_dp &sde_dsi &sde_dsi1>;
};

7, kernel just modify
index 8b09139..6398a19 100644
--- a/arch/arm64/boot/dts/google/sm8150-floral-display.dtsi
+++ b/arch/arm64/boot/dts/google/sm8150-floral-display.dtsi
@@ -154,12 +154,8 @@
};
};
-&sde_dp {

  •   status = "disabled";
    

-};

&mdss_mdp {

  •   connectors = <&sde_rscc &sde_wb &sde_dsi>;
    
  •   connectors = <&sde_rscc &sde_wb &sde_dp &sde_dsi>;
    

};

&soc {

结果:不能烧写,报烧写错误

8.不做任何修改,可以烧写

--- a/arch/arm64/boot/dts/google/sm8150-floral-display.dtsi
+++ b/arch/arm64/boot/dts/google/sm8150-floral-display.dtsi
@@ -154,12 +154,9 @@
};
};

-&sde_dp {

  •   status = "disabled";
    

-};

&mdss_mdp {

  •   connectors = <&sde_rscc &sde_wb &sde_dsi>;
    
  •   connectors = <&sde_rscc &sde_wb &sde_dp &sde_dsi>;
    

};

&soc {
diff --git a/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi b/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi
index 58bb42b..2bf0eda 100644
--- a/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi
@@ -534,17 +534,8 @@
};

&sde_dp {

  •   qcom,dp-usbpd-detection = <&pm8150b_pdphy>;
    
  •   qcom,ext-disp = <&ext_disp>;
    
  •   qcom,dp-aux-switch = <&fsa4480>;
    
  •   qcom,usbplug-cc-gpio = <&tlmm 38 0>;
    
  •   pinctrl-names = "mdss_dp_active", "mdss_dp_sleep";
    
  •   pinctrl-0 = <&sde_dp_usbplug_cc_active>;
    
  •   pinctrl-1 = <&sde_dp_usbplug_cc_suspend>;
    

};

&mdss_mdp {
connectors = <&sde_rscc &sde_wb &sde_dp &sde_dsi &sde_dsi1>;
};
结果可以正常启动

10:
index 8b09139..b9f24b0 100644
--- a/arch/arm64/boot/dts/google/sm8150-floral-display.dtsi
+++ b/arch/arm64/boot/dts/google/sm8150-floral-display.dtsi
@@ -154,12 +154,9 @@
};
};

-&sde_dp {

  •   status = "disabled";
    

-};

&mdss_mdp {

  •   connectors = <&sde_rscc &sde_wb &sde_dsi>;
    
  •   connectors = <&sde_rscc &sde_wb &sde_dp &sde_dsi>;
    

};

&soc {
diff --git a/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi b/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi
index 58bb42b..a710f2d 100644
--- a/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi
@@ -538,11 +538,7 @@
qcom,ext-disp = <&ext_disp>;
qcom,dp-aux-switch = <&fsa4480>;

  •   qcom,usbplug-cc-gpio = <&tlmm 38 0>;
    
  •   pinctrl-names = "mdss_dp_active", "mdss_dp_sleep";
    
  •   pinctrl-0 = <&sde_dp_usbplug_cc_active>;
    
  •   pinctrl-1 = <&sde_dp_usbplug_cc_suspend>;
    

};

&mdss_mdp {

结果corrupt

11 修改下面
--- a/arch/arm64/boot/dts/google/sm8150-floral-display.dtsi
+++ b/arch/arm64/boot/dts/google/sm8150-floral-display.dtsi
@@ -154,12 +154,9 @@
};
};

-&sde_dp {

  •   status = "disabled";
    

-};

&mdss_mdp {

  •   connectors = <&sde_rscc &sde_wb &sde_dsi>;
    
  •   connectors = <&sde_rscc &sde_wb &sde_dp &sde_dsi>;
    

};

&soc {
diff --git a/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi b/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi
index 58bb42b..4345f90 100644
--- a/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi
@@ -535,14 +535,6 @@

&sde_dp {
qcom,dp-usbpd-detection = <&pm8150b_pdphy>;

  •   qcom,ext-disp = <&ext_disp>;
    
  •   qcom,dp-aux-switch = <&fsa4480>;
    
  •   qcom,usbplug-cc-gpio = <&tlmm 38 0>;
    
  •   pinctrl-names = "mdss_dp_active", "mdss_dp_sleep";
    
  •   pinctrl-0 = <&sde_dp_usbplug_cc_active>;
    
  •   pinctrl-1 = <&sde_dp_usbplug_cc_suspend>;
    

};

&mdss_mdp {

结果可以正常启动

12:qcom,dp-aux-switch = <&fsa4480>; remove only , can boot

vim arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi

--- a/arch/arm64/boot/dts/google/sm8150-floral-display.dtsi
+++ b/arch/arm64/boot/dts/google/sm8150-floral-display.dtsi
@@ -154,12 +154,9 @@
};
};

-&sde_dp {

  •   status = "disabled";
    

-};

&mdss_mdp {

  •   connectors = <&sde_rscc &sde_wb &sde_dsi>;
    
  •   connectors = <&sde_rscc &sde_wb &sde_dp &sde_dsi>;
    

};

&soc {
diff --git a/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi b/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi
index 58bb42b..4345f90 100644
--- a/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi
@@ -535,14 +535,6 @@

&sde_dp {
qcom,dp-usbpd-detection = <&pm8150b_pdphy>;
qcom,ext-disp = <&ext_disp>;

  •   qcom,dp-aux-switch = <&fsa4480>;
     qcom,usbplug-cc-gpio = <&tlmm 38 0>;
     pinctrl-names = "mdss_dp_active", "mdss_dp_sleep";
     pinctrl-0 = <&sde_dp_usbplug_cc_active>;
     pinctrl-1 = <&sde_dp_usbplug_cc_suspend>;
    

};
&mdss_mdp {

结果可以正常启动

----------------pixel--debug----------------------------
dp_display.c:
dp_display_probe---》dp_display_init_aux_switch--》of_parse_phandle(解析节点:qcom,dp-aux-switch = <&fsa4480>;)--》
-----fsa4480_i2c.c--->fsa4480_reg_notifier-----》of_find_i2c_device_by_node(找到device?)
of_find_i2c_device_by_node---返回值是null

----------------qrd--debug----------------------------
dp_display.c:
dp_display_probe---》dp_display_init_aux_switch--》of_parse_phandle(解析节点:qcom,dp-aux-switch = <&fsa4480>;)--》
-----fsa4480_i2c.c--->fsa4480_reg_notifier-----》of_find_i2c_device_by_node(找不到device)
of_find_i2c_device_by_node---返回值不是null

能够知道89000 这个地址怎么使用的
ls -l 89
130|coral:/sys/devices/platform/soc # ls -l 89*
890000.i2c:
total 0
lrwxrwxrwx 1 root root 0 2020-02-19 06:52 driver -> ../../../../bus/platform/drivers/i2c_geni
-rw-r--r-- 1 root root 4096 2020-02-19 06:52 driver_override
drwxr-xr-x 5 root root 0 1970-04-28 22:57 i2c-0
-r--r--r-- 1 root root 4096 2020-02-19 06:52 modalias
lrwxrwxrwx 1 root root 0 2020-02-19 06:52 of_node -> ../../../../firmware/devicetree/base/soc/i2c@890000
drwxr-xr-x 2 root root 0 1970-04-28 22:57 power
lrwxrwxrwx 1 root root 0 2020-02-19 06:52 subsystem -> ../../../../bus/platform
-rw-r--r-- 1 root root 4096 1970-04-28 22:57 uevent
coral:/sys/devices/platform/soc/

=========================================================================================================

====================================================QRD=====================================================

=========================================================================================================

=====DTS=包含关系==========PATH:==pixkernel/private/msm-google/arch/arm64/boot/dts=======================
=DTS 包含关系==========PATH:==855_10Q_nreal/LINUX/android/kernel/msm-4.14/arch/arm64/boot/dts===
sm8150-qupv3.dtsi:
qupv3_se4_i2c: i2c@890000 {
compatible = "qcom,i2c-geni";
reg = <0x890000 0x4000>;
interrupts = <GIC_SPI 605 0>;
#address-cells = <1>;
#size-cells = <0>;
clock-names = "se-clk", "m-ahb", "s-ahb";
clocks = <&clock_gcc GCC_QUPV3_WRAP0_S4_CLK>,
<&clock_gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
<&clock_gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
dmas = <&gpi_dma0 0 4 3 64 0>,
<&gpi_dma0 1 4 3 64 0>;
dma-names = "tx", "rx";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&qupv3_se4_i2c_active>;
pinctrl-1 = <&qupv3_se4_i2c_sleep>;
qcom,wrapper-core = <&qupv3_0>;
status = "disabled";
};


./qcom/sm8150.dtsi:#include "sm8150-qupv3.dtsi"
./qcom/sm8150-qrd.dts:#include "sm8150.dtsi" //最后的板级DTS
sm8150-qupv3.dtsi---包含于---》sm8150.dtsi----包含于----》sm8150-qrd.dtsi--包含于---->sm8150-qrd.dts
sm8150.dtsi:
aliases {
serial0 = &qupv3_se12_2uart;
hsuart0 = &qupv3_se13_4uart;
spi0 = &qupv3_se3_spi;
i2c0 = &qupv3_se4_i2c;
};


./qcom/sm8150.dtsi:#include "sm8150-audio.dtsi"
sm8150-audio.dtsi-------包含于---->sm8150.dtsi

sm8150-audio.dtsi:
&qupv3_se4_i2c {
status = "ok";
fsa4480: fsa4480@43 {
compatible = "qcom,fsa4480-i2c";
reg = <0x43>;
pinctrl-names = "default";
pinctrl-0 = <&fsa_usbc_ana_en>;
};
};


./qcom/sm8150-qrd.dtsi:17:#include "sm8150-sde-display.dtsi"
sm8150-sde-display.dtsi-----包含于----》sm8150-qrd.dtsi----包含于---->sm8150-qrd.dts
sm8150-sde-display.dtsi:
&sde_dp {
qcom,dp-usbpd-detection = <&pm8150b_pdphy>;
qcom,ext-disp = <&ext_disp>;
qcom,dp-aux-switch = <&fsa4480>;
qcom,usbplug-cc-gpio = <&tlmm 38 0>;
pinctrl-names = "mdss_dp_active", "mdss_dp_sleep";
pinctrl-0 = <&sde_dp_usbplug_cc_active>;
pinctrl-1 = <&sde_dp_usbplug_cc_suspend>;
};

=========================================================================================================

====================================================PIXEL=====================================================

=========================================================================================================

=====DTS=包含关系==========PATH:==pixkernel/private/msm-google/arch/arm64/boot/dts=======================
./google/sm8150-floral-common.dtsi:#include "sm8150-floral-touch.dtsi"
./google/sm8150-floral-touch.dtsi--包含于---->sm8150-floral-common.dtsi

/qcom/sm8150-sde-display.dtsi---->sm8150-floral-display.dtsi--->sm8150-floral-common.dtsi
sm8150-sde-display.dtsi:
&sde_dp {
qcom,dp-usbpd-detection = <&pm8150b_pdphy>;
qcom,ext-disp = <&ext_disp>;
qcom,dp-aux-switch = <&fsa4480>;

    qcom,usbplug-cc-gpio = <&tlmm 38 0>;

    pinctrl-names = "mdss_dp_active", "mdss_dp_sleep";
    pinctrl-0 = <&sde_dp_usbplug_cc_active>;
    pinctrl-1 = <&sde_dp_usbplug_cc_suspend>;

};

-----------------------pixel手机dts---------------------------------------------
./qcom-base/sm8150-qupv3.dtsi
qupv3_se9_i2c:
qupv3_se9_i2c: i2c@a84000 {
compatible = "qcom,i2c-geni";
reg = <0xa84000 0x4000>;
interrupts = <GIC_SPI 354 0>;
#address-cells = <1>;
#size-cells = <0>;
clock-names = "se-clk", "m-ahb", "s-ahb";
clocks = <&clock_gcc GCC_QUPV3_WRAP1_S1_CLK>,
<&clock_gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
<&clock_gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
dmas = <&gpi_dma1 0 1 3 64 0>,
<&gpi_dma1 1 1 3 64 0>;
dma-names = "tx", "rx";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&qupv3_se9_i2c_active>;
pinctrl-1 = <&qupv3_se9_i2c_sleep>;
qcom,wrapper-core = <&qupv3_1>;
status = "disabled";
};

./sm8150-floral-camera-pmic.dtsi
&qupv3_se9_i2c {
/* MAX77826 */
status = "ok";
MAX77826: MAX77826@60 {
compatible = "max77826,max77826-regulator";
reg = <0x60>;
status = "ok";
pinctrl-names = "cam_pmic_en";
pinctrl-0 = <&cam_sensor_pmic_active>;
maxim,enable-gpio = <&tlmm 102 0>;

            regulators {
                    max77826_ldo1: max77826_ldo1 {
                            regulator-name = "max77826_ldo1";
                            regulator-min-microvolt = <600000>;
                            regulator-max-microvolt = <2187500>;
                    };

}

-----pixel 手机修改-------------
diff --git a/arch/arm64/boot/dts/google/sm8150-floral-touch.dtsi b/arch/arm64/boot/dts/google/sm8150-floral-touch.dtsi
index 3085749..7f64b9f 100644
--- a/arch/arm64/boot/dts/google/sm8150-floral-touch.dtsi
+++ b/arch/arm64/boot/dts/google/sm8150-floral-touch.dtsi
@@ -34,7 +34,13 @@
};

&qupv3_se4_i2c {

  •   status = "ok";
    
  •    status = "ok";
    
  •    fsa4480: fsa4480@43 {
    
  •            compatible = "qcom,fsa4480-i2c";
    
  •            reg = <0x43>;
    
  •            pinctrl-names = "default";
    
  •            pinctrl-0 = <&fsa_usbc_ana_en>;
    
  •    };
    

};

=======================PIXEL 手机修改====分割=====================================
sm8150-audio.dtsi:
&qupv3_se4_i2c {
status = "ok";
fsa4480: fsa4480@43 {
compatible = "qcom,fsa4480-i2c";
reg = <0x43>;
pinctrl-names = "default";
pinctrl-0 = <&fsa_usbc_ana_en>;
};
};

cs40l25:
&qupv3_se15_i2c {
status = "ok";
// see -qup.dtsi for clk-freq-out setting
floral_cs40l25a: cs40l25a@43 {
compatible = "cirrus,cs40l25a";
pinctrl-names = "default";
pinctrl-0 = <&cs40l2x_pinctrl &clk_out_default>;
reset-gpios = <&tlmm 152 0>;
reg = <0x43>;
interrupt-parent = <&tlmm>;
interrupts = <129 IRQ_TYPE_LEVEL_LOW>;
async-suspend;
cirrus,boost-ind-nanohenry = <1000>;
cirrus,boost-cap-microfarad = <4>;
cirrus,boost-ipk-milliamp = <4500>;
cirrus,boost-ctl-millivolt = <10000>; /* 10V /
cirrus,boost-ovp-millivolt = <11000>; /
11V /
cirrus,f0-default = <2514000>; /
153 Hz /
cirrus,f0-min = <2293760>; /
140 Hz /
cirrus,f0-max = <2703360>; /
165 Hz */

hpd debug

msmnile:/ #
msmnile:/ # dmesg |grep xf.wang
[ 11.720301] --fsa4480_reg_notifier-xf.wang--QRD-mid-EINVAL-client=00000000d6e09ce1
[ 11.728071] fsa4480_reg_notifier--xf.wang---rc=0
[ 12.003662] --xf.wang---dp--parser->no_aux_switch=0,parser->lphw_hpd=0

dp_display_post_init---->dp_init_sub_modules---->dp_hpd_get--->dp_usbpd_get--->fail

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容