소스 검색

[romprefix] Force PnP header to a 16-byte boundary for IBM BIOSes

IBM BIOSes ignore the PnP header offset stored at address 0x1a and
instead scan for the $PnP signature on a 16-byte boundary.  (This
alignment is not mandated by the PnP specification.)

Force PnP header to a 16-byte boundary to work around these BIOSes.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown 13 년 전
부모
커밋
d4f0c5d088
1개의 변경된 파일5개의 추가작업 그리고 0개의 파일을 삭제
  1. 5
    0
      src/arch/i386/prefix/romprefix.S

+ 5
- 0
src/arch/i386/prefix/romprefix.S 파일 보기

@@ -104,6 +104,11 @@ pciheader_runtime_length:
104 104
 	.long	0
105 105
 	.previous
106 106
 
107
+	/* PnP doesn't require any particular alignment, but IBM
108
+	 * BIOSes will scan on 16-byte boundaries rather than using
109
+	 * the offset stored at 0x1a
110
+	 */
111
+	.align	16
107 112
 pnpheader:
108 113
 	.ascii	"$PnP"			/* Signature */
109 114
 	.byte	0x01			/* Structure revision */

Loading…
취소
저장