635052c8dc
wip: DTB
19 lines
591 B
Swift
19 lines
591 B
Swift
let kUARTBaseAddress: UInt = 0x09000000 // TODO: Make it dynamic by parsion DTB
|
|
|
|
@_cdecl("putchar")
|
|
@discardableResult func _serialPutchar(_ char: Int32) -> Int32 {
|
|
let uartFR: UInt = kUARTBaseAddress + 0x18// TXFF -- TRansmit FIFO Full for PL011 is 5 bit of FR reg (0x18)
|
|
|
|
while (mmio_read32(uartFR) & (1 << 5)) != 0 {
|
|
// i love pizza btw
|
|
}
|
|
|
|
mmio_write32(UInt(kUARTBaseAddress), UInt32(char))
|
|
return char
|
|
}
|
|
|
|
public func kprint(_ message: StaticString) {
|
|
for i in 0..<message.utf8CodeUnitCount {
|
|
_serialPutchar(Int32(message.utf8Start[i]))
|
|
}
|
|
} |