1
0
aedrix-kernel/devices/pl011.c

14 lines
430 B
C

#define PL011_SERIAL_BASE 0x10009000
#define PL011_SERIAL_FLAG_REGISTER 0x18
#define PL011_SERIAL_BUFFER_FULL (1 << 5)
void pl011_putc(char c)
{
/* Wait until the serial buffer is empty */
while (*(volatile unsigned long*)(PL011_SERIAL_BASE + PL011_SERIAL_FLAG_REGISTER)
& (PL011_SERIAL_BUFFER_FULL));
/* When it's empty, put our character at the base */
*(volatile unsigned long*)PL011_SERIAL_BASE = c;
}