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>
This commit is contained in:
Marshall Dawson 2019-05-22 08:08:23 -06:00 committed by Martin Roth
parent 08462ce590
commit 5d2e1d8023
1 changed files with 7 additions and 15 deletions

View File

@ -142,11 +142,7 @@ uint8_t biosram_read8(uint8_t reg)
uint16_t biosram_read16(uint8_t reg) /* Must be 1 byte at a time */ uint16_t biosram_read16(uint8_t reg) /* Must be 1 byte at a time */
{ {
int i; return (biosram_read8(reg + sizeof(uint8_t)) << 8 | biosram_read8(reg));
uint16_t value = 0;
for (i = sizeof(value) - 1 ; i >= 0 ; i--)
value = (value << 8) | biosram_read8(reg + i);
return value;
} }
uint32_t biosram_read32(uint8_t reg) uint32_t biosram_read32(uint8_t reg)
@ -162,20 +158,16 @@ void biosram_write8(uint8_t reg, uint8_t value)
void biosram_write16(uint8_t reg, uint16_t value) void biosram_write16(uint8_t reg, uint16_t value)
{ {
int i; biosram_write8(reg, value & 0xff);
for (i = 0 ; i < sizeof(value) ; i++) { value >>= 8;
biosram_write8(reg + i, value & 0xff); biosram_write8(reg + sizeof(uint8_t), value & 0xff);
value >>= 8;
}
} }
void biosram_write32(uint8_t reg, uint32_t value) void biosram_write32(uint8_t reg, uint32_t value)
{ {
int i; biosram_write16(reg, value & 0xffff);
for (i = 0 ; i < sizeof(value) ; i++) { value >>= 16;
biosram_write8(reg + i, value & 0xff); biosram_write16(reg + sizeof(uint16_t), value & 0xffff);
value >>= 8;
}
} }
/* cmosram read/write - access registers at 0xfed80600 - currently unused */ /* cmosram read/write - access registers at 0xfed80600 - currently unused */