diff options
author | jkim <jkim@FreeBSD.org> | 2010-08-25 20:52:40 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2010-08-25 20:52:40 +0000 |
commit | 8c8d33fe9f90723b010ccc4aa9dc9c2c42f7d85a (patch) | |
tree | a54b62a298e551bb8b5a71e51bf2e0e00c024113 /sys | |
parent | 9f660f20bb090dc6ab1392c1177568442f046fff (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/compat/x86bios/x86bios.c | 3 |
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); |