hwaccess: fix build on non-x86 targets

The changes to hwaccess in commit 49d758698a0d (hwaccess: move x86
port I/O related code into own files) cause build failure on non-x86
systems because the hwaccess_x86_* headers are included in some files
that are built for all platforms (particularly those in the internal
programmer) and those headers in turn include <sys/io.h> which only
exists on x86.

This change avoids including those headers on non-x86 platforms so
the internal programmer can be built without errors.

The comment on the stub implementation of rget_io_perms() is also
modified to remove references to non-x86 platforms, since that file is
only built on x86 now.

Tested: meson build succeeds for both x86 and ARM targets

Signed-off-by: Peter Marheine <pmarheine@chromium.org>
Change-Id: I20f122679c30340b2c73afd7419e79644ddc3c4e
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/61194
Original-Reviewed-by: Nico Huber <nico.h@gmx.de>
Original-Reviewed-by: Thomas Heijligen <src@posteo.de>
Original-Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72279
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/board_enable.c b/board_enable.c
index 539bc16..d2e1c35 100644
--- a/board_enable.c
+++ b/board_enable.c
@@ -26,11 +26,13 @@
 #include <stdlib.h>
 #include "flash.h"
 #include "programmer.h"
-#include "hwaccess_x86_io.h"
-#include "hwaccess_x86_msr.h"
 #include "platform/pci.h"
 
 #if defined(__i386__) || defined(__x86_64__)
+
+#include "hwaccess_x86_io.h"
+#include "hwaccess_x86_msr.h"
+
 /*
  * Helper functions for many Winbond Super I/Os of the W836xx range.
  */
diff --git a/chipset_enable.c b/chipset_enable.c
index 5fed9e7..459819a 100644
--- a/chipset_enable.c
+++ b/chipset_enable.c
@@ -34,8 +34,6 @@
 #include <errno.h>
 #include "flash.h"
 #include "programmer.h"
-#include "hwaccess_x86_io.h"
-#include "hwaccess_x86_msr.h"
 #include "hwaccess_physmap.h"
 #include "platform/pci.h"
 
@@ -43,6 +41,9 @@
 
 #if defined(__i386__) || defined(__x86_64__)
 
+#include "hwaccess_x86_io.h"
+#include "hwaccess_x86_msr.h"
+
 static int enable_flash_ali_m1533(struct pci_dev *dev, const char *name)
 {
 	uint8_t tmp;
diff --git a/hwaccess_x86_io.c b/hwaccess_x86_io.c
index 3152bfe..fc6ee54 100644
--- a/hwaccess_x86_io.c
+++ b/hwaccess_x86_io.c
@@ -79,7 +79,6 @@
 #else
 
 /* DJGPP and libpayload environments have full PCI port I/O permissions by default. */
-/* PCI port I/O support is unimplemented on PPC/MIPS and unavailable on ARM. */
 int rget_io_perms(void)
 {
 	return 0;
diff --git a/internal.c b/internal.c
index c7a4a2f..9d2069d 100644
--- a/internal.c
+++ b/internal.c
@@ -19,10 +19,13 @@
 #include <stdlib.h>
 #include "flash.h"
 #include "programmer.h"
-#include "hwaccess_x86_io.h"
 #include "hwaccess_physmap.h"
 #include "platform/pci.h"
 
+#if defined(__i386__) || defined(__x86_64__)
+#include "hwaccess_x86_io.h"
+#endif
+
 struct pci_dev *pci_dev_find_vendorclass(uint16_t vendor, uint16_t devclass)
 {
 	struct pci_dev *temp;
@@ -219,10 +222,6 @@
 	}
 	free(arg);
 
-	if (rget_io_perms()) {
-		ret = 1;
-		goto internal_init_exit;
-	}
 
 	/* Unconditionally reset global state from previous operation. */
 	laptop_ok = false;
@@ -252,6 +251,11 @@
 	}
 
 #if defined(__i386__) || defined(__x86_64__)
+	if (rget_io_perms()) {
+		ret = 1;
+		goto internal_init_exit;
+	}
+
 	if ((cb_parse_table(&cb_vendor, &cb_model) == 0) && (board_vendor != NULL) && (board_model != NULL)) {
 		if (strcasecmp(board_vendor, cb_vendor) || strcasecmp(board_model, cb_model)) {
 			msg_pwarn("Warning: The mainboard IDs set by -p internal:mainboard (%s:%s) do not\n"