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

Add Star64 as supported platform #181

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Ivan-Velickovic
Copy link
Contributor

Depends on seL4/seL4#1019.

@@ -0,0 +1,34 @@
---
riscv_hardware: true
cmake_plat: star64
Copy link
Member

@axel-h axel-h Apr 21, 2023

Choose a reason for hiding this comment

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

Maybe we should call this pine-star64 to make the name a bit more unique. Or jh7110-star64, because there are more boards with the JH7110 SOC. I have a branch for the VisionFive, where the v2 board version will also use this SOC.

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 can change it to something like pine64-star64 but it looks like other boards by Pine64 just list the board name. Is it expected for another board to exist also called Star64 with a different SoC? I thought that just having Star64 should be disambiguous enough but maybe not.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

So the name on the Pine64 store is "STAR64 Model-A" so might be worth changing this to something like star64_a

[here](https://wiki.pine64.org/wiki/STAR64) for details.

The StarFive JH7110 SoC is comprised of the SiFive U74-MC (four 64-bit U74
cores and one 64-bit S7 core) and one SiFive E24 32-bit core. Note that by
Copy link
Member

@axel-h axel-h Apr 21, 2023

Choose a reason for hiding this comment

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

Suggested change
cores and one 64-bit S7 core) and one SiFive E24 32-bit core. Note that by
cores and one 64-bit S7 core) and one SiFive E24 32-bit (RV32IMAFBC) core. Note that by

I'd also drop the "Note that by default seL4 is setup to use the U74 cores.", as it can't run on the other cores due to the lack of S-Mode.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

What about not dropping it and instead saying that seL4 only runs on the U74 cores since the other cores lack S-Mode?

cmake_plat: star64
xcompiler_arg: -DRISCV64=1
platform: Star64
arch: RV64GBC, RV64IMAC, RV32IMAFBC
Copy link
Member

Choose a reason for hiding this comment

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

Should we really list RV32IMAFBC here? The E24 only has M-Mode and U-Mode, so seL4 cannot run there. Same actuall for RV64IMAC of the S7, seL4 cannot run there, so there is ont much point to mention this here.

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 was being consistent with the HiFive Unleashed, it has a S51 core which also lacks S-Mode. I interpreted the hardware page as what each hardware platform can support, rather than what seL4 supports. Another example is the Rocketchip which has virtualisation support as "Yes", despite the kernel not being able to run in hypervisor mode on RISC-V (yet).

@Ivan-Velickovic
Copy link
Contributor Author

@axel-h How much detail do you want me to go into for the boot process here? It looks like U-Boot proper does not build for M-mode so the only method currently supported is what comes with the board, U-Boot SPL loads OpenSBI which has a U-Boot payload which starts in S-Mode. Then you can use TFTP/loading off of the MMC to load an seL4 image. I also have instructions for creating a bootable image off of the SD card instead of the flash here: https://github.com/Ivan-Velickovic/star64_sdcard. Should I reproduce those instructions on the docs site?

@lsf37
Copy link
Member

lsf37 commented May 1, 2023

I would say yes, that would be great. Whatever is needed or would help someone get started who has not much background in any of these.

@Ivan-Velickovic Ivan-Velickovic force-pushed the star64 branch 2 times, most recently from f8c4111 to 2a57d39 Compare May 8, 2023 02:24
@Ivan-Velickovic
Copy link
Contributor Author

Okay I think this is good to go. Unfortunately I still don't have a working timer driver so I think we should hold off on merging this and the seL4 PR until I have that.

@Ivan-Velickovic Ivan-Velickovic marked this pull request as ready for review August 21, 2023 10:33

## Building seL4test

{% include sel4test.md %}
Copy link
Contributor Author

@Ivan-Velickovic Ivan-Velickovic Aug 21, 2023

Choose a reason for hiding this comment

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

The only thing left to do is specify that if you have the 8GB model then you can use the overlay-star64-8gb.dts.

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.

3 participants