diff --git a/payloads/libpayload/include/libpayload.h b/payloads/libpayload/include/libpayload.h index 7701a052c2..e08d211983 100644 --- a/payloads/libpayload/include/libpayload.h +++ b/payloads/libpayload/include/libpayload.h @@ -472,18 +472,16 @@ static inline int __ffs64(u64 x) { return log2_64(x & (u64)(-(s64)x)); } * @defgroup mmio MMIO helper functions * @{ */ -#if !CONFIG(LP_ARCH_MIPS) void buffer_from_fifo32(void *buffer, size_t size, void *fifo, int fifo_stride, int fifo_width); -void buffer_to_fifo32_prefix(void *buffer, u32 prefix, int prefsz, size_t size, +void buffer_to_fifo32_prefix(const void *buffer, u32 prefix, int prefsz, size_t size, void *fifo, int fifo_stride, int fifo_width); -static inline void buffer_to_fifo32(void *buffer, size_t size, void *fifo, +static inline void buffer_to_fifo32(const void *buffer, size_t size, void *fifo, int fifo_stride, int fifo_width) { buffer_to_fifo32_prefix(buffer, 0, 0, size, fifo, fifo_stride, fifo_width); } -#endif /** @} */ /** diff --git a/payloads/libpayload/libc/lib.c b/payloads/libpayload/libc/lib.c index 8387e02a47..77e213c7e0 100644 --- a/payloads/libpayload/libc/lib.c +++ b/payloads/libpayload/libc/lib.c @@ -126,7 +126,6 @@ char *getenv(const char *name) return NULL; } -#if !CONFIG(LP_ARCH_MIPS) /* * Reads a transfer buffer from 32-bit FIFO registers. fifo_stride is the * distance in bytes between registers (e.g. pass 4 for a normal array of 32-bit @@ -156,10 +155,10 @@ void buffer_from_fifo32(void *buffer, size_t size, void *fifo, * bytes of the 'prefix' u32 parameter and any high-order bytes exceeding prefsz * must be 0. Note that 'size' counts total bytes written, including 'prefsz'. */ -void buffer_to_fifo32_prefix(void *buffer, u32 prefix, int prefsz, size_t size, +void buffer_to_fifo32_prefix(const void *buffer, u32 prefix, int prefsz, size_t size, void *fifo, int fifo_stride, int fifo_width) { - u8 *p = buffer; + const u8 *p = buffer; int i, j = prefsz; assert(fifo_width > 0 && fifo_width <= sizeof(u32) && @@ -175,4 +174,3 @@ void buffer_to_fifo32_prefix(void *buffer, u32 prefix, int prefsz, size_t size, } } -#endif diff --git a/src/device/mmio.c b/src/device/mmio.c index 8b08b9b2a4..de8c8d3955 100644 --- a/src/device/mmio.c +++ b/src/device/mmio.c @@ -21,10 +21,10 @@ void buffer_from_fifo32(void *buffer, size_t size, void *fifo, } } -void buffer_to_fifo32_prefix(void *buffer, u32 prefix, int prefsz, size_t size, +void buffer_to_fifo32_prefix(const void *buffer, u32 prefix, int prefsz, size_t size, void *fifo, int fifo_stride, int fifo_width) { - u8 *p = buffer; + const u8 *p = buffer; int i, j = prefsz; assert(fifo_width > 0 && fifo_width <= sizeof(u32) && diff --git a/src/include/device/mmio.h b/src/include/device/mmio.h index ca3dfa956e..3c9a83363f 100644 --- a/src/include/device/mmio.h +++ b/src/include/device/mmio.h @@ -42,7 +42,7 @@ void buffer_from_fifo32(void *buffer, size_t size, void *fifo, * bytes of the 'prefix' u32 parameter and any high-order bytes exceeding prefsz * must be 0. Note that 'size' counts total bytes written, including 'prefsz'. */ -void buffer_to_fifo32_prefix(void *buffer, u32 prefix, int prefsz, size_t size, +void buffer_to_fifo32_prefix(const void *buffer, u32 prefix, int prefsz, size_t size, void *fifo, int fifo_stride, int fifo_width); /* @@ -51,7 +51,7 @@ void buffer_to_fifo32_prefix(void *buffer, u32 prefix, int prefsz, size_t size, * registers or 0 to write everything into the same register). fifo_width is * the amount of bytes written per register (can be 1 through 4). */ -static inline void buffer_to_fifo32(void *buffer, size_t size, void *fifo, +static inline void buffer_to_fifo32(const void *buffer, size_t size, void *fifo, int fifo_stride, int fifo_width) { buffer_to_fifo32_prefix(buffer, 0, 0, size, fifo,