This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3352: Boot from SD card and run textures got "Failed to create display"

Part Number: AM3352

Hi all,

Board info:

AM3352

DDR3L 512M

NAND Flash 512MB

SDK05

Purpose: We want to use TI's root file system to test LCD screen changing continuously.

Problem: 

root@am335x-evm:/usr/share/qt5/examples/opengl/textures# ./textures
Failed to create display (No such file or directory)

CCCCCCC
U-Boot SPL 2018.01 (Jan 30 2019 - 12:21:02)
Trying to boot from MMC1
*** Warning - bad CRC, using default environment



U-Boot 2018.01 (Jan 30 2019 - 12:21:02 +0000)

CPU  : AM335X-GP rev 2.1
Model: TI AM335x EVM
DRAM:  512 MiB
NAND:  512 MiB
MMC:   OMAP SD/MMC: 0
*** Warning - bad CRC, using default environment

<ethaddr> not set. Validating first E-fuse MAC
Net:   cpsw, usb_ether
Hit any key to stop autoboot:  0
=> setenv bootargs console=ttyO0,115200n8 noinitrd root=/dev/mmcblk0p2 mem=512M rootfstype=ext3 rootwait
=> fatload mmc 0 0x81000000 am335x-evm.dtb
39080 bytes read in 6 ms (6.2 MiB/s)
=> fatload mmc 0 0x80000000 zImage
3867136 bytes read in 257 ms (14.3 MiB/s)
=> bootz 0x80000000 - 0x81000000
## Flattened Device Tree blob at 81000000
   Booting using the fdt blob at 0x81000000
   Loading Device Tree to 9def8000, end 9df048a7 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.14.79-ge669d52447 (jason@jason-vb) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11)) #1 PREEMPT Wed Jul 15 09:45:24 CST 2020
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: TI AM335x EVM
[    0.000000] Memory policy: Data cache writeback
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 48 MiB at 0x9a800000
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] AM335X ES2.1 (neon)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129920
[    0.000000] Kernel command line: console=ttyO0,115200n8 noinitrd root=/dev/mmcblk0p2 mem=512M rootfstype=ext3 rootwait
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 456920K/524288K available (8192K kernel code, 319K rwdata, 2484K rodata, 1024K init, 267K bss, 18216K reserved, 49152K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0900000   (9184 kB)
[    0.000000]       .init : 0xc0c00000 - 0xc0d00000   (1024 kB)
[    0.000000]       .data : 0xc0d00000 - 0xc0d4fd10   ( 320 kB)
[    0.000000]        .bss : 0xc0d4fd10 - 0xc0d92acc   ( 268 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Tasks RCU enabled.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[    0.000016] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000034] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000045] OMAP clocksource: timer1 at 24000000 Hz
[    0.000204] timer_probe: no matching timers found
[    0.000391] Console: colour dummy device 80x30
[    0.000419] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
[    0.000425] This ensures that you still see kernel messages. Please
[    0.000430] update your kernel commandline.
[    0.000459] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)
[    0.089217] pid_max: default: 32768 minimum: 301
[    0.089400] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.089416] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.090180] CPU: Testing write buffer coherency: ok
[    0.090249] CPU0: Spectre v2: using BPIALL workaround
[    0.090937] Setting up static identity map for 0x80100000 - 0x80100060
[    0.091085] Hierarchical SRCU implementation.
[    0.091404] EFI services will not be available.
[    0.092646] devtmpfs: initialized
[    0.099892] random: get_random_u32 called from bucket_table_alloc+0x8c/0x1c4 with crng_init=0
[    0.100386] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    0.100673] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.100693] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.104262] pinctrl core: initialized pinctrl subsystem
[    0.104996] DMI not present or invalid.
[    0.105393] NET: Registered protocol family 16
[    0.107554] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.120243] omap_hwmod: debugss: _wait_target_disable failed
[    0.173251] cpuidle: using governor ladder
[    0.173289] cpuidle: using governor menu
[    0.177285] OMAP GPIO hardware version 0.1
[    0.185413] omap-gpmc 50000000.gpmc: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/nandflash_pins_s0, deferring probe
[    0.187622] No ATAGs?
[    0.187638] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.199919] edma 49000000.edma: TI EDMA DMA engine driver
[    0.203522] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
[    0.203669] media: Linux media interface: v0.10
[    0.203730] Linux video capture interface: v2.00
[    0.203838] pps_core: LinuxPPS API ver. 1 registered
[    0.203847] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.203869] PTP clock support registered
[    0.203906] EDAC MC: Ver: 3.0.0
[    0.204373] dmi: Firmware registration failed.
[    0.204785] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[    0.205136] Advanced Linux Sound Architecture Driver Initialized.
[    0.206305] clocksource: Switched to clocksource timer1
[    0.213759] NET: Registered protocol family 2
[    0.214473] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.214520] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[    0.214559] TCP: Hash tables configured (established 4096 bind 4096)
[    0.214664] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.214682] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.214838] NET: Registered protocol family 1
[    0.215274] RPC: Registered named UNIX socket transport module.
[    0.215287] RPC: Registered udp transport module.
[    0.215293] RPC: Registered tcp transport module.
[    0.215300] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.216210] hw perfevents: no interrupt-affinity property for /pmu, guessing.
[    0.216592] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[    0.218045] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[    0.221716] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.222520] NFS: Registering the id_resolver key type
[    0.222571] Key type id_resolver registered
[    0.222578] Key type id_legacy registered
[    0.222619] ntfs: driver 2.1.32 [Flags: R/O].
[    0.224596] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    0.224617] io scheduler noop registered
[    0.224625] io scheduler deadline registered
[    0.224824] io scheduler cfq registered (default)
[    0.224835] io scheduler mq-deadline registered
[    0.224843] io scheduler kyber registered
[    0.226064] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[    0.229436] pwm-backlight backlight: backlight supply power not found, using dummy regulator
[    0.273173] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[    0.276124] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a 8250
[    0.918361] console [ttyS0] enabled
[    0.922946] 48024000.serial: ttyS2 at MMIO 0x48024000 (irq = 31, base_baud = 3000000) is a 8250
[    0.932750] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 32, base_baud = 3000000) is a 8250
[    0.942477] 481aa000.serial: ttyS5 at MMIO 0x481aa000 (irq = 33, base_baud = 3000000) is a 8250
[    0.953099] omap_rng 48310000.rng: Random Number Generator ver. 20
[    0.961150] panel panel: found backlight
[    0.965220] panel panel: found enable GPIO
[    0.969769] OF: graph: no port node found in /ocp/lcdc@4830e000
[    0.975949] OF: graph: no port node found in /ocp/lcdc@4830e000
[    0.982424] OF: graph: no port node found in /ocp/lcdc@4830e000
[    0.988424] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    0.995066] [drm] No driver support for vblank timestamp query.
[    1.041815] Console: switching to colour frame buffer device 100x30
[    1.063168] tilcdc 4830e000.lcdc: fb0:  frame buffer device
[    1.069341] [drm] Initialized tilcdc 1.0.0 20121205 for 4830e000.lcdc on minor 0
[    1.088028] brd: module loaded
[    1.097938] loop: module loaded
[    1.103504] libphy: Fixed MDIO Bus: probed
[    1.176365] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6, bus freq 1000000
[    1.184070] davinci_mdio 4a101000.mdio: detected phy mask ffffffc1
[    1.194391] libphy: 4a101000.mdio: probed
[    1.198550] davinci_mdio 4a101000.mdio: phy[1]: device 4a101000.mdio:01, driver unknown
[    1.206684] davinci_mdio 4a101000.mdio: phy[2]: device 4a101000.mdio:02, driver unknown
[    1.214725] davinci_mdio 4a101000.mdio: phy[3]: device 4a101000.mdio:03, driver unknown
[    1.222893] davinci_mdio 4a101000.mdio: phy[4]: device 4a101000.mdio:04, driver unknown
[    1.230973] davinci_mdio 4a101000.mdio: phy[5]: device 4a101000.mdio:05, driver unknown
[    1.240466] cpsw 4a100000.ethernet: No slave[1] phy_id, phy-handle, or fixed-link property
[    1.248922] cpsw 4a100000.ethernet: Detected MACID = d8:a9:8b:03:5e:b0
[    1.255617] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
[    1.262065] cpsw 4a100000.ethernet: ALE Table size 1024
[    1.267432] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
[    1.275990] i2c /dev entries driver
[    1.280141] IR NEC protocol handler initialized
[    1.284702] IR RC5(x/sz) protocol handler initialized
[    1.289862] IR RC6 protocol handler initialized
[    1.294425] IR JVC protocol handler initialized
[    1.299122] IR Sony protocol handler initialized
[    1.303760] IR SANYO protocol handler initialized
[    1.308501] IR Sharp protocol handler initialized
[    1.313230] IR MCE Keyboard/mouse protocol handler initialized
[    1.319097] IR XMP protocol handler initialized
[    1.325307] cpuidle: enable-method property 'ti,am3352' found operations
[    1.332521] sdhci: Secure Digital Host Controller Interface driver
[    1.338771] sdhci: Copyright(c) Pierre Ossman
[    1.343718] omap_hsmmc 48060000.mmc: Got CD GPIO
[    1.349274] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.355687] ledtrig-cpu: registered to indicate activity on CPUs
[    1.365108] NET: Registered protocol family 10
[    1.370968] Segment Routing with IPv6
[    1.374725] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.381491] NET: Registered protocol family 17
[    1.386424] Key type dns_resolver registered
[    1.390941] omap_voltage_late_init: Voltage driver support not added
[    1.403006] omap-gpmc 50000000.gpmc: GPMC revision 6.0
[    1.408375] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
[    1.416214] nand: device found, Manufacturer ID: 0x98, Chip ID: 0xdc
[    1.422768] nand: Toshiba NAND 512MiB 3,3V 8-bit
[    1.427455] nand: 512 MiB, SLC, erase size: 256 KiB, page size: 4096, OOB size: 128
[    1.435270] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
[    1.440745] 13 ofpart partitions found on MTD device omap2-nand.0
[    1.446894] Creating 13 MTD partitions on "omap2-nand.0":
[    1.452329] 0x000000000000-0x000000080000 : "NAND.SPL"
[    1.458780] 0x000000080000-0x000000100000 : "NAND.SPL.backup1"
[    1.465723] 0x000000100000-0x000000180000 : "NAND.SPL.backup2"
[    1.472655] 0x000000180000-0x000000200000 : "NAND.SPL.backup3"
[    1.479584] 0x000000200000-0x000000280000 : "NAND.kernel-fdt"
[    1.486376] 0x000000280000-0x000000380000 : "NAND.u-boot"
[    1.493100] 0x000000380000-0x000000400000 : "NAND.u-boot-env"
[    1.499892] 0x000000400000-0x000001400000 : "NAND.ramfs-kernel"
[    1.515556] 0x000001400000-0x000002400000 : "NAND.ramfs-kernel.backup1"
[    1.531951] 0x000002400000-0x000002a00000 : "user.configuration"
[    1.542111] 0x000002a00000-0x000003000000 : "user.configuration.backup"
[    1.552892] 0x000003000000-0x000003600000 : "factory.configuration"
[    1.563312] 0x000003600000-0x00001c600000 : "Storage"
[    1.816565] tps65910 0-002d: No interrupt support, no core IRQ
[    1.824347] vrtc: supplied by vbat
[    1.828055] random: fast init done
[    1.834858] vio: supplied by vbat
[    1.839768] vdd1: supplied by vbat
[    1.844914] vdd2: supplied by vbat
[    1.851390] vdig1: supplied by vbat
[    1.856242] vdig2: supplied by vbat
[    1.861078] vpll: supplied by vbat
[    1.865792] vdac: supplied by vbat
[    1.870557] vaux1: supplied by vbat
[    1.875349] vaux2: supplied by vbat
[    1.880159] vaux33: supplied by vbat
[    1.885060] vmmc: supplied by vbat
[    1.889823] vbb: supplied by vbat
[    1.894275] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[    1.902036] omap_hsmmc 48060000.mmc: Got CD GPIO
[    1.970189] input: volume_keys0 as /devices/platform/volume_keys0/input/input0
[    1.982116] hctosys: unable to open rtc device (rtc0)
[    1.988293] lis3_reg: disabling
[    1.991755] ALSA device list:
[    1.994796]   No soundcards found.
[    2.002049] Waiting for root device /dev/mmcblk0p2...
[    2.045022] mmc0: host does not support reading read-only switch, assuming write-enable
[    2.057321] mmc0: new high speed SDHC card at address 0007
[    2.063537] mmcblk0: mmc0:0007 SD08G 7.42 GiB
[    2.070257]  mmcblk0: p1 p2
[    2.099123] EXT4-fs (mmcblk0p2): mounting ext3 file system using the ext4 subsystem
[    2.121028] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    2.129389] VFS: Mounted root (ext3 filesystem) readonly on device 179:2.
[    2.140092] devtmpfs: mounted
[    2.144645] Freeing unused kernel memory: 1024K
[    2.553049] systemd[1]: System time before build time, advancing clock.
[    2.627358] systemd[1]: systemd 234 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN default-hierarchy=hybrid)
[    2.649509] systemd[1]: Detected architecture arm.

