Add support for mailbox, GPIO, MiniUART, framebuffer and GRAPHICS #32
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
hubert/Pi-kachULM_OS!32
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "mailbox"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR is much bigger than it should be, but it is the way it is.
Summary of changes:
Deviceinterface allows you to query information about the board and other things. Mainly, it is intended to implement most of the queries that can be done using the property channel of mailboxes.FrameBufferinterface allows the creation of a global framebuffer.ttf2pkfutility to convert from many font files to our own format. Two precompiled files are included in this PR: FiraCode in 12 pixels and 16 pixels.@ -0,0 +1,111 @@#include "miniuart.hpp"What do you think about using the name MiniUART?
I find it prettier and more consistent with the rest.
I found the instruction
yieldin the ARM ISA. I think it is appropriate here. See https://developer.arm.com/documentation/dui0473/m/arm-and-thumb-instructions/yield.However, the instruction is optional (it can be implemented as a NOP). I don't know if Raspberry PI treats it as NOP or not.
An incoming PR (with the libk) will include a function to call this instruction.
@ -0,0 +38,4 @@static constexpr uint64_t RPI4_CORE_CLOCK = 200'000'000;void init(uint32_t baud_rate) {// We deactivate Pull Up/Down fot the pins 14 and 15Can we choose any
baud_rate? If no, I think it will be better to either add aKASSERTor check at runtime if the rate is supported (and emit an error log after a fallback to a default value).Do you agree?
@ -0,0 +1,33 @@#pragma onceUART1 or MiniUART ?
@ -1,22 +1,63 @@#include "mmio.hpp"#include "uart.hpp"#include "debug.hpp"It doesn't work on real hardware?
@ -0,0 +38,4 @@static constexpr uint64_t RPI4_CORE_CLOCK = 200'000'000;void init(uint32_t baud_rate) {// We deactivate Pull Up/Down fot the pins 14 and 15I have tested with multiplies Band Rate, but I haven't checked with non standard ones !
Why GCC 12 ?! Why this ?