From 4447996cc582d2c8745802b84b1f5a635e33a22a Mon Sep 17 00:00:00 2001 From: Angel Pons Date: Wed, 24 Feb 2021 23:08:27 +0100 Subject: nb/intel/ironlake: Handle broken ME firmware This allows booting without ME firmware, even though the 30-minute auto-shutdown still happens. Without this patch, an HP ProBook 6550b cannot get past the `setup_heci_uma` function call. Change-Id: I446c02ac6034ede75cb873a2e676c40e4ef84b7c Signed-off-by: Angel Pons Reviewed-on: https://review.coreboot.org/c/coreboot/+/51072 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Rudolph Reviewed-by: Paul Menzel --- src/northbridge/intel/ironlake/raminit.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/northbridge') diff --git a/src/northbridge/intel/ironlake/raminit.c b/src/northbridge/intel/ironlake/raminit.c index 9ba21d06b8..a5de86a7db 100644 --- a/src/northbridge/intel/ironlake/raminit.c +++ b/src/northbridge/intel/ironlake/raminit.c @@ -1725,7 +1725,7 @@ static void send_heci_uma_message(const u64 heci_uma_addr, const unsigned int he static void setup_heci_uma(struct raminfo *info) { - if (!info->memory_reserved_for_heci_mb && !(pci_read_config32(HECIDEV, 0x40) & 0x20)) + if (!info->memory_reserved_for_heci_mb || !(pci_read_config32(HECIDEV, 0x40) & 0x20)) return; const u64 heci_uma_addr = @@ -3215,8 +3215,10 @@ void raminit(const int s3resume, const u8 *spd_addrmap) ; /* Wait for ME to be ready */ - intel_early_me_init(); - info.memory_reserved_for_heci_mb = intel_early_me_uma_size(); + if (intel_early_me_init() == 0) + info.memory_reserved_for_heci_mb = intel_early_me_uma_size(); + else + info.memory_reserved_for_heci_mb = 0; /* before SPD */ timestamp_add_now(101); -- cgit v1.2.3