Welcome to Arago 2018.10!

[    2.699306] systemd[1]: Set hostname to <am335x-evm>.
[    2.716091] random: systemd: uninitialized urandom read (16 bytes read)
[    2.723002] systemd[1]: Initializing machine ID from random generator.
[    2.730279] systemd[1]: Installed transient /etc/machine-id file.
[    3.109822] systemd[1]: /lib/systemd/system/gadget-init.service:15: Unknown lvalue 'ExecStopPre' in section 'Service'
[    3.402355] random: systemd: uninitialized urandom read (16 bytes read)
[    3.409819] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[    3.448222] random: systemd: uninitialized urandom read (16 bytes read)
[    3.455531] systemd[1]: Listening on Network Service Netlink Socket.
[  OK  ] Listening on Network Service Netlink Socket.
[    3.497221] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[    3.527891] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[  OK  ] Listening on Syslog Socket.
[  OK  ] Listening on udev Control Socket.
[  OK  ] Listening on Process Core Dump Socket.
[  OK  ] Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Reached target Remote File Systems.
[  OK  ] Reached target Swap.
[  OK  ] Created slice User and Session Slice.
[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
[  OK  ] Created slice System Slice.
[  OK  ] Reached target Slices.
         Starting Journal Service...
         Starting Load Kernel Modules...
         Starting Create list of required st…ce nodes for the current kernel...
         Starting File System Check on Root Device...
[  OK  ] Created slice system-getty.slice.
[    4.078147] cryptodev: loading out-of-tree module taints kernel.
[  OK  ] Created slice system-serial\x2dgetty.slice.
[    4.103321] cryptodev: driver 1.9 loaded.
         Mounting POSIX Message Queue File System...
[    4.164967] usbcore: registered new interface driver usbfs
         Mounting Kernel Debug File System...
[    4.215643] usbcore: registered new interface driver hub
[    4.241689] usbcore: registered new device driver usb
[    4.276871] usbcore: registered new interface driver usbserial
         Mounting Temporary Directory (/tmp)...
[  OK  ] Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Reached target Paths.
[    4.327664] usbcore: registered new interface driver ftdi_sio
[    4.333570] usbserial: USB Serial support registered for FTDI USB Serial Device
[  OK  ] Mounted Kernel Debug File System.
[  OK  ] Mounted POSIX Message Queue File System.
[  OK  ] Mounted Temporary Directory (/tmp).
[  OK  ] Started Journal Service.
[  OK  ] Started Load Kernel Modules.
[  OK  ] Started Create list of required sta…vice nodes for the current kernel.
[  OK  ] Started File System Check on Root Device.
         Starting Remount Root and Kernel File Systems...
         Mounting Kernel Configuration File System...
         Starting Apply Kernel Variables...
[  OK  ] Mounted Kernel Configuration File System.
[    4.802830] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[  OK  ] Started Remount Root and Kernel File Systems.
         Starting Rebuild Hardware Database...
         Starting Create System Users...
         Starting Flush Journal to Persistent Storage...
[  OK  ] Started Apply Kernel Variables.
[    5.100179] systemd-journald[64]: Received request to flush runtime journal from PID 1
[  OK  ] Started Create System Users.
         Starting Create Static Device Nodes in /dev...
[  OK  ] Started Flush Journal to Persistent Storage.
[  OK  ] Started Create Static Device Nodes in /dev.
         Starting udev Kernel Device Manager...
[  OK  ] Reached target Local File Systems (Pre).
         Mounting /var/volatile...
         Mounting /media/ram...
[  OK  ] Mounted /var/volatile.
[  OK  ] Mounted /media/ram.
         Starting Load/Save Random Seed...
[  OK  ] Reached target Local File Systems.
         Starting Rebuild Journal Catalog...
         Starting Create Volatile Files and Directories...
         Starting Rebuild Dynamic Linker Cache...
         Starting Commit a transient machine-id on disk...
[  OK  ] Started udev Kernel Device Manager.
[  OK  ] Started Load/Save Random Seed.
[  OK  ] Started Rebuild Journal Catalog.
[  OK  ] Started Create Volatile Files and Directories.
         Starting Update UTMP about System Boot/Shutdown...
         Starting Network Time Synchronization...
         Starting Opkg first boot configure...
[  OK  ] Started Commit a transient machine-id on disk.
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target System Time Synchronized.
[  OK  ] Started Rebuild Hardware Database.
         Starting udev Coldplug all Devices...
[   15.610356] random: crng init done
[   15.613811] random: 7 urandom warning(s) missed due to ratelimiting
[  OK  ] Started Rebuild Dynamic Linker Cache.
         Starting Update is Completed...
[  OK  ] Started Update is Completed.
[  OK  ] Started udev Coldplug all Devices.
[   18.398315] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[   18.489768] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[   18.519161] PM: Cannot get wkup_m3_ipc handle
[  OK  ] Created slice system-systemd\x2dbacklight.slice.
[   18.608728] PM: Cannot get wkup_m3_ipc handle
[   18.613941] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[   18.650518] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[   18.653215] omap_rtc 44e3e000.rtc: registered as rtc0
         [   18.851170] PM: Cannot get wkup_m3_ipc handle
Starting Load/Save Screen Backlight…ightness of backlight:backlight...
[   18.907159] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[  OK  ] Started Load/Save Screen Backlight Brightness of backlight:backlight.
[  OK  ] Found device /dev/ttyS0.
[  OK  ] Found device /dev/ttyS3.
[   19.257584] CAN device driver interface
[   19.275385] c_can_platform 481cc000.can: c_can_platform device registered (regs=fa1cc000, irq=37)
[   19.417074] PM: Cannot get wkup_m3_ipc handle
[   19.422281] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[   19.430231] c_can_platform 481d0000.can: c_can_platform device registered (regs=fa1d0000, irq=38)
[   19.535935] PM: Cannot get wkup_m3_ipc handle
[   19.601488] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[   19.863317] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[   20.063056] omap_hwmod: gfx: failed to hardreset
[   20.068211] PM: Cannot get wkup_m3_ipc handle
[   20.073406] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[   20.113736] remoteproc remoteproc0: wkup_m3 is available
[   20.205095] PM: Cannot get wkup_m3_ipc handle
[   20.266655] pvrsrvkm 56000000.sgx: Unable to reset SGX!
[   20.297609] omap_hwmod: gfx: _wait_target_ready failed: -16
[   20.326502] pvrsrvkm 56000000.sgx: use pm_runtime_put_sync_suspend() in driver?
[   20.326539] PVR_K:(Error): EnableSGXClocks: pm_runtime_get_sync failed (16)
[   20.326551] PVR_K:(Error): SysInitialise: Failed to Enable system clocks (175)
[   20.730840] PM: Cannot get wkup_m3_ipc handle
[   20.735380] remoteproc remoteproc0: powering up wkup_m3
[   20.816734] pvrsrvkm 56000000.sgx: Unable to register SGX DRM device
[   20.832081] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 224628
[   20.832353] remoteproc remoteproc0: remote processor wkup_m3 is now up
[   20.832381] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
[   21.156989] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[   21.216554] omap-aes 53500000.aes: will run requests pump with realtime priority
[   21.375536] PM: bootloader does not support rtc-only!
[  OK  ] Found device /dev/mmcblk0p1.
[  OK  ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
[   26.588864] input: ti-tsc as /devices/platform/ocp/44e0d000.tscadc/44e0d000.tscadc:tsc/input/input1
[   26.686104] am335x-phy-driver 47401300.usb-phy: 47401300.usb-phy supply vcc not found, using dummy regulator
[   26.714359] am335x-phy-driver 47401b00.usb-phy: 47401b00.usb-phy supply vcc not found, using dummy regulator
[   26.789790] musb-hdrc musb-hdrc.0: MUSB HDRC host driver
[   26.789828] musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 1
[   26.816064] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[   26.816075] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   26.816080] usb usb1: Product: MUSB HDRC host driver
[   26.816085] usb usb1: Manufacturer: Linux 4.14.79-ge669d52447 musb-hcd
[   26.816090] usb usb1: SerialNumber: musb-hdrc.0
[   26.836928] hub 1-0:1.0: USB hub found
[   26.844224] hub 1-0:1.0: 1 port detected
[   26.864371] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[   26.864423] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 2
[   26.912108] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[   26.912120] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   26.912125] usb usb2: Product: MUSB HDRC host driver
[   26.912130] usb usb2: Manufacturer: Linux 4.14.79-ge669d52447 musb-hcd
[   26.912135] usb usb2: SerialNumber: musb-hdrc.1
[   26.940093] hub 2-0:1.0: USB hub found
[   26.940191] hub 2-0:1.0: 1 port detected
[  OK  ] Started Opkg first boot configure.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Daily rotation of log files.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timers.
[  OK  ] Listening on RPCbind Server Activation Socket.
         Starting Network Service...
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Listening on dropbear.socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
         Starting Login Service...
         Starting uim-sysfs.service...
[  OK  ] Started Job spooling tools.
         Starting Start USB gadget...
         Starting RPC Bind Service...
[  OK  ] Started Hardware RNG Entropy Gatherer Daemon.
[  OK  ] Reached target Containers.
         Starting Avahi mDNS/DNS-SD Stack...
[  OK  ] Started System Logging Service.
[  OK  ] Started D-Bus System Message Bus.
[   30.479743] udc-core: couldn't find an available UDC - added [g_multi] to list of pending drivers
[  OK  ] Started Avahi mDNS/DNS-SD Stack.
[  OK  ] Started Periodic Command Scheduler.
         Starting Print notice about GPLv3 packages...
[  OK  ] Started Kernel Logging Service.
[  OK  ] Started Network Service.
[  OK  ] Started RPC Bind Service.
[   31.148573] net eth0: initializing cpsw version 1.12 (0)
[  OK  ] Started Login Service.
[   31.244155] Generic PHY fixed-0:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=fixed-0:00, irq=POLL)
[   31.244325] libphy: PHY  not found
[   31.244338] net eth0: phy "" not found on slave 1, err -19
[   31.306574] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[  OK  ] Reached target Network.
[  OK  ] Started Redis In-Memory Data Store.
         Starting Lightning Fast Webserver With Light System Requirements...
         Starting Enable and configure wl18xx bluetooth stack...
         Starting Simple Network Management Protocol (SNMP) Daemon....
         Starting Permit User Sessions...
         Starting Wait for Network to be Configured...
         Starting Network Name Resolution...
[FAILED] Failed to start Start USB gadget.
See 'systemctl status gadget-init.service' for details.
[  OK  ] Started Lightning Fast Webserver With Light System Requirements.
[  OK  ] Started Permit User Sessions.
[   32.246636] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off
[   32.254633] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[  OK  ] Started Serial Getty on ttyS0.
[  OK  ] Started Serial Getty on ttyS3.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Network Name Resolution.
[  OK  ] Reached target Host and Network Name Lookups.
[  OK  ] Started NFS status monitor for NFSv2/3 locking..
[  OK  ] Started Simple Network Management Protocol (SNMP) Daemon..
[  OK  ] Started Enable and configure wl18xx bluetooth stack.
[  OK  ] Started uim-sysfs.service.
         Starting rc.pvr.service...
