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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容