diff --git a/sys/dev/uart/uart_dev_sgisn.c b/sys/dev/uart/uart_dev_sgisn.c index acec5de6e203..c0651a51e9d8 100644 --- a/sys/dev/uart/uart_dev_sgisn.c +++ b/sys/dev/uart/uart_dev_sgisn.c @@ -84,8 +84,11 @@ static void sgisn_putc(struct uart_bas *bas, int c) { struct ia64_sal_result result; + char buf[1]; - result = ia64_sal_entry(SAL_SGISN_PUTC, c, 0, 0, 0, 0, 0, 0); + buf[0] = c; + result = ia64_sal_entry(SAL_SGISN_TXBUF, (uintptr_t)buf, 1UL, 0, 0, 0, + 0, 0); } static int diff --git a/sys/ia64/include/sal.h b/sys/ia64/include/sal.h index 1aa80279eb5b..babc877d973b 100644 --- a/sys/ia64/include/sal.h +++ b/sys/ia64/include/sal.h @@ -119,6 +119,7 @@ struct sal_ap_wakeup_descriptor { #define SAL_SGISN_PUTC 0x02000021 #define SAL_SGISN_GETC 0x02000022 #define SAL_SGISN_POLL 0x02000026 +#define SAL_SGISN_TXBUF 0x02000028 #define SAL_SGISN_IOHUB_INFO 0x02000055 #define SAL_SGISN_IOBUS_INFO 0x02000056