cnlohr / mini-rv32ima

A tiny C header-only risc-v emulator.
MIT License
1.69k stars 137 forks source link

Can it run OpenSBI? #35

Open ElectroBoy404NotFound opened 1 year ago

ElectroBoy404NotFound commented 1 year ago

Hi!

I have a pre-compiled risc-v opensbi image with the following: image

So what file am i supposed to execute with the emulator? I tried fw_jump.bin but it didn't work.

cnlohr commented 1 year ago

It "should be able to" but I've never understood opensbi, or gotten it to successfully build and run on literally anything except qemu.

I encourage you to do this, it would be cool for someone to understand it. But I do not.

ElectroBoy404NotFound commented 1 year ago

Makes sense

upsampled commented 1 year ago

I think the first step to accomplish this is either:

The former is the preferred solution as Linux, and I also believe U-boot, can leverage the dts file.

This has been the best reference on the subject so far.

ElectroBoy404NotFound commented 1 year ago

I think the first step to accomplish this is either:

  • define a device tree (dts) for the mini-rv32ima
  • make platform specific binding for the mini-rv32ima in OpenSBI

The former is the preferred solution as Linux, and I also believe U-boot, can leverage the dts file.

This has been the best reference on the subject so far.

Thanks! I'm going to try that

upsampled commented 1 year ago

@ElectroBoy404NotFound as long as @cnlohr doesn't mind the chatter, feel free to share your notes here.

upsampled commented 1 year ago

I'll see if I have time for a deeper dive later this month, but to start out:

@cnlohr emulates a 8250 UART, The output buffer address is 0x10000000 and input is 0x10000005. The DTS documentation for describing this is found here

Seems like we would need to determine the register start address (assuming 0x10000000) and length (guessing 0x100 but not sure) and other other settings.

upsampled commented 1 year ago

nevermind this is already made https://github.com/cnlohr/mini-rv32ima/blob/master/mini-rv32ima/sixtyfourmb.dts

cnlohr commented 10 months ago

I def don't mind the chatter. And yeah, the idea is I just don't use OpenSBI, it feels like a lot of extra cruft without any real payoff. I still don't "get it" for something where the kernel should just be able to boot. But if someone gets it working, please let me know! I'm happy to accept patches as long as they are small.

ElectroBoy404NotFound commented 9 months ago

Well, I guess I better start checking notifications..