From 0a4963271c28cea3aa3eabf2115f4a22a4c2fa23 Mon Sep 17 00:00:00 2001 From: Robert Norton Date: Thu, 27 Apr 2017 10:40:30 +0100 Subject: reverse endianness of data when writing UART. Altera jtag uart is little-endian and this change allows it to work when writing using store word (as done by FreeBSD driver) or sb (as done by cheri helloworld program). --- mips/mips_wrappers.sail | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'mips') diff --git a/mips/mips_wrappers.sail b/mips/mips_wrappers.sail index f43b9939..02131204 100644 --- a/mips/mips_wrappers.sail +++ b/mips/mips_wrappers.sail @@ -36,13 +36,14 @@ (mostly identity functions here) *) function unit effect {wmem} MEMw_wrapper(addr, size, data) = + let ledata = reverse_endianness(data) in if (addr == 0x000000007f000000) then { - UART_WDATA := data[7..0]; + UART_WDATA := ledata[7..0]; UART_WRITTEN := 1; } else { MEMea(addr, size); - MEMval(addr, size, reverse_endianness(data)); + MEMval(addr, size, ledata); } function bool effect {wmem} MEMw_conditional_wrapper(addr, size, data) = -- cgit v1.2.3