libpayload: use 32bit access when accessing 4byte wide uart registers
This fixes serial on rk3288. Change-Id: I3dbf3cc165e516ed7b0132332624f882c0c9b27f Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Reviewed-on: https://review.coreboot.org/13636 Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: build bot (Jenkins)
This commit is contained in:
parent
42636a7a0c
commit
d4adf58e03
|
@ -46,7 +46,10 @@ static uint8_t serial_read_reg(int offset)
|
||||||
return inb(IOBASE + offset);
|
return inb(IOBASE + offset);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
return readb(MEMBASE + offset);
|
if (lib_sysinfo.serial->regwidth == 4)
|
||||||
|
return readl(MEMBASE + offset) & 0xff;
|
||||||
|
else
|
||||||
|
return readb(MEMBASE + offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void serial_write_reg(uint8_t val, int offset)
|
static void serial_write_reg(uint8_t val, int offset)
|
||||||
|
@ -58,7 +61,10 @@ static void serial_write_reg(uint8_t val, int offset)
|
||||||
outb(val, IOBASE + offset);
|
outb(val, IOBASE + offset);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
writeb(val, MEMBASE + offset);
|
if (lib_sysinfo.serial->regwidth == 4)
|
||||||
|
writel(val & 0xff, MEMBASE + offset);
|
||||||
|
else
|
||||||
|
writeb(val, MEMBASE + offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if IS_ENABLED(CONFIG_LP_SERIAL_SET_SPEED)
|
#if IS_ENABLED(CONFIG_LP_SERIAL_SET_SPEED)
|
||||||
|
|
Loading…
Reference in New Issue