Change in flashrom[master]: flashrom: Return early from map_flash for >16MiB on x86

Tim Wawrzynczak has uploaded this change for review. ( https://review.coreboot.org/c/flashrom/+/56721 ) Change subject: flashrom: Return early from map_flash for >16MiB on x86 ...................................................................... flashrom: Return early from map_flash for >16MiB on x86 In the case of a flash chip bigger than 16 MiB, x86 chipsets are only able to map the topmost 16 MiB of the chip into memory. To access the rest, flashrom can use hardware sequencing, therefore return early from `map_flash()` in this situation; this avoids messages like the following in Linux kernel logs: [ 57.715654] x86/PAT: flashrom:2805 conflicting memory types fe0000... [ 57.726270] x86/PAT: memtype_reserve failed [mem 0xfe000000-0xffff... BUG=b:185021901 TEST=On a system with a W25Q256.V (32MB), flashrom logs show: $ flashrom -p host -r bios.bin ... Found Winbond flash chip "W25Q256.V" (32768 kB, Programmer-specific) ... Chipset unable to map >16 MiB of flash below 0xffffffff, falling back... Reading flash... done. SUCCESS Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Change-Id: I60244b6970118dbdfdbb5b8424fc0a8acd9def2e --- M flashrom.c 1 file changed, 11 insertions(+), 0 deletions(-) git pull ssh://review.coreboot.org:29418/flashrom refs/changes/21/56721/1 diff --git a/flashrom.c b/flashrom.c index 3987bb9..dea96b7 100644 --- a/flashrom.c +++ b/flashrom.c @@ -697,6 +697,17 @@ return 0; const chipsize_t size = flash->chip->total_size * 1024; + +#if IS_X86 + /* No known x86 chipset maps more than 16 MiB of the flash into memory + * below 0xfffffff, therefore return early here. */ + if (size > 16 * MiB) { + msg_cinfo("Chipset unable to map >16 MiB of flash below 0xffffffff," + "falling back to hardware sequencing.\n"); + return 1; + } +#endif + uintptr_t base = flashbase ? flashbase : (0xffffffff - size + 1); void *addr = programmer_map_flash_region(flash->chip->name, base, size); if (addr == ERROR_PTR) { -- To view, visit https://review.coreboot.org/c/flashrom/+/56721 To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings Gerrit-Project: flashrom Gerrit-Branch: master Gerrit-Change-Id: I60244b6970118dbdfdbb5b8424fc0a8acd9def2e Gerrit-Change-Number: 56721 Gerrit-PatchSet: 1 Gerrit-Owner: Tim Wawrzynczak <twawrzynczak@chromium.org> Gerrit-MessageType: newchange
participants (1)
-
Tim Wawrzynczak (Code Review)