TI中文支持网
TI专业的中文技术问题搜集分享网站

AM335X如何保持uboot logo一直显示到kernel启动?

Other Parts Discussed in Thread:TPS65217

使用AM335X板子,移植uboot lcd驱动后,目前开机uboot阶段正常显示我的logo,由于我的kernel和uboot使用的是同一张图片,到了kernel启动时,现象就是这个logo会闪一下,像是被重置了一下,请问这是什么导致的?该如何解决?

Shine:

请参考下面的帖子。
e2e.ti.com/…/displaying-u-boot-logo-splash-in-kernel

,

liqf sky:

这个我看了,但是最终还是没有解决..

,

Shine:

请问您是怎么配置的?log信息是怎么样的?

,

liqf sky:

uboot logo阶段:根据StarterWare里面的lcd驱动进行移植,然后显示正常

kernel logo阶段:修改drivers/video/logo/logo_linux_clut224.ppm,重新编译,烧录,显示正常

注:我的uboot和kernel两个阶段显示同一张图

所以问题来了:每次在Starting kernel …的时候会闪一下,像是重置了某个地方?

完整log如下:

U-Boot SPL 2013.01.01 (Mar 10 2021 – 16:51:52)U-Boot 2013.01.01 (Mar 10 2021 – 16:51:52)I2C:   readyDRAM:  512 MiBWARNING: Caches not enabledConfigurou interrupcaoConfigurou LCDNAND:  1024 MiBMMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1*** Warning – bad CRC, using default environmentNet:   <ethaddr> not set. Validating first E-fuse MACcpsw:0 is connected to cpsw.  Reconnecting to cpswcpswHit any key to Login Boot:  0 Booting from nand …NAND read: device 0 offset 0x480000, size 0x500000 5242880 bytes read: OK## Booting kernel from Legacy Image at 80200000 …   Image Name:   Linux-3.2.0   Image Type:   ARM Linux Kernel Image (uncompressed)   Data Size:    3861968 Bytes = 3.7 MiB   Load Address: 80008000   Entry Point:  80008000   Loading Kernel Image … OKOKStarting kernel …Message Booting System —-[    0.000000] Linux version 3.2.0 (haitianxiong@ubuntu) (gcc version 4.9.3 20150413 (prerelease) (Linaro GCC 4.9-2015.05) ) #89 Thu Mar 11 09:34:30 CST 2021[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache[    0.000000] Machine: am335xevm[    0.000000] Memory policy: ECC disabled, Data cache writeback[    0.000000] AM335X ES2.1 (sgx neon )[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048[    0.000000] Kernel command line: console=ttyO0,115200n8 root=ubi0:rootfs rw ubi.mtd=7,4096 rootfstype=ubifs rootwait=1 screentype=R screensize=800×480-7 ethaddr=b0:7e:11:c0:bf:85 ethaddr1=b0:7e:11:c0:7[    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: 512MB = 512MB total[    0.000000] Memory: 511168k/511168k available, 13120k reserved, 0K highmem[    0.000000] Virtual kernel memory layout:[    0.000000]     vector  : 0xffff0000 – 0xffff1000   (   4 kB)[    0.000000]     fixmap  : 0xfff00000 – 0xfffe0000   ( 896 kB)[    0.000000]     vmalloc : 0xe0800000 – 0xff000000   ( 488 MB)[    0.000000]     lowmem  : 0xc0000000 – 0xe0000000   ( 512 MB)[    0.000000]     modules : 0xbf000000 – 0xc0000000   (  16 MB)[    0.000000]       .text : 0xc0008000 – 0xc0704000   (7152 kB)[    0.000000]       .init : 0xc0704000 – 0xc079b000   ( 604 kB)[    0.000000]       .data : 0xc079c000 – 0xc0827cc0   ( 560 kB)[    0.000000]        .bss : 0xc0827ce4 – 0xc08611a8   ( 230 kB)[    0.000000] NR_IRQS:396[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts[    0.000000] Total of 128 interrupts on 1 active controller[    0.000000] OMAP clockevent source: GPTIMER2 at 24000000 Hz[    0.000000] omap_dm_timer_switch_src: Switching to HW default clocksource(sys_clkin_ck) for timer1, this may impact timekeeping in low power state[    0.000000] OMAP clocksource: GPTIMER1 at 24000000 Hz[    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms[    0.000000] Console: colour dummy device 80×30[    0.000171] Calibrating delay loop… 996.14 BogoMIPS (lpj=4980736)[    0.087758] pid_max: default: 32768 minimum: 301[    0.087853] Security Framework initialized[    0.087939] Mount-cache hash table entries: 512[    0.088272] CPU: Testing write buffer coherency: ok[    0.088918] devtmpfs: initialized[    0.107588] omap_hwmod: pruss: failed to hardreset[    0.108541] print_constraints: dummy: [    0.108840] NET: Registered protocol family 16[    0.110547] OMAP GPIO hardware version 0.1[    0.112538] omap_mux_init: Add partition: #1: core, flags: 0[    0.113965]  omap_i2c.1: alias fck already exists[    0.114778]  omap_hsmmc.0: alias fck already exists[    0.115144]  da8xx_lcdc.0: alias fck already exists[    0.115359]  omap_i2c.2: alias fck already exists[    0.116355]  d_can.0: alias fck already exists[    0.117290]  omap2_mcspi.1: alias fck already exists[    0.117455]  omap2_mcspi.2: alias fck already exists[    0.117654]  edma.0: alias fck already exists[    0.117670]  edma.0: alias fck already exists[    0.117685]  edma.0: alias fck already exists[    0.146174] bio: create slab <bio-0> at 0[    0.148087] SCSI subsystem initialized[    0.149659] usbcore: registered new interface driver usbfs[    0.149907] usbcore: registered new interface driver hub[    0.150067] usbcore: registered new device driver usb[    0.150328] registerd cppi-dma Intr @ IRQ 17[    0.150339] Cppi41 Init Done Qmgr-base(e087a000) dma-base(e0878000)[    0.150346] Cppi41 Init Done[    0.150368] musb-ti81xx musb-ti81xx: musb0, board_mode=0x11, plat_mode=0x1[    0.150596] musb-ti81xx musb-ti81xx: musb1, board_mode=0x11, plat_mode=0x1[    0.151473] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz[    0.153066] tps65217 1-0024: TPS65217 ID 0xe version 1.2[    0.154938] print_constraints: DCDC1: 900 <–> 1800 mV at 1500 mV [    0.156813] print_constraints: DCDC2: 900 <–> 3300 mV at 1325 mV [    0.158652] print_constraints: DCDC3: 900 <–> 1500 mV at 1125 mV [    0.160499] print_constraints: LDO1: 1000 <–> 3300 mV at 1800 mV [    0.162347] print_constraints: LDO2: 900 <–> 3300 mV at 3300 mV [    0.164195] print_constraints: LDO3: 1800 <–> 3300 mV at 1800 mV [    0.166039] print_constraints: LDO4: 1800 <–> 3300 mV at 3300 mV [    0.177771] omap_i2c omap_i2c.2: bus 2 rev2.4.0 at 100 kHz[    0.179794] Bluetooth: Core ver 2.16[    0.179951] NET: Registered protocol family 31[    0.179961] Bluetooth: HCI device and connection manager initialized[    0.179975] Bluetooth: HCI socket layer initialized[    0.179983] Bluetooth: L2CAP socket layer initialized[    0.180005] Bluetooth: SCO socket layer initialized[    0.180482] cfg80211: Calling CRDA to update world regulatory domain[    0.180597] Switching to clocksource gp timer[    0.194203] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)[    0.194380] musb-hdrc musb-hdrc.0: dma type: dma-cppi41[    0.194644] MUSB0 controller's USBSS revision = 4ea20800[    0.194673] musb0: Enabled SW babble control[    0.195080] musb-hdrc musb-hdrc.0: MUSB HDRC host driver[    0.195161] musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 1[    0.195287] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002[    0.195300] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1[    0.195310] usb usb1: Product: MUSB HDRC host driver[    0.195318] usb usb1: Manufacturer: Linux 3.2.0 musb-hcd[    0.195326] usb usb1: SerialNumber: musb-hdrc.0[    0.196059] hub 1-0:1.0: USB hub found[    0.196087] hub 1-0:1.0: 1 port detected[    0.196572] musb-hdrc musb-hdrc.0: USB Host mode controller at e083e000 using DMA, IRQ 18[    0.196730] musb-hdrc musb-hdrc.1: dma type: dma-cppi41[    0.196978] MUSB1 controller's USBSS revision = 4ea20800[    0.197004] musb1: Enabled SW babble control[    0.197386] musb-hdrc musb-hdrc.1: MUSB HDRC host driver[    0.197425] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 2[    0.197508] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002[    0.197519] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1[    0.197528] usb usb2: Product: MUSB HDRC host driver[    0.197536] usb usb2: Manufacturer: Linux 3.2.0 musb-hcd[    0.197544] usb usb2: SerialNumber: musb-hdrc.1[    0.198214] hub 2-0:1.0: USB hub found[    0.198237] hub 2-0:1.0: 1 port detected[    0.198693] musb-hdrc musb-hdrc.1: USB Host mode controller at e084a800 using DMA, IRQ 19[    0.199198] NET: Registered protocol family 2[    0.199373] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)[    0.199685] TCP established hash table entries: 16384 (order: 5, 131072 bytes)[    0.199902] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)[    0.200028] TCP: Hash tables configured (established 16384 bind 16384)[    0.200038] TCP reno registered[    0.200047] UDP hash table entries: 256 (order: 0, 4096 bytes)[    0.200074] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)[    0.200229] NET: Registered protocol family 1[    0.200454] RPC: Registered named UNIX socket transport module.[    0.200468] RPC: Registered udp transport module.[    0.200475] RPC: Registered tcp transport module.[    0.200481] RPC: Registered tcp NFSv4.1 backchannel transport module.[    0.200731] NetWinder Floating Point Emulator V0.97 (double precision)[    0.200941] omap-gpmc omap-gpmc: GPMC revision 6.0[    0.219356] VFS: Disk quotas dquot_6.5.2[    0.219416] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)[    0.219886] msgmni has been set to 998[    0.222528] alg: No test for stdrng (krng)[    0.222589] io scheduler noop registered[    0.222598] io scheduler deadline registered[    0.222685] io scheduler cfq registered (default)[    0.223976] da8xx_lcdc da8xx_lcdc.0: GLCD: Found NHD-7.0-ATXI#-T-1 panel[    0.237648] Console: switching to colour frame buffer device 100×30[    0.338333] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0[    1.107667] console [ttyO0] enabled[    1.112066] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1[    1.119886] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2[    1.127684] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3[    1.135472] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4[    1.143240] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5[    1.158638] brd: module loaded[    1.166069] loop: module loaded[    1.169908] at24 1-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write[    1.179163] mtdoops: mtd device (mtddev=name/number) must be supplied[    1.186435] omap2-nand driver initializing[    1.190810] info->phys_base 8000000[    1.194509] ONFI flash detected[    1.197902] ONFI param page 0 valid[    1.201570] NAND device: Manufacturer ID: 0x2c, Chip ID: 0x38 (Micron MT29F8G08ABABAWP)[    1.209937] omap2-nand: detected x8 NAND flash [    1.214677] Page size 4096 Select ECC BCH16[    1.219046] Nand ECC BCH16 HW[    1.222400] Creating 8 MTD partitions on "omap2-nand.0":[    1.227967] 0x000000000000-0x000000080000 : "SPL"[    1.234149] 0x000000080000-0x000000100000 : "SPL.backup1"[    1.240939] 0x000000100000-0x000000180000 : "SPL.backup2"[    1.247637] 0x000000180000-0x000000200000 : "SPL.backup3"[    1.254404] 0x000000200000-0x000000400000 : "U-Boot"[    1.260828] 0x000000400000-0x000000480000 : "U-Boot Env"[    1.267522] 0x000000480000-0x000000980000 : "Kernel"[    1.274060] 0x000000980000-0x000040000000 : "File System"[    1.332862] UBI: attaching mtd7 to ubi0[    1.336883] UBI: physical eraseblock size:   524288 bytes (512 KiB)[    1.343462] UBI: logical eraseblock size:    516096 bytes[    1.349106] UBI: smallest flash I/O unit:    4096[    1.354024] UBI: sub-page size:              1024[    1.358940] UBI: VID header offset:          4096 (aligned 4096)[    1.365221] UBI: data offset:                8192[    1.451778] usb 2-1: new high-speed USB device number 2 using musb-hdrc[    1.624045] usb 2-1: New USB device found, idVendor=0424, idProduct=2514[    1.631067] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0[    1.663001] hub 2-1:1.0: USB hub found[    1.666987] hub 2-1:1.0: 4 ports detected[    2.005123] usb 2-1.4: new high-speed USB device number 3 using musb-hdrc[    2.175167] usb 2-1.4: New USB device found, idVendor=0bda, idProduct=b720[    2.182369] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3[    2.190011] usb 2-1.4: Product: 802.11n WLAN Adapter[    2.195204] usb 2-1.4: Manufacturer: Realtek[    2.199663] usb 2-1.4: SerialNumber: 00e04c000001[    6.754576] UBI: max. sequence number:       14[    6.778396] UBI: attached mtd7 to ubi0[    6.782372] UBI: MTD device name:            "File System"[    6.788108] UBI: MTD device size:            1014 MiB[    6.793392] UBI: number of good PEBs:        2029[    6.798303] UBI: number of bad PEBs:         0[    6.802950] UBI: number of corrupted PEBs:   0[    6.807590] UBI: max. allowed volumes:       128[    6.812419] UBI: wear-leveling threshold:    4096[    6.817330] UBI: number of internal volumes: 1[    6.821975] UBI: number of user volumes:     1[    6.826616] UBI: available PEBs:             0[    6.831260] UBI: total number of reserved PEBs: 2029[    6.836447] UBI: number of PEBs reserved for bad PEB handling: 20[    6.842818] UBI: max/mean erase counter: 2/0[    6.847276] UBI: image sequence number:  501158088[    6.852360] UBI: background thread "ubi_bgt0d" started, PID 1158[    6.859621] tun: Universal TUN/TAP device driver, 1.6[    6.864926] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>[    6.871633] CAN device driver interface[    6.875639] CAN bus driver for Bosch D_CAN controller 1.0[    6.882052] d_can d_can.0: device registered (irq=52, irq_obj=53)[    6.930632] davinci_mdio davinci_mdio.0: davinci mdio revision 1.6[    6.937100] davinci_mdio davinci_mdio.0: detected phy mask fffffffe[    6.944480] davinci_mdio.0: probed[    6.948037] davinci_mdio davinci_mdio.0: phy[0]: device 0:00, driver unknown[    6.955558] RTL871X: module init start[    6.959474] RTL871X: rtl8723bu v4.3.9.3_13200.20150106_BTCOEX20140929-5443[    6.966673] RTL871X: build time: Mar  1 2021 10:28:32[    6.971956] RTL871X: rtl8723bu BT-Coex version = BTCOEX20140929-5443[    7.031951] RTL871X: rtw_ndev_init(wlan0)[    7.036997] RTL871X: rtw_ndev_init(wlan1)[    7.042299] usbcore: registered new interface driver rtl8723bu[    7.048403] RTL871X: module init ret=0[    7.052548] GobiNet: Quectel_Linux_GobiNet_SR01A02V16[    7.057988] usbcore: registered new interface driver GobiNet[    7.064156] usbcore: registered new interface driver cdc_acm[    7.070070] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters[    7.078606] usbcore: registered new interface driver usblp[    7.084352] Initializing USB Mass Storage driver…[    7.089686] usbcore: registered new interface driver usb-storage[    7.095975] USB Mass Storage support registered.[    7.101094] usbcore: registered new interface driver usbserial[    7.107303] USB Serial support registered for generic[    7.112808] usbcore: registered new interface driver usbserial_generic[    7.119631] usbserial: USB Serial Driver core[    7.124313] USB Serial support registered for GSM modem (1-port)[    7.130941] usbcore: registered new interface driver option[    7.136770] option: v0.7.2:USB Driver for GSM modems[    7.142073] USB Serial support registered for pl2303[    7.147409] usbcore: registered new interface driver pl2303[    7.153248] pl2303: Prolific PL2303 USB to serial adaptor driver[    7.159628] USB Serial support registered for Vizzini USB serial port[    7.166486] usbcore: registered new interface driver vizzini[    7.172414] USB Driver for Vizzini USB serial port: v.1.1[    7.178572] mousedev: PS/2 mouse device common for all mice[    7.184816] [wds tsc probe]x.min=140,x.max=3946,y.min=319,y.max=3865,x.inverted=0,y.inverted=1[    7.194173] input: ti-tsc as /devices/platform/omap/ti_tscadc/tsc/input/input0[    7.204298] rtc-rx8010 2-0032: Frequency stop was detected, probably due to a supply voltage drop[    7.213601] rtc-rx8010 2-0032: Update timer was detected[    7.219778] rtc-rx8010 2-0032: bad conditions detected, resetting date[    7.232479] rtc-rx8010 2-0032: rtc core: registered rx8010 as rtc0[    7.238942] rtc-rx8010 2-0032: IRQ 31 supplied[    7.243858] i2c /dev entries driver[    7.248080] Linux video capture interface: v2.00[    7.253220] usbcore: registered new interface driver uvcvideo[    7.259226] USB Video Class driver (1.1.1)[    7.263744] lm75: probe of 2-0048 failed with error -121[    7.501521] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec[    7.509057] cpuidle: using governor ladder[    7.513750] cpuidle: using governor menu[    7.522963] usbcore: registered new interface driver usbhid[    7.528805] usbhid: USB HID core driver[    7.533395] tiadc tiadc: attached adc driver[    7.537963] oprofile: hardware counters not available[    7.543269] oprofile: using timer interrupt.[    7.547891] nf_conntrack version 0.5.0 (7987 buckets, 31948 max)[    7.554632] ip_tables: (C) 2000-2006 Netfilter Core Team[    7.560287] TCP cubic registered[    7.563782] NET: Registered protocol family 10[    7.569181] ip6_tables: (C) 2000-2006 Netfilter Core Team[    7.574952] IPv6 over IPv4 tunneling driver[    7.580143] NET: Registered protocol family 17[    7.584873] can: controller area network core (rev 20090105 abi 8)[    7.591492] NET: Registered protocol family 29[    7.596159] can: raw protocol (rev 20090105)[    7.600636] can: broadcast manager protocol (rev 20090105 t)[    7.606682] Bluetooth: RFCOMM TTY layer initialized[    7.611807] Bluetooth: RFCOMM socket layer initialized[    7.617176] Bluetooth: RFCOMM ver 1.11[    7.621099] Bluetooth: BNEP (Ethernet Emulation) ver 1.3[    7.626650] Bluetooth: BNEP filters: protocol multicast[    7.632116] Bluetooth: HIDP (Human Interface Emulation) ver 1.2[    7.638655] Registering the dns_resolver key type[    7.643660] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3[    7.651690] ThumbEE CPU extension supported.[    7.656211] mux: Failed to setup hwmod io irq -22[    7.661760] Power Management for AM33XX family[    7.666617] Trying to load am335x-pm-firmware.bin (60 secs timeout)[    7.673323] Copied the M3 firmware to UMEM[    7.677674] Cortex M3 Firmware Version = 0x181[    7.686820] clock: disabling unused clocks to save power[    7.694270] U-Boot MACID=b0:7e:11:c0:bf:85[    7.699742] cpsw: U-Boot MACID = b0:7e:11:c0:bf:87[    7.707034] rtc-rx8010 2-0032: setting system clock to 1970-01-01 00:00:00 UTC (0)[    8.049633] UBIFS: recovery needed[    8.832233] UBIFS: recovery completed[    8.836087] UBIFS: mounted UBI device 0, volume 0, name "rootfs"[    8.842383] UBIFS: file system size:   975421440 bytes (952560 KiB, 930 MiB, 1890 LEBs)[    8.850758] UBIFS: journal size:       10452992 bytes (10208 KiB, 9 MiB, 21 LEBs)[    8.858579] UBIFS: media format:       w4/r0 (latest is w4/r0)[    8.864681] UBIFS: default compressor: lzo[    8.868957] UBIFS: reserved for root:  0 bytes (0 KiB)[    8.877083] VFS: Mounted root (ubifs filesystem) on device 0:14.[    8.887373] devtmpfs: mounted[    8.891303] Freeing init memory: 604KINIT: version 2.88 bootingStarting udev[   10.534151] udevd[1294]: starting version 182[   11.746975] usbcore: registered new interface driver rtk_btusb[   11.753192] rtk_btusb: btusb_open hdev->promisc ==0[   11.863547] rtk_btcoex: Open BTCOEX[   11.867291] rtk_btcoex: create_udpsocket: sock bind error, err = -99[   14.209171] rtk_btcoex: Close BTCOEXTue Nov  1 10:00:31 UTC 2016INIT: Entering runlevel: 5starting powervr…[   15.956863] Disabling lock debugging due to kernel taintdone.root@DJ-335X:~# root@DJ-335X:~#

,

liqf sky:

8015.IMG_9324.MP4

,

Shine:

这个闪烁可能是kernel起来的时候,LCD display driver和frame-buffer会重新被初始化, 请查看tilcdc_drv.c里的和lcd init相关的代码注释掉,如lcd clocking, resetting。我们没有做过这方面的测试,请尝试根据下面的帖子修改代码。
e2e.ti.com/…/linux-am3352-maintaining-splash-screen-through-kernel-boot

,

liqf sky:

该问题已经解决!具体修改其实很简单:
修改linux-3.2/arch/arm/mach-omap2/omap_hwmod_33xx_data.c,找到am33xx_l3_main_hwmod和am33xx_lcdc_hwmod,把其中.flag参数都改为:HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET
然后重新编译烧录,这样就不会闪了……

,

Shine:

感谢分享!

赞(0)
未经允许不得转载:TI中文支持网 » AM335X如何保持uboot logo一直显示到kernel启动?
分享到: 更多 (0)