diff options
author | Jonathan Neuschäfer <j.neuschaefer@gmx.net> | 2017-10-30 17:20:18 +0100 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2017-11-04 00:33:26 +0000 |
commit | 0781cbe1d33e62a26a234962bc271209cc22c931 (patch) | |
tree | 99aca77e0aab82cd3c869f333a6ff33fd63f391d /src/southbridge | |
parent | 7bd4715a7016b3228df877d625cf26a3694cfebe (diff) |
sb and soc: Enforce correct offset of member "chromeos" in global_nvs_t
The padding has recently been broken in commit 90ebf96df5
("soc/intel/skylake: Add GNVS variables and include SGX ASL") and fixed
again in commit af88398887 ("soc/intel/skylake: Fix broken GNVS offset
for chromeos"). Avoid this bug in the future.
Change-Id: I1bf3027bba239c8747ad26a3130a7e047d3b8c94
Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Reviewed-on: https://review.coreboot.org/22229
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Diffstat (limited to 'src/southbridge')
-rw-r--r-- | src/southbridge/intel/bd82x6x/nvs.h | 7 | ||||
-rw-r--r-- | src/southbridge/intel/fsp_bd82x6x/nvs.h | 5 | ||||
-rw-r--r-- | src/southbridge/intel/fsp_i89xx/nvs.h | 5 | ||||
-rw-r--r-- | src/southbridge/intel/ibexpeak/nvs.h | 5 | ||||
-rw-r--r-- | src/southbridge/intel/lynxpoint/nvs.h | 5 |
5 files changed, 21 insertions, 6 deletions
diff --git a/src/southbridge/intel/bd82x6x/nvs.h b/src/southbridge/intel/bd82x6x/nvs.h index 51fc7bb1f4..207f763cee 100644 --- a/src/southbridge/intel/bd82x6x/nvs.h +++ b/src/southbridge/intel/bd82x6x/nvs.h @@ -14,10 +14,12 @@ * GNU General Public License for more details. */ -#include <stdint.h> +#include <commonlib/helpers.h> #include <compiler.h> +#include <stdint.h> #include "vendorcode/google/chromeos/gnvs.h" -typedef struct { + +typedef struct global_nvs_t { /* Miscellaneous */ u16 osys; /* 0x00 - Operating System */ u8 smif; /* 0x02 - SMI function call ("TRAP") */ @@ -152,6 +154,7 @@ typedef struct { /* ChromeOS specific (starts at 0x100)*/ chromeos_acpi_t chromeos; } __packed global_nvs_t; +check_member(global_nvs_t, chromeos, 0x100); #ifdef __SMM__ /* Used in SMM to find the ACPI GNVS address */ diff --git a/src/southbridge/intel/fsp_bd82x6x/nvs.h b/src/southbridge/intel/fsp_bd82x6x/nvs.h index fc843194a7..a0e063c393 100644 --- a/src/southbridge/intel/fsp_bd82x6x/nvs.h +++ b/src/southbridge/intel/fsp_bd82x6x/nvs.h @@ -14,9 +14,11 @@ * GNU General Public License for more details. */ +#include <commonlib/helpers.h> #include <compiler.h> #include "vendorcode/google/chromeos/gnvs.h" -typedef struct { + +typedef struct global_nvs_t { /* Miscellaneous */ u16 osys; /* 0x00 - Operating System */ u8 smif; /* 0x02 - SMI function call ("TRAP") */ @@ -148,6 +150,7 @@ typedef struct { /* ChromeOS specific (starts at 0x100)*/ chromeos_acpi_t chromeos; } __packed global_nvs_t; +check_member(global_nvs_t, chromeos, 0x100); #ifdef __SMM__ /* Used in SMM to find the ACPI GNVS address */ diff --git a/src/southbridge/intel/fsp_i89xx/nvs.h b/src/southbridge/intel/fsp_i89xx/nvs.h index fc843194a7..a0e063c393 100644 --- a/src/southbridge/intel/fsp_i89xx/nvs.h +++ b/src/southbridge/intel/fsp_i89xx/nvs.h @@ -14,9 +14,11 @@ * GNU General Public License for more details. */ +#include <commonlib/helpers.h> #include <compiler.h> #include "vendorcode/google/chromeos/gnvs.h" -typedef struct { + +typedef struct global_nvs_t { /* Miscellaneous */ u16 osys; /* 0x00 - Operating System */ u8 smif; /* 0x02 - SMI function call ("TRAP") */ @@ -148,6 +150,7 @@ typedef struct { /* ChromeOS specific (starts at 0x100)*/ chromeos_acpi_t chromeos; } __packed global_nvs_t; +check_member(global_nvs_t, chromeos, 0x100); #ifdef __SMM__ /* Used in SMM to find the ACPI GNVS address */ diff --git a/src/southbridge/intel/ibexpeak/nvs.h b/src/southbridge/intel/ibexpeak/nvs.h index 6cd8ec3c4f..870391183f 100644 --- a/src/southbridge/intel/ibexpeak/nvs.h +++ b/src/southbridge/intel/ibexpeak/nvs.h @@ -14,9 +14,11 @@ * GNU General Public License for more details. */ +#include <commonlib/helpers.h> #include <compiler.h> #include "vendorcode/google/chromeos/gnvs.h" -typedef struct { + +typedef struct global_nvs_t { /* Miscellaneous */ u16 osys; /* 0x00 - Operating System */ u8 smif; /* 0x02 - SMI function call ("TRAP") */ @@ -150,6 +152,7 @@ typedef struct { /* ChromeOS specific (starts at 0x100)*/ chromeos_acpi_t chromeos; } __packed global_nvs_t; +check_member(global_nvs_t, chromeos, 0x100); #ifdef __SMM__ /* Used in SMM to find the ACPI GNVS address */ diff --git a/src/southbridge/intel/lynxpoint/nvs.h b/src/southbridge/intel/lynxpoint/nvs.h index 667a6dba1b..e7d4a8b2d8 100644 --- a/src/southbridge/intel/lynxpoint/nvs.h +++ b/src/southbridge/intel/lynxpoint/nvs.h @@ -14,9 +14,11 @@ * GNU General Public License for more details. */ +#include <commonlib/helpers.h> #include <compiler.h> #include "vendorcode/google/chromeos/gnvs.h" -typedef struct { + +typedef struct global_nvs_t { /* Miscellaneous */ u16 osys; /* 0x00 - Operating System */ u8 smif; /* 0x02 - SMI function call ("TRAP") */ @@ -126,6 +128,7 @@ typedef struct { /* ChromeOS specific (starts at 0x100)*/ chromeos_acpi_t chromeos; } __packed global_nvs_t; +check_member(global_nvs_t, chromeos, 0x100); #ifdef __SMM__ /* Used in SMM to find the ACPI GNVS address */ |