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

⚠️ Replace MTIME by CLINT #1130

Merged
merged 22 commits into from
Dec 27, 2024
Merged

⚠️ Replace MTIME by CLINT #1130

merged 22 commits into from
Dec 27, 2024

Conversation

stnolting
Copy link
Owner

@stnolting stnolting commented Dec 27, 2024

This PR replaces the MTIME machine timer by the RISC-V-compatible core local interruptor (CLINT). From a functional point of view, both devices are backwards-compatible. However, base address and register offsets are changed. Additionally, the CLINT also provides an interface for triggering machine-level software interrupts.

The CLINT supports up to 4095 harts (CPU cores). So maybe it is finally time to think about a multi-core setup (like the one GitHub user @NikLeberg has created). 🤔

⚠️ This PR also removes the processor HART_ID generic.

@stnolting stnolting added risc-v compliance Modification to comply with official RISC-V specs. HW Hardware-related labels Dec 27, 2024
@stnolting stnolting self-assigned this Dec 27, 2024
@stnolting stnolting marked this pull request as ready for review December 27, 2024 09:35
@stnolting stnolting merged commit bd57c25 into main Dec 27, 2024
10 checks passed
@stnolting stnolting deleted the clint branch December 27, 2024 14:02
@NikLeberg
Copy link
Collaborator

Wow! This looks nice. :)

I guess I have to rebase my (a bit dormant) SMP system.
If we'd like to think about a multi core system what are your thoughts how to progress? If you like I can sketch an architecture overview of my current implementation so that we could discuss points/entities that would need to be created or modified.

Cheers and happy new year! 🚀

@stnolting
Copy link
Owner Author

Wow! This looks nice. :)

Thanks a lot!

If we'd like to think about a multi core system what are your thoughts how to progress? If you like I can sketch an architecture overview of my current implementation so that we could discuss points/entities that would need to be created or modified.

That's a good question. Let's open an issue or discussion for that. What worries me most is the multi-hart DM and of course the software support. 😅

Cheers and happy new year! 🚀

A happy new year to you too!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
HW Hardware-related risc-v compliance Modification to comply with official RISC-V specs.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants