summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2010-08-25 20:52:40 +0000
committerjkim <jkim@FreeBSD.org>2010-08-25 20:52:40 +0000
commit8c8d33fe9f90723b010ccc4aa9dc9c2c42f7d85a (patch)
treea54b62a298e551bb8b5a71e51bf2e0e00c024113
parent9f660f20bb090dc6ab1392c1177568442f046fff (diff)
downloadFreeBSD-src-8c8d33fe9f90723b010ccc4aa9dc9c2c42f7d85a.zip
FreeBSD-src-8c8d33fe9f90723b010ccc4aa9dc9c2c42f7d85a.tar.gz
Check opcode for short jump as well. Some option ROMs do short jumps
(e.g., some NVIDIA video cards) and we were not able to do POST while resuming because we only honored long jump. MFC after: 3 days
-rw-r--r--sys/compat/x86bios/x86bios.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/compat/x86bios/x86bios.c b/sys/compat/x86bios/x86bios.c
index 224520c2c4..a8bd69a 100644
--- a/sys/compat/x86bios/x86bios.c
+++ b/sys/compat/x86bios/x86bios.c
@@ -801,7 +801,8 @@ x86bios_get_orm(uint32_t offset)
/* Does the shadow ROM contain BIOS POST code for x86? */
p = x86bios_offset(offset);
- if (p == NULL || p[0] != 0x55 || p[1] != 0xaa || p[3] != 0xe9)
+ if (p == NULL || p[0] != 0x55 || p[1] != 0xaa ||
+ (p[3] != 0xe9 && p[3] != 0xeb))
return (NULL);
return (p);
OpenPOWER on IntegriCloud