gtxzsxxk/temu

Linux has earlycon outputs!

Closed this issue · 2 comments

I am too happy

OpenSBI v1.4
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |
        |_|

Platform Name             : Low-speed Linux Experimental Platform
Platform Features         : medeleg
Platform HART Count       : 1
Platform IPI Device       : ---
Platform Timer Device     : --- @ 0Hz
Platform Console Device   : uart8250
Platf00-0x80fcffff M: (R,W) S/U: ()
Domain0 Region02          : 0x80fa0000-0x80fbffff M: (R,X) S/U: ()
Domain0 Region03          : 0x00000000-0xffffffff M: () S/U: (R,W,X)
Domain0 Next Address      : 0x80000000
Domain0 Next Arg1         : 0x80ffd800
Domain0 Next Mode         : S-mode
Domain0 SysReset          : yes
Domain0 SysSuspend        : yes

Boot HART ID              : 0
Boot HART Domain          : root
Boot HART Priv Version    : v1.10
Boot HART Base ISA        : rv32ia
Boot HART ISA Extensions  : zicntr
Boot HART PMP Count       : 0
Boot HART PMP Granularity : 0 bits
Boot HART PMP Address Bits: 0
Boot HART MHPM Info       : 0 (0x00000000)
Boot HART Debug Triggers  : 0 triggers
Boot HART MIDELEG         : 0x00000222
Boot HART MEDELEG         : 0x0000b109


U-Boot 2024.04-rc2-gc7fa4f0df9-dirty (Feb 27 2024 - 21:30:47 +0800)Low-speed Linux Experimental Platform

DRAM:  15.6 MiB
Core:  8 devices, 8 uclasses, devicetree: separate
Loading Environment from nowhere... OK
In:    uart@12500000
Out:   uart@12500000
Err:   uart@12500000
Net:   No ethernet found.
llep@temu => unzip 0x80aa0000 0x80000000
unzip 0x80aa0000 0x80000000
Uncompressed size: 5213612 = 0x4F8DAC
llep@temu => setenv bootargs "earlycon=sbi"
setenv bootargs "earlycon=sbi"
llep@temu => bootm 0x80000000 - 0x80ffd800
bootm 0x80000000 - 0x80ffd800
## Booting kernel from Legacy Image at 80000000 ...
   Image Name:   
   Created:      2024-02-28  15:22:24 UTC
   Image Type:   RISC-V Linux Kernel Image (uncompressed)
   Data Size:    5213548 Bytes = 5 MiB
   Load Address: 80000000
   Entry Point:  80000000
   Verifying Checksum ... data 2147483712 len 5213548 dcrc 915660109 img_crc 915660109
OK
## Flattened Device Tree blob at 80ffd800
   Booting using the fdt blob at 0x80ffd800
Working FDT set to 80ffd80
   Loading Kernel Image to 80000000
do_bootm_linux flag=0x00000100 
   Using Device Tree in place at 80ffd800, end 81001e8c
Working FDT set to 80ffd800
do_bootm_linux flag=0x00000400 

Starting kernel ...

Jump to kernel now: 0x80000000
[    0.000000][    T0] Linux version 6.8.0-rc4-00002-g6a5b9ce15e61-dirty (root@hyz-wsl) (riscv32-buildroot-linux-gnu-gcc.br_real (Buildroot -ge725bb3-dirty) 12.3.0, GNU ld (GNU Binutils) 2.40) #29 Wed Feb 28 23:21:30 CST 2024
[    0.000000][    T0] Machine model: snps,emsdp
[    0.000000][    T0] SBI specification v2.0 detected
[    0.000000][    T0] SBI implementation ID=0x1 Version=0x10004
[    0.000000][    T0] SBI TIME extension detected
[    0.000000][    T0] SBI IPI extension detected
[    0.000000][    T0] SBI RFENCE extension detected
[    0.000000][    T0] SBI DBCN extension detected
[    0.000000][    T0] earlycon: sbi0 at I/O port 0x0 (options '')
[    0.000000][    T0] printk: legacy bootconsole [sbi0] enabled
[    0.000000][    T0] [paging_init] Test of earlycon printk
[    0.000000][    T0] Zone ranges:
[    0.000000][    T0]   Normal   [mem 0x0000000080000000-0x0000000080f9ffff]
[    0.000000][    T0] Movable zone start for each node
[    0.000000][    T0] Early memory node ranges
[    0.000000][    T0]   node   0: [mem 0x0000000080000000-0x0000000080f9ffff]
[    0.000000][    T0] Initmem setup node 0 [mem 0x0000000080000000-0x0000000080f9ffff]
[    ][    T0] On node 0, zone Normal: 28768 pages in unavailable ranges
[    0.000000][    T0] Unable to find cpu node
[    0.000000][    T0] Falling back to deprecated "riscv,isa"
[    0.000000][    T0] Unable to find cpu node
[    0.000000][    T0] riscv: base ISA extensions 
[    0.000000][    T0] riscv: ELF capabilities 
[    0.000000][    T0] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000][    T0] pcpu-alloc: [0] 0 
[    0.000000][    T0] Kernel command line: "earlycon=sbi"
[    0.000000][    T0] Dentry cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.000000][    T0] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.000000][    T0] Built 1 zonelists, mobility grouping off.  Total pages: 3968
[    0.000000][    T0] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000][    T0] Memory: 9684K/16000K available (3895K kernel code, 219K rwdata, 768K rodata, 204K init, 125K bss, 6316K reserved, 0K cma-reserved)
[    0.000000][    T0] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000][    T0] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000][    T0] Kernel panic - not syncing: No interrupt controller found.
[    0.000000][    T0] CPU: 0 PID: 0 Comm: swapper Not tainted 6.8.0-rc4-00002-g6a5b9ce15e61-dirty #29
[    0.000000][    T0] Hardware name: snps,emsdp (DT)
[    0.000000][    T0] Call Trace:
[    0.000000][    T0] [<c0004b70>] dump_backtrace+0x2c/0x3c
[    0.000000][    T0] [<c03bb1a8>] show_stack+0x44/0x5c
[    0.000000][    T0] [<c03c3600>] dump_stack_lvl+0x34/0x54
[    0.000000][    T0] [<c03c363c>] dump_stack+0x1c/0x2c
[    0.000000][    T0] [<c03bb53c>] panic+0x13c/0x300
[    0.000000][    T0] [<c03d2d5c>] init_IRQ+0x3c/0x4c
[    0.000000][    T0] [<c03cfa88>] start_kernel+0x3ec/0x564
[    0.000000][    T0] ---[ end Kernel panic - not syncing: No interrupt controller found. ]---

TODO:

Run RISC-V compliance tests on lr/sc

We added tests for lr/sc and it passed. We added interrupt controller intc and plic.