小文哥,之前上传的视频有问题,uboot和kernel关于lcd的配置都是一样的
屏幕RGB 480x272 linux-5.4.273
线索一 uboot-board.dts
&disp {
disp_init_enable = <1>;
disp_mode = <0>;
screen0_output_type = <1>;
screen0_output_mode = <4>;
screen1_output_type = <1>;
screen1_output_mode = <4>;
screen1_output_format = <0>;
screen1_output_bits = <0>;
screen1_output_eotf = <4>;
screen1_output_cs = <257>;
screen1_output_range = <2>;
screen1_output_scan = <0>;
screen1_output_aspect_ratio = <8>;
dev0_output_type = <1>;
dev0_output_mode = <4>;
dev0_screen_id = <0>;
dev0_do_hpd = <0>;
dev1_output_type = <4>;
dev1_output_mode = <10>;
dev1_screen_id = <1>;
dev1_do_hpd = <1>;
def_output_dev = <0>;
fb0_format = <0>;
fb0_width = <480>;
fb0_height = <272>;
fb1_format = <0>;
fb1_width = <0>;
fb1_height = <0>;
chn_cfg_mode = <1>;
disp_para_zone = <1>;
/*VCC-LCD*/
/* dc1sw-supply = <®_dc1sw>;*/
/*VCC-DSI*/
/* eldo3-supply = <®_eldo3>;*/
/*VCC-PD*/
/* dcdc1-supply = <®_dcdc1>;*/
};
&lcd0 {
lcd_used = <1>;
lcd_driver_name = "default_lcd";
lcd_if = <0>;
lcd_x = <480>;
lcd_y = <272>;
lcd_width = <95>;
lcd_height = <54>;
lcd_dclk_freq = <10>;
lcd_pwm_used = <1>;
lcd_pwm_ch = <7>;
lcd_pwm_freq = <10000>;
lcd_pwm_pol = <1>;
lcd_hbp = <44>;/*43+1*/
lcd_ht = <526>;
lcd_hspw = <1>;/*1*/
lcd_vbp = <13>;
lcd_vt = <286>;
lcd_vspw = <1>;
lcd_lvds_if = <0>;
lcd_lvds_colordepth = <1>;
lcd_lvds_mode = <0>;
lcd_frm = <0>;
lcd_io_phase = <0x0000>;
lcd_gamma_en = <0>;
lcd_bright_curve_en = <0>;
lcd_cmap_en = <0>;
deu_mode = <0>;
lcdgamma4iep = <22>;
smart_color = <90>;
pinctrl-0 = <&rgb18_pins_a>;
pinctrl-1 = <&rgb18_pins_b>;
};
board.dts
&disp {
disp_init_enable = <1>;
disp_mode = <0>;
screen0_output_type = <1>;
screen0_output_mode = <4>;
screen1_output_type = <1>;/*3*/
screen1_output_mode = <4>;
screen1_output_format = <0>;
screen1_output_bits = <0>;
screen1_output_eotf = <4>;
screen1_output_cs = <257>;
screen1_output_range = <2>;
screen1_output_scan = <0>;
screen1_output_aspect_ratio = <8>;
dev0_output_type = <1>;
dev0_output_mode = <4>;
dev0_screen_id = <0>;
dev0_do_hpd = <0>;
dev1_output_type = <4>;
dev1_output_mode = <10>;
dev1_screen_id = <1>;
dev1_do_hpd = <1>;
def_output_dev = <0>;
disp_rotation_used = <1>;
degree0 = <0>;
fb0_format = <0>;
fb0_buffer_num = <1>;
fb0_width = <480>;
fb0_height = <272>;
/*fb0_width = <800>;*/
/*fb0_height = <480>;*/ /*read from lcd*/
fb1_format = <0>;
fb1_width = <0>;
fb1_height = <0>;
chn_cfg_mode = <1>;
disp_para_zone = <1>;
/*VCC-LCD*/
/* dc1sw-supply = <®_dc1sw>;*/
/*VCC-DSI*/
/* eldo3-supply = <®_eldo3>;*/
/*VCC-PD*/
/* dcdc1-supply = <®_dcdc1>;*/
};
&lcd0 {
lcd_used = <1>;
lcd_driver_name = "default_lcd";
lcd_backlight = <50>;
lcd_if = <0>;
lcd_x = <480>;
lcd_y = <272>;
lcd_width = <95>;
lcd_height = <54>;
lcd_dclk_freq = <10>;
/*lcd_pwm_used = <1>;
lcd_pwm_ch = <7>;
lcd_pwm_freq = <10000>;
lcd_pwm_pol = <1>;*/
lcd_hbp = <44>;
lcd_ht = <526>;
lcd_hspw = <1>;
lcd_vbp = <13>;
lcd_vt = <286>;
lcd_vspw = <1>;
lcd_lvds_if = <0>;
lcd_lvds_colordepth = <1>;
lcd_lvds_mode = <0>;
lcd_frm = <0>;
lcd_io_phase = <0x0000>;
lcd_gamma_en = <0>;
lcd_bright_curve_en = <0>;
lcd_cmap_en = <0>;
deu_mode = <0>;
lcdgamma4iep = <22>;
smart_color = <90>;
pinctrl-0 = <&rgb18_pins_a>;
pinctrl-1 = <&rgb18_pins_b>;
};
线索二 内核输出
[ 0.508712] [DISP]disp_module_init
[ 0.512657] disp 5000000.disp: Adding to iommu group 0
[ 0.518295] [DISP] parser_disp_init_para,line:1430:
[ 0.518299] of_property_read fb0_width fail
[ 0.527390] [DISP] disp_init,line:2386:
[ 0.527394] smooth display screen:0 type:1 mode:4
[ 0.552098] display_fb_request,fb_id:0
[ 0.557423] Freeing logo buffer memory: 1500K
[ 0.562297] disp_al_manager_apply ouput_type:1
[ 0.566842] [DISP] lcd_clk_config,line:744:
[ 0.566853] disp 0, clk: pll(60000000),clk(60000000),dclk(10000000) dsi_rate(60000000)
[ 0.566853] clk real:pll(288000000),clk(288000000),dclk(12000000) dsi_rate(0)
[ 0.570471] [DISP]disp_module_init finish
[ 0.571150] sunxi_pwm_enable_dual: can't parse pwm device
[ 0.587556] sunxi_sid_init()551 - insmod ok
[ 0.601112] sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pb not found, using dummy regulator
所搜了网上许多资料,推测原因是由于内核初始化lcd屏幕fb内存释放引起,的目前有两个方向,更新新的sdk,更新的话,之前对虚拟机中做的配置还需要再来一遍,有没有其他解决方法,