[prev in list] [next in list] [prev in thread] [next in thread] 

List:       bochs-cvs
Subject:    [Bochs-cvs] CVS: bochs/memory memory.cc, 1.83, 1.84 memory.h, 1.69,
From:       "Stanislav Shwartsman" <sshwarts () users ! sourceforge ! net>
Date:       2010-05-18 8:54:03
Message-ID: E1OEIYu-0007rv-4E () sfp-cvsdas-2 ! v30 ! ch3 ! sourceforge ! com
[Download RAW message or body]

Update of /cvsroot/bochs/bochs/memory
In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv30202/memory

Modified Files:
	memory.cc memory.h misc_mem.cc 
Log Message:
ready to enlarge supported BIOS ROM to 2M


Index: memory.cc
===================================================================
RCS file: /cvsroot/bochs/bochs/memory/memory.cc,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -d -r1.83 -r1.84
--- memory.cc	18 May 2010 07:44:37 -0000	1.83
+++ memory.cc	18 May 2010 08:54:01 -0000	1.84
@@ -291,7 +291,7 @@
           case 0x0:  // Read from ROM
             if ((a20addr & 0xfffe0000) == 0x000e0000) {
               // last 128K of BIOS ROM mapped to 0xE0000-0xFFFFF
-              *data_ptr = BX_MEM_THIS rom[a20addr & BIOS_MASK];
+              *data_ptr = BX_MEM_THIS rom[BIOS_MAP_LAST128K(a20addr)];
             }
             else {
               *data_ptr = BX_MEM_THIS rom[(a20addr & EXROM_MASK) + BIOSROMSZ];
@@ -312,7 +312,7 @@
         }
         else if ((a20addr & 0xfffe0000) == 0x000e0000) {
           // last 128K of BIOS ROM mapped to 0xE0000-0xFFFFF
-          *data_ptr = BX_MEM_THIS rom[a20addr & BIOS_MASK];
+          *data_ptr = BX_MEM_THIS rom[BIOS_MAP_LAST128K(a20addr)];
         }
         else {
           *data_ptr = BX_MEM_THIS rom[(a20addr & EXROM_MASK) + BIOSROMSZ];

Index: memory.h
===================================================================
RCS file: /cvsroot/bochs/bochs/memory/memory.h,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -d -r1.69 -r1.70
--- memory.h	17 May 2010 19:42:30 -0000	1.69
+++ memory.h	18 May 2010 08:54:01 -0000	1.70
@@ -36,11 +36,14 @@
 
 class BX_CPU_C;
 
-#define BIOSROMSZ ((Bit32u)(1 << 19))  // 512KB BIOS ROM @0xfff80000, must be a power of 2
+                                       // 512K BIOS ROM @0xfff80000
+#define BIOSROMSZ ((Bit32u)(1 << 19))  //   2M BIOS ROM @0xffe00000, must be a power of 2
 #define EXROMSIZE  (0x20000)           // ROMs 0xc0000-0xdffff (area 0xe0000-0xfffff=bios mapped)
 #define BIOS_MASK (BIOSROMSZ-1)
 #define EXROM_MASK (EXROMSIZE-1)
 
+#define BIOS_MAP_LAST128K(addr) ((addr) & BIOS_MASK)
+
 typedef bx_bool (*memory_handler_t)(bx_phy_address addr, unsigned len, void *data, void *param);
 
 struct memory_handler_struct {

Index: misc_mem.cc
===================================================================
RCS file: /cvsroot/bochs/bochs/memory/misc_mem.cc,v
retrieving revision 1.146
retrieving revision 1.147
diff -u -d -r1.146 -r1.147
--- misc_mem.cc	18 May 2010 07:44:37 -0000	1.146
+++ misc_mem.cc	18 May 2010 08:54:01 -0000	1.147
@@ -431,7 +431,7 @@
         case 0x0:  // Read from ROM
           if ((addr & 0xfffe0000) == 0x000e0000) {
             // last 128K of BIOS ROM mapped to 0xE0000-0xFFFFF
-            *buf = BX_MEM_THIS rom[addr & BIOS_MASK];
+            *buf = BX_MEM_THIS rom[BIOS_MAP_LAST128K(addr)];
           }
           else {
             *buf = BX_MEM_THIS rom[(addr & EXROM_MASK) + BIOSROMSZ];
@@ -453,7 +453,7 @@
       // must be in C0000 - FFFFF range
       else if ((addr & 0xfffe0000) == 0x000e0000) {
         // last 128K of BIOS ROM mapped to 0xE0000-0xFFFFF
-        *buf = BX_MEM_THIS rom[addr & BIOS_MASK];
+        *buf = BX_MEM_THIS rom[BIOS_MAP_LAST128K(addr)];
       }
       else {
         *buf = BX_MEM_THIS rom[(addr & EXROM_MASK) + BIOSROMSZ];
@@ -612,7 +612,7 @@
         case 0x0:   // Read from ROM
           if ((a20addr & 0xfffe0000) == 0x000e0000) {
             // last 128K of BIOS ROM mapped to 0xE0000-0xFFFFF
-            return (Bit8u *) &BX_MEM_THIS rom[a20addr & BIOS_MASK];
+            return (Bit8u *) &BX_MEM_THIS rom[BIOS_MAP_LAST128K(a20addr)];
           }
           else {
             return (Bit8u *) &BX_MEM_THIS rom[(a20addr & EXROM_MASK) + BIOSROMSZ];
@@ -634,7 +634,7 @@
       // must be in C0000 - FFFFF range
       else if ((a20addr & 0xfffe0000) == 0x000e0000) {
         // last 128K of BIOS ROM mapped to 0xE0000-0xFFFFF
-        return (Bit8u *) &BX_MEM_THIS rom[a20addr & BIOS_MASK];
+        return (Bit8u *) &BX_MEM_THIS rom[BIOS_MAP_LAST128K(a20addr)];
       }
       else {
         return((Bit8u *) &BX_MEM_THIS rom[(a20addr & EXROM_MASK) + BIOSROMSZ]);


------------------------------------------------------------------------------

_______________________________________________
Bochs-cvs mailing list
Bochs-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bochs-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic