[PATCH] riscv: timer: Add support for an early timer

Pragnesh Patel pragnesh.patel at openfive.com
Tue Dec 1 12:14:32 CET 2020


Hi Rick,

[...]
>>
>>Following are the configurations, steps and debug logs:
>>
>>+++ b/configs/ae350_rv64_defconfig
>>q+CONFIG_TRACE=y
>>+CONFIG_TRACE_BUFFER_SIZE=0x01000000
>>+CONFIG_TRACE_CALL_DEPTH_LIMIT=15
>>+CONFIG_CMD_TRACE=y
>>+CONFIG_TIMER_EARLY=y
>>
>>+++ b/configs/ae350_rv64_spl_defconfig
>>+CONFIG_TRACE=y
>>+CONFIG_TRACE_BUFFER_SIZE=0x01000000
>>+CONFIG_TRACE_CALL_DEPTH_LIMIT=15
>>+CONFIG_CMD_TRACE=y
>>+CONFIG_TIMER_EARLY=y
>>
>>//////////////////////////////////////////////// case 1
>>///////////////////////////////////////////////////
>>ae350_rv64_defconfig with FTRACE=1, kernel booting is ok
>>//////////////////////////////////////////////// case 1
>>///////////////////////////////////////////////////
>>make FTRACE=1 ae350_rv64_defconfig
>>make FTRACE=1
>>///////////////////////////////////////////////////////////////////////
[...]
>>//////////////////////////////////////////////// case 2
>>///////////////////////////////////////////////////
>>ae350_rv64_spl_defconfig with FTRACE=1, kernel booting fail
>>//////////////////////////////////////////////// case 2
>>///////////////////////////////////////////////////
>>make FTRACE=1 ae350_rv64_spl_defconfig
>>make FTRACE=1
>>///////////////////////////////////////////////////////////////////////
>>///////////////
>>/////////////////////////
[...]
>>(hang here)
>
>Thanks for the logs.
>
>From logs, I can't find where it got stuck. Can you please use gdb to see where it
>got stuck ?
>
>Meanwhile I will give it a try on HiFive Unleashed board.

On HiFive Unleashed it works fine with tracing.

U-Boot 2021.01-rc2-00049-gb2a38d1d0f (Dec 01 2020 - 15:04:41 +0530)
CPU:   rv64imafdc
Model: SiFive HiFive Unleashed A00
DRAM:  8 GiB
trace: enabled
MMC:   spi at 10050000:mmc at 0: 0
Loading Environment from SPIFlash... SF: Detected is25wp256 with page size 256 Bytes, erase size 4 KiB, total 32 MiB
*** Warning - bad CRC, using default environment
In:    serial at 10010000
Out:   serial at 10010000
Err:   serial at 10010000
Net:   eth0: ethernet at 10090000
Hit any key to stop autoboot:  0
=>
=> trace stats
        178,750 function sites
     25,359,991 function calls
              1 untracked function calls
      1,278,927 traced function calls (24358307 dropped due to overflow)
             19 maximum observed call depth
             15 call depth limit
     25,238,922 calls not traced due to depth
=> fatload mmc 0:3 0x86000000 hifive-unleashed-a00.dtb
7199 bytes read in 27 ms (259.8 KiB/s)
=> fatload mmc 0:3 0x84000000 uImage
21421212 bytes read in 19496 ms (1 MiB/s)
=> bootm 0x84000000 - 0x86000000
## Booting kernel from Legacy Image at 84000000 ...
   Image Name:   Linux
   Image Type:   RISC-V Linux Kernel Image (uncompressed)
   Data Size:    21421148 Bytes = 20.4 MiB
   Load Address: 80200000
   Entry Point:  80200000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 86000000
   Booting using the fdt blob at 0x86000000
   Loading Kernel Image
   Using Device Tree in place at 0000000086000000, end 0000000086004c1e
Starting kernel ...(fake run for tracing)
Starting kernel ...
[    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[    0.000000] Linux version 5.8.0-rc3-16077-g9ebcfadb0610-dirty (pragneshp at sachinj2-OptiPlex-7010) (riscv64-unknown-linux-gnu-gcc (crosstool-NG 1.24.0.37-3f461da) 9.2.0, GNU ld (crosstool-NG 1.24.0.37-3f461da) 2.32) #34 SMP Tue Jul 21 15:56:29 IST 2020
[    0.000000] initrd not found or empty - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000080200000-0x00000000ffffffff]
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000027fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080200000-0x000000027fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000027fffffff]
....
Welcome to Buildroot
buildroot login: root
Password:


>
>>
>>//////////////////////////////////////////////// case 3
>>///////////////////////////////////////////////////
>>ae350_rv64_spl_defconfig without FTRACE=1, kernel booting ok
>>//////////////////////////////////////////////// case 2
>>///////////////////////////////////////////////////
>>make ae350_rv64_spl_defconfig
>>make
>>///////////////////////////////////////////////////////////////////////


More information about the U-Boot mailing list