OpenCores
URL https://opencores.org/ocsvn/ao486/ao486/trunk

Subversion Repositories ao486

[/] [ao486/] [trunk/] [bios/] [bochs-2.6.2/] [bochs-2.6.2.diff] - Rev 3

Compare with Previous | Blame | View Log

diff -ruN bochs-2.6.2/bios/rombios.c bochs-2.6.2-ao486/bios/rombios.c
--- bochs-2.6.2/bios/rombios.c	2013-04-21 22:09:49.000000000 +0200
+++ bochs-2.6.2-ao486/bios/rombios.c	2014-03-30 14:27:08.000000000 +0200
@@ -182,7 +182,7 @@
   ;; However, users can choose to make panics non-fatal and continue.
 #if BX_VIRTUAL_PORTS
   mov dx,#PANIC_PORT
-  mov ax,#?1
+  mov ax,#0x21 //ao #?1
   out dx,ax
 #else
   mov dx,#0x80
@@ -1537,8 +1537,12 @@
   uart_tx_byte(BX_DEBUG_PORT, c);
 #endif
 #if BX_VIRTUAL_PORTS
-  if (action & BIOS_PRINTF_DEBUG) outb(DEBUG_PORT, c);
-  if (action & BIOS_PRINTF_INFO) outb(INFO_PORT, c);
+  if((action & BIOS_PRINTF_DEBUG) || (action & BIOS_PRINTF_INFO) || (action & BIOS_PRINTF_SCREEN)) {
+    while(inw(DEBUG_PORT+6) == 0) { ; }
+  }
+  if (action & BIOS_PRINTF_DEBUG)  outb(DEBUG_PORT, c);
+  if (action & BIOS_PRINTF_INFO)   outb(INFO_PORT, c);
+  if (action & BIOS_PRINTF_SCREEN) outb(INFO_PORT, c);
 #endif
   if (action & BIOS_PRINTF_SCREEN) {
     if (c == '\n') wrch('\r');
@@ -1702,7 +1706,7 @@
 
   if ((action & BIOS_PRINTF_DEBHALT) == BIOS_PRINTF_DEBHALT) {
 #if BX_VIRTUAL_PORTS
-    outb(PANIC_PORT2, 0x00);
+    outb(PANIC_PORT2, '&'); //ao 0x00
 #endif
     bios_printf (BIOS_PRINTF_SCREEN, "FATAL: ");
   }
@@ -2509,7 +2513,9 @@
   Bit16u base;
   Bit16u timeout;
 {
-  Bit32u time=0,last=0;
+//AO modif
+  Bit16u time=0,last=0;
+//AO modif
   Bit16u status;
   Bit8u result;
   status = inb(base + ATA_CB_STAT); // for the times you're supposed to throw one away
@@ -2530,17 +2536,27 @@
       result = 0;
 
     if (result) return 0;
-    if (time>>16 != last) // mod 2048 each 16 ms
+//AO modif
+    if (time>>8 != last) // mod 2048 each 16 ms
+//AO modif
     {
-      last = time >>16;
-      BX_DEBUG_ATA("await_ide: (TIMEOUT,BSY,!BSY,!BSY_DRQ,!BSY_!DRQ,!BSY_RDY) %d time= %ld timeout= %d\n",when_done,time>>11, timeout);
+//AO modif
+      last = time >>8;
+//AO modif
+//AO modif
+      BX_DEBUG_ATA("await_ide: (TIMEOUT,BSY,!BSY,!BSY_DRQ,!BSY_!DRQ,!BSY_RDY) %d time= %ld timeout= %d, status= %x\n",when_done,time>>3, timeout, status);
+//AO modif
     }
     if (status & ATA_CB_STAT_ERR)
     {
-      BX_DEBUG_ATA("await_ide: ERROR (TIMEOUT,BSY,!BSY,!BSY_DRQ,!BSY_!DRQ,!BSY_RDY) %d time= %ld timeout= %d\n",when_done,time>>11, timeout);
+//AO modif
+      BX_DEBUG_ATA("await_ide: ERROR (TIMEOUT,BSY,!BSY,!BSY_DRQ,!BSY_!DRQ,!BSY_RDY) %d time= %ld timeout= %d\n",when_done,time>>3, timeout);
+//AO modif
       return -1;
     }
-    if ((timeout == 0) || ((time>>11) > timeout)) break;
+//AO modif
+    if ((timeout == 0) || ((time>>3) > timeout)) break;
+//AO modif
   }
   BX_INFO("IDE time out\n");
   return -1;
@@ -3099,7 +3115,10 @@
     current++;
     write_word_DS(&EbdaData->ata.trsfsectors,current);
     count--;
-    if(ioflag == 0) await_ide(NOT_BSY, iobase1, IDE_TIMEOUT);
+//AO modification start
+//modif    if(ioflag == 0) await_ide(NOT_BSY, iobase1, IDE_TIMEOUT);
+    await_ide(NOT_BSY, iobase1, IDE_TIMEOUT);
+//AO modification end
     status = inb(iobase1 + ATA_CB_STAT);
     if(ioflag == 0)
     {
diff -ruN bochs-2.6.2/bios/rombios.h bochs-2.6.2-ao486/bios/rombios.h
--- bochs-2.6.2/bios/rombios.h	2012-11-11 09:11:17.000000000 +0100
+++ bochs-2.6.2-ao486/bios/rombios.h	2014-03-30 14:29:31.000000000 +0200
@@ -39,10 +39,10 @@
 #define DEBUG_INT74        0
 #define DEBUG_APM          0
 
-#define PANIC_PORT  0x400
-#define PANIC_PORT2 0x401
-#define INFO_PORT   0x402
-#define DEBUG_PORT  0x403
+#define PANIC_PORT  0x8888 //ao 0x400
+#define PANIC_PORT2 0x8888 //ao 0x401
+#define INFO_PORT   0x8888 //ao 0x402
+#define DEBUG_PORT  0x8888 //ao 0x403
 
 #define BIOS_PRINTF_HALT     1
 #define BIOS_PRINTF_SCREEN   2
@@ -95,19 +95,19 @@
 #define BX_USE_EBDA      1
 #define BX_SUPPORT_FLOPPY 1
 #define BX_FLOPPY_ON_CNT 37   /* 2 seconds */
-#define BX_PCIBIOS       1
-#define BX_APM           1
-#define BX_PNPBIOS       1
+#define BX_PCIBIOS       0 //ao
+#define BX_APM           0 //ao
+#define BX_PNPBIOS       0 //ao
 /* define it if the (emulated) hardware supports SMM mode */
 #define BX_USE_SMM
 
 #define BX_USE_ATADRV    1
-#define BX_ELTORITO_BOOT 1
+#define BX_ELTORITO_BOOT 0 //ao
 
 #define BX_MAX_ATA_INTERFACES   4
 #define BX_MAX_ATA_DEVICES      (BX_MAX_ATA_INTERFACES*2)
 
-#define BX_VIRTUAL_PORTS 1 /* normal output to Bochs ports */
+#define BX_VIRTUAL_PORTS 0 //ao /* normal output to Bochs ports */
 #define BX_DEBUG_SERIAL  0 /* output to COM1 */
 
    /* model byte 0xFC = AT */
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.