Part Number: BEAGLEBK
Tool/software: Linux
I'm using a BBB and a FT6236 LCD controller. The LCD is 18-bit RGB and the BBB is configured for 24-bit. I am running Kernel 4.9.59 (a75d8e93056181d512f6c818e8627bd4554aaf92)
I am building using Arago tisdk-rootfs-image
When I boot the Beaglebone, Weston starts and displays "Please wait...". I can run qt5 example applications only using -platform linuxfb When I try running with -platform wayland or without the platform option, I see nothing on screen and the console reports:
[ 903.201554] tilcdc 4830e000.lcdc: Invalid pitch: fb and crtc widths must be the same
I've tried looking at the driver code, but I'm not exactly sure what it's checking:
drm_fb_get_bpp_depth(state->fb->pixel_format, &depth, &bpp);
if (state->fb->pitches[0] != crtc_state->mode.hdisplay * bpp / 8) {
dev_err(plane->dev->dev,
"Invalid pitch: fb and crtc widths must be the same");
return -EINVAL;
}
fbset reports:
mode "240x320"
geometry 240 320 240 320 16
timings 0 0 0 0 0 0 0
accel true
rgba 5/11,6/5,5/0,0/0
endmode
Modetest reports:
Encoders:
id crtc type possible crtcs possible clones
25 24 LVDS 0x00000001 0x00000000
Connectors:
id encoder status name size (mm) modes encoders
26 25 connected LVDS-1 0x0 1 25
modes:
name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
240x320 72 240 278 288 298 320 328 332 336 flags: nhsync, nvsync; type: preferred, driver
props:
1 EDID:
flags: immutable blob
blobs:
value:
2 DPMS:
flags: enum
enums: On=0 Standby=1 Suspend=2 Off=3
value: 0
CRTCs:
id fb pos size
24 29 (0,0) (240x320)
240x320 72 240 278 288 298 320 328 332 336 flags: nhsync, nvsync; type: preferred, driver
props:
Planes:
id crtc fb CRTC x,y x,y gamma size possible crtcs
23 24 29 0,0 0,0 0 0x00000001
formats: RG16 RG24 XR24
props:
5 type:
flags: immutable enum
enums: Overlay=0 Primary=1 Cursor=2
value: 1
Frame buffers:
id size pitch
My weston.log and device tree are attached.
Date: 2018-05-17 UTC [00:37:43.297] weston 1.11.0 http://wayland.freedesktop.org Bug reports to: https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=weston&version=1.11.0 Build: 1.10.93-2-g2d825ed configure.ac: bump to version 1.11.0 for the official release (2016-05-31 17:10:40 -0700) [00:37:43.297] OS: Linux, 4.9.59-ga75d8e9305, #4 PREEMPT Fri May 18 23:50:38 UTC 2018, armv7l [00:37:43.299] Using config file '/etc//weston.ini' [00:37:43.301] Output repaint window is 7 ms maximum. [00:37:43.316] Loading module '/usr/lib/weston/drm-backend.so' [00:37:43.351] initializing drm backend [00:37:43.376] using /dev/dri/card0 [00:37:43.380] Loading module '/usr/lib/weston/gl-renderer.so' failed to load module: /usr/lib/gbm/gbm_dri.so: cannot open shared object file: No such file or directory failed to load module: /usr/lib/gbm/gbm_gallium_drm.so: cannot open shared object file: No such file or directory loaded module : gbm_pvr.so found valid GBM backend : gbm_pvr.so [00:37:43.475] warning: either no EGL_EXT_platform_base support or specific platform support; falling back to eglGetDisplay. [00:37:43.528] warning: EGL_EXT_buffer_age not supported. Performance could be affected. [00:37:43.528] Retrieving EGL client extension string failed. [00:37:43.554] input device 'EP0230M09', /dev/input/event0 is tagged by udev as: Touchscreen [00:37:43.555] input device 'EP0230M09', /dev/input/event0 is a touch device [00:37:43.583] EGL version: 1.4 build 1.14@3699939 (MAIN) [00:37:43.584] EGL vendor: Imagination Technologies [00:37:43.584] EGL client APIs: OpenGL_ES [00:37:43.584] EGL extensions: EGL_IMG_client_api_ogl EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_vg_parent_image EGL_IMG_cl_image EGL_KHR_fence_sync EGL_IMG_context_priority EGL_IMG_hibernate_process EGL_IMG_image_plane_attribs EGL_KHR_surfaceless_context EGL_KHR_wait_sync EGL_KHR_create_context EGL_WL_bind_wayland_display EGL_EXT_image_dma_buf_import [00:37:43.584] GL version: OpenGL ES 2.0 build 1.14@3699939 (MAIN) [00:37:43.584] GLSL version: OpenGL ES GLSL ES 1.00 build 1.14@3699939 (MAIN) [00:37:43.584] GL vendor: Imagination Technologies [00:37:43.584] GL renderer: PowerVR SGX 530 [00:37:43.584] GL extensions: GL_OES_rgb8_rgba8 GL_OES_depth24 GL_OES_vertex_half_float GL_OES_texture_float GL_OES_texture_half_float GL_OES_element_index_uint GL_OES_mapbuffer GL_OES_fragment_precision_high GL_OES_compressed_ETC1_RGB8_texture GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_required_internalformat GL_OES_depth_texture GL_OES_get_program_binary GL_OES_packed_depth_stencil GL_OES_standard_derivatives GL_OES_vertex_array_object GL_OES_egl_sync GL_OES_surfaceless_context GL_EXT_discard_framebuffer GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_multisampled_render_to_texture GL_EXT_shader_texture_lod GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_IMG_shader_binary GL_IMG_texture_compression_pvrtc GL_IMG_texture_npot GL_IMG_texture_format_BGRA8888 GL_IMG_read_format GL_IMG_program_binary GL_IMG_uniform_buffer_object GL_IMG_multisampled_render_to_texture GL_KHR_debug [00:37:43.584] GL ES 2 renderer features: read-back format: RGBA wl_shm sub-image to texture: no EGL Wayland extension: yes [00:37:43.584] Chosen EGL config details: RGBA bits: 8 8 8 8 swap interval range: 1 - 1 [00:37:43.584] cursor buffers unavailable, using gl cursors [00:37:43.585] Initialized backlight, device /sys/class/backlight/backlight [00:37:43.586] Applying calibration: 12.800001 29.599998 -7764.000000 12.800001 9.599998 -3504.000000 (normalized -32.349998 -10.950000) [00:37:43.586] Output LVDS-1, (connector 26, crtc 24) mode 240x320@71.9, preferred, current [00:37:43.587] Compositor capabilities: arbitrary surface rotation: yes screen capture uses y-flip: yes presentation clock: CLOCK_MONOTONIC, id 1 [00:37:43.589] Loading module '/usr/lib/weston/desktop-shell.so' [00:37:43.594] launching '/usr/libexec/weston-keyboard' [00:37:43.596] launching '/usr/libexec/weston-desktop-shell' [00:37:43.783] set mode failed: No such file or directory could not load cursor 'dnd-move' could not load cursor 'dnd-copy' could not load cursor 'dnd-none' could not load cursor 'dnd-move' could not load cursor 'dnd-copy' could not load cursor 'dnd-none' [00:37:44.466] set mode failed: No such file or directory [00:37:47.161] set mode failed: No such file or directory [00:37:47.161] unexpectedly large timestamp jump (from 22746 to 25459) [00:37:47.199] set mode failed: No such file or directory [00:37:47.219] set mode failed: No such file or directory [00:37:47.240] set mode failed: No such file or directory [00:37:47.263] set mode failed: No such file or directory [00:37:47.290] set mode failed: No such file or directory [00:37:49.050] set mode failed: No such file or directory [00:37:49.101] set mode failed: No such file or directory [00:37:50.566] set mode failed: No such file or directory [00:37:50.621] set mode failed: No such file or directory [00:37:51.069] set mode failed: No such file or directory [00:37:51.168] set mode failed: No such file or directory [00:37:51.528] set mode failed: No such file or directory [00:37:51.566] set mode failed: No such file or directory [00:37:51.605] set mode failed: No such file or directory [00:37:51.639] set mode failed: No such file or directory [00:37:51.674] set mode failed: No such file or directory [00:37:51.709] set mode failed: No such file or directory [00:37:51.741] set mode failed: No such file or directory [00:37:51.775] set mode failed: No such file or directory [00:37:51.805] set mode failed: No such file or directory [00:37:51.828] set mode failed: No such file or directory [00:38:13.951] notify_touch: weston_compositor_pick_view(-1312, 658) failed to find a view! [00:38:17.932] notify_touch: weston_compositor_pick_view(-4648, -1430) failed to find a view! [00:38:22.402] notify_touch: weston_compositor_pick_view(2057, 3210) failed to find a view! [00:38:23.870] notify_touch: weston_compositor_pick_view(1161, 2016) failed to find a view! [00:38:24.811] notify_touch: weston_compositor_pick_view(963, 1792) failed to find a view! [00:38:26.002] notify_touch: weston_compositor_pick_view(1769, 2867) failed to find a view! [00:38:26.792] notify_touch: weston_compositor_pick_view(1027, 1877) failed to find a view! [00:38:28.392] notify_touch: weston_compositor_pick_view(-441, 1219) failed to find a view! [00:38:29.212] notify_touch: weston_compositor_pick_view(2121, 3296) failed to find a view! [00:38:30.290] notify_touch: weston_compositor_pick_view(-3923, -563) failed to find a view! [00:38:30.883] notify_touch: weston_compositor_pick_view(166, 709) failed to find a view! [00:38:31.472] notify_touch: weston_compositor_pick_view(-926, 1332) failed to find a view! [00:38:32.342] notify_touch: weston_compositor_pick_view(204, 760) failed to find a view! [00:38:32.895] notify_touch: weston_compositor_pick_view(-1164, -4) failed to find a view! [00:38:35.296] notify_touch: weston_compositor_pick_view(-3031, -454) failed to find a view! [00:38:36.072] notify_touch: weston_compositor_pick_view(1409, 2526) failed to find a view! [00:38:36.819] notify_touch: weston_compositor_pick_view(-1022, 945) failed to find a view! [00:38:37.349] notify_touch: weston_compositor_pick_view(-1117, 857) failed to find a view! [00:38:37.761] notify_touch: weston_compositor_pick_view(1238, 2499) failed to find a view! [00:38:38.352] notify_touch: weston_compositor_pick_view(-1643, 76) failed to find a view! [00:38:38.616] notify_touch: weston_compositor_pick_view(-4302, -588) failed to find a view! [00:38:38.916] notify_touch: weston_compositor_pick_view(-5717, -935) failed to find a view! [00:38:39.349] notify_touch: weston_compositor_pick_view(-3813, 3) failed to find a view! [00:38:40.340] notify_touch: weston_compositor_pick_view(-2894, 308) failed to find a view! [00:38:40.583] notify_touch: weston_compositor_pick_view(-3160, 274) failed to find a view! [00:38:44.119] set mode failed: No such file or directory [00:39:44.118] set mode failed: No such file or directory [00:40:44.119] set mode failed: No such file or directory [00:41:44.117] set mode failed: No such file or directory [00:42:44.118] set mode failed: No such file or directory [00:43:44.118] set mode failed: No such file or directory [00:44:44.118] set mode failed: No such file or directory [00:45:44.118] set mode failed: No such file or directory [00:46:44.118] set mode failed: No such file or directory [00:47:44.117] set mode failed: No such file or directory [00:48:44.118] set mode failed: No such file or directory [00:49:44.117] set mode failed: No such file or directory
/* * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ /dts-v1/; #include "am33xx.dtsi" #include "am335x-bone-common.dtsi" #include <dt-bindings/display/tda998x.h> / { model = "TI AM335x BeagleBone Black"; compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; }; &ldo3_reg { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; &mmc1 { vmmc-supply = <&vmmcsd_fixed>; }; &mmc2 { vmmc-supply = <&vmmcsd_fixed>; pinctrl-names = "default"; pinctrl-0 = <&emmc_pins>; bus-width = <8>; status = "okay"; }; &cpu0_opp_table { /* * All PG 2.0 silicon may not support 1GHz but some of the early * BeagleBone Blacks have PG 2.0 silicon which is guaranteed * to support 1GHz OPP so enable it for PG 2.0 on this board. */ oppnitro@1000000000 { opp-supported-hw = <0x06 0x0100>; }; }; &am33xx_pinmux { lcd_pins: lcd_pins { pinctrl-single,pins = < 0x20 0x01 /* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */ 0x24 0x01 /* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */ 0x28 0x01 /* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */ 0x2c 0x01 /* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */ 0x30 0x01 /* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */ 0x34 0x01 /* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */ 0x38 0x01 /* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */ 0x3c 0x01 /* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */ AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */ AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */ AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */ AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */ AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */ AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */ AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */ AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */ AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */ AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */ AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */ AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */ AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */ AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */ AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */ AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */ AM33XX_IOPAD(0x83c, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad15.lcd_data16 */ AM33XX_IOPAD(0x838, PIN_OUTPUT | MUX_MODE1) /* gpmc_ad14.lcd_data17 */ AM33XX_IOPAD(0x8e0, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_vsync.lcd_vsync */ AM33XX_IOPAD(0x8e4, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_hsync.lcd_hsync */ AM33XX_IOPAD(0x8e8, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_pclk.lcd_pclk */ AM33XX_IOPAD(0x8ec, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */ AM33XX_IOPAD(0x878, PIN_OUTPUT_PULLDOWN | MUX_MODE7) >; }; backlight_pin: backlight_pin { pinctrl-single,pins = < AM33XX_IOPAD(0x848, PIN_OUTPUT_PULLUP | MUX_MODE6) >; }; bb_spi0_pins: pinmux_bb_spi0_pins { pinctrl-single,pins = < 0x150 0x30 /* spi0_sclk.spi0_sclk, INPUT_PULLUP | MODE0 */ 0x154 0x30 /* spi0_d0.spi0_d0, INPUT_PULLUP | MODE0 */ 0x158 0x10 /* spi0_d1.spi0_d1, OUTPUT_PULLUP | MODE0 */ 0x15c 0x10 /* spi0_cs0.spi0_cs0, OUTPUT_PULLUP | MODE0 */ >; }; edt_ft5x06_pins: pinmux_edt_ft5x06_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x980, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpio0_14 I2C_RST P9_26 */ AM33XX_IOPAD(0x844, PIN_INPUT_PULLUP | MUX_MODE7) /* gpio1_17 / Linux GPIO 49 */ >; }; i2c2_pins: pinmux_i2c2_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x97C, PIN_INPUT_PULLUP | MUX_MODE3) AM33XX_IOPAD(0x978, PIN_INPUT_PULLUP | MUX_MODE3) >; }; }; &i2c2 { status = "okay"; pinctrl-name = "default"; pinctrl-0 = <&i2c2_pins>; clock-frequency = <100000>; #address-cells = <1>; #size-cells = <0>; polytouch: ft6236@38 { compatible = "focaltech,ft6236"; reg = <0x38>; pinctrl-names = "default"; pinctrl-0 = <&edt_ft5x06_pins>; reset-gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; interrupt-parent = <&gpio1>; interrupts = <17 2>; touchscreen-size-y = <320>; touchscreen-size-x = <240>; touchscreen-inverted-x; touchscreen-inverted-y; }; }; &spi0 { #address-cells = <1>; #size-cells = <0>; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&bb_spi0_pins>; channel@0 { #address-cells = <1>; #size-cells = <0>; compatible = "spidev"; reg = <0>; spi-max-frequency = <16000000>; }; }; &lcdc { status = "okay"; }; &epwmss1 { status = "okay"; }; &ehrpwm1 { pinctrl-names = "default"; pinctrl-0 = <&backlight_pin>; status = "okay"; }; &rtc { system-power-controller; }; &sgx { status = "okay"; }; / { lcd0: display { status = "okay"; compatible = "ti,tilcdc,panel"; label = "lcd"; pinctrl-names = "default"; pinctrl-0 = <&lcd_pins>; panel-info { ac-bias = <255>; ac-bias-intrpt = <0>; dma-burst-sz = <16>; bpp = <24>; fdd = <0x80>; sync-edge = <0>; sync-ctrl = <1>; raster-order = <0>; fifo-th = <0>; }; display-timings { native-mode = <&timing0>; timing0: 240x320 { clock-frequency = <7200000>; hactive = <240>; vactive = <320>; hfront-porch = <38>; hback-porch = <10>; hsync-len = <10>; vback-porch = <4>; vfront-porch = <8>; vsync-len = <4>; hsync-active = <0>; // Low active vsync-active = <0>; // Low active de-active = <1>; // The data DB17-0 is written when ENABLE = “1”. Disable data write operation when ENABLE = “0”. pixelclk-active = <1>; // The data is input on the positive edge of DOTCLK }; }; }; fb { compatible = "ti,am33xx-tilcdc"; reg = <0x4830e000 0x1000>; interrupt-parent = <&intc>; interrupts = <36>; ti,hwmods = "lcdc"; }; backlight { status = "okay"; compatible = "pwm-backlight"; pwms = <&ehrpwm1 0 500000 0>; brightness-levels = < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 >; default-brightness-level = <100>; }; };
Any help is appreciated!
Thanks,
Matt