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 | 1 | Index: rombios.c |
2 | 2 | =================================================================== |
3 | 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 | 27 | mov al, #0x80 |
21 | 28 | bios32_end: |
22 | 29 | popf |
... | ... | @@ -24,7 +31,7 @@ diff -u -w -r1.130 rombios.c |
24 | 31 | retf |
25 | 32 | |
26 | 33 | .align 16 |
27 | -@@ -8721,17 +8725,17 @@ | |
34 | +@@ -8823,17 +8828,17 @@ | |
28 | 35 | pci_pro_fail: |
29 | 36 | pop edi |
30 | 37 | pop esi |
... | ... | @@ -44,50 +51,75 @@ diff -u -w -r1.130 rombios.c |
44 | 51 | retf |
45 | 52 | |
46 | 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; | ... | ... |