Hi, all!
I'm new to the forum and, keeping with the long time tradition, my first message is asking for help and guidance :D
I'm developing my own board based on the Allwinner V3S SOC. For most
of the hardware I've followed the schematic for the Lichee Pi Zero.
After struggling with the power supply, I finally (believe) that I got
the timings right and the voltages stable.
Now I'm trying to understand the U-Boot boot process to see why I'm stuck on getting the board booting.
Long story short: U-Boots stops after it outputs the DRAM amount.
The first thing I did was trying to check the stability of the CPU. For
that, I've injected a code right before the "Trying to boot from"
message, with an infinite loop, doing arithmetical calculations and
outputting to UART. I left this code running overnight and it kept
running fine. Alright, so I assume my CPU is stable... so moving
forward...
Any U-Boot code wizards out there that could give me a hand on
identifying exactly where it is stuck, so I could give me a clue if it's
hardware or firmware related?
Bellow is my latest log.
- It has verbose 9 level enable everywhere plus CONFIG_TRACE enabled.
- The [number] before the "DRAM" lines was injected by me to try locating the code line that was outputting it.
- the message "board_init_f finished" I inserted at the last line of the board_init_f function.
Thanks a bunch!
--------------------------------
U-Boot SPL 2024.04-rc4 (Mar 22 2024 - 18:31:19 -0300)
[5]DRAM: 64 MiB
size=18, ptr=18, limit=100000: 4fd00000
Trying to boot from MMC1
common/malloc_simple.c:27-alloc_simple() size=190, ptr=1a8, limit=100000: common/malloc_simple.c:48-malloc_simple() 4fd00018
drivers/mmc/mmc.c:196-mmc_select_mode() selecting mode MMC legacy (freq : 0 MHz)
drivers/mmc/mmc.c:196-mmc_select_mode() selecting mode MMC legacy (freq : 25 MHz)
drivers/mmc/mmc.c:1821-sd_select_mode_and_width() trying mode SD High Speed (50MHz) width 4 (at 50 MHz)
drivers/mmc/mmc.c:196-mmc_select_mode() selecting mode MMC legacy (freq : 25 MHz)
drivers/mmc/mmc.c:1821-sd_select_mode_and_width() trying mode SD High Speed (50MHz) width 1 (at 50 MHz)
drivers/mmc/mmc.c:196-mmc_select_mode() selecting mode SD High Speed (50MHz) (freq : 50 MHz)
ers/core/lists.c:201- lists_bind_fdt() bind node leds
drivers/core/lists.c:222- lists_bind_fdt() - attempt to match compatible string 'gpio-leds'
drivers/core/lists.c:273- lists_bind_fdt() No match for node 'leds'
drivers/core/lists.c:201- lists_bind_fdt() bind node binman
drivers/core/lists.c:206- lists_bind_fdt() Device 'binman' has no compatible string
drivers/core/lists.c:201- lists_bind_fdt() bind node __symbols__
drivers/core/lists.c:206- lists_bind_fdt() Device '__symbols__' has no compatible string
drivers/core/root.c:205- dm_scan_fdt_node() - ignoring disabled device
drivers/core/lists.c:201- lists_bind_fdt() bind node osc24M_clk
drivers/core/lists.c:222- lists_bind_fdt() - attempt to match compatible string 'fixed-clock'
drivers/core/lists.c:250- lists_bind_fdt() - found match at 'fixed_clock': 'fixed-clock' matches 'fixed-clock'
common/malloc_simple.c:27- alloc_simple() size=18, ptr=174, limit=2000: 602c
common/malloc_simple.c:27- alloc_simple() size=50, ptr=1c4, limit=2000: 6044
common/malloc_simple.c:27- alloc_simple() size=28, ptr=1ec, limit=2000: 6094
drivers/core/device.c:185- device_bind_common() Bound device osc24M_clk to root_driver
drivers/core/lists.c:201- lists_bind_fdt() bind node osc32k_clk
drivers/core/lists.c:222- lists_bind_fdt() - attempt to match compatible string 'fixed-clock'
drivers/core/lists.c:250- lists_bind_fdt() - found match at 'fixed_clock': 'fixed-clock' matches 'fixed-clock'
common/malloc_simple.c:27- alloc_simple() size=50, ptr=23c, limit=2000: 60bc
common/malloc_simple.c:27- alloc_simple() size=28, ptr=264, limit=2000: 610c
drivers/core/device.c:185- device_bind_common() Bound device osc32k_clk to root_driver
common/malloc_simple.c:27- alloc_simple() size=18, ptr=27c, limit=2000: 6134
drivers/core/lists.c:201- lists_bind_fdt() bind node serial@1c28000
drivers/core/lists.c:222- lists_bind_fdt() - attempt to match compatible string 'snps,dw-apb-uart'
drivers/core/lists.c:250- lists_bind_fdt() - found match at 'ns16550_serial': 'ns16550' matches 'snps,dw-apb-uart'
common/malloc_simple.c:27- alloc_simple() size=50, ptr=2cc, limit=2000: 614c
drivers/core/device.c:95- device_bind_common() - seq=0
common/malloc_simple.c:27- alloc_simple() size=20, ptr=2ec, limit=2000: 619c
drivers/core/device.c:185- device_bind_common() Bound device serial@1c28000 to root_driver
common/malloc_simple.c:27- alloc_simple() size=18, ptr=304, limit=2000: 61bc
common/malloc_simple.c:27- alloc_simple() size=10, ptr=314, limit=2000: 61d4
drivers/core/uclass.c:538-uclass_get_device_by_ofnode() Looking for clock@1c20000
drivers/core/uclass.c:389-uclass_find_device_by_ofnode() Looking for clock@1c20000
drivers/core/uclass.c:398-uclass_find_device_by_ofnode() - checking osc24M_clk
drivers/core/uclass.c:398-uclass_find_device_by_ofnode() - checking osc32k_clk
drivers/core/uclass.c:408-uclass_find_device_by_ofnode() - result for clock@1c20000: (none) (ret=-19)
drivers/core/uclass.c:541-uclass_get_device_by_ofnode() - result for clock@1c20000: (none) (ret=-19)
drivers/clk/clk-uclass.c:91-clk_get_by_index_tail() get: returning err=-19
common/malloc_simple.c:27- alloc_simple() size=18, ptr=32c, limit=2000: 61e4
drivers/pinctrl/pinctrl-uclass.c:87-pinctrl_select_state_full()
ns16550_serial serial@1c28000: pinctrl_select_state_full:
uclass_get_device_by_phandle_id: err=-19
common/malloc_simple.c:27- alloc_simple() size=40, ptr=370, limit=2000: aligned to 6200
drivers/core/uclass.c:538-uclass_get_device_by_ofnode() Looking for clock@1c20000
drivers/core/uclass.c:389-uclass_find_device_by_ofnode() Looking for clock@1c20000
common/malloc_simple.c:27- alloc_simple() size=18, ptr=388, limit=2000: 6240
drivers/core/uclass.c:408-uclass_find_device_by_ofnode() - result for clock@1c20000: (none) (ret=-19)
drivers/core/uclass.c:541-uclass_get_device_by_ofnode() - result for clock@1c20000: (none) (ret=-19)
U-Boot 2024.04-rc4 (Mar 22 2024 - 18:31:19 -0300) Allwinner Technology
common/malloc_simple.c:27- alloc_simple() size=18, ptr=3a0, limit=2000: 6258
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
[14]DRAM: 64 MiB
board_init_f finished
--------------------------------