From 45b9bb2f66584aaa1caa43a688038f9b8d990480 Mon Sep 17 00:00:00 2001 From: Megan Wachs Date: Fri, 5 May 2017 15:45:51 -0700 Subject: coreplexip-e51-arty: MCAUSE is XLEN-bits wide. --- bsp/env/coreplexip-e31-arty/platform.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/bsp/env/coreplexip-e31-arty/platform.h b/bsp/env/coreplexip-e31-arty/platform.h index 02a0a62..2c9794c 100644 --- a/bsp/env/coreplexip-e31-arty/platform.h +++ b/bsp/env/coreplexip-e31-arty/platform.h @@ -4,8 +4,14 @@ #define _SIFIVE_PLATFORM_H // Some things missing from the official encoding.h -#define MCAUSE_INT 0x80000000 -#define MCAUSE_CAUSE 0x7FFFFFFF + +#if __riscv_xlen == 32 +#define MCAUSE_INT 0x80000000UL +#define MCAUSE_CAUSE 0x7FFFFFFFUL +#else +#define MCAUSE_INT 0x80000000000000000UL +#define MCAUSE_CAUSE 0x7FFFFFFFFFFFFFFFFUL +#endif #define IRQ_M_LOCAL 16 #define MIP_MLIP(x) (1 << (IRQ_M_LOCAL + x)) -- cgit v1.2.1-18-gbd029 From e5df5013430758db188055eff48f15d1fbd2083d Mon Sep 17 00:00:00 2001 From: Megan Wachs Date: Fri, 5 May 2017 16:47:17 -0700 Subject: write_hex: allow for different size error codes --- bsp/libwrap/misc/write_hex.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bsp/libwrap/misc/write_hex.c b/bsp/libwrap/misc/write_hex.c index e678bdc..96f832d 100644 --- a/bsp/libwrap/misc/write_hex.c +++ b/bsp/libwrap/misc/write_hex.c @@ -4,13 +4,13 @@ #include #include "platform.h" -void write_hex(int fd, uint32_t hex) +void write_hex(int fd, long int hex) { uint8_t ii; uint8_t jj; char towrite; write(fd , "0x", 2); - for (ii = 8 ; ii > 0; ii--) { + for (ii = sizeof(long int) * 2 ; ii > 0; ii--) { jj = ii - 1; uint8_t digit = ((hex & (0xF << (jj*4))) >> (jj*4)); towrite = digit < 0xA ? ('0' + digit) : ('A' + (digit - 0xA)); -- cgit v1.2.1-18-gbd029 From 7f861d2678aebbccc0a980c497febee0cdd7c025 Mon Sep 17 00:00:00 2001 From: mwachs5 Date: Fri, 5 May 2017 17:27:24 -0700 Subject: coreplex-e51: Correct width of MCAUSE --- bsp/env/coreplexip-arty.h | 2 +- bsp/env/coreplexip-e31-arty/platform.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bsp/env/coreplexip-arty.h b/bsp/env/coreplexip-arty.h index 12ff9a6..161da7c 100644 --- a/bsp/env/coreplexip-arty.h +++ b/bsp/env/coreplexip-arty.h @@ -97,6 +97,6 @@ #define RTC_FREQ 32768 -void write_hex(int fd, uint32_t hex); +void write_hex(int fd, long int hex); #endif /* _SIFIVE_COREPLEXIP_ARTY_H */ diff --git a/bsp/env/coreplexip-e31-arty/platform.h b/bsp/env/coreplexip-e31-arty/platform.h index 2c9794c..42c8887 100644 --- a/bsp/env/coreplexip-e31-arty/platform.h +++ b/bsp/env/coreplexip-e31-arty/platform.h @@ -9,8 +9,8 @@ #define MCAUSE_INT 0x80000000UL #define MCAUSE_CAUSE 0x7FFFFFFFUL #else -#define MCAUSE_INT 0x80000000000000000UL -#define MCAUSE_CAUSE 0x7FFFFFFFFFFFFFFFFUL +#define MCAUSE_INT 0x8000000000000000UL +#define MCAUSE_CAUSE 0x7FFFFFFFFFFFFFFFUL #endif #define IRQ_M_LOCAL 16 -- cgit v1.2.1-18-gbd029