UPSTREAM: mb/google/zork: Add FP enable for Morphius
Add FP enable/disable based on SKU ID for Morphius. This is meant
to resolve a UMA issue with Morphius 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.
BUG=b:258040377
TEST=Flash to Morphius, test FP.
Disable test SKU, flash on Morphius, test FP.
(cherry picked from commit 10201aa99de8d78c6cea42a7222006165427d58a)
Original-Change-Id: If5794a9a1b7eb3daaa4cdfd1354dfb0c688624fd
Original-Signed-off-by: Jon Murphy <jpmurphy@google.com>
Original-Reviewed-on: https://review.coreboot.org/c/coreboot/+/78622
Original-Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Original-Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Original-Reviewed-by: Eric Lai <ericllai@google.com>
Original-Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com>
GitOrigin-RevId: 10201aa99de8d78c6cea42a7222006165427d58a
Change-Id: I39ba4e34dbfbd91e4c6311b4bf38f0ee1aedb34b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/coreboot/+/4979327
Tested-by: ChromeOS Prod (Robot) <chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com>
Reviewed-by: Shelley Chen <shchen@chromium.org>
Commit-Queue: Shelley Chen <shchen@chromium.org>
(cherry picked from commit 0a003e2e6edd2a46e5ac91e1db6b537135e716a0)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/coreboot/+/4980795
Reviewed-by: Mark Hasemeyer <markhas@google.com>
Commit-Queue: Karthikeyan Ramasubramanian <kramasub@google.com>
Tested-by: Jonathon Murphy <jpmurphy@google.com>
Reviewed-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Commit-Queue: Jonathon Murphy <jpmurphy@google.com>
Auto-Submit: Jonathon Murphy <jpmurphy@google.com>
diff --git a/src/mainboard/google/zork/variants/baseboard/helpers.c b/src/mainboard/google/zork/variants/baseboard/helpers.c
index 7057a48..ed98177 100644
--- a/src/mainboard/google/zork/variants/baseboard/helpers.c
+++ b/src/mainboard/google/zork/variants/baseboard/helpers.c
@@ -183,7 +183,7 @@
return extract_field(FW_CONFIG_MASK_DB_INDEX, FW_CONFIG_DB_INDEX_SHIFT);
}
-bool variant_has_fingerprint(void)
+__weak bool variant_has_fingerprint(void)
{
if (CONFIG(VARIANT_HAS_FPMCU))
return true;
diff --git a/src/mainboard/google/zork/variants/morphius/variant.c b/src/mainboard/google/zork/variants/morphius/variant.c
index 092ff26..aa2290e 100644
--- a/src/mainboard/google/zork/variants/morphius/variant.c
+++ b/src/mainboard/google/zork/variants/morphius/variant.c
@@ -2,6 +2,17 @@
#include <baseboard/variants.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)
{
struct soc_amd_picasso_config *cfg;
@@ -14,3 +25,22 @@
if (!(variant_has_emmc() || boot_is_factory_unprovisioned()))
cfg->emmc_config.timing = SD_EMMC_DISABLE;
}
+
+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:
+ return false;
+ }
+}