Skip to content

Conversation

@JDuchniewicz
Copy link
Contributor

No description provided.

Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
@lsf37
Copy link
Member

lsf37 commented Dec 1, 2025

Looking not bad, please break long lines at 80.

We're missing the verification: field. Let me check if the proofs pass for the platform.

@@ -0,0 +1,129 @@
---
arm_hardware: true
cmake_plat: rock3b
Copy link
Member

Choose a reason for hiding this comment

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

According to seL4/seL4#1553, the cmake platform name is rk3568

Copy link
Contributor

Choose a reason for hiding this comment

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

Hm, what's the config_set(KernelARMPlatform ARM_PLAT rock3b) for? It's also set by platforms not having any sub-platform.

In this case I'm wondering whether rock3b should be a sub-platform of rockpro64 instead of being it's own kernel platform.

Copy link
Member

Choose a reason for hiding this comment

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

I'm not sure, but setting rock3b did not work for compilation.

Copy link
Member

Choose a reason for hiding this comment

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

KernelARMPlatform is used for variations, e.g. for imx6, the declare_platform is imx6 and KernelARMPlatform can be one of sabre, wandq, nitrogen6sx, with sabre being the default.

The only correct value for KernelPlatform in our case is rk3568 . If we expect further variations in the future it makes sense to have rock3b as KernelARMPlatform as the currently only value (which is being set automatically).

Copy link
Member

Choose a reason for hiding this comment

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

But you are right that maybe it should be a sub platform for rockpro64 -- I'm not exactly an expert on how that is set up.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Changed it to rk3568 for the time being. Happy to change it to rock3b if we decide to treat it as a child of overarching rockchip family

Copy link
Contributor

Choose a reason for hiding this comment

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

(we could also follow just the imx8 platforms and just call it rock3b and not rk3568 at all; the main thing we care about is memory and uart setup which is specific to the board not the SOC)

This is where we disagree: Those are easily fixed by users with a custom DTS overlay, we really don't want one "platform" per UART/memory configuration. So platforms should be per SoC, not per board IMHO.

Main thing boards have different is all the peripheral hardware in addition to the SoC, but those don't matter for seL4 support. Only clock configuration can be relevant, but that's fixed in the future if we switch to clock ticks instead of us.

Copy link
Member

@lsf37 lsf37 Dec 2, 2025

Choose a reason for hiding this comment

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

Only clock configuration can be relevant, but that's fixed in the future if we switch to clock ticks instead of us.

That's not going away with the switch, we still do need to know the same info as before if we want to provide the same functionality as now in libsel4.

But it still makes sense to me to group by 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.

So in principle rockpro64 should be then renamed to rk3399 to adhere to new conventions of naming by SoC right?

Copy link
Contributor

Choose a reason for hiding this comment

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

Only clock configuration can be relevant, but that's fixed in the future if we switch to clock ticks instead of us.

That's not going away with the switch, we still do need to know the same info as before if we want to provide the same functionality as now in libsel4.

It goes away in the sense that it can be just a simple (user changeable) config option and we won't have the CLK_MAGIC and CLK_SHIFT any more.

Then there is very little left that can't be configured by the user and a platform would be just a convenient set of settings for a known board, instead of a requirement before being able to build seL4.

My view is that long-term we only need a generic platform per architecture that can be used pretty much for all newer hardware by tweaking config options as a user, as long as their hardware is a known combination of elements. In that sense Aarch64 and RISC-V could work the same as x86 does now.

The next step would be to parse the DTB at boot to configure the memory and actually have a binary that can run on multiple boards.

So in principle rockpro64 should be then renamed to rk3399 to adhere to new conventions of naming by SoC right?

Yes and no. Yes in the sense that it should have been named that, but no in the sense you can't just change the name without confusing existing users. And we just did a new release, so it is too late for that I think.

It doesn't matter hugely, but it makes it harder for people with a different board based on the same SoC to discover that it's already supported by seL4. This is partially solved by mentioning the SoC on the supported HW webpage. But if the board is more popular than the SoC, trade-offs can be different too, so it's not black and white.

@lsf37
Copy link
Member

lsf37 commented Dec 1, 2025

We're missing the verification: field. Let me check if the proofs pass for the platform.

Yup, they do, so you can add verification: [AARCH64], instead of the Status field.

JDuchniewicz and others added 2 commits December 2, 2025 11:18
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
@lsf37 lsf37 merged commit d27abc6 into seL4:master Dec 14, 2025
9 checks passed
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.

4 participants