[RK3399][Android7.1] 调试笔记 --- CPU_B_SLEEP引脚改动引起系统无法开机

Platform: RK3399
OS: Android 7.1
Kernel: v4.4.83

朋友按照参考设计和firefly的板子做的硬件,无法开机。

一开始只能进入maskrom,能下载,但是串口完全没有log。测量电压如下:

  • PMUIO2_VDDPST(pin N23)=1.5V, PMUIO2_VDD( pin P23)=3.0V

  • PMUIO4_VDDPST(pin AC8)=1.5V, PMUIO4_VDD( pin AC9)=3.0V

  • APIO2_VDDPST(pin J24)=1.5V, APIO2_VDD( pin K23)=3.0V

但是开机后上面的三个 XXX_VDDPST变成了2.45V。(LDO只供给CPU)

引起VCC_1V5被抬升到2.45V的原因有如下可能:

1.因为PMUIO2供电3.0V,所以RK3399的V30脚外部要有10K的上拉电阻,上拉到VCC1V8_PMUPLL,而不是下拉R96。
2.确保VCC_1V5的下拉电阻R220有贴上,并且阻值是10K。
3.APIO2和PMUIO2的供电为3.0V,要确保代码里对APIO2和PMUIO2的电源域配置也是3.0V。

按照第一条做了改动,板子能跑进kernel了,但是卡死在kernel log 1.8s左右。

接着发现CPU_B_SLEEP和公版的接法不太一致。公版接在M27,而firefly改到N31了。

[RK3399][Android7.1] 调试笔记 --- CPU_B_SLEEP引脚改动引起系统无法开机_第1张图片
因此需要改动下CPU_B_SLEEP对应的GPIO.

kris@ecobsp:~/smart/kernel$ g df arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi
index a309c08..1da5476 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi
@@ -267,7 +267,7 @@
                regulator-compatible = "fan53555-reg";
                pinctrl-names = "default";
                pinctrl-0 = <&vsel1_gpio>;
-               vsel-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
+               vsel-gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
                regulator-name = "vdd_cpu_b";
                regulator-min-microvolt = <712500>;
                regulator-max-microvolt = <1500000>;

你可能感兴趣的:(RK3399,子类__Other)