riscv-software-src / riscv-pk

RISC-V Proxy Kernel
Other
596 stars 308 forks source link

Linux kernel not showing output after earlycon0 disabled #320

Open alxri opened 7 months ago

alxri commented 7 months ago

I am trying to boot linux kernel in FPGA Nexys 4 DDR with a SoC from https://github.com/uec-hanken/tee-hardware/tree/master

I already got my RISC-V core working on the FPGA as it runs bare metal code.

I have tried to boot linux kernel with BBL and riscv-pk. For building the boot.bin file i have used Busybox, initramfs and linux kernel. The problem is when executing on board, i get to this point:

`bbl loader vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvvvvvvvvv rrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvvvvvv rrrrrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvvvv rrrrrrrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvvvv rrrrrrrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvvvv rrrrrrrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvvvv rrrrrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvv
rrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvv
rr vvvvvvvvvvvvvvvvvvvvvv
rr vvvvvvvvvvvvvvvvvvvvvvvv rr rrrr vvvvvvvvvvvvvvvvvvvvvvvvvv rrrr rrrrrr vvvvvvvvvvvvvvvvvvvvvv rrrrrr rrrrrrrr vvvvvvvvvvvvvvvvvv rrrrrrrr rrrrrrrrrr vvvvvvvvvvvvvv rrrrrrrrrr rrrrrrrrrrrr vvvvvvvvvv rrrrrrrrrrrr rrrrrrrrrrrrrr vvvvvv rrrrrrrrrrrrrr rrrrrrrrrrrrrrrr vv rrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrrrr

INSTRUCTION SETS WANT TO BE FREE [ 0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x82200000 [ 0.000000] Linux version 4.20.0-44631-g8fe28cb58bcb (aromo@Marte) (gcc version 12.2.0 ()) #1 SMP Thu Mar 21 14:46:55 CET 2024 [ 0.000000] printk: bootconsole [early0] enabled [ 0.000000] earlycon: uart8250 at I/O port 0x0 (options '') [ 0.000000] Malformed early option 'console' [ 0.000000] initrd not found or empty - disabling initrd [ 0.000000] Zone ranges: [ 0.000000] DMA32 [mem 0x0000000082200000-0x0000000087ffffff] [ 0.000000] Normal [mem 0x0000000088000000-0x0000087fffffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000082200000-0x0000000087ffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000082200000-0x0000000087ffffff] [ 0.000000] software IO TLB: mapped [mem 0x83eab000-0x87eab000] (64MB) [ 0.000000] elf_hwcap is 0x112d [ 0.000000] percpu: Embedded 17 pages/cpu @(ptrval) s29464 r8192 d31976 u69632 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 23735 [ 0.000000] Kernel command line: earlycon=uart8252,mmio32,0xc0fc1000,115200n8 console=uart8250,115200n8 print-fatal-signals=1 [ 0.000000] Dentry cache hash table entries: 16384 (order: 5, 131072 bytes) [ 0.000000] Inode-cache hash table entries: 8192 (order: 4, 65536 bytes) [ 0.000000] Sorting __ex_table... [ 0.000000] Memory: 18880K/96256K available (5636K kernel code, 335K rwdata, 1738K rodata, 1288K init, 806K bss, 77376K reserved, 0K cma-reserved) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] rcu: Hierarchical RCU implementation. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1 [ 0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0 [ 0.000000] plic: mapped 12 interrupts to 2 (out of 2) handlers. [ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns [ 0.000000] Console: colour dummy device 80x25 [ 0.004000] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.00 BogoMIPS (lpj=4000) [ 0.008000] pid_max: default: 32768 minimum: 301 [ 0.012000] Mount-cache hash table entries: 512 (order: 0, 4096 bytes) [ 0.016000] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes) [ 0.060000] rcu: Hierarchical SRCU implementation. [ 0.076000] smp: Bringing up secondary CPUs ... [ 0.080000] smp: Brought up 1 node, 1 CPU [ 0.092000] devtmpfs: initialized [ 0.120000] random: get_random_u32 called from bucket_table_alloc+0x78/0x1b8 with crng_init=0 [ 0.128000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns [ 0.136000] futex hash table entries: 256 (order: 2, 16384 bytes) [ 0.148000] NET: Registered protocol family 16 [ 0.492000] vgaarb: loaded [ 0.500000] SCSI subsystem initialized [ 0.512000] usbcore: registered new interface driver usbfs [ 0.516000] usbcore: registered new interface driver hub [ 0.520000] usbcore: registered new device driver usb [ 0.540000] clocksource: Switched to clocksource riscv_clocksource [ 0.816000] NET: Registered protocol family 2 [ 0.840000] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes) [ 0.848000] TCP established hash table entries: 1024 (order: 1, 8192 bytes) [ 0.856000] TCP bind hash table entries: 1024 (order: 2, 16384 bytes) [ 0.864000] TCP: Hash tables configured (established 1024 bind 1024) [ 0.872000] UDP hash table entries: 256 (order: 1, 8192 bytes) [ 0.880000] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes) [ 0.892000] NET: Registered protocol family 1 [ 0.916000] RPC: Registered named UNIX socket transport module. [ 0.920000] RPC: Registered udp transport module. [ 0.924000] RPC: Registered tcp transport module. [ 0.932000] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 2.420000] workingset: timestamp_bits=62 max_order=13 bucket_order=0 [ 2.692000] NFS: Registering the id_resolver key type [ 2.696000] Key type id_resolver registered [ 2.700000] Key type id_legacy registered [ 2.704000] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [ 2.808000] NET: Registered protocol family 38 [ 2.816000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254) [ 2.824000] io scheduler noop registered [ 2.828000] io scheduler deadline registered [ 2.836000] io scheduler cfq registered (default) [ 2.840000] io scheduler mq-deadline registered [ 2.844000] io scheduler kyber registered [ 4.604000] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled [ 4.644000] [drm] radeon kernel modesetting enabled. [ 4.856000] loop: module loaded [ 4.872000] libphy: Fixed MDIO Bus: probed [ 4.896000] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k [ 4.904000] e1000e: Copyright(c) 1999 - 2015 Intel Corporation. [ 4.912000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 4.916000] ehci-pci: EHCI PCI platform driver [ 4.924000] ehci-platform: EHCI generic platform driver [ 4.932000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 4.936000] ohci-pci: OHCI PCI platform driver [ 4.944000] ohci-platform: OHCI generic platform driver [ 4.956000] usbcore: registered new interface driver uas [ 4.964000] usbcore: registered new interface driver usb-storage [ 4.976000] mousedev: PS/2 mouse device common for all mice [ 4.988000] usbcore: registered new interface driver usbhid [ 4.996000] usbhid: USB HID core driver [ 5.024000] NET: Registered protocol family 10 [ 5.052000] Segment Routing with IPv6 [ 5.060000] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [ 5.080000] NET: Registered protocol family 17 [ 5.088000] Key type dns_resolver registered [ 5.108000] printk: bootconsole [early0] uses init memory and must be disabled even before the real one is ready [ 5.120000] printk: bootconsole [early0] disabled`

It loads the BBL but when it gets to the linux kernel it never shows ouput. It may be due to wrong console configuration or drivers. I have tried with different console options on the device tree (uart8250, tty0, ttyS0, ttySI0, ttySIF0) but none of them work.

Could it be a drivers error when configuring vmlinux? If so, which one?