Skip to content
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

Support the MangoPi MQ-Pro #100

Open
1 of 13 tasks
IsaacWoods opened this issue Nov 11, 2023 · 2 comments
Open
1 of 13 tasks

Support the MangoPi MQ-Pro #100

IsaacWoods opened this issue Nov 11, 2023 · 2 comments
Labels
A-riscv T-tracking-issue Issue type: tracking issue

Comments

@IsaacWoods
Copy link
Owner

IsaacWoods commented Nov 11, 2023

Getting the kernel running

  • Get OpenSBI and Seed booting via FEL (Boot on real RISC-V hardware - the MangoPi MQ-Pro #99)
  • Support loading files in Seed from a ramdisk loaded into memory with FEL
  • Support the Sv39 paging model (as this is all the D1 supports :()
  • Generalise seed_riscv's ELF loading to any source of files
  • Successfully boot into the kernel!

Boot from persistent media

  • Work out how to update SD cards without just writing a whole new disk image to them (or do we care?)
  • Get a test boot0 running from SRAM that can output to the UART running from the SD card
  • Initialize the DRAM in our boot0
  • Load OpenSBI and Seed from the SD card in boot0
  • Successfully run OpenSBI + Seed
  • Write SDHC driver for Seed
  • Load kernel from SD card and boot into it!
  • Work out how to fit the weird headers etc. into a nice GPT scheme
@IsaacWoods IsaacWoods added T-tracking-issue Issue type: tracking issue A-riscv labels Nov 11, 2023
@IsaacWoods IsaacWoods pinned this issue Nov 11, 2023
@IsaacWoods
Copy link
Owner Author

Adding a note here to hopefully remember (we're not going to be near our workstation for a while :( ). I think we need to do a VMA fence after switching to new sets of page tables - I don't think this is going to be what's causing issues on the D1, but is the correct thing to do.

@IsaacWoods
Copy link
Owner Author

Also some thoughts about debugging on real hardware - I wonder if we could get some kind of timer running in M-mode (with an altered OpenSBI I guess) that pings back a set of registers / other info over UART. This would be a useful extra tool for dealing with stuff like the core seemingly freezing when entering usermode (although we need to have a look at our trap handling to rule out dumb mistakes first).

Could also look at the ebreak instruction to see if we can do any instrumentation through that via M-mode too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-riscv T-tracking-issue Issue type: tracking issue
Projects
None yet
Development

No branches or pull requests

1 participant