Commit 6cc9215ea512d05c249d4841441335f87e1b02c2
1 parent
298e01b6
update from latest Bochs BIOS
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4115 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
35 additions
and
40 deletions
pc-bios/bios.bin
No preview for this file type
pc-bios/bios.diff
| 1 | -Index: rombios.c | |
| 2 | -=================================================================== | |
| 3 | -RCS file: /cvsroot/bochs/bochs/bios/rombios.c,v | |
| 4 | -retrieving revision 1.174 | |
| 5 | -diff -u -w -r1.174 rombios.c | |
| 6 | ---- rombios.c 17 Oct 2006 16:48:05 -0000 1.174 | |
| 7 | -+++ rombios.c 8 Feb 2007 21:57:48 -0000 | |
| 8 | -@@ -9472,6 +9472,14 @@ | |
| 9 | - mov eax, #0x00040000 | |
| 10 | - call eax | |
| 11 | - | |
| 12 | -+ ;; reset the memory (some boot loaders such as syslinux suppose | |
| 13 | -+ ;; that the memory is set to zero) | |
| 14 | -+ mov edi, #0x00040000 | |
| 15 | -+ mov ecx, #0x40000 / 4 | |
| 16 | -+ xor eax, eax | |
| 17 | -+ rep | |
| 18 | -+ stosd | |
| 19 | -+ | |
| 20 | - ;; return to 16 bit protected mode first | |
| 21 | - db 0xea | |
| 22 | - dd rombios32_10 | |
| 23 | 1 | Index: rombios.h |
| 24 | 2 | =================================================================== |
| 25 | 3 | RCS file: /cvsroot/bochs/bochs/bios/rombios.h,v |
| 26 | -retrieving revision 1.3 | |
| 27 | -diff -u -w -r1.3 rombios.h | |
| 28 | ---- rombios.h 3 Oct 2006 20:27:30 -0000 1.3 | |
| 29 | -+++ rombios.h 8 Feb 2007 21:57:48 -0000 | |
| 4 | +retrieving revision 1.6 | |
| 5 | +diff -u -d -p -r1.6 rombios.h | |
| 6 | +--- rombios.h 26 Jan 2008 09:15:27 -0000 1.6 | |
| 7 | ++++ rombios.h 28 Mar 2008 10:22:04 -0000 | |
| 30 | 8 | @@ -19,7 +19,7 @@ |
| 31 | 9 | // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
| 32 | 10 | |
| ... | ... | @@ -39,19 +17,36 @@ diff -u -w -r1.3 rombios.h |
| 39 | 17 | Index: rombios32.c |
| 40 | 18 | =================================================================== |
| 41 | 19 | RCS file: /cvsroot/bochs/bochs/bios/rombios32.c,v |
| 42 | -retrieving revision 1.8 | |
| 43 | -diff -u -w -r1.8 rombios32.c | |
| 44 | ---- rombios32.c 3 Oct 2006 20:27:30 -0000 1.8 | |
| 45 | -+++ rombios32.c 8 Feb 2007 21:57:48 -0000 | |
| 46 | -@@ -852,6 +852,11 @@ | |
| 47 | - int ioapic_id, i, len; | |
| 48 | - int mp_config_table_size; | |
| 20 | +retrieving revision 1.24 | |
| 21 | +diff -u -d -p -r1.24 rombios32.c | |
| 22 | +--- rombios32.c 6 Mar 2008 20:18:20 -0000 1.24 | |
| 23 | ++++ rombios32.c 28 Mar 2008 10:22:04 -0000 | |
| 24 | +@@ -477,7 +477,12 @@ void smp_probe(void) | |
| 25 | + sipi_vector = AP_BOOT_ADDR >> 12; | |
| 26 | + writel(APIC_BASE + APIC_ICR_LOW, 0x000C4600 | sipi_vector); | |
| 49 | 27 | |
| 50 | -+#ifdef BX_QEMU | |
| 51 | -+ if (smp_cpus <= 1) | |
| 52 | -+ return; | |
| 28 | ++#ifndef BX_QEMU | |
| 29 | + delay_ms(10); | |
| 30 | ++#else | |
| 31 | ++ while (cmos_readb(0x5f) + 1 != readw((void *)CPU_COUNT_ADDR)) | |
| 32 | ++ ; | |
| 53 | 33 | +#endif |
| 54 | -+ | |
| 55 | - #ifdef BX_USE_EBDA_TABLES | |
| 56 | - mp_config_table = (uint8_t *)(ram_size - ACPI_DATA_SIZE - MPTABLE_MAX_SIZE); | |
| 57 | - #else | |
| 34 | + | |
| 35 | + smp_cpus = readw((void *)CPU_COUNT_ADDR); | |
| 36 | + } | |
| 37 | +Index: rombios32start.S | |
| 38 | +=================================================================== | |
| 39 | +RCS file: /cvsroot/bochs/bochs/bios/rombios32start.S,v | |
| 40 | +retrieving revision 1.4 | |
| 41 | +diff -u -d -p -r1.4 rombios32start.S | |
| 42 | +--- rombios32start.S 26 Jan 2008 09:15:27 -0000 1.4 | |
| 43 | ++++ rombios32start.S 28 Mar 2008 10:22:04 -0000 | |
| 44 | +@@ -42,7 +42,7 @@ _start: | |
| 45 | + smp_ap_boot_code_start: | |
| 46 | + xor %ax, %ax | |
| 47 | + mov %ax, %ds | |
| 48 | +- incw CPU_COUNT_ADDR | |
| 49 | ++ lock incw CPU_COUNT_ADDR | |
| 50 | + 1: | |
| 51 | + hlt | |
| 52 | + jmp 1b | ... | ... |