amd/stoneyridge: Convert BiosRam access to MMIO

Change the BiosRam read/write functions to use the fixed MMIO range at
0xfed80500.  This is faster than two accesses per byte when using I/O
0xcd4/0xcd5.

Note that BiosRam may only be accessed byte-by-byte.  It does not decode
normally.

Change-Id: I9d8baf2bd5d9d48a87bddfb6a0b86e292a8fdf7d
Signed-off-by: Marshall Dawson <marshalldawson3rd@gmail.com>
Reviewed-on: https://review.coreboot.org/23436
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
This commit is contained in:
Marshall Dawson 2018-01-24 21:00:55 -07:00 committed by Martin Roth
parent 7539b8c391
commit 50cc53d0a9
2 changed files with 4 additions and 4 deletions

View File

@ -36,6 +36,7 @@
#define AMD_SB_ACPI_MMIO_ADDR 0xfed80000
#define APU_SMI_BASE 0xfed80200
#define PM_MMIO_BASE 0xfed80300
#define BIOSRAM_MMIO_BASE 0xfed80500
#define XHCI_ACPI_PM_MMIO_BASE 0xfed81c00
#define APU_UART0_BASE 0xfedc6000
#define APU_UART1_BASE 0xfedc8000

View File

@ -78,16 +78,15 @@ void smi_write8(uint8_t offset, uint8_t value)
uint8_t biosram_read8(uint8_t offset)
{
outb(offset, BIOSRAM_INDEX);
return inb(BIOSRAM_DATA);
return read8((void *)(BIOSRAM_MMIO_BASE + offset));
}
void biosram_write8(uint8_t offset, uint8_t value)
{
outb(offset, BIOSRAM_INDEX);
outb(value, BIOSRAM_DATA);
write8((void *)(BIOSRAM_MMIO_BASE + offset), value);
}
/* BiosRam may only be accessed a byte at a time */
uint16_t biosram_read16(uint8_t offset)
{
int i;