Skip to content

Move to new os-boot. #889

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 22 commits into
base: master
Choose a base branch
from
Open

Move to new os-boot. #889

wants to merge 22 commits into from

Conversation

Arielfoever
Copy link
Contributor

Fix #580

Copy link

github-actions bot commented Apr 26, 2025

Test Results

400 tests  ±0   400 ✅ ±0   1m 53s ⏱️ ±0s
  1 suites ±0     0 💤 ±0 
  1 files   ±0     0 ❌ ±0 

Results for commit 2ddb65a. ± Comparison against base commit 413566b.

♻️ This comment has been updated with latest results.

@Timmmm
Copy link
Collaborator

Timmmm commented Apr 26, 2025

I don't think we want to add another 23 MB ELF to the repo. Ideally we would add a script/Makefile that allows people to build it. We could also host a pre built version somewhere outside the repo and link to it.

Copy link
Collaborator

@jordancarlin jordancarlin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will be great to get these images updated! Here are some initial comments. Likely more to follow.

os-boot/sail.dts Outdated
@@ -14,10 +17,13 @@
reg = <0>;
status = "okay";
compatible = "riscv";
riscv,isa = "rv64imac";
riscv,isa = "rv64imafd";
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we're updating the device tree, we might as well use the full list of supported extensions in the default config. That will exercise the widest variety of instructions, and therefore be a better test for the model.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd still like to see this fixed. Not sure why this was marked as resolved. Maybe something like this instead:

riscv,isa-base = "rv64i";
riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "sstc", "svinval", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", "zfa", "zfh", "zkn", "zkt", "zicbom", "zicboz", "zicntr", "zicond", "zicsr", "zifencei", "zihpm";
riscv,cboz-block-size = <64>;
riscv,cbom-block-size = <64>;

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please keep riscv,isa though, FreeBSD does not currently recognise the newer form

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Arielfoever This needs to be switched to use the longer list of extensions in the older riscv,isa format.

@Arielfoever
Copy link
Contributor Author

I don't think we want to add another 23 MB ELF to the repo. Ideally we would add a script/Makefile that allows people to build it. We could also host a pre built version somewhere outside the repo and link to it.

I will make a makefile and a CI to build it. How's this idea?

@Timmmm
Copy link
Collaborator

Timmmm commented Apr 26, 2025

Sounds good to me. I think we probably don't need to add it to PR CIs but I might be nice to have a manually triggered workflow.

@Arielfoever
Copy link
Contributor Author

Makefile will be in https://github.com/Arielfoever/sail-riscv master branch because I need to check CI.

I will rebase my work if everything's fine.

@Arielfoever
Copy link
Contributor Author

Sounds good to me. I think we probably don't need to add it to PR CIs but I might be nice to have a manually triggered workflow.

Finished it with a Makefile and a manually triggered CI.

Copy link
Collaborator

@Timmmm Timmmm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great. Makefile needs a bit of work (blame me!). How did you resolve the ET_DYN thing? Or does it just not happen for some reason...

os-boot/Makefile Outdated
sail: sail.dtb
../build/c_emulator/riscv_sim_rv64d --no-trace -p -l $(LIMIT_INSTRUCTIONS) --device-tree-blob sail.dtb -t /tmp/console.log build/opensbi-$(OPENSBI_VERSION)/build/platform/generic/firmware/fw_payload.elf

# QEMU attempt. Not sure I ever got this working.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Delete this attempt! (Or this comment if it actually works.)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this qemu is work.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As you wish.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this qemu is work

Do you mean that command does work? If so that's great - let's leave it in! (And remove the comment about it not working.)

os-boot/Makefile Outdated
# Number of instructions to run.
LIMIT_INSTRUCTIONS ?= 250000

linux:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be nice if we made the dependency tree work. E.g. this should depend build/linux-$(LINUX_VERSION)/Makefile and the download_linux rule should be

build/linux-$(LINUX_VERSION)/Makefile:
    mkdir -p build
...

I can do it if you like when the other comments are resolved.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will do it after no one objects in other comments after I finish my roommate's birthday lunch.

Copy link
Collaborator

