mirror of https://github.com/xemu-project/xemu.git
hw/char/mchp_pfsoc_mmuart: Simplify MCHP_PFSOC_MMUART_REG definition
The current MCHP_PFSOC_MMUART_REG_SIZE definition represent the size occupied by all the registers. However all registers are 32-bit wide, and the MemoryRegionOps handlers are restricted to 32-bit: static const MemoryRegionOps mchp_pfsoc_mmuart_ops = { .read = mchp_pfsoc_mmuart_read, .write = mchp_pfsoc_mmuart_write, .impl = { .min_access_size = 4, .max_access_size = 4, }, Avoid being triskaidekaphobic, simplify by using the number of registers. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Bin Meng <bin.meng@windriver.com> Tested-by: Bin Meng <bin.meng@windriver.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-id: 20210925133407.1259392-2-f4bug@amsat.org Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
6a03349007
commit
284a66a8f6
|
@ -29,13 +29,14 @@ static uint64_t mchp_pfsoc_mmuart_read(void *opaque, hwaddr addr, unsigned size)
|
|||
{
|
||||
MchpPfSoCMMUartState *s = opaque;
|
||||
|
||||
if (addr >= MCHP_PFSOC_MMUART_REG_SIZE) {
|
||||
addr >>= 2;
|
||||
if (addr >= MCHP_PFSOC_MMUART_REG_COUNT) {
|
||||
qemu_log_mask(LOG_GUEST_ERROR, "%s: read: addr=0x%" HWADDR_PRIx "\n",
|
||||
__func__, addr);
|
||||
__func__, addr << 2);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return s->reg[addr / sizeof(uint32_t)];
|
||||
return s->reg[addr];
|
||||
}
|
||||
|
||||
static void mchp_pfsoc_mmuart_write(void *opaque, hwaddr addr,
|
||||
|
@ -44,13 +45,14 @@ static void mchp_pfsoc_mmuart_write(void *opaque, hwaddr addr,
|
|||
MchpPfSoCMMUartState *s = opaque;
|
||||
uint32_t val32 = (uint32_t)value;
|
||||
|
||||
if (addr >= MCHP_PFSOC_MMUART_REG_SIZE) {
|
||||
addr >>= 2;
|
||||
if (addr >= MCHP_PFSOC_MMUART_REG_COUNT) {
|
||||
qemu_log_mask(LOG_GUEST_ERROR, "%s: bad write: addr=0x%" HWADDR_PRIx
|
||||
" v=0x%x\n", __func__, addr, val32);
|
||||
" v=0x%x\n", __func__, addr << 2, val32);
|
||||
return;
|
||||
}
|
||||
|
||||
s->reg[addr / sizeof(uint32_t)] = val32;
|
||||
s->reg[addr] = val32;
|
||||
}
|
||||
|
||||
static const MemoryRegionOps mchp_pfsoc_mmuart_ops = {
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
#include "hw/char/serial.h"
|
||||
|
||||
#define MCHP_PFSOC_MMUART_REG_SIZE 52
|
||||
#define MCHP_PFSOC_MMUART_REG_COUNT 13
|
||||
|
||||
typedef struct MchpPfSoCMMUartState {
|
||||
MemoryRegion iomem;
|
||||
|
@ -39,7 +39,7 @@ typedef struct MchpPfSoCMMUartState {
|
|||
|
||||
SerialMM *serial;
|
||||
|
||||
uint32_t reg[MCHP_PFSOC_MMUART_REG_SIZE / sizeof(uint32_t)];
|
||||
uint32_t reg[MCHP_PFSOC_MMUART_REG_COUNT];
|
||||
} MchpPfSoCMMUartState;
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue