急!!!!!!好几天了,求指教!
我们板子参照sabresd设计的。之前使用系统android4.2.2,现在移植官网BSP android4.4.3
目前surfaceflinger导致系统启动失败。一直打印如下红色显示的信息。
request_suspend_state: wakeup (3->0) at 7437213333 (1970-01-01 00:00:04.592911333 UTC)
130|root@sabresd_6dq:/ # request_suspend_state: wakeup (0->0) at 956991823113 (1970-01-01 00:15:54.147520447 UTC)
init: untracked pid 6193 exited
request_suspend_state: wakeup (0->0) at 961401889447 (1970-01-01 00:15:58.557587114 UTC)
init: untracked pid 6221 exited
uboot环境变量设置setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:dev=off video=mxcfb2ff video=mxcfb3ff vmalloc=400M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M androidboot.serialno=110ea1d4df646307
Logcat中:
I/SurfaceFlinger( 119): SurfaceFlinger is starting
I/SurfaceFlinger( 119): SurfaceFlinger's main thread ready to run. Initializing graphics H/W...
D/libEGL ( 119): loaded /system/lib/egl/libEGL_VIVANTE.so
D/libEGL ( 119): loaded /system/lib/egl/libGLESv1_CM_VIVANTE.so
D/libEGL ( 119): loaded /system/lib/egl/libGLESv2_VIVANTE.so
I/imx6.gralloc( 119): fb_device_open dispid:0, fb:0
I/imx6.gralloc( 119): 32bpp setting of Framebuffer with RGBA8888 format!
W/imx6.gralloc( 119): using (fd=18)
W/imx6.gralloc( 119): id = DISP3 BG - DI1
W/imx6.gralloc( 119): xres = 1024 px
W/imx6.gralloc( 119): yres = 768 px
W/imx6.gralloc( 119): xres_virtual = 1024 px
W/imx6.gralloc( 119): yres_virtual = 2304 px
W/imx6.gralloc( 119): bpp = 32
W/imx6.gralloc( 119): r = 0:8
W/imx6.gralloc( 119): g = 8:8
W/imx6.gralloc( 119): b = 16:8
W/imx6.gralloc( 119): width = 163 mm (159.568100 dpi)
W/imx6.gralloc( 119): height = 122 mm (159.895081 dpi)
W/imx6.gralloc( 119): refresh rate = 60.01 Hz
I/FslHwcomposer( 119): using fsl hwc!!!
I/FslHwcomposer( 119): int hwc_device_open(const hw_module_t*, const char*, hw_device_t**),553
I/FslHwcomposer( 119): using fsl hwc!
I/FslHwcomposer( 119): fb0 is ldb
I/FslHwcomposer( 119): device
I/FslHwcomposer( 119): fb1 is overlay device
W/FslHwcomposer( 119): open /sys/class/graphics/fb2 failed
W/FslHwcomposer( 119): open /sys/class/graphics/fb3 failed
W/FslHwcomposer( 119): open /sys/class/graphics/fb4 failed
W/FslHwcomposer( 119): open /sys/class/graphics/fb5 failed
I/FslHwcomposer( 119): hwcomposer: open framebuffer fb0
由于新内核使用dts。我跟Android4.2.2的内核相比较如下:
1、4.4.3时,使用LVDS接口,不知道是不是这么配置就可以了????
①kernel_imx/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
mxcfb1: fb@0 {
compatible = "fsl,mxc_sdc_fb";
disp_dev = "ldb";
interface_pix_fmt = "RGB666";
mode_str ="1024x600M@60";
default_bpp = <32>;
int_clk = <0>;
late_init = <0>;
status = "okay";
};
2、4.2.2时,我们使用LVDS接口,值修改添加了两个文件,是OK的。
①kernel_imx/drivers/video/mxc/ldb.c
②kernel_imx/arch/arm/mach-mx6/board-mx6q_sabresd.c
在board-mx6q_sabresd.c文件中添加BT101IW01模式,如下:
{ /*fb0*/
.disp_dev = "ldb",
.interface_pix_fmt = IPU_PIX_FMT_RGB666,
.mode_str = "BT101IW01",
.default_bpp = 32,
.int_clk = false,
.late_init = false,
},
Solved! Go to Solution.
非常感谢您的回复!
kernel中打开gpu导致系统启动失败是由于,我们没有使用电源管理的芯片,dts中跟gpu、vpu相关的电压设置采用了原来的导致的。将相应的pu-supply = <®_pu>;全部设置成<®_pu>,就OK了,ldb显示也OK了。主要对dts中很多参数不理解。
我跟你碰到同样的问题啊,将相应的pu-supply = <®_pu>;全部设置成<®_pu>,你这里说得不清楚,具体是怎么改的?
If you are using the discrete power supply. You need to use the i.MX6 internal PMU rather than hard coding a code.
That will make system unstable.
In the default build, it uses the ldo bypass dts(mx6q-sabresd.dts), which will bypass the internal LDO in PMU.
Basically, the discrete power supply need the internal PMU to help. It should use the imx6q-sabresd-ldo.dts.
9 #include "imx6q-sabresd.dts"
10
11 &cpu0 {
12 arm-supply = <®_arm>;
13 soc-supply = <®_soc>;
14 };
15
16 &gpc {
17 /* use ldo-enable, u-boot will check it and configure */
18 fsl,ldo-bypass = <0>;
19 /* watchdog select of reset source */
20 fsl,wdog-reset = <1>;
21 };
22
23 &wdog1 {
24 status = "okay";
25 };
26
27 &wdog2 {
28 status = "disabled";
29 };
~
So, have you try mode_str ="BT101IW01" ?
Thank you for your suggestion。
In Android4.2.2,“BT101IW01" is wrote in "kernel_imx/arch/arm/boot/dts/imx6qdl-sabresd.dtsi".But in Android4.4.3, I have no write in dts.
Now,I modify "arch/arm/boot/dts/imx6qdl-sabresd.dtsi", as follows:
&ldb {
status = "okay";
lvds-channel@0 {
fsl,data-mapping = "spwg";
fsl,data-width = <18>;
status = "okay";
display-timings {
native-mode = <&timing0>;
timing0: hsd100pxn1 {
clock-frequency = <48653926>;
hactive = <1024>;
vactive = <600>;
hback-porch = <220>;
hfront-porch = <40>;
vback-porch = <21>;
vfront-porch = <7>;
hsync-len = <60>;
vsync-len = <10>;
};
};
};
when boot in kernel,I can see the two Penguin .Then boot android,I can see "Android_" a little while。(android启动时我可以看到android字体几秒,然后就无显示了)
The logcat as follow:
NOTE : "F/SurfaceFlinger( 118): no suitable EGLConfig found, giving up"
Do you have some suggestion?Thank you very mach.
I/OrionSvc( 129): Enter control_ipc thread
D/libEGL ( 118): loaded /system/lib/egl/libEGL_VIVANTE.so
D/libEGL ( 118): loaded /system/lib/egl/libGLESv1_CM_VIVANTE.so
D/libEGL ( 118): loaded /system/lib/egl/libGLESv2_VIVANTE.so
I/imx6.gralloc( 118): fb_device_open dispid:0, fb:0
I/imx6.gralloc( 118): 32bpp setting of Framebuffer with RGBA8888 format!
W/imx6.gralloc( 118): using (fd=18)
W/imx6.gralloc( 118): id = DISP3 BG - DI1
W/imx6.gralloc( 118): xres = 1024 px
W/imx6.gralloc( 118): yres = 600 px
W/imx6.gralloc( 118): xres_virtual = 1024 px
W/imx6.gralloc( 118): yres_virtual = 1824 px
W/imx6.gralloc( 118): bpp = 32
W/imx6.gralloc( 118): r = 0:8
W/imx6.gralloc( 118): g = 8:8
W/imx6.gralloc( 118): b = 16:8
W/imx6.gralloc( 118): width = 163 mm (159.568100 dpi)
W/imx6.gralloc( 118): height = 95 mm (160.421051 dpi)
W/imx6.gralloc( 118): refresh rate = 56.74 Hz
I/mediaserver( 121): ServiceManager: 0x7724b470
I/AudioFlinger( 121): Using default 3000 mSec as standby time.
I/CameraService( 121): CameraService started (pid=121)
I/FslHwcomposer( 118): using fsl hwc!!!
I/FslHwcomposer( 118): int hwc_device_open(const hw_module_t*, const char*, hw_device_t**),553
I/FslHwcomposer( 118): using fsl hwc!
I/FslHwcomposer( 118): fb0 is ldb
I/FslHwcomposer( 118): device
I/FslHwcomposer( 118): fb1 is overlay device
W/FslHwcomposer( 118): open /sys/class/graphics/fb2 failed
W/FslHwcomposer( 118): open /sys/class/graphics/fb3 failed
W/FslHwcomposer( 118): open /sys/class/graphics/fb4 failed
W/FslHwcomposer( 118): open /sys/class/graphics/fb5 failed
I/FslHwcomposer( 118): hwcomposer: open framebuffer fb0
I/imx6.gralloc( 118): fb_device_open dispid:0, fb:0
I/imx6.gralloc( 118): display already initialized...
I/FslHwcomposer( 118): int hwc_device_open(const hw_module_t*, const char*, hw_device_t**),426
I/SurfaceFlinger( 118): Using composer version 1.3
W/SurfaceFlinger( 118): no suitable EGLConfig found, trying a simpler query
F/SurfaceFlinger( 118): no suitable EGLConfig found, giving up
F/libc ( 118): Fatal signal 6 (SIGABRT) at 0x00000076 (code=-6), thread 118 (surfaceflinger)
I/CameraService( 121): Loaded "Freescale CameraHal Module" camera module
I/FslCameraHAL( 121): Face Back Camera is ov5640_mipi, orient is 0
I/FslCameraHAL( 121): Face Front Camera is uvc,ov5642_camera,ov5640_camera, orient is 0
I/FslCameraHAL( 121): Checking the camera ov5640_mipi
I/FslCameraHAL( 121): Checking the camera uvc
I/FslCameraHAL( 121): Checking the camera ov5642_camera
I/FslCameraHAL( 121): Checking the camera ov5640_camera
I/AudioPolicyManagerBase( 121): loadAudioPolicyConfig() loaded /system/etc/audio_policy.conf
W/audio_hw_primary( 121): card 0, id sgtl5000audio ,driver sgtl5000-audio, name sgtl5000-audio
W/audio_hw_primary( 121): out rate 44100
I/DEBUG ( 117): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 117): Build fingerprint: 'Freescale/qseven_6dq/qseven_6dq:4.4.3/2.0.0-rc2/20150123:user/dev-keys'
I/DEBUG ( 117): Revision: '0'
I/DEBUG ( 117): pid: 118, tid: 118, name: surfaceflinger >>> /system/bin/surfaceflinger <<<
I/DEBUG ( 117): signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
I/DEBUG ( 117): r0 00000000 r1 00000076 r2 00000006 r3 00000000
I/DEBUG ( 117): r4 00000006 r5 00000002 r6 00000076 r7 0000010c
I/DEBUG ( 117): r8 00000001 r9 7754e52c sl 00000001 fp 7ecd49ec
I/DEBUG ( 117): ip 77591e80 sp 7ecd44a0 lr 76e750bd pc 76e84088 cpsr 000f0010
I/DEBUG ( 117): d0 0000000000000000 d1 0000000000000000
I/DEBUG ( 117): d2 43206bc7431f9168 d3 0000000000000000
I/DEBUG ( 117): d4 481ca94342be0000 d5 44800000000272a5
I/DEBUG ( 117): d6 000272a546cb3333 d7 447a0000481ca940
I/DEBUG ( 117): d8 0000000000000000 d9 0000000000000000
I/DEBUG ( 117): d10 0000000000000000 d11 0000000000000000
I/DEBUG ( 117): d12 0000000000000000 d13 0000000000000000
I/DEBUG ( 117): d14 0000000000000000 d15 0000000000000000
I/DEBUG ( 117): d16 3fc99b8000000000 d17 4010ccdc00000000
I/DEBUG ( 117): d18 408f400000000000 d19 0000000000000000
I/DEBUG ( 117): d20 4016b26180000000 d21 404c5ef9e0000000
I/DEBUG ( 117): d22 0000000000000000 d23 0000000000000000
I/DEBUG ( 117): d24 0000000000000000 d25 0000000000000000
I/DEBUG ( 117): d26 404c5ef9e0000000 d27 0000000000000000
I/DEBUG ( 117): d28 0000000000000000 d29 0000000000000000
I/DEBUG ( 117): d30 0000000000000000 d31 4000000000000000
I/DEBUG ( 117): scr 20000010
I close the GPU in kernel。
when I open GPU in kernel。Boot kernel will be failed.
Please try this :
kernel_imx/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_probe.c
/* Create the device class. */
//device_class = class_create(THIS_MODULE, "gpu_class");
device_class = class_create(THIS_MODULE, "graphics_class");
非常感谢您的回复!
kernel中打开gpu导致系统启动失败是由于,我们没有使用电源管理的芯片,dts中跟gpu、vpu相关的电压设置采用了原来的导致的。将相应的pu-supply = <®_pu>;全部设置成<®_pu>,就OK了,ldb显示也OK了。主要对dts中很多参数不理解。