Martin Roth has submitted this change and it was merged. ( https://review.coreboot.org/c/coreboot/+/32932 )
Change subject: soc/amd/common: Make biosram functions more readable ......................................................................
soc/amd/common: Make biosram functions more readable
Modify the 16 and 32 bit BIOS RAM access functions that had been originally moved from stoneyridge. This was suggested in the review of 69486cac7: Create AcpiMmio functionality from stoneyridge
Change-Id: I5b491da6f263cbab2b549301e16a7e19896f2428 Signed-off-by: Marshall Dawson marshalldawson3rd@gmail.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/32932 Reviewed-by: Richard Spiegel richard.spiegel@silverbackltd.com Reviewed-by: Furquan Shaikh furquan@google.com Tested-by: build bot (Jenkins) no-reply@coreboot.org --- M src/soc/amd/common/block/acpimmio/mmio_util.c 1 file changed, 7 insertions(+), 15 deletions(-)
Approvals: build bot (Jenkins): Verified Furquan Shaikh: Looks good to me, approved Richard Spiegel: Looks good to me, approved
diff --git a/src/soc/amd/common/block/acpimmio/mmio_util.c b/src/soc/amd/common/block/acpimmio/mmio_util.c index d6320d6..c8c6988 100644 --- a/src/soc/amd/common/block/acpimmio/mmio_util.c +++ b/src/soc/amd/common/block/acpimmio/mmio_util.c @@ -142,11 +142,7 @@
uint16_t biosram_read16(uint8_t reg) /* Must be 1 byte at a time */ { - int i; - uint16_t value = 0; - for (i = sizeof(value) - 1 ; i >= 0 ; i--) - value = (value << 8) | biosram_read8(reg + i); - return value; + return (biosram_read8(reg + sizeof(uint8_t)) << 8 | biosram_read8(reg)); }
uint32_t biosram_read32(uint8_t reg) @@ -162,20 +158,16 @@
void biosram_write16(uint8_t reg, uint16_t value) { - int i; - for (i = 0 ; i < sizeof(value) ; i++) { - biosram_write8(reg + i, value & 0xff); - value >>= 8; - } + biosram_write8(reg, value & 0xff); + value >>= 8; + biosram_write8(reg + sizeof(uint8_t), value & 0xff); }
void biosram_write32(uint8_t reg, uint32_t value) { - int i; - for (i = 0 ; i < sizeof(value) ; i++) { - biosram_write8(reg + i, value & 0xff); - value >>= 8; - } + biosram_write16(reg, value & 0xffff); + value >>= 16; + biosram_write16(reg + sizeof(uint16_t), value & 0xffff); }
/* cmosram read/write - access registers at 0xfed80600 - currently unused */