Commit 307b0c24de782119953a9dd12c4b0ece0313dea6
1 parent
61b94156
update to latest Bochs bios - added PCI BIOS real mode 'get irq routing options' function
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1793 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
93 additions
and
61 deletions
pc-bios/bios.bin
No preview for this file type
pc-bios/bios.diff
1 | Index: rombios.c | 1 | Index: rombios.c |
2 | =================================================================== | 2 | =================================================================== |
3 | RCS file: /cvsroot/bochs/bochs/bios/rombios.c,v | 3 | RCS file: /cvsroot/bochs/bochs/bios/rombios.c,v |
4 | -retrieving revision 1.130 | ||
5 | -diff -u -w -r1.130 rombios.c | ||
6 | ---- rombios.c 13 Feb 2005 08:47:30 -0000 1.130 | ||
7 | -+++ rombios.c 9 Feb 2006 21:49:38 -0000 | ||
8 | -@@ -8570,7 +8570,10 @@ | ||
9 | - use32 386 | ||
10 | - #define APM_PROT32 | ||
11 | - #include "apmbios.S" | ||
12 | -+ | ||
13 | - use16 386 | ||
14 | -+#define APM_PROT16 | ||
15 | -+#include "apmbios.S" | 4 | +retrieving revision 1.160 |
5 | +diff -u -w -r1.160 rombios.c | ||
6 | +--- rombios.c 25 Jan 2006 17:51:49 -0000 1.160 | ||
7 | ++++ rombios.c 2 Apr 2006 18:29:51 -0000 | ||
8 | +@@ -1816,6 +1816,7 @@ | ||
9 | + { | ||
10 | + printf(BX_APPNAME" BIOS - build: %s\n%s\nOptions: ", | ||
11 | + BIOS_BUILD_DATE, bios_cvs_version_string); | ||
12 | ++#if 0 | ||
13 | + printf( | ||
14 | + #ifdef BX_APM | ||
15 | + "apmbios " | ||
16 | +@@ -1827,6 +1828,9 @@ | ||
17 | + "eltorito " | ||
18 | + #endif | ||
19 | + "\n\n"); | ||
20 | ++#else | ||
21 | ++ printf("apmbios pcibios eltorito \n\n"); | ||
22 | ++#endif | ||
23 | + } | ||
16 | 24 | ||
17 | - #define APM_REAL | ||
18 | - #include "apmbios.S" | ||
19 | -@@ -8611,6 +8614,7 @@ | 25 | + //-------------------------------------------------------------------------- |
26 | +@@ -8713,6 +8717,7 @@ | ||
20 | mov al, #0x80 | 27 | mov al, #0x80 |
21 | bios32_end: | 28 | bios32_end: |
22 | popf | 29 | popf |
@@ -24,7 +31,7 @@ diff -u -w -r1.130 rombios.c | @@ -24,7 +31,7 @@ diff -u -w -r1.130 rombios.c | ||
24 | retf | 31 | retf |
25 | 32 | ||
26 | .align 16 | 33 | .align 16 |
27 | -@@ -8721,17 +8725,17 @@ | 34 | +@@ -8823,17 +8828,17 @@ |
28 | pci_pro_fail: | 35 | pci_pro_fail: |
29 | pop edi | 36 | pop edi |
30 | pop esi | 37 | pop esi |
@@ -44,50 +51,75 @@ diff -u -w -r1.130 rombios.c | @@ -44,50 +51,75 @@ diff -u -w -r1.130 rombios.c | ||
44 | retf | 51 | retf |
45 | 52 | ||
46 | pci_pro_select_reg: | 53 | pci_pro_select_reg: |
47 | -Index: apmbios.S | ||
48 | -=================================================================== | ||
49 | -RCS file: /cvsroot/bochs/bochs/bios/apmbios.S,v | ||
50 | -retrieving revision 1.1 | ||
51 | -diff -u -w -r1.1 apmbios.S | ||
52 | ---- apmbios.S 20 Jun 2004 18:27:09 -0000 1.1 | ||
53 | -+++ apmbios.S 9 Feb 2006 21:49:38 -0000 | ||
54 | -@@ -1,6 +1,9 @@ | ||
55 | - // APM BIOS support for the Bochs BIOS | ||
56 | - // Copyright (C) 2004 Fabrice Bellard | ||
57 | - // | ||
58 | -+// 16-bit interface activation | ||
59 | -+// Copyright (C) 2005 Struan Bartlett | ||
60 | -+// | ||
61 | - // This library is free software; you can redistribute it and/or | ||
62 | - // modify it under the terms of the GNU Lesser General Public | ||
63 | - // License as published by the Free Software Foundation; either | ||
64 | -@@ -111,13 +114,28 @@ | ||
65 | - mov bl, #0x4d // 'M' | ||
66 | - // bit 0 : 16 bit interface supported | ||
67 | - // bit 1 : 32 bit interface supported | ||
68 | -- mov cx, #0x2 | ||
69 | -+ mov cx, #0x3 | ||
70 | - jmp APMSYM(ok) | ||
71 | - | ||
72 | - ;----------------- | ||
73 | - ; APM real mode interface connect | ||
74 | - APMSYM(01): | ||
75 | - cmp al, #0x01 | ||
76 | -+ jne APMSYM(02) | ||
77 | -+ jmp APMSYM(ok) | ||
78 | -+ | ||
79 | -+;----------------- | ||
80 | -+; APM 16 bit protected mode interface connect | ||
81 | -+APMSYM(02): | ||
82 | -+ cmp al, #0x02 | ||
83 | -+ jne APMSYM(03) | 54 | +@@ -8971,7 +8976,7 @@ |
55 | + jmp pci_real_ok | ||
56 | + pci_real_f0d: ;; write configuration dword | ||
57 | + cmp al, #0x0d | ||
58 | +- jne pci_real_unknown | ||
59 | ++ jne pci_real_f0e | ||
60 | + call pci_real_select_reg | ||
61 | + push dx | ||
62 | + mov dx, #0x0cfc | ||
63 | +@@ -8979,6 +8984,46 @@ | ||
64 | + out dx, eax | ||
65 | + pop dx | ||
66 | + jmp pci_real_ok | ||
67 | ++pci_real_f0e: ;; get irq routing options | ||
68 | ++ cmp al, #0x0e | ||
69 | ++ jne pci_real_unknown | ||
70 | ++ SEG ES | ||
71 | ++ cmp word ptr [di], #pci_routing_table_structure_end - pci_routing_table_structure_start | ||
72 | ++ jb pci_real_too_small | ||
73 | ++ SEG ES | ||
74 | ++ mov word ptr [di], #pci_routing_table_structure_end - pci_routing_table_structure_start | ||
75 | ++ pushf | ||
76 | ++ push ds | ||
77 | ++ push es | ||
78 | ++ push cx | ||
79 | ++ push si | ||
80 | ++ push di | ||
81 | ++ cld | ||
82 | ++ mov si, #pci_routing_table_structure_start | ||
83 | ++ push cs | ||
84 | ++ pop ds | ||
85 | ++ SEG ES | ||
86 | ++ mov cx, [di+2] | ||
87 | ++ SEG ES | ||
88 | ++ mov es, [di+4] | ||
89 | ++ mov di, cx | ||
90 | ++ mov cx, #pci_routing_table_structure_end - pci_routing_table_structure_start | ||
91 | ++ rep | ||
92 | ++ movsb | ||
93 | ++ pop di | ||
94 | ++ pop si | ||
95 | ++ pop cx | ||
96 | ++ pop es | ||
97 | ++ pop ds | ||
98 | ++ popf | ||
99 | ++ mov bx, #(1 << 9) | (1 << 11) ;; irq 9 and 11 are used | ||
100 | ++ jmp pci_real_ok | ||
101 | ++pci_real_too_small: | ||
102 | ++ SEG ES | ||
103 | ++ mov word ptr [di], #pci_routing_table_structure_end - pci_routing_table_structure_start | ||
104 | ++ mov ah, #0x89 | ||
105 | ++ jmp pci_real_fail | ||
84 | + | 106 | + |
85 | -+ mov bx, #_apm16_entry | ||
86 | -+ | ||
87 | -+ mov ax, #0xf000 // 16 bit code segment base | ||
88 | -+ mov si, #0xfff0 // 16 bit code segment size | ||
89 | -+ mov cx, #0xf000 // data segment address | ||
90 | -+ mov di, #0xfff0 // data segment length | ||
91 | - jne APMSYM(03) | ||
92 | - jmp APMSYM(ok) | 107 | + pci_real_unknown: |
108 | + mov ah, #0x81 | ||
109 | + pci_real_fail: | ||
110 | +@@ -9019,6 +9064,7 @@ | ||
111 | + dw 0,0 ;; Miniport data | ||
112 | + db 0,0,0,0,0,0,0,0,0,0,0 ;; reserved | ||
113 | + db 0x07 ;; checksum | ||
114 | ++pci_routing_table_structure_start: | ||
115 | + ;; first slot entry PCI-to-ISA (embedded) | ||
116 | + db 0 ;; pci bus number | ||
117 | + db 0x08 ;; pci device number (bit 7-3) | ||
118 | +@@ -9097,6 +9143,7 @@ | ||
119 | + dw 0xdef8 ;; IRQ bitmap INTD# | ||
120 | + db 5 ;; physical slot (0 = embedded) | ||
121 | + db 0 ;; reserved | ||
122 | ++pci_routing_table_structure_end: | ||
93 | 123 | ||
124 | + pci_irq_list: | ||
125 | + db 11, 10, 9, 5; |