[  OK  ] Started rc.pvr.service.
         Starting weston.service...

 _____                    _____           _         _
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
              |___|                    |___|

Arago Project http://arago-project.org am335x-evm ttyS0

Arago 2018.10 am335x-evm ttyS0

am335x-evm login:
 _____                    _____           _         _
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
              |___|                    |___|

Arago Project http://arago-project.org am335x-evm ttyS0

Arago 2018.10 am335x-evm ttyS0

am335x-evm login: [   46.052740] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underflow
***************************************************************
***************************************************************
NOTICE: This file system contains the following GPLv3 packages:
        autoconf
        bash-dev
        bash
        binutils
        cifs-utils
        cpio
        cpp-symlinks
        cpp
        dosfstools
        elfutils
        findutils
        g++-symlinks
        g++
        gawk
        gcc-symlinks
        gcc
        gdb
        gdbserver
        gettext
        glmark2
        gstreamer1.0-libav
        gzip
        hidapi
        libdw1
        libelf1
        libgdbm-compat4
        libgdbm-dev
        libgdbm4
        libgettextlib
        libgettextsrc
        libgmp10
        libidn11
        libmavconn
        libmpc3
        libmpfr4
        libreadline-dev
        libreadline7
        libunistring2
        m4-dev
        m4
        make
        mavlink
        mavros-extras
        mavros-msgs
        mavros
        nettle
        python3-pycairo
        socketcan-interface
        which

If you do not wish to distribute GPLv3 components please remove
the above packages prior to distribution.  This can be done using
the opkg remove command.  i.e.:
    opkg remove <package>
Where <package> is the name printed in the list above

NOTE: If the package is a dependency of another package you
      will be notified of the dependent packages.  You should
      use the --force-removal-of-dependent-packages option to
      also remo[   46.064044] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
ve the dependent packages as well
***************************************************************
***************************************************************
[   46.064727] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
[   46.429538] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underflow
[   46.441920] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
[   46.442583] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
[   46.670015] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underflow
[   46.683743] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
[   46.684427] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost

 _____                    _____           _         _
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
              |___|                    |___|

Arago Project http://arago-project.org am335x-evm ttyS0

Arago 2018.10 am335x-evm ttyS0

am335x-evm login: root
root@am335x-evm:~#
root@am335x-evm:~#
root@am335x-evm:~# cd [  152.438533] NET: Registered protocol family 15
[  153.732583] Initializing XFRM netlink socket

root@am335x-evm:~# cd /usr/share/qt5/examples/opengl/textures
root@am335x-evm:/usr/share/qt5/examples/opengl/textures# ./textures
Failed to create display (No such file or directory)
root@am335x-evm:/usr/share/qt5/examples/opengl/textures#
root@am335x-evm:/usr/share/qt5/examples/opengl/textures#

 

