diff options
author | Peter Marheine <pmarheine@chromium.org> | 2022-01-19 17:11:09 +1100 |
---|---|---|
committer | Nico Huber <nico.h@gmx.de> | 2022-01-25 17:31:42 +0000 |
commit | 36f87376a328ba3fe7c676c4e27214f23a5e146d (patch) | |
tree | b1ef079b720915c40b1385d0017f0f0d0985dd8f | |
parent | 35547ed3afeac1d9840f11ef2bcc75624a355a11 (diff) | |
download | flashrom-36f87376a328ba3fe7c676c4e27214f23a5e146d.tar.gz flashrom-36f87376a328ba3fe7c676c4e27214f23a5e146d.tar.bz2 flashrom-36f87376a328ba3fe7c676c4e27214f23a5e146d.zip |
hwaccess: fix build on non-x86 targets
The changes to hwaccess in commit 49d758698a0dd166679c48b1a2785e50e9b0cc83
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.
BUG=None
TEST=meson build succeeds for both x86 and ARM targets
Signed-off-by: Peter Marheine <pmarheine@chromium.org>
Change-Id: I20f122679c30340b2c73afd7419e79644ddc3c4e
Reviewed-on: https://review.coreboot.org/c/flashrom/+/61194
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Thomas Heijligen <src@posteo.de>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r-- | board_enable.c | 6 | ||||
-rw-r--r-- | chipset_enable.c | 5 | ||||
-rw-r--r-- | hwaccess_x86_io.c | 1 | ||||
-rw-r--r-- | internal.c | 15 |
4 files changed, 16 insertions, 11 deletions
diff --git a/board_enable.c b/board_enable.c index c23e257d..94cfc9d0 100644 --- a/board_enable.c +++ b/board_enable.c @@ -25,11 +25,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 d72300e6..fe7ec153 100644 --- a/chipset_enable.c +++ b/chipset_enable.c @@ -33,8 +33,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" @@ -42,6 +40,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 3152bfe5..fc6ee54f 100644 --- a/hwaccess_x86_io.c +++ b/hwaccess_x86_io.c @@ -79,7 +79,6 @@ int rget_io_perms(void) #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; @@ -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 + int is_laptop = 0; int laptop_ok = 0; @@ -241,11 +244,6 @@ static int internal_init(void) } free(arg); - if (rget_io_perms()) { - ret = 1; - goto internal_init_exit; - } - /* Default to Parallel/LPC/FWH flash devices. If a known host controller * is found, the host controller init routine sets the * internal_buses_supported bitfield. @@ -271,6 +269,11 @@ static int internal_init(void) } #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" |