aboutsummaryrefslogtreecommitdiff
path: root/src/soc/amd/common/block/acpimmio/mmio_util.c
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2019-11-25 20:03:27 +0200
committerPatrick Georgi <pgeorgi@google.com>2019-12-02 12:08:40 +0000
commit1804b158969ab849ea7c6e47b1bb6b297c1f8e45 (patch)
treeacb7e53947eb9d578939a604158605212a1e8afa /src/soc/amd/common/block/acpimmio/mmio_util.c
parentab62d940fe15a04bda3d8c17ed2f1b5585616d64 (diff)
soc/amd/common: Inline ACPI MMIO accessors
The overhead of pushing variables to stack exceeded the number of instructions the actual MMIO operation took and the build of google/aleena with inlined accessors turned out to be just slightly (<2 KiB) smaller for the entire romstage or ramstage. Simple read-modify-write MMIO cycles should optimise better now. IO cycles with index/data register are borderline, at first sight assembly looked better by not inlining them. Change-Id: If2c37c9886a0151183aa6dd80eb068d6c67b3848 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/37211 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Diffstat (limited to 'src/soc/amd/common/block/acpimmio/mmio_util.c')
-rw-r--r--src/soc/amd/common/block/acpimmio/mmio_util.c271
1 files changed, 0 insertions, 271 deletions
diff --git a/src/soc/amd/common/block/acpimmio/mmio_util.c b/src/soc/amd/common/block/acpimmio/mmio_util.c
index 1fc5fd4ed4..04d5e4af4d 100644
--- a/src/soc/amd/common/block/acpimmio/mmio_util.c
+++ b/src/soc/amd/common/block/acpimmio/mmio_util.c
@@ -15,7 +15,6 @@
#include <types.h>
#include <arch/io.h>
-#include <device/mmio.h>
#include <amdblocks/acpimmio_map.h>
#include <amdblocks/acpimmio.h>
@@ -65,101 +64,6 @@ void pm_io_write32(uint8_t reg, uint32_t value)
pm_io_write16(reg + sizeof(uint16_t), value & 0xffff);
}
-u8 sm_pci_read8(u8 reg)
-{
- return read8((void *)(ACPIMMIO_SM_PCI_BASE + reg));
-}
-
-u16 sm_pci_read16(u8 reg)
-{
- return read16((void *)(ACPIMMIO_SM_PCI_BASE + reg));
-}
-
-u32 sm_pci_read32(u8 reg)
-{
- return read32((void *)(ACPIMMIO_SM_PCI_BASE + reg));
-}
-
-void sm_pci_write8(u8 reg, u8 value)
-{
- write8((void *)(ACPIMMIO_SM_PCI_BASE + reg), value);
-}
-
-void sm_pci_write16(u8 reg, u16 value)
-{
- write16((void *)(ACPIMMIO_SM_PCI_BASE + reg), value);
-}
-
-void sm_pci_write32(u8 reg, u32 value)
-{
- write32((void *)(ACPIMMIO_SM_PCI_BASE + reg), value);
-}
-
-uint8_t smi_read8(uint8_t reg)
-{
- return read8((void *)(ACPIMMIO_SMI_BASE + reg));
-}
-
-uint16_t smi_read16(uint8_t reg)
-{
- return read16((void *)(ACPIMMIO_SMI_BASE + reg));
-}
-
-uint32_t smi_read32(uint8_t reg)
-{
- return read32((void *)(ACPIMMIO_SMI_BASE + reg));
-}
-
-void smi_write8(uint8_t reg, uint8_t value)
-{
- write8((void *)(ACPIMMIO_SMI_BASE + reg), value);
-}
-
-void smi_write16(uint8_t reg, uint16_t value)
-{
- write16((void *)(ACPIMMIO_SMI_BASE + reg), value);
-}
-
-void smi_write32(uint8_t reg, uint32_t value)
-{
- write32((void *)(ACPIMMIO_SMI_BASE + reg), value);
-}
-
-u8 pm_read8(u8 reg)
-{
- return read8((void *)(ACPIMMIO_PMIO_BASE + reg));
-}
-
-u16 pm_read16(u8 reg)
-{
- return read16((void *)(ACPIMMIO_PMIO_BASE + reg));
-}
-
-u32 pm_read32(u8 reg)
-{
- return read32((void *)(ACPIMMIO_PMIO_BASE + reg));
-}
-
-void pm_write8(u8 reg, u8 value)
-{
- write8((void *)(ACPIMMIO_PMIO_BASE + reg), value);
-}
-
-void pm_write16(u8 reg, u16 value)
-{
- write16((void *)(ACPIMMIO_PMIO_BASE + reg), value);
-}
-
-void pm_write32(u8 reg, u32 value)
-{
- write32((void *)(ACPIMMIO_PMIO_BASE + reg), value);
-}
-
-uint8_t biosram_read8(uint8_t reg)
-{
- return read8((void *)(ACPIMMIO_BIOSRAM_BASE + reg));
-}
-
uint16_t biosram_read16(uint8_t reg) /* Must be 1 byte at a time */
{
return (biosram_read8(reg + sizeof(uint8_t)) << 8 | biosram_read8(reg));
@@ -171,11 +75,6 @@ uint32_t biosram_read32(uint8_t reg)
return value | biosram_read16(reg);
}
-void biosram_write8(uint8_t reg, uint8_t value)
-{
- write8((void *)(ACPIMMIO_BIOSRAM_BASE + reg), value);
-}
-
void biosram_write16(uint8_t reg, uint16_t value)
{
biosram_write8(reg, value & 0xff);
@@ -189,173 +88,3 @@ void biosram_write32(uint8_t reg, uint32_t value)
value >>= 16;
biosram_write16(reg + sizeof(uint16_t), value & 0xffff);
}
-
-u8 acpi_read8(u8 reg)
-{
- return read8((void *)(ACPIMMIO_ACPI_BASE + reg));
-}
-
-u16 acpi_read16(u8 reg)
-{
- return read16((void *)(ACPIMMIO_ACPI_BASE + reg));
-}
-
-u32 acpi_read32(u8 reg)
-{
- return read32((void *)(ACPIMMIO_ACPI_BASE + reg));
-}
-
-void acpi_write8(u8 reg, u8 value)
-{
- write8((void *)(ACPIMMIO_ACPI_BASE + reg), value);
-}
-
-void acpi_write16(u8 reg, u16 value)
-{
- write16((void *)(ACPIMMIO_ACPI_BASE + reg), value);
-}
-
-void acpi_write32(u8 reg, u32 value)
-{
- write32((void *)(ACPIMMIO_ACPI_BASE + reg), value);
-}
-
-u8 asf_read8(u8 reg)
-{
- return read8((void *)(ACPIMMIO_ASF_BASE + reg));
-}
-
-u16 asf_read16(u8 reg)
-{
- return read16((void *)(ACPIMMIO_ASF_BASE + reg));
-}
-
-void asf_write8(u8 reg, u8 value)
-{
- write8((void *)(ACPIMMIO_ASF_BASE + reg), value);
-}
-
-void asf_write16(u8 reg, u16 value)
-{
- write16((void *)(ACPIMMIO_ASF_BASE + reg), value);
-}
-
-u8 smbus_read8(u8 reg)
-{
- return read8((void *)(ACPIMMIO_SMBUS_BASE + reg));
-}
-
-u16 smbus_read16(u8 reg)
-{
- return read16((void *)(ACPIMMIO_SMBUS_BASE + reg));
-}
-
-void smbus_write8(u8 reg, u8 value)
-{
- write8((void *)(ACPIMMIO_SMBUS_BASE + reg), value);
-}
-
-void smbus_write16(u8 reg, u16 value)
-{
- write16((void *)(ACPIMMIO_SMBUS_BASE + reg), value);
-}
-
-u8 iomux_read8(u8 reg)
-{
- return read8((void *)(ACPIMMIO_IOMUX_BASE + reg));
-}
-
-u16 iomux_read16(u8 reg)
-{
- return read16((void *)(ACPIMMIO_IOMUX_BASE + reg));
-}
-
-u32 iomux_read32(u8 reg)
-{
- return read32((void *)(ACPIMMIO_IOMUX_BASE + reg));
-}
-
-void iomux_write8(u8 reg, u8 value)
-{
- write8((void *)(ACPIMMIO_IOMUX_BASE + reg), value);
-}
-
-void iomux_write16(u8 reg, u16 value)
-{
- write16((void *)(ACPIMMIO_IOMUX_BASE + reg), value);
-}
-
-void iomux_write32(u8 reg, u32 value)
-{
- write32((void *)(ACPIMMIO_IOMUX_BASE + reg), value);
-}
-
-u8 misc_read8(u8 reg)
-{
- return read8((void *)(ACPIMMIO_MISC_BASE + reg));
-}
-
-u16 misc_read16(u8 reg)
-{
- return read16((void *)(ACPIMMIO_MISC_BASE + reg));
-}
-
-u32 misc_read32(u8 reg)
-{
- return read32((void *)(ACPIMMIO_MISC_BASE + reg));
-}
-
-void misc_write8(u8 reg, u8 value)
-{
- write8((void *)(ACPIMMIO_MISC_BASE + reg), value);
-}
-
-void misc_write16(u8 reg, u16 value)
-{
- write16((void *)(ACPIMMIO_MISC_BASE + reg), value);
-}
-
-void misc_write32(u8 reg, u32 value)
-{
- write32((void *)(ACPIMMIO_MISC_BASE + reg), value);
-}
-
-uint8_t xhci_pm_read8(uint8_t reg)
-{
- return read8((void *)(ACPIMMIO_XHCIPM_BASE + reg));
-}
-
-uint16_t xhci_pm_read16(uint8_t reg)
-{
- return read16((void *)(ACPIMMIO_XHCIPM_BASE + reg));
-}
-
-uint32_t xhci_pm_read32(uint8_t reg)
-{
- return read32((void *)(ACPIMMIO_XHCIPM_BASE + reg));
-}
-
-void xhci_pm_write8(uint8_t reg, uint8_t value)
-{
- write8((void *)(ACPIMMIO_XHCIPM_BASE + reg), value);
-}
-
-void xhci_pm_write16(uint8_t reg, uint16_t value)
-{
- write16((void *)(ACPIMMIO_XHCIPM_BASE + reg), value);
-}
-
-void xhci_pm_write32(uint8_t reg, uint32_t value)
-{
- write32((void *)(ACPIMMIO_XHCIPM_BASE + reg), value);
-}
-
-u8 aoac_read8(u8 reg)
-{
- return read8((void *)(ACPIMMIO_AOAC_BASE + reg));
-}
-
-void aoac_write8(u8 reg, u8 value)
-{
- write8((void *)(ACPIMMIO_AOAC_BASE + reg), value);
-}