mirror of
https://github.com/ipxe/ipxe
synced 2026-04-04 03:00:20 +03:00
[riscv] Add support for a SiFive-compatible early UART
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -204,10 +204,41 @@ early_uart_reg_base_64_done_\@:
|
|||||||
.macro print_char_uart_8250
|
.macro print_char_uart_8250
|
||||||
early_uart_reg_base a7
|
early_uart_reg_base a7
|
||||||
sb a0, EARLY_UART_8250_TX(a7)
|
sb a0, EARLY_UART_8250_TX(a7)
|
||||||
uart_wait_\@:
|
early_uart_8250_wait_\@:
|
||||||
lbu a1, EARLY_UART_8250_LSR(a7)
|
lbu a1, EARLY_UART_8250_LSR(a7)
|
||||||
andi a1, a1, EARLY_UART_8250_LSR_THRE
|
andi a1, a1, EARLY_UART_8250_LSR_THRE
|
||||||
beqz a1, uart_wait_\@
|
beqz a1, early_uart_8250_wait_\@
|
||||||
|
.endm
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
*
|
||||||
|
* Print character via SiFive-compatible early UART
|
||||||
|
*
|
||||||
|
*****************************************************************************
|
||||||
|
*
|
||||||
|
* Print a single character via a SiFive-compatible UART.
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
*
|
||||||
|
* a0 - Character to print
|
||||||
|
*
|
||||||
|
* Returns:
|
||||||
|
*
|
||||||
|
* a0 - Preserved
|
||||||
|
* a1 - Overwritten
|
||||||
|
* a7 - Overwritten
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* SiFive-compatible UART transmit registers */
|
||||||
|
#define EARLY_UART_SIFIVE_TXFIFO ( 0 << EARLY_UART_REG_SHIFT )
|
||||||
|
|
||||||
|
.macro print_char_uart_sifive
|
||||||
|
early_uart_reg_base a7
|
||||||
|
sw a0, EARLY_UART_SIFIVE_TXFIFO(a7)
|
||||||
|
early_uart_sifive_wait_\@:
|
||||||
|
lw a1, EARLY_UART_SIFIVE_TXFIFO(a7)
|
||||||
|
bltz a1, early_uart_sifive_wait_\@
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|||||||
Reference in New Issue
Block a user