@jordancarlin jordancarlin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like it is not (easily) possible to download the generated artifact from the command line (actions/upload-artifact#89), so we probably need to figure out a different place for the final upload.

Also, should we rename all of this to just linux instead of os-boot since this is removing all of the other OSs? At least the workflow file.

@Arielfoever
Copy link
Contributor Author

Seems like it is not (easily) possible to download the generated artifact from the command line (actions/upload-artifact#89), so we probably need to figure out a different place for the final upload.

Also, should we rename all of this to just linux instead of os-boot since this is removing all of the other OSs? At least the workflow file.

renamed CI as you wish.

@Arielfoever Arielfoever force-pushed the os-boot branch 2 times, most recently from 72eb8ee to d66a750 Compare April 29, 2025 15:13
@Arielfoever
Copy link
Contributor Author

Everything's up-to-date. See https://github.com/Arielfoever/sail-riscv/actions/runs/14734807045

os-boot/sail.dts Outdated
@@ -14,10 +17,13 @@
reg = <0>;
status = "okay";
compatible = "riscv";
riscv,isa = "rv64imac";
riscv,isa = "rv64imafd";
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd still like to see this fixed. Not sure why this was marked as resolved. Maybe something like this instead:

riscv,isa-base = "rv64i";
riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "sstc", "svinval", "zba", "zbb", "zbc", "zbs", "zca", "zcb", "zcd", "zfa", "zfh", "zkn", "zkt", "zicbom", "zicboz", "zicntr", "zicond", "zicsr", "zifencei", "zihpm";
riscv,cboz-block-size = <64>;
riscv,cbom-block-size = <64>;

Copy link
Collaborator

@jordancarlin jordancarlin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be worth actually booting Linux on Sail in this CI job to make sure everything worked correctly before uploading it.

@Arielfoever Arielfoever force-pushed the os-boot branch 2 times, most recently from b74016d to 21747c2 Compare April 29, 2025 16:37
@Arielfoever
Copy link
Contributor Author

Might be worth actually booting Linux on Sail in this CI job to make sure everything worked correctly before uploading it.

Test at last step of CI.

@arichardson
Copy link
Collaborator

Looks like we need to install dtc in the CI? /bin/sh: 1: dtc: not found

Timmmm added 20 commits May 1, 2025 22:18
Clarity is better than terseness in scripts.
Unfortunately the riscv-collab toolchains require a really really recent (2021) Glibc version which is quite annoying for everyone working with commercial RISC-V designs who are stuck on ancient RHEL versions.
It's really easy to forget .PHONY if they are all at the top.
The source actually ends up in build so this is a bit clearer.
?= is unnecessary since normal := can already be overridden.
It goes to stdout by default.
More consistent and clearer
Update paths and hash .url files
@Timmmm
Copy link
Collaborator

Timmmm commented May 1, 2025

I think ultimately the goal should be that Sail supports PLIC so we can have a proper UART, and then the emulator can support interactive input (depending on how patient you are). klibc sounds like a good intermediate step if anyone wants to try it (I don't plan to).

@Arielfoever I pushed a load of changes to this. Hope that's ok. It has a vaguely reasonable history and I tried to put justification in the commit messages.

Seems pretty good to me now. I haven't looked into the CI flow in detail yet though; I'll do that next.

badaddr: 0000000014d79073 is csrw stimecmp, a5

Oops that's embarassing. Thanks for figuring it out @arichardson

Copy link
Collaborator

@Timmmm Timmmm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Workflow looks reasonable to me. It's quite complicated so I think we can avoid caching the Sail model there at least.

It would also be great if we could run Linux at least for a few million instructions in normal PR CI, given how crap our current testing is.

That can be a future PR though.


- name: Check Sail Model ID
id: sail-id
run: echo "commitid=$(git log --pretty=format:"%H" -1 -- . ':(exclude)os-boot' ':(exclude).github')" >> "$GITHUB_OUTPUT"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I would agree. I understand caching Linux since it takes a while to build and isn't likely to change often, but the Sail model is pretty quick to build and changes rapidly.

- name: Test ELF File
working-directory: os-boot/linux
timeout-minutes: 2
run: make sail 2>&1 | tee linux.log
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess since we're saving it to a log we could hackily grep it for some pattern here?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like we could run it until it crashes and grep for the expected error when it fails to find an init program. Once we eventually add some form of user space that could be changed, but this would be a good test to start with.

@Arielfoever
Copy link
Contributor Author

Hi guys,

how about make it part by part?

we first boot a openSBI only then we can see something like this and merge. Then we deal with linux or something.

[ariel@archlinux linux]$ ../../build/c_emulator/riscv_sim_rv64d --no-trace -p  --device-tree-blob sail.dtb -t /dev/stdout build/fw_payload.elf                                                  
will show execution times on completion.        
using sail.dtb as DTB file.                                                                                                                                                                     
using /dev/stdout for terminal output.  
Read 1391 bytes of DTB from sail.dtb.
Running file build/fw_payload.elf.                                                              
ELF Entry @ 0x80000000               
tohost located at 0x80042c20                                                                                                                                                                    
kips: 51                                                                                        
                                                                                                
OpenSBI v1.6                                                                                    
   ____                    _____ ____ _____                                                     
  / __ \                  / ____|  _ \_   _|    
 | |  | |_ __   ___ _ __ | (___ | |_) || |      
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |  
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |                                     
        |_|                                 
                                                
kips: 51                           
kips: 51                                        
kips: 51                                                                                        
Platform Name               : ucbbar,spike-bare                                                                                                                                                 
Platform Features           : medeleg   
Platform HART Count         : 1 
Platform IPI Device         : aclint-mswi                                                                                                                                                       
Platform Timer Device       : aclint-mtimer @ 10000000Hz                                        
Platform Console Device     : htif              
Platform HSM Device         : ---               
Platform PMU Device         : ---               
Platform Reboot Device      : htif
Platform Shutdown Device    : htif
Platform Suspend Device     : ---
Platform CPPC Device        : --- 
Platform Suspend Device     : ---                                                                                                                                              23:44:47 [88/888]Platform CPPC Device        : ---                                                                                                                                                               
Firmware Base               : 0x80000000
Firmware Size               : 325 KB
Firmware RW Offset          : 0x40000      
Firmware RW Size            : 69 KB         
Firmware Heap Offset        : 0x48000     
Firmware Heap Size          : 37 KB (total), 2 KB (reserved), 12 KB (used), 22 KB (free)
Firmware Scratch Size       : 4096 B (total), 432 B (used), 3664 B (free)
Runtime SBI Version         : 2.0           
Standard SBI Extensions     : time,rfnc,ipi,base,hsm,srst,pmu,dbcn,legacy
Experimental SBI Extensions : fwft,sse
                                                
Domain0 Name                : root                                                                                                                                                              
Domain0 Boot HART           : 0         
Domain0 HARTs               : 0*
Domain0 Region00            : 0x0000000000000000-0x0000000000000kips: 51
fff M: (I,R,W) S/U: (R,W)            
Domain0 Region01            : 0x0000000080040000-0x000000008005ffff M: (R,W) S/U: ()                                                                                                            
Domain0 Region02            : 0x0000000002080000-0x00000000020bffff M: (I,R,W) S/U: ()
Domain0 Region03            : 0x0000000080000000-0x000000008003ffff M: (R,X) S/U: ()
Domain0 Region04            : 0x0000000002000000-0x000000000207ffff M: (I,R,W) S/U: ()
Domain0 Region05            : 0x0000000000000000-0xffffffffffffffff M: () S/U: (R,W,X)
Domain0 Next Address        : 0x0000000080200000
Domain0 Next Arg1           : 0x0000000082200000
Domain0 Next Mode           : S-mode        
Domain0 SysReset            : yes         
Domain0 SysSuspend          : yes         
                                                
Boot HART ID                : 0             
Boot HART Domain            : root
Boot HART Priv Version      : v1.12
Boot HART Base ISA          : rv64imafdcbv      
Boot HART ISA Extensions    : sscofpmf,sstc,zicntr,zihpm,smcntrpmf,zicboz,zicbom,sdtrig
Boot HART PMP Count         : 16                                                                                                                                                                
Boot HART PMP Granularity   : 2 bits    
Boot HART PMP Address Bits  : 54
Boot HART MHPM Info         : 29 (0xfffffff8)                                                                                                                                                   
Boot HART Debug Triggers    : 0 triggers
Boot HART MIDELEG           : 0x0000000000002222
Boot HART MEDELEG           : 0x000000000004b109
                                                
Test payload running

@Arielfoever
Copy link
Contributor Author

I'd suggest that we put in agenda @Timmmm

@Arielfoever
Copy link
Contributor Author

Hi all,

I have edited some config and now linux kernel works as same as qemu.

will show execution times on completion.
using os-boot/opensbi/sail.dtb as DTB file.

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

Platform Name               : ucbbar,spike-bare
Platform Features           : medeleg
Platform HART Count         : 1
Platform IPI Device         : aclint-mswi
Platform Timer Device       : aclint-mtimer @ 10000000Hz
Platform Console Device     : htif
Platform HSM Device         : ---
Platform PMU Device         : ---
Platform Reboot Device      : htif
Platform Shutdown Device    : htif
Platform Suspend Device     : ---
Platform CPPC Device        : ---
Firmware Base               : 0x80000000
Firmware Size               : 317 KB
Firmware RW Offset          : 0x40000
Firmware RW Size            : 61 KB
Firmware Heap Offset        : 0x46000
Firmware Heap Size          : 37 KB (total), 2 KB (reserved), 11 KB (used), 23 KB (free)
Firmware Scratch Size       : 4096 B (total), 1336 B (used), 2760 B (free)
Runtime SBI Version         : 3.0
Standard SBI Extensions     : time,rfnc,ipi,base,hsm,srst,pmu,dbcn,fwft,legacy,sse
Experimental SBI Extensions : none

Domain0 Name                : root
Domain0 Boot HART           : 0
Domain0 HARTs               : 0*
Domain0 Region00            : 0x0000000000000000-0x0000000000000fff M: (I,R,W) S/U: (R,W)
Domain0 Region01            : 0x0000000080040000-0x000000008004ffff M: (R,W) S/U: ()
Domain0 Region02            : 0x0000000002080000-0x00000000020bffff M: (I,R,W) S/U: ()
Domain0 Region03            : 0x0000000080000000-0x000000008003ffff M: (R,X) S/U: ()
Domain0 Region04            : 0x0000000002000000-0x000000000207ffff M: (I,R,W) S/U: ()
Domain0 Region05            : 0x0000000000000000-0xffffffffffffffff M: () S/U: (R,W,X)
Domain0 Next Address        : 0x0000000080200000
Domain0 Next Arg1           : 0x0000000082200000
Domain0 Next Mode           : S-mode
Domain0 SysReset            : yes
Domain0 SysSuspend          : yes

Boot HART ID                : 0
Boot HART Domain            : root
Boot HART Priv Version      : v1.12
Boot HART Base ISA          : rv64imafdcbv
Boot HART ISA Extensions    : sscofpmf,sstc,zicntr,zihpm,smcntrpmf,zicboz,zicbom,sdtrig
Boot HART PMP Count         : 16
Boot HART PMP Granularity   : 2 bits
Boot HART PMP Address Bits  : 54
Boot HART MHPM Info         : 29 (0xfffffff8)
Boot HART Debug Triggers    : 0 triggers
Boot HART MIDELEG           : 0x0000000000002222
Boot HART MEDELEG           : 0x000000000004b109
[    0.000000] Linux version 6.14.4 (ariel@archlinux) (riscv64-unknown-linux-gnu-gcc (GCC) 15.1.0, GNU ld (GNU Binutils) 2.44) #2 Fri May 23 17:47:07 CST 2025
[    0.000000] Machine model: ucbbar,spike-bare
[    0.000000] SBI specification v3.0 detected
[    0.000000] SBI implementation ID=0x1 Version=0x10006
[    0.000000] SBI TIME extension detected
[    0.000000] SBI IPI extension detected
[    0.000000] SBI RFENCE extension detected
[    0.000000] SBI SRST extension detected
[    0.000000] SBI DBCN extension detected
[    0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
[    0.000000] printk: legacy bootconsole [sbi0] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] OF: reserved mem: 0x0000000080000000..0x000000008003ffff (256 KiB) nomap non-reusable mmode_resv1@80000000
[    0.000000] OF: reserved mem: 0x0000000080040000..0x000000008004ffff (64 KiB) nomap non-reusable mmode_resv0@80040000
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x000000008004ffff]
[    0.000000]   node   0: [mem 0x0000000080050000-0x00000000ffffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000] riscv: base ISA extensions acdfimv
[    0.000000] riscv: ELF capabilities acdfim
[    0.000000] Ticket spinlock: enabled
[    0.000000] Kernel command line: console=hvc0 earlycon=sbi
[    0.000000] printk: log buffer data + meta data: 131072 + 458752 = 589824 bytes
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 524288
[    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[    0.000000] software IO TLB: SWIOTLB bounce buffer size adjusted to 2MB
[    0.000000] software IO TLB: area num 1.
[    0.000000] software IO TLB: mapped [mem 0x00000000fca00000-0x00000000fcc00000] (2MB)
[    0.000000] Virtual kernel memory layout:
[    0.000000]       fixmap : 0xff1bfffffea00000 - 0xff1bffffff000000   (6144 kB)
[    0.000000]       pci io : 0xff1bffffff000000 - 0xff1c000000000000   (  16 MB)
[    0.000000]      vmemmap : 0xff1c000000000000 - 0xff20000000000000   (1024 TB)
[    0.000000]      vmalloc : 0xff20000000000000 - 0xff60000000000000   (16384 TB)
[    0.000000]      modules : 0xffffffff005e8000 - 0xffffffff80000000   (2042 MB)
[    0.000000]       lowmem : 0xff60000000000000 - 0xff60000080000000   (2048 MB)
[    0.000000]       kernel : 0xffffffff80000000 - 0xffffffffffffffff   (2047 MB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] RCU Tasks Trace: Setting shift to 0 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] riscv-intc: 64 local interrupts mapped
[    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns
[    0.000015] sched_clock: 64 bits at 10MHz, resolution 100ns, wraps every 4398046511100ns
[    0.001018] riscv-timer: Timer interrupt in S-mode is available via sstc extension
[    0.004914] Console: colour dummy device 80x25
[    0.005934] Calibrating delay loop (skipped), value calculated using timer frequency.. 20.00 BogoMIPS (lpj=100000)
[    0.007013] pid_max: default: 32768 minimum: 301
[    0.012633] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.013571] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.074928] ASID allocator using 16 bits (65536 entries)
[    0.084672] EFI services will not be available.
[    0.085672] Memory: 2034304K/2097152K available (3424K kernel code, 725K rwdata, 1272K rodata, 279K init, 335K bss, 60760K reserved, 0K cma-reserved)
[    0.099853] devtmpfs: initialized
[    0.127383] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.128423] futex hash table entries: 256 (order: 1, 12288 bytes, linear)
[    0.138175] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
[    0.140074] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.147593] cpuidle: using governor menu
[    0.204649] cpu0: Ratio of byte access time to unaligned word access is 7.96, unaligned accesses are fast
[    0.232770] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    0.233470] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page
[    0.238434] iommu: Default domain type: Translated
[    0.239011] iommu: DMA domain TLB invalidation policy: strict mode
[    0.250505] clocksource: Switched to clocksource riscv_clocksource
[    0.528735] workingset: timestamp_bits=46 max_order=19 bucket_order=0
[    2.476038] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    2.530070] mousedev: PS/2 mouse device common for all mice
[    2.538411] riscv-pmu-sbi: SBI PMU extension is available
[    2.540027] riscv-pmu-sbi: 16 firmware and 31 hardware counters
[    2.540842] riscv-pmu-sbi: Perf sampling/filtering is not supported as sscof extension is not available
[    3.250323] debug_vm_pgtable: [debug_vm_pgtable         ]: Validating architecture page table helpers
[    3.256669] clk: Disabling unused clocks
[    3.257182] PM: genpd: Disabling unused power domains
[    3.258090] Warning: unable to open an initial console.
[    3.260797] devtmpfs: mounted
[    3.265998] Freeing unused kernel image (initmem) memory: 276K
[    3.266652] Kernel memory protection not selected by kernel config.
[    3.267343] Run /sbin/init as init process
[    3.269254] Run /etc/init as init process
[    3.271330] Run /bin/init as init process
[    3.273055] Run /bin/sh as init process
[    3.274826] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance.
[    3.275922] CPU: 0 UID: 0 PID: 1 Comm: swapper Not tainted 6.14.4 #2
[    3.276767] Hardware name: ucbbar,spike-bare (DT)
[    3.277345] Call Trace:
[    3.277797] [<ffffffff8000ba52>] dump_backtrace+0x1c/0x24
[    3.278868] [<ffffffff800022f2>] show_stack+0x2a/0x34
[    3.279668] [<ffffffff800089b8>] dump_stack_lvl+0x32/0x4a
[    3.280660] [<ffffffff800089e4>] dump_stack+0x14/0x1c
[    3.281625] [<ffffffff80002900>] panic+0xf4/0x27a
[    3.282414] [<ffffffff80352f5e>] kernel_init+0xf6/0x102
[    3.283285] [<ffffffff8035a286>] ret_from_exception_end+0xe/0x18
[    3.284486] ---[ end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance. ]---
Read 1391 bytes of DTB from os-boot/opensbi/sail.dtb.
Running file ../fw_payload.elf.
ELF Entry @ 0x80000000
HTIF located at 0x800429d8

@jordancarlin
Copy link
Collaborator

Boot HART ISA Extensions : sscofpmf,sstc,zicntr,zihpm,smcntrpmf,zicboz,zicbom,sdtrig

Is this the log from QEMU or Sail? If it's Sail, why is it finding the Sdtrig extension? Sail doesn't support that extension yet.

@Arielfoever
Copy link
Contributor Author

From sail of course.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update Linux images
6 participants