Thanks

  • Hello Jason,

    Could you please share how you have setup your LCD in Linux? Also, please share the outcome of the modetest and kmstest commands.

    Regards,
    Krunal

  • Hi Krunal,

    After run kmstest

    Attached the dts & log

    /*
     * 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 <dt-bindings/pwm/pwm.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    
    / {
    	model = "TI AM335x EVM";
    	compatible = "ti,am335x-evm", "ti,am33xx";
    
    	cpus {
    		cpu@0 {
    			cpu0-supply = <&vdd1_reg>;
    		};
    	};
    
    	memory@80000000 {
    		device_type = "memory";
    		/* +++ Seamus,512MB DDR ,20190318 ---*/
    		/*reg = <0x80000000 0x10000000>;*/ /* 256 MB */
    		reg = <0x80000000 0x20000000>; /* 512 MB */ 
    		/* --- Seamus,ramdisk ,20190318 ---*/
    	};
    
    	/* +++ Seamus,512MB DDR ,20190318 ---*/
    	chosen {		  
    		bootargs = "console=ttyS0,115200n8 root=/dev/ram0";
    	};
    	/* --- Seamus,ramdisk ,20190318 ---*/
    	vbat: fixedregulator0 {
    		compatible = "regulator-fixed";
    		regulator-name = "vbat";
    		regulator-min-microvolt = <5000000>;
    		regulator-max-microvolt = <5000000>;
    		regulator-boot-on;
    	};
    
    	lis3_reg: fixedregulator1 {
    		compatible = "regulator-fixed";
    		regulator-name = "lis3_reg";
    		regulator-boot-on;
    	};
    
    #if 1
    	lcd_bl: backlight {
    		compatible = "pwm-backlight";
    		pwms = <&ecap2 0 50000 PWM_POLARITY_INVERTED>;
    		brightness-levels = <0 51 53 56 62 75 101 152 255>;
    		default-brightness-level = <8>;
    	};
    	
    	panel {
    		compatible = "ti,tilcdc,panel";
    		status = "okay";
    		pinctrl-names = "default", "sleep";
    		pinctrl-0 = <&lcd_pins_s0>;
    		pinctrl-1 = <&lcd_pins_sleep>;
    		backlight = <&lcd_bl>;
    		enable-gpios = <&gpio1 28 0>;
    		panel-info {
    			ac-bias           = <255>;
    			ac-bias-intrpt    = <0>;
    			dma-burst-sz      = <16>;
    			bpp               = <32>;
    			fdd               = <0x80>;
    			sync-edge         = <0>;
    			sync-ctrl         = <1>;
    			raster-order      = <0>;
    			fifo-th           = <0>;
    		};
    		display-timings {
    			800x480 {
    				clock-frequency = <30000000>;
    				hactive = <800>;
    				vactive = <480>;
    				hfront-porch = <56>;
    				hback-porch = <4>;
    				hsync-len = <12>;
    				vback-porch = <21>;
    				vfront-porch = <16>;
    				vsync-len = <3>;
    				hsync-active = <0>;
    				vsync-active = <0>;
    			};
    		};
    	};
    #endif
    };
    
    
    /* +++ Seamus,Pinmux ,20190318 +++*/
    &am33xx_pinmux {
    	pinctrl-names = "default";
    	pinctrl-0 = <&InitialGPIO &clkout2_pin>; 
    	InitialGPIO: InitialGPIO {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x88C, PIN_OUTPUT | MUX_MODE7)	/* GPMC_CLK.GPIO2_1 */
    			AM33XX_IOPAD(0x880, PIN_OUTPUT | MUX_MODE7)	/* GPMC_CSn1.GPIO1_30 */
    			AM33XX_IOPAD(0x840, PIN_OUTPUT | MUX_MODE7)	/* GPMC_A0.GPIO1_16 */
    			AM33XX_IOPAD(0x844, PIN_OUTPUT | MUX_MODE7)	/* GPMC_A1.GPIO1_17 */
    			AM33XX_IOPAD(0x848, PIN_OUTPUT | MUX_MODE7)	/* GPMC_A2.GPIO1_18*/
    			AM33XX_IOPAD(0x84C, PIN_OUTPUT | MUX_MODE7)	/* GPMC_A3.GPIO1_19 */
    			AM33XX_IOPAD(0x850, PIN_INPUT | MUX_MODE7)	/* GPMC_A4.GPIO1_20 */
    			AM33XX_IOPAD(0x854, PIN_INPUT | MUX_MODE7)	/* GPMC_A5.GPIO1_20 */
    			AM33XX_IOPAD(0x858, PIN_OUTPUT | MUX_MODE7)	/* GPMC_A6.GPIO1_22 */
    			AM33XX_IOPAD(0x85C, PIN_OUTPUT | MUX_MODE7)	/* GPMC_A7.GPIO1_23 */
    			AM33XX_IOPAD(0x864, PIN_INPUT | MUX_MODE7)	/* GPMC_A9.GPIO1_25 */
    			AM33XX_IOPAD(0x868, PIN_INPUT | MUX_MODE7)	/* GPMC_A10.GPIO1_26 */
    			AM33XX_IOPAD(0x990, PIN_OUTPUT | MUX_MODE7)	/* MCASP0_ACLKX.GPIO3_14 */
    			AM33XX_IOPAD(0x994, PIN_OUTPUT | MUX_MODE7)	/* (B13) MCASP0_FSX.GPIO3_15 */
    			AM33XX_IOPAD(0x9AC, PIN_OUTPUT | MUX_MODE7)	/* MCASP0_AHCLKX.GPIO3_21 */
    			AM33XX_IOPAD(0x9B0, PIN_OUTPUT | MUX_MODE7)	/* XDMA_EVENT_INTR0.GPIO0_19 PLC_INTERUPT*/
    			AM33XX_IOPAD(0x9A0, PIN_OUTPUT | MUX_MODE7)	/* MCASP0_ACLKR.GPIO3_18 */
    			AM33XX_IOPAD(0x9A4, PIN_OUTPUT | MUX_MODE7)	/* MCASP0_FSR.GPIO3_19 */
    			AM33XX_IOPAD(0x998, PIN_OUTPUT | MUX_MODE7)	/* MCASP0_AXR0.GPIO3_16 */
    			AM33XX_IOPAD(0x9A8, PIN_OUTPUT | MUX_MODE7)	/* MCASP0_AXR1.GPIO3_20 */
    			AM33XX_IOPAD(0x938, PIN_INPUT | MUX_MODE7)	/* MII1_RXD2.GPIO2_19*/
    			AM33XX_IOPAD(0x888, PIN_OUTPUT | MUX_MODE7)	/* GPMC_CSn3.GPIO2_0*/
    			AM33XX_IOPAD(0x878, PIN_OUTPUT | MUX_MODE7)	/* GPMC_ben1.GPIO1_28*/
    			AM33XX_IOPAD(0x884, PIN_OUTPUT | MUX_MODE7)	/* GPMC_CSn2.GPIO1_31*/
    			AM33XX_IOPAD(0x950, PIN_OUTPUT | MUX_MODE7) /* (A17) spi0_sclk.spi0_sclk */
    			AM33XX_IOPAD(0x954, PIN_OUTPUT | MUX_MODE7) /* (B17) spi0_d0.spi0_d0 */
    			AM33XX_IOPAD(0x958, PIN_OUTPUT | MUX_MODE7) /* (B16) spi0_d1.spi0_d1 */
    			AM33XX_IOPAD(0x95c, PIN_OUTPUT | MUX_MODE7) /* (A16) spi0_cs0.spi0_cs0 */
    			AM33XX_IOPAD(0x980, PIN_OUTPUT | MUX_MODE7) /* (D16) uart1_rxd.uart1_rxd */
    			AM33XX_IOPAD(0x984, PIN_OUTPUT | MUX_MODE7) /* (D15) uart1_txd.uart1_txd */
    		>;
    	};
    
    	i2c0_pins_default: i2c0_pins_default {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* (C16) I2C0_SCL.I2C0_SCL */
    			AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* (C17) I2C0_SDA.I2C0_SDA */
    		>;
    	};
    
    	uart0_pins_default: uart0_pins_default {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* (E15) uart0_rxd.uart0_rxd */
    			AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (E16) uart0_txd.uart0_txd */
    		>;
    	};
    	
    	uart1_pins_default: uart1_pins_default {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0) /* (D16) uart1_rxd.uart1_rxd */
    			AM33XX_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (D15) uart1_txd.uart1_txd */
    			AM33XX_IOPAD(0x978, PIN_INPUT | MUX_MODE0) /* (D18) uart1_ctsn.uart1_ctsn */
    			AM33XX_IOPAD(0x97c, PIN_OUTPUT | MUX_MODE0) /* (D17) uart1_rtsn.uart1_rtsn */
    		>;
    	};
    	
    	uart2_pins_default: uart2_pins_default {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x92c, PIN_INPUT_PULLUP | MUX_MODE1) /* (K18) gmii1_txclk.uart2_rxd */
    			AM33XX_IOPAD(0x930, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* (L18) gmii1_rxclk.uart2_txd */
    		>;
    	};
    	
    	uart3_pins_default: uart3_pins_default {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x934, PIN_INPUT_PULLUP | MUX_MODE1) /* (L17) gmii1_rxd3.uart3_rxd */
    			AM33XX_IOPAD(0x964, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* (C18) eCAP0_in_PWM0_out.uart3_txd */
    		>;
    	};
    
    	uart5_pins_default: uart5_pins_default {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x908, PIN_INPUT_PULLUP | MUX_MODE3) /* (H16) gmii1_col.uart5_rxd */
    			AM33XX_IOPAD(0x918, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* (J17) gmii1_rxdv.uart5_txd */
    		>;
    	};
    	
    	clkout2_pin: pinmux_clkout2_pin {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x9b4, PIN_OUTPUT_PULLDOWN | MUX_MODE3)	/* xdma_event_intr1.clkout2 */
    		>;
    	};
    #if 1
    	ecap2_pins: backlight_pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x99c, MUX_MODE4)	/* mcasp0_ahclkr.ecap2_in_pwm2_out */
    		>;
    	};
    #endif	
    	nandflash_pins_default: nandflash_pins_default {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE0) /* (T9) gpmc_ad7.gpmc_ad7 */
    			AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE0) /* (R9) gpmc_ad6.gpmc_ad6 */
    			AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE0) /* (V8) gpmc_ad5.gpmc_ad5 */
    			AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE0) /* (U8) gpmc_ad4.gpmc_ad4 */
    			AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE0) /* (T8) gpmc_ad3.gpmc_ad3 */
    			AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE0) /* (R8) gpmc_ad2.gpmc_ad2 */
    			AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE0) /* (V7) gpmc_ad1.gpmc_ad1 */
    			AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE0) /* (U7) gpmc_ad0.gpmc_ad0 */
    			AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE0) /* (T17) gpmc_wait0.gpmc_wait0 */
    			AM33XX_IOPAD(0x874, PIN_OUTPUT | MUX_MODE0) /* (U17) gpmc_wpn.gpmc_wpn */
    			AM33XX_IOPAD(0x890, PIN_OUTPUT | MUX_MODE0) /* (R7) gpmc_advn_ale.gpmc_advn_ale */
    			AM33XX_IOPAD(0x894, PIN_OUTPUT | MUX_MODE0) /* (T7) gpmc_oen_ren.gpmc_oen_ren */
    			AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE0) /* (U6) gpmc_wen.gpmc_wen */
    			AM33XX_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE0) /* (T6) gpmc_be0n_cle.gpmc_be0n_cle */
    			AM33XX_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE0) /* (V6) gpmc_csn0.gpmc_csn0 */
    		>;
    	};
    
    	/* Optional sleep pin settings. Must manually enter values in the below skeleton. */
    	nandflash_pins_sleep: nandflash_pins_sleep {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x81c,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (T9) gpmc_ad7.gpmc_ad7 */
    			AM33XX_IOPAD(0x818,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (R9) gpmc_ad6.gpmc_ad6 */
    			AM33XX_IOPAD(0x814,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (V8) gpmc_ad5.gpmc_ad5 */
    			AM33XX_IOPAD(0x810,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (U8) gpmc_ad4.gpmc_ad4 */
    			AM33XX_IOPAD(0x80c,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (T8) gpmc_ad3.gpmc_ad3 */
    			AM33XX_IOPAD(0x808,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (R8) gpmc_ad2.gpmc_ad2 */
    			AM33XX_IOPAD(0x804,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (V7) gpmc_ad1.gpmc_ad1 */
    			AM33XX_IOPAD(0x800,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (U7) gpmc_ad0.gpmc_ad0 */
    			AM33XX_IOPAD(0x870,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (T17) gpmc_wait0.gpmc_wait0 */
    			AM33XX_IOPAD(0x874,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (U17) gpmc_wpn.gpmc_wpn */
    			AM33XX_IOPAD(0x890,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (R7) gpmc_advn_ale.gpmc_advn_ale */
    			AM33XX_IOPAD(0x894,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (T7) gpmc_oen_ren.gpmc_oen_ren */
    			AM33XX_IOPAD(0x898,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (U6) gpmc_wen.gpmc_wen */
    			AM33XX_IOPAD(0x89c,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (T6) gpmc_be0n_cle.gpmc_be0n_cle */
    			AM33XX_IOPAD(0x87c,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (V6) gpmc_csn0.gpmc_csn0 */
    		>;
    	};
    	
    	cpsw_default: cpsw_default {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* (H17) mii1_crs.rmii1_crs_dv */
    			AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE0) /* (H18) rmii1_refclk.rmii1_refclk */
    			AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */
    			AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* (L15) gmii1_rxd1.rmii1_rxd1 */
    			AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */
    			AM33XX_IOPAD(0x928, PIN_OUTPUT  | MUX_MODE1) /* (K17) gmii1_txd0.rmii1_txd0 */
    			AM33XX_IOPAD(0x924, PIN_OUTPUT  | MUX_MODE1) /* (K16) gmii1_txd1.rmii1_txd1 */
    			AM33XX_IOPAD(0x914, PIN_OUTPUT  | MUX_MODE1) /* (J16) gmii1_txen.rmii1_txen */					
    		>;
    	};
    	
    		/* Optional sleep pin settings. Must manually enter values in the below skeleton. */
    	cpsw_sleep: cpsw_sleep {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (H17) gmii1_crs.rmii1_crs_dv */
    			AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (J16) gmii1_txen.rmii1_txen */
    			AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (K17) gmii1_txd0.rmii1_txd0 */
    			AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (K16) gmii1_txd1.rmii1_txd1 */
    			AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (M16) gmii1_rxd0.rmii1_rxd0 */
    			AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (L15) gmii1_rxd1.rmii1_rxd1 */
    			AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (H18) rmii1_refclk.rmii1_refclk */
    			AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7) /* mii1_rxerr.rmii1_rxerr */
    		>;
    	};
    
    	davinci_mdio_default: davinci_mdio_default {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* (M18) mdio_clk.mdio_clk */
    			AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | MUX_MODE0) /* (M17) mdio_data.mdio_data */
    		>;
    	};
    
    	/* Optional sleep pin settings. Must manually enter values in the below skeleton. */
    	davinci_mdio_sleep: davinci_mdio_sleep {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x94c,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (M18) mdio_clk.mdio_clk */
    			AM33XX_IOPAD(0x948,PIN_INPUT_PULLDOWN | MUX_MODE7) /* (M17) mdio_data.mdio_data */
    		>;
    	};
    	
    	mmc1_pins: mmc1_pins_default {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* (G17) mmc0_clk.mmc0_clk */
    			AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* (G18) mmc0_cmd.mmc0_cmd */
    			AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* (G16) mmc0_dat0.mmc0_dat0 */
    			AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* (G15) mmc0_dat1.mmc0_dat1 */
    			AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* (F18) mmc0_dat2.mmc0_dat2 */
    			AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* (F17) mmc0_dat3.mmc0_dat3 */
    			AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* (C15) spi0_cs1.mmc0_sdcd gpio0_6*/
    		>;
    	};
    	
    	dcan0_pins_default: dcan0_pins_default {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE1) /* (K15) gmii1_txd2.dcan0_rx */
    			AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLUP | MUX_MODE1) /* (J18) gmii1_txd3.dcan0_tx */
    		>;
    	};
    	
    	dcan1_pins_default: dcan1_pins_default {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x96c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* (E17) uart0_rtsn.dcan1_rx */
    			AM33XX_IOPAD(0x968, PIN_OUTPUT_PULLUP | MUX_MODE2) /* (E18) uart0_ctsn.dcan1_tx */
    		>;
    	};
    	
    	
    	
    	spi0_pins_default: spi0_pins_default {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x950, PIN_INPUT_PULLUP | MUX_MODE0) /* (A17) spi0_sclk.spi0_sclk */
    			AM33XX_IOPAD(0x954, PIN_INPUT_PULLUP | MUX_MODE0) /* (B17) spi0_d0.spi0_d0 */
    			AM33XX_IOPAD(0x958, PIN_OUTPUT_PULLUP | MUX_MODE0) /* (B16) spi0_d1.spi0_d1 */
    			AM33XX_IOPAD(0x95c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* (A16) spi0_cs0.spi0_cs0 */
    		>;
    	};
    	lcd_pins_s0: lcd_pins_s0 {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x820, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad8.lcd_data23 */
    			AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad9.lcd_data22 */
    			AM33XX_IOPAD(0x828, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad10.lcd_data21 */
    			AM33XX_IOPAD(0x82c, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad11.lcd_data20 */
    			AM33XX_IOPAD(0x830, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad12.lcd_data19 */
    			AM33XX_IOPAD(0x834, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad13.lcd_data18 */
    			AM33XX_IOPAD(0x838, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad14.lcd_data17 */
    			AM33XX_IOPAD(0x83c, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad15.lcd_data16 */
    			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(0x8e0, PIN_OUTPUT | MUX_MODE0)		/* lcd_vsync.lcd_vsync */
    			AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE0)		/* lcd_hsync.lcd_hsync */
    			AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE0)		/* lcd_pclk.lcd_pclk */
    			AM33XX_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE0)		/* lcd_ac_bias_en.lcd_ac_bias_en */
    		>;
    	};
    
    	lcd_pins_sleep: lcd_pins_sleep {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x820, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad8.lcd_data23 */
    			AM33XX_IOPAD(0x824, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad9.lcd_data22 */
    			AM33XX_IOPAD(0x828, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad10.lcd_data21 */
    			AM33XX_IOPAD(0x82c, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad11.lcd_data20 */
    			AM33XX_IOPAD(0x830, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad12.lcd_data19 */
    			AM33XX_IOPAD(0x834, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad13.lcd_data18 */
    			AM33XX_IOPAD(0x838, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad14.lcd_data17 */
    			AM33XX_IOPAD(0x83c, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_ad15.lcd_data16 */
    			AM33XX_IOPAD(0x8a0, PULL_DISABLE | MUX_MODE7)	/* lcd_data0.lcd_data0 */
    			AM33XX_IOPAD(0x8a4, PULL_DISABLE | MUX_MODE7)	/* lcd_data1.lcd_data1 */
    			AM33XX_IOPAD(0x8a8, PULL_DISABLE | MUX_MODE7)	/* lcd_data2.lcd_data2 */
    			AM33XX_IOPAD(0x8ac, PULL_DISABLE | MUX_MODE7)	/* lcd_data3.lcd_data3 */
    			AM33XX_IOPAD(0x8b0, PULL_DISABLE | MUX_MODE7)	/* lcd_data4.lcd_data4 */
    			AM33XX_IOPAD(0x8b4, PULL_DISABLE | MUX_MODE7)	/* lcd_data5.lcd_data5 */
    			AM33XX_IOPAD(0x8b8, PULL_DISABLE | MUX_MODE7)	/* lcd_data6.lcd_data6 */
    			AM33XX_IOPAD(0x8bc, PULL_DISABLE | MUX_MODE7)	/* lcd_data7.lcd_data7 */
    			AM33XX_IOPAD(0x8c0, PULL_DISABLE | MUX_MODE7)	/* lcd_data8.lcd_data8 */
    			AM33XX_IOPAD(0x8c4, PULL_DISABLE | MUX_MODE7)	/* lcd_data9.lcd_data9 */
    			AM33XX_IOPAD(0x8c8, PULL_DISABLE | MUX_MODE7)	/* lcd_data10.lcd_data10 */
    			AM33XX_IOPAD(0x8cc, PULL_DISABLE | MUX_MODE7)	/* lcd_data11.lcd_data11 */
    			AM33XX_IOPAD(0x8d0, PULL_DISABLE | MUX_MODE7)	/* lcd_data12.lcd_data12 */
    			AM33XX_IOPAD(0x8d4, PULL_DISABLE | MUX_MODE7)	/* lcd_data13.lcd_data13 */
    			AM33XX_IOPAD(0x8d8, PULL_DISABLE | MUX_MODE7)	/* lcd_data14.lcd_data14 */
    			AM33XX_IOPAD(0x8dc, PULL_DISABLE | MUX_MODE7)	/* lcd_data15.lcd_data15 */
    			AM33XX_IOPAD(0x8e0, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_vsync.lcd_vsync */
    			AM33XX_IOPAD(0x8e4, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_hsync.lcd_hsync */
    			AM33XX_IOPAD(0x8e8, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_pclk.lcd_pclk */
    			AM33XX_IOPAD(0x8ec, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* lcd_ac_bias_en.lcd_ac_bias_en */
    		>;
    	};
    #if 1
    	ehrpwm1_pins: ehrpwm1_pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x848, PIN_OUTPUT | MUX_MODE6)     /* GPMC_A2.ehrpwm1a */			
    		>;
    	};
    #endif
    };
    #if 0
    &gpio2 { 
    	ti,no-reset-on-init;	
    	gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
    };
    
    
    &gpio2 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&gpio2_pins_default>;
    	gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
    	status = "okay";
    };
    #endif
    &gpio3 { 
    	ti,no-reset-on-init;	
    	gpios = <&gpio3 17 GPIO_ACTIVE_LOW>;
    };
    
    &uart0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart0_pins_default>;
    
    	status = "okay";
    };
    
    &uart1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart1_pins_default>;
    
    	status = "okay";
    };
    
    &uart2 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart2_pins_default>;
    
    	status = "okay";
    };
    
    &uart3 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart3_pins_default>;
    
    	status = "okay";
    };
    
    &uart5 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart5_pins_default>;
    
    	status = "okay";
    };
    
    &i2c0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c0_pins_default>;
    
    	status = "okay";
    	clock-frequency = <400000>;
    
    	tps: tps@2d {
    		reg = <0x2d>;
    	};
    };
    
    
    &usb {
    	status = "okay";
    };
    
    &usb_ctrl_mod {
    	status = "okay";
    };
    
    &usb0_phy {
    	status = "okay";
    };
    
    &usb1_phy {
    	status = "okay";
    };
    
    &usb0 {
    	status = "okay";
    };
    
    &usb1 {
    	status = "okay";
    	dr_mode = "host";
    };
    
    &cppi41dma  {
    	status = "okay";
    };
    
    &elm {
    	status = "okay";
    };
    
    #if 1
    &epwmss2 {
    	status = "okay";
    
    	ecap2: ecap@48304100 {
    		status = "okay";
    		pinctrl-names = "default";
    		pinctrl-0 = <&ecap2_pins>;
    	};
    };
    #endif
    &gpmc {
    		status = "okay";
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&nandflash_pins_default>;
    	pinctrl-1 = <&nandflash_pins_sleep>;
    	ranges = <0 0 0x08000000 0x20000000>;	/* CS0: NAND */
    	/* ranges = <0 0 0x08000000 0x80000000>;	+++ Seamus,NAND,20190318 ---*/
    	nand@0,0 {
    		compatible = "ti,omap2-nand";
    		reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
    		interrupt-parent = <&gpmc>;
    		interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
                        <1 IRQ_TYPE_NONE>;	/* termcount */
    		rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */
    		ti,nand-ecc-opt = "bch8";
    		ti,elm-id = <&elm>;
    		nand-bus-width = <8>;
    		gpmc,device-width = <1>;
    		gpmc,sync-clk-ps = <0>;
    		gpmc,cs-on-ns = <0>;
    		gpmc,cs-rd-off-ns = <44>;
    		gpmc,cs-wr-off-ns = <44>;
    		gpmc,adv-on-ns = <6>;
    		gpmc,adv-rd-off-ns = <34>;
    		gpmc,adv-wr-off-ns = <44>;
    		gpmc,we-on-ns = <0>;
    		gpmc,we-off-ns = <40>;
    		gpmc,oe-on-ns = <0>;
    		gpmc,oe-off-ns = <54>;
    		gpmc,access-ns = <64>;
    		gpmc,rd-cycle-ns = <82>;
    		gpmc,wr-cycle-ns = <82>;
    		gpmc,wait-on-read = "true";
    		gpmc,wait-on-write = "true";
    		gpmc,bus-turnaround-ns = <0>;
    		gpmc,cycle2cycle-delay-ns = <0>;
    		gpmc,clk-activation-ns = <0>;
    		gpmc,wait-monitoring-ns = <0>;
    		gpmc,wr-access-ns = <40>;
    		gpmc,wr-data-mux-bus-ns = <0>;
    		/* MTD partition table */
    		/* All SPL-* partitions are sized to minimal length
    		 * which can be independently programmable. For
    		 * NAND flash this is equal to size of erase-block */
    		#address-cells = <1>;
    		#size-cells = <1>;
    		partition@0 {
    			label = "NAND.SPL";
    			reg = <0x00000000 0x00080000>;    /* 512KB */
    		};
    		partition@1 {
    			label = "NAND.SPL.backup1";
    			reg = <0x00080000 0x00080000>;    /* 512KB */
    		};
    		partition@2 {
    			label = "NAND.SPL.backup2";
    			reg = <0x00100000 0x00080000>;    /* 512KB */
    		};
    		partition@3 {
    			label = "NAND.SPL.backup3";
    			reg = <0x00180000 0x00080000>;    /* 512KB */
    		};
    		partition@4 {
    			label = "NAND.kernel-fdt";
    			reg = <0x00200000 0x00080000>;    /* 512KB */
    		};
    		partition@5 {
    			label = "NAND.u-boot";
    			reg = <0x00280000 0x00100000>;    /* 1MB */
    		};
    		partition@6 {
    			label = "NAND.u-boot-env";        /* 512KB */
    			reg = <0x00380000 0x00080000>;
    		};
    		partition@7 {
    			label = "Primary kernel";
    			reg = <0x00400000 0x00A00000>;
    		};
    		partition@8 {
    			label = "Secondary kernel";
    			reg = <0x00E00000 0x00A00000>;
    		};
    		partition@9 {
    			label = "Primary rootfs";
    			reg = <0x01800000 0x01800000>;
    		};
    		partition@10 {
    			label = "Secondary rootfs";
    			reg = <0x03000000 0x01800000>;
    		};
    		partition@11 {
    			label = "Primary user configuration";
    			reg = <0x04800000 0x00600000>;
    		};
    		partition@12 {
    			label = "Secondary user configuration";
    			reg = <0x04E00000 0x00600000>;
    		};
    		partition@13 {
    			label = "Factory default configuration";
    			reg = <0x05400000 0x00600000>;
    		};
    		partition@14 {
    			label = "Storage";
    			reg = <0x05A00000 0x7A600000>;
    		};
    	};
    };
    
    
    #include "tps65910.dtsi"
    #if 0
    &mcasp1 {
    	#sound-dai-cells = <0>;
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&mcasp1_pins>;
    	pinctrl-1 = <&mcasp1_pins_sleep>;
    
    	status = "okay";
    
    	op-mode = <0>;          /* MCASP_IIS_MODE */
    	tdm-slots = <2>;
    	/* 4 serializers */
    	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
    		0 0 1 2
    	>;
    	tx-num-evt = <32>;
    	rx-num-evt = <32>;
    };
    #endif
    
    &tps {
    	vcc1-supply = <&vbat>;
    	vcc2-supply = <&vbat>;
    	vcc3-supply = <&vbat>;
    	vcc4-supply = <&vbat>;
    	vcc5-supply = <&vbat>;
    	vcc6-supply = <&vbat>;
    	vcc7-supply = <&vbat>;
    	vccio-supply = <&vbat>;
    
    	regulators {
    		vrtc_reg: regulator@0 {
    			regulator-always-on;
    		};
    
    		vio_reg: regulator@1 {
    			regulator-always-on;
    		};
    
    		vdd1_reg: regulator@2 {
    			/* VDD_MPU voltage limits 0.95V - 1.325V with +/-4% tolerance */
    			regulator-name = "vdd_mpu";
    			regulator-min-microvolt = <912500>;
    			regulator-max-microvolt = <1378000>;
    			regulator-boot-on;
    			regulator-always-on;
    		};
    
    		vdd2_reg: regulator@3 {
    			/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
    			regulator-name = "vdd_core";
    			regulator-min-microvolt = <912500>;
    			regulator-max-microvolt = <1150000>;
    			regulator-boot-on;
    			regulator-always-on;
    		};
    
    		vdd3_reg: regulator@4 {
    			regulator-always-on;
    		};
    
    		vdig1_reg: regulator@5 {
    			regulator-always-on;
    		};
    
    		vdig2_reg: regulator@6 {
    			regulator-always-on;
    		};
    
    		vpll_reg: regulator@7 {
    			regulator-always-on;
    		};
    
    		vdac_reg: regulator@8 {
    			regulator-always-on;
    		};
    
    		vaux1_reg: regulator@9 {
    			regulator-always-on;
    		};
    
    		vaux2_reg: regulator@10 {
    			regulator-always-on;
    		};
    
    		vaux33_reg: regulator@11 {
    			regulator-always-on;
    		};
    
    		vmmc_reg: regulator@12 {
    			regulator-min-microvolt = <1800000>;
    			regulator-max-microvolt = <3300000>;
    			regulator-always-on;
    		};
    	};
    };
    
    &mac {
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&cpsw_default>;
    	pinctrl-1 = <&cpsw_sleep>;
    	status = "okay";
    };
    
    &davinci_mdio {
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&davinci_mdio_default>;
    	pinctrl-1 = <&davinci_mdio_sleep>;
    	status = "okay";
    };
    
    &cpsw_emac0 {
     	phy-mode = "rmii";
    	fixed-link {
    		speed = <100>;
    		full-duplex;	
    	};
    };
    
    &phy_sel {
            rmii-clock-ext = <1>;
    };
    
    &tscadc {
    	status = "okay";
    
    	adc {
    		ti,adc-channels = <0>;
    		ti,chan-step-opendelay = <0x0>;
    		ti,chan-step-sampledelay = <0x1>;
    		ti,chan-step-avg = <0>;
    	};
    };
    
    /* Miscro SD */
    &mmc1 {
    	status = "okay";
    	vmmc-supply = <&vmmc_reg>;
    	bus-width = <4>;
    	pinctrl-names = "default";
    	pinctrl-0 = <&mmc1_pins>;
    	cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
    };
    
    &sham {
    	status = "okay";
    };
    
    &aes {
    	status = "okay";
    };
    
    &wkup_m3_ipc {
    	ti,scale-data-fw = "am335x-evm-scale-data.bin";
    };
    
    &dcan0 {
    	status = "okay";	
    	pinctrl-names = "default";
    	pinctrl-0 = <&dcan0_pins_default>;
    };
    
    &dcan1 {
    	status = "okay";	
    	pinctrl-names = "default";
    	pinctrl-0 = <&dcan1_pins_default>;
    };
    
    #if 1
    &epwmss1 {
            status = "okay";
    };
    
    &ehrpwm1 {
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&ehrpwm1_pins>;
    };
    #endif
    /*
    The QCA7000 acts as a SPI slave and uses Mode 3: CPOL=1, CPHA=1.
    SPI data width is 8 bit. The SPI CLK period should not be less than 83.3 ns
    The SPI should be used in burst mode, meaning that the chip select is held low during a complete SPI message.
     Note: The SPI lines between Host CPU and QCA7000 should be kept as short as possible.
    
    */
    #if 0
    /* Green PHY (QCA7000) */
    &spi0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&spi0_pins_default>;
    
    	qca7000: ethernet@0 {
    		reg = <0x0>;
    		compatible = "qca,qca7000";
    		interrupt-parent = <&gpio0>;
    		interrupts = <19 IRQ_TYPE_EDGE_RISING>;
    		spi-cpha;
    		spi-cpol;
    		spi-max-frequency = <10000000>;
    		status = "okay";
    	};
    };
    #endif
    
    &lcdc {
    	status = "okay";
    	
    	blue-and-red-wiring = "crossed";
    };
    
    #if 0
    &rtc {
    	clocks = <&clk_32768_ck>, <&clkdiv32k_ick>;
    	clock-names = "ext-clk", "int-clk";
    };
    
    
    &pruss_soc_bus {
    	status = "okay";
    
    	pruss: pruss@0 {
    		status = "okay";
    	};
    };
    
    &sgx {
    	status = "okay";
    };
    #endif
    

    root@am335x-evm:~# modetest
    trying to open device 'i915'...failed
    trying to open device 'amdgpu'...failed
    trying to open device 'radeon'...failed
    trying to open device 'nouveau'...failed
    trying to open device 'vmwgfx'...failed
    trying to open device 'omapdrm'...failed
    trying to open device 'exynos'...failed
    trying to open device 'tilcdc'...done
    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)
      800x480 66 800 856 868 872 480 496 499 520 30000 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)   (800x480)
      800x480 66 800 856 868 872 480 496 499 520 30000 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: BG16 RG24 XR24
      props:
            5 type:
                    flags: immutable enum
                    enums: Overlay=0 Primary=1 Cursor=2
                    value: 1
    
    Frame buffers:
    id      size    pitch
    
    root@am335x-evm:~#
    root@am335x-evm:~# kmstest
    kmstest         kmstest.kms++   kmstest.libdrm
    root@am335x-evm:~# kmstest
    Connector 0/@26: LVDS-1
      Crtc 0/@24 (plane 0/@23): 800x480 30.000 800/56/12/4 480/16/3/21 66 (66.16) 0xa 0x48
        Fb 30 800x480-XR24
    press enter to exit
    
    root@am335x-evm:~#

    Thanks

  • Hi,

    Any idea about the fail "Failed to create display"? Or are there any testing can changing screen continuously? 

    Thanks

  • Hi Jason,

    If you disable Weston (/etc/init.d/weston stop), are you able to run the kmscube application? Also, are you using the default TI filesystem or have you made any changes? As an experiment, could you please try running the application as the following "./textures --platform eglfs".

    Regards,
    Krunal

  • Hi,

    1. the log is shown below, after run kmscube

    root@am335x-evm:/usr/share/qt5/examples/opengl/textures# /etc/init.d/weston stop
    Stopping Weston
    root@am335x-evm:/usr/share/qt5/examples/opengl/textures# ./textures
    Failed to create display (No such file or directory)
    root@am335x-evm:/usr/share/qt5/examples/opengl/textures# ./textures --platform eglfs
    PVR:(Error): OpenServices: PVRDRMOpenRender failed [0, ]
    PVR:(Error): PVRSRVConnect: Unable to open connection. [0, ]
    PVR:(Error): Couldn't connect to services [0, ]
    Could not initialize egl display
    Aborted (core dumped)
    root@am335x-evm:/usr/share/qt5/examples/opengl/textures# kmscube
    trying to load module omapdrm...failed.
    trying to load module tilcdc...success.
    ### Display [0]: CRTC = 28, Connector = 30, format = 0x34325258
    Mode chosen [800x480] : Clock => 30000, Vertical refresh => 66, Type => 72
    Horizontal => 800, 856, 868, 872, 0
    Vertical => 480, 496, 499, 520, 0
    ### Primary display => ConnectorId = 30, Resolution = 800x480
    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
    PVR:(Error): OpenServices: PVRDRMOpenRender failed [0, ]
    PVR:(Error): PVRSRVConnect: Unable to open connection. [0, ]
    PVR:(Error): Couldn't connect to services [0, ]
    failed to initialize
    failed to initialize EGL

    2. We use the default TI filesystem

    https://software-dl.ti.com/processor-sdk-linux/esd/AM335X/05_03_00_07/index_FDS.html

    Thanks

  • Hi Jason,

    Based on the above error messages, the GPU is not getting initialized and that is why the opengl tests are failing. I know you are using the default TI file system but have you modified any of the DT files or the GPU driver. Also, if you just planning on testing the LCD, feel free to run the test "kmstest --flip". 

    Regards,
    Krunal

  • OK. It's very helpful.

    Thanks