summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorAlper Nebi Yasak <alpernebiyasak@gmail.com>2023-12-19 19:02:16 +0300
committerNico Huber <nico.h@gmx.de>2024-06-06 22:05:14 +0000
commit4e00e6291a69c24d87d0899fdb71b41e1ec39537 (patch)
tree67c61b5c6197213122271d4c219da27e58519a03 /src/arch
parente4d73ec578e74495ab91279300f9d1dd61df349b (diff)
arch/io.h: Add port I/O functions to other architectures
The QEMU Bochs display driver and the QEMU Firmware Configuration interface code (in the qemu-i440fx mainboard dir) were written for x86. These devices are available in QEMU VMs of other architectures as well, so we want to port them to be independent from x86. The main problem is that the drivers use x86 port I/O functions to communicate with devices over PCI I/O space. These are currently not available for ARM* and RISC-V, although it is often still possible to access PCI I/O ports over MMIO through a translator. Add implementations of port I/O functions that work with PCI I/O space on these architectures as well, assuming there is such a translator at a known address configured at build-time. Change-Id: If7d9177283e8c692088ba8e30d6dfe52623c8cb9 Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/80372 Reviewed-by: Nico Huber <nico.h@gmx.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/arm/include/armv4/arch/io.h8
-rw-r--r--src/arch/arm/include/armv7/arch/io.h8
-rw-r--r--src/arch/arm64/include/armv8/arch/io.h8
-rw-r--r--src/arch/riscv/include/arch/io.h8
4 files changed, 32 insertions, 0 deletions
diff --git a/src/arch/arm/include/armv4/arch/io.h b/src/arch/arm/include/armv4/arch/io.h
new file mode 100644
index 0000000000..b0df7d74cb
--- /dev/null
+++ b/src/arch/arm/include/armv4/arch/io.h
@@ -0,0 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ARCH_IO_H__
+#define __ARCH_IO_H__
+
+#include <arch-generic/io.h>
+
+#endif
diff --git a/src/arch/arm/include/armv7/arch/io.h b/src/arch/arm/include/armv7/arch/io.h
new file mode 100644
index 0000000000..b0df7d74cb
--- /dev/null
+++ b/src/arch/arm/include/armv7/arch/io.h
@@ -0,0 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ARCH_IO_H__
+#define __ARCH_IO_H__
+
+#include <arch-generic/io.h>
+
+#endif
diff --git a/src/arch/arm64/include/armv8/arch/io.h b/src/arch/arm64/include/armv8/arch/io.h
new file mode 100644
index 0000000000..b0df7d74cb
--- /dev/null
+++ b/src/arch/arm64/include/armv8/arch/io.h
@@ -0,0 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ARCH_IO_H__
+#define __ARCH_IO_H__
+
+#include <arch-generic/io.h>
+
+#endif
diff --git a/src/arch/riscv/include/arch/io.h b/src/arch/riscv/include/arch/io.h
new file mode 100644
index 0000000000..b0df7d74cb
--- /dev/null
+++ b/src/arch/riscv/include/arch/io.h
@@ -0,0 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ARCH_IO_H__
+#define __ARCH_IO_H__
+
+#include <arch-generic/io.h>
+
+#endif