summaryrefslogtreecommitdiffstats
path: root/sys/compat/x86bios
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 /sys/compat/x86bios
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
Diffstat (limited to 'sys/compat/x86bios')
-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