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

WIP: feat: baremetalsupport aarch64 #412

Draft
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

fstracke
Copy link

This Pullrequest is a very early WIP.

It aims to enable the loader to run on bare-metal aarch64 systems.
The Initial drivers necessary for this only include qemu and ZynqMP.

The driver engine needs reworking before a merge is possible.
It intends to read all properties of the serial device from the device-tree
and select the appropriate driver.
The drivers all commonly implement the SerialDriver trait.

This commit produces a non-functioning bootloader!
Modify entry.s to print the character "A" over a xilinx uart
serial connection. First steps towards a runnable bootloader.

Signed-off-by: Fritz Stracke <[email protected]>
Signed-off-by: Fritz Stracke <[email protected]>
+ Add generic Serial Interface
+ Move Qemu specific Code into driver
+ Add driver for xlnx

Signed-off-by: Fritz Stracke <[email protected]>
+ startup code now checks exception level
+ retry writing character one hundret times to prevent lost characters
+ change file structure for serial drivers

Signed-off-by: Fritz Stracke <[email protected]>
Runs the hermit-loader completley.

Signed-off-by: Fritz Stracke <[email protected]>
Changes to the interrupt-system can only be sufficiently configured
using a higher level of privilege.
Hence it is mandatory to boot the processor in secure-mode.

Signed-off-by: Fritz Stracke <[email protected]>
Add code annotations to include TODOs.

Signed-off-by: Fritz Stracke <[email protected]>
@fstracke fstracke changed the title feat: baremetalsupport aarch64 WIP: feat: baremetalsupport aarch64 Nov 19, 2024
This commit introduces a transparent serial port structure.
The Device tree is read for the currently connected serial device.
Depending on the connected architecture an approapriate driver is
selected.

Signed-off-by: Fritz Stracke <[email protected]>
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.

1 participant