Platform: ROCKCHIP
OS: Android 6.0
Kernel: 3.10.92
现象:
在成功Download之后又遇到了无法开机的问题,kernel打印几条log就停住了.
log如下:
Starting kernel ...
<hit enter to activate fiq debugger>
[ 0.000000] Booting Linux on physical CPU 0x500
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.10.0 (kris@e) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #35 SMP PREEMPT Fri Oct 28 14:37:53 CST 2016
[ 0.000000] CPU: ARMv7 Processor [410fc0d1] revision 1 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine: Rockchip RK3288 (Flattened Device Tree), model: rockchip,rk3288
[ 0.000000] rockchip_uboot_logo_setup: mem: 0x02000000@0x7dc00000, offset:0x01000000
[ 0.000000] rockchip_uboot_mem_reserve: reserve 0x02000000@0x7dc00000 for uboot logo
[ 0.000000] rockchip_ion_reserve
[ 0.000000] ion heap(drm): base(0) size(0) align(0)
[ 0.000000] ion heap(cma): base(0) size(28000000) align(0)
[ 0.000000] ion heap(vmalloc): base(0) size(0) align(0
分析:
相对之前能正常开机的sdk板,主要的改动有eMMC/LPDDR3型号升级,PMU从ACT8846改成了RK818.
Log每次停在同一位置,所以基本上不会是LPDDR3的原因,而eMMC也不应该是此现象.
针对RK818,手上暂时没datasheet,dts配置是参考rk3288-tb.dts
凑巧测试了使用RK818的Android5.1, 可以正常开机.
后来对比替换使用了Android5.1的rk818.c驱动,系统也能起来了,但是还有问题,比如touch
模块无电压输出,直接拿掉rk818驱动后虽然系统使用u-boot中的初始化配置也能工作,但是像dvfs模块
调节频率要改变电压就不能正常工作了.
后来更新代码后,发现有个VR产品主dts也用的是rk818,替换之后能终于能正常开机!
解决办法:
OS: Android 6.0
Kernel: 3.10.92
现象:
在成功Download之后又遇到了无法开机的问题,kernel打印几条log就停住了.
log如下:
Starting kernel ...
<hit enter to activate fiq debugger>
[ 0.000000] Booting Linux on physical CPU 0x500
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.10.0 (kris@e) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #35 SMP PREEMPT Fri Oct 28 14:37:53 CST 2016
[ 0.000000] CPU: ARMv7 Processor [410fc0d1] revision 1 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine: Rockchip RK3288 (Flattened Device Tree), model: rockchip,rk3288
[ 0.000000] rockchip_uboot_logo_setup: mem: 0x02000000@0x7dc00000, offset:0x01000000
[ 0.000000] rockchip_uboot_mem_reserve: reserve 0x02000000@0x7dc00000 for uboot logo
[ 0.000000] rockchip_ion_reserve
[ 0.000000] ion heap(drm): base(0) size(0) align(0)
[ 0.000000] ion heap(cma): base(0) size(28000000) align(0)
[ 0.000000] ion heap(vmalloc): base(0) size(0) align(0
分析:
相对之前能正常开机的sdk板,主要的改动有eMMC/LPDDR3型号升级,PMU从ACT8846改成了RK818.
Log每次停在同一位置,所以基本上不会是LPDDR3的原因,而eMMC也不应该是此现象.
针对RK818,手上暂时没datasheet,dts配置是参考rk3288-tb.dts
凑巧测试了使用RK818的Android5.1, 可以正常开机.
后来对比替换使用了Android5.1的rk818.c驱动,系统也能起来了,但是还有问题,比如touch
模块无电压输出,直接拿掉rk818驱动后虽然系统使用u-boot中的初始化配置也能工作,但是像dvfs模块
调节频率要改变电压就不能正常工作了.
后来更新代码后,发现有个VR产品主dts也用的是rk818,替换之后能终于能正常开机!
解决办法:
使用rk3288-vr.dts而不是rk3288-tb.dts中的rk818配置, 添加如下:
/include/ "rk818.dtsi"
&rk818 {
gpios = <&gpio0 GPIO_A4 GPIO_ACTIVE_HIGH>,
&