diff options
author | Jon Murphy <jpmurphy@google.com> | 2024-11-25 13:48:02 -0700 |
---|---|---|
committer | Jon Murphy <jpmurphy@google.com> | 2024-11-28 18:35:19 +0000 |
commit | 4f2c280e1d881e2d526c867f75c8216b60e7751b (patch) | |
tree | 3dbf56cf9a21acddce97ff6ca59df1465e82cd1d | |
parent | 0b617c930082d00595a2d7427bc8ce7af6a9f9e9 (diff) |
mb/google/zork: Update FP enable
Add/update FP enable/disable based on SKU ID. This is meant
to resolve a UMA issue with devices that had the FPMCU populated on
non-fp devices. Since the FPMCU is present, and the firmware enables
the power GPIO's based on variant, not SKU, the devices were reporting
data on fingerprint errantly. Specify the SKUs which should not have a
FP sensor and default to true to maintain the legacy behavior for
undefined devices and limit risk. Variants which do not have FP SKUs
will be unaffected.
BUG=b:354769653
TEST=Flash to zork, test FP.
Disable test SKU, flash on zork, test FP.
To test, run `ectool --name=cros_fp version` in the shell
When enabled, the fpmcu fw version should be displayed.
When disabled, an error should be displayed because the fpmcu
is inaccessible.
Change-Id: Ic6dc71013a1c0d5ee5263109eed87a1b31800232
Signed-off-by: Jon Murphy <jpmurphy@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85294
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r-- | src/mainboard/google/zork/variants/berknip/variant.c | 97 | ||||
-rw-r--r-- | src/mainboard/google/zork/variants/morphius/variant.c | 38 |
2 files changed, 112 insertions, 23 deletions
diff --git a/src/mainboard/google/zork/variants/berknip/variant.c b/src/mainboard/google/zork/variants/berknip/variant.c index 1b35c5cc03..06f1556d51 100644 --- a/src/mainboard/google/zork/variants/berknip/variant.c +++ b/src/mainboard/google/zork/variants/berknip/variant.c @@ -11,3 +11,100 @@ void variant_devtree_update(void) if (!(variant_has_emmc() || boot_is_factory_unprovisioned())) DEV_PTR(emmc)->enabled = 0; } + +bool variant_has_fingerprint(void) +{ + switch (sku_id()) { + case 0x5A030010: + case 0x5A030011: + case 0x5A030012: + case 0x5A030013: + case 0x5A030014: + case 0x5A030020: + case 0x5A030040: + case 0x5A030043: + case 0x5A030080: + case 0x5A030081: + case 0x5A030082: + case 0x5A030083: + case 0x5A030084: + case 0x5A030085: + case 0x5A030086: + case 0x5A030087: + case 0x5A030090: + case 0x5A030091: + case 0x5A030092: + case 0x5A030093: + case 0x5A03009C: + case 0x5A03009D: + case 0x5A03009E: + case 0x5A03009F: + case 0x5A0300A0: + case 0x5A0300A1: + case 0x5A0300A2: + case 0x5A0300A3: + case 0x5A0300B8: + case 0x5A0300BD: + case 0x5A0300BF: + case 0x5A0300C1: + case 0x5A0300C3: + case 0x5A0300C5: + case 0x5A0300C7: + case 0x5A0300C9: + case 0x5A0300CB: + case 0x5A0300CD: + case 0x5A0300CF: + case 0x5A0300D1: + case 0x5A0300D3: + case 0x5A0300D5: + case 0x5A0300D7: + case 0x5A0300D9: + case 0x5A0300DB: + case 0x5A0300DD: + case 0x5A0300DF: + case 0x5A0300E1: + case 0x5A0300E3: + case 0x5A0300E5: + case 0x5A0300E7: + case 0x5A0300E9: + case 0x5A0300EB: + case 0x5A0300ED: + case 0x5A0300EF: + case 0x5A0300F1: + case 0x5A0300F3: + case 0x5A0300F5: + case 0x5A0300F7: + case 0x5A0300F8: + case 0x5A0300FA: + case 0x5A0300FB: + case 0x5A0300FD: + case 0x5A0300FE: + case 0x5A030100: + case 0x5A030101: + case 0x5A030103: + case 0x5A030104: + case 0x5A030106: + case 0x5A030107: + case 0x5A030109: + case 0x5A03010B: + case 0x5A03010C: + case 0x5A03010E: + case 0x5A03010F: + case 0x5A030111: + case 0x5A030112: + case 0x5A030114: + case 0x5A030115: + case 0x5A030117: + case 0x5A030118: + case 0x5A03011A: + case 0x5A03011B: + case 0x5A03011D: + case 0x5A03011E: + case 0x5A030120: + case 0x5A030121: + case 0x5A030123: + return false; + default: + return true; + } +} diff --git a/src/mainboard/google/zork/variants/morphius/variant.c b/src/mainboard/google/zork/variants/morphius/variant.c index b5ee902401..e62718f656 100644 --- a/src/mainboard/google/zork/variants/morphius/variant.c +++ b/src/mainboard/google/zork/variants/morphius/variant.c @@ -3,17 +3,6 @@ #include <baseboard/variants.h> #include <static.h> -#define MORPHIUS_SKU_1 0x5A010010 -#define MORPHIUS_SKU_2 0x5A010011 -#define MORPHIUS_SKU_3 0x5A010012 -#define MORPHIUS_SKU_4 0x5A010014 -#define MORPHIUS_SKU_5 0x5A010029 -#define MORPHIUS_SKU_11 0x5A010025 -#define MORPHIUS_SKU_12 0x5A010026 -#define MORPHIUS_SKU_13 0x5A010013 -#define MORPHIUS_SKU_14 0x5A010028 -#define MORPHIUS_SKU_15 0x5A010016 - void variant_devtree_update(void) { /* @@ -26,18 +15,21 @@ void variant_devtree_update(void) bool variant_has_fingerprint(void) { switch (sku_id()) { - case MORPHIUS_SKU_1: - case MORPHIUS_SKU_2: - case MORPHIUS_SKU_3: - case MORPHIUS_SKU_4: - case MORPHIUS_SKU_5: - case MORPHIUS_SKU_11: - case MORPHIUS_SKU_12: - case MORPHIUS_SKU_13: - case MORPHIUS_SKU_14: - case MORPHIUS_SKU_15: - return true; - default: + case 0x5A010001: + case 0x5A010002: + case 0x5A010003: + case 0x5A010020: + case 0x5A010021: + case 0x5A010022: + case 0x5A010023: + case 0x5A010024: + case 0x5A01002A: + case 0x5A01002B: + case 0x5A01002C: + case 0x5A01002D: + case 0x5A01002E: return false; + default: + return true; } } |