summaryrefslogtreecommitdiff
path: root/src/arch/x86
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86')
-rw-r--r--src/arch/x86/include/arch/io.h124
-rw-r--r--src/arch/x86/include/arch/mmio.h71
2 files changed, 73 insertions, 122 deletions
diff --git a/src/arch/x86/include/arch/io.h b/src/arch/x86/include/arch/io.h
index f0c0c80260..d39bbb3ff4 100644
--- a/src/arch/x86/include/arch/io.h
+++ b/src/arch/x86/include/arch/io.h
@@ -11,10 +11,9 @@
* GNU General Public License for more details.
*/
-#ifndef _ASM_IO_H
-#define _ASM_IO_H
+#ifndef __ARCH_IO_H__
+#define __ARCH_IO_H__
-#include <endian.h>
#include <stdint.h>
/*
@@ -150,123 +149,4 @@ static inline void insl(uint16_t port, void *addr, unsigned long count)
);
}
-static __always_inline uint8_t read8(
- const volatile void *addr)
-{
- return *((volatile uint8_t *)(addr));
-}
-
-static __always_inline uint16_t read16(
- const volatile void *addr)
-{
- return *((volatile uint16_t *)(addr));
-}
-
-static __always_inline uint32_t read32(
- const volatile void *addr)
-{
- return *((volatile uint32_t *)(addr));
-}
-
-#ifndef __ROMCC__
-static __always_inline uint64_t read64(
- const volatile void *addr)
-{
- return *((volatile uint64_t *)(addr));
-}
-#endif
-
-static __always_inline void write8(volatile void *addr,
- uint8_t value)
-{
- *((volatile uint8_t *)(addr)) = value;
-}
-
-static __always_inline void write16(volatile void *addr,
- uint16_t value)
-{
- *((volatile uint16_t *)(addr)) = value;
-}
-
-static __always_inline void write32(volatile void *addr,
- uint32_t value)
-{
- *((volatile uint32_t *)(addr)) = value;
-}
-
-#ifndef __ROMCC__
-static __always_inline void write64(volatile void *addr,
- uint64_t value)
-{
- *((volatile uint64_t *)(addr)) = value;
-}
-#endif
-
-#include <device/pnp_type.h>
-
-#ifdef __SIMPLE_DEVICE__
-
-/* Generic functions for pnp devices */
-static __always_inline void pnp_write_config(
- pnp_devfn_t dev, uint8_t reg, uint8_t value)
-{
- unsigned int port = dev >> 8;
- outb(reg, port);
- outb(value, port + 1);
-}
-
-static __always_inline uint8_t pnp_read_config(
- pnp_devfn_t dev, uint8_t reg)
-{
- unsigned int port = dev >> 8;
- outb(reg, port);
- return inb(port + 1);
-}
-
-static __always_inline
-void pnp_set_logical_device(pnp_devfn_t dev)
-{
- unsigned int device = dev & 0xff;
- pnp_write_config(dev, 0x07, device);
-}
-
-static __always_inline
-void pnp_set_enable(pnp_devfn_t dev, int enable)
-{
- pnp_write_config(dev, 0x30, enable?0x1:0x0);
-}
-
-static __always_inline
-int pnp_read_enable(pnp_devfn_t dev)
-{
- return !!pnp_read_config(dev, 0x30);
-}
-
-static __always_inline
-void pnp_set_iobase(pnp_devfn_t dev, unsigned int index, unsigned int iobase)
-{
- pnp_write_config(dev, index + 0, (iobase >> 8) & 0xff);
- pnp_write_config(dev, index + 1, iobase & 0xff);
-}
-
-static __always_inline
-uint16_t pnp_read_iobase(pnp_devfn_t dev, unsigned int index)
-{
- return ((uint16_t)(pnp_read_config(dev, index)) << 8)
- | pnp_read_config(dev, index + 1);
-}
-
-static __always_inline
-void pnp_set_irq(pnp_devfn_t dev, unsigned int index, unsigned int irq)
-{
- pnp_write_config(dev, index, irq);
-}
-
-static __always_inline
-void pnp_set_drq(pnp_devfn_t dev, unsigned int index, unsigned int drq)
-{
- pnp_write_config(dev, index, drq & 0xff);
-}
-
-#endif /* __SIMPLE_DEVICE__ */
#endif
diff --git a/src/arch/x86/include/arch/mmio.h b/src/arch/x86/include/arch/mmio.h
new file mode 100644
index 0000000000..f271a973eb
--- /dev/null
+++ b/src/arch/x86/include/arch/mmio.h
@@ -0,0 +1,71 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef __ARCH_MMIO_H__
+#define __ARCH_MMIO_H__
+
+#include <stdint.h>
+
+static __always_inline uint8_t read8(
+ const volatile void *addr)
+{
+ return *((volatile uint8_t *)(addr));
+}
+
+static __always_inline uint16_t read16(
+ const volatile void *addr)
+{
+ return *((volatile uint16_t *)(addr));
+}
+
+static __always_inline uint32_t read32(
+ const volatile void *addr)
+{
+ return *((volatile uint32_t *)(addr));
+}
+
+#ifndef __ROMCC__
+static __always_inline uint64_t read64(
+ const volatile void *addr)
+{
+ return *((volatile uint64_t *)(addr));
+}
+#endif
+
+static __always_inline void write8(volatile void *addr,
+ uint8_t value)
+{
+ *((volatile uint8_t *)(addr)) = value;
+}
+
+static __always_inline void write16(volatile void *addr,
+ uint16_t value)
+{
+ *((volatile uint16_t *)(addr)) = value;
+}
+
+static __always_inline void write32(volatile void *addr,
+ uint32_t value)
+{
+ *((volatile uint32_t *)(addr)) = value;
+}
+
+#ifndef __ROMCC__
+static __always_inline void write64(volatile void *addr,
+ uint64_t value)
+{
+ *((volatile uint64_t *)(addr)) = value;
+}
+#endif
+
+#endif /* __ARCH_MMIO_H__ */