* [Patch] [1/2] replace e820 from 0xe0000 to oxeb000
2009-01-05 14:24 [Patch] [0/2] Expand shadow memory area for using option ROM v.2 Akio Takebe
@ 2009-01-05 14:29 ` Akio Takebe
2009-01-05 14:30 ` [Patch] [2/2] expand shadow mem from 0xc0000-0xdffff to 0xc0000-0xe8fff Akio Takebe
1 sibling, 0 replies; 3+ messages in thread
From: Akio Takebe @ 2009-01-05 14:29 UTC (permalink / raw)
To: xen-devel
[-- Attachment #1: Type: text/plain, Size: 141 bytes --]
Hi,
This patch replaces e820 from 0xe0000 to oxeb000.
Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
Best Regards,
Akio Takebe
[-- Attachment #2: replace_e820.patch --]
[-- Type: text/x-diff, Size: 4331 bytes --]
diff -r e2f36d066b7b tools/firmware/hvmloader/config.h
--- a/tools/firmware/hvmloader/config.h Mon Dec 22 13:48:40 2008 +0000
+++ b/tools/firmware/hvmloader/config.h Mon Jan 05 22:55:35 2009 +0900
@@ -26,6 +26,7 @@
#define SMBIOS_PHYSICAL_ADDRESS 0x000E9000
#define SMBIOS_MAXIMUM_SIZE 0x00001000
#define ACPI_PHYSICAL_ADDRESS 0x000EA000
+#define E820_PHYSICAL_ADDRESS 0x000EB000
#define ROMBIOS_PHYSICAL_ADDRESS 0x000F0000
#define SCRATCH_PHYSICAL_ADDRESS 0x00010000
diff -r e2f36d066b7b tools/firmware/rombios/rombios.c
--- a/tools/firmware/rombios/rombios.c Mon Dec 22 13:48:40 2008 +0000
+++ b/tools/firmware/rombios/rombios.c Mon Jan 05 22:55:35 2009 +0900
@@ -1409,10 +1409,11 @@
{
Bit8u nr_entries = read_byte(0x9000, 0x1e8);
Bit32u base_mem;
+ Bit16u e820_seg=E820_PHYSICAL_ADDRESS>>4;
if (nr_entries > 32)
nr_entries = 32;
- write_word(0xe000, 0x8, nr_entries);
- memcpyb(0xe000, 0x10, 0x9000, 0x2d0, nr_entries * 0x14);
+ write_word(e820_seg, 0x8, nr_entries);
+ memcpyb(e820_seg, 0x10, 0x9000, 0x2d0, nr_entries * 0x14);
/* Report the proper base memory size at address 0x0413: otherwise
* non-e820 code will clobber things if BASE_MEM_IN_K is bigger than
* the first e820 entry. Get the size by reading the second 64bit
@@ -4669,7 +4670,8 @@
{
#ifdef HVMASSIST
case 0x20: {
- Bit16u e820_table_size = read_word(0xe000, 0x8) * 0x14;
+ Bit16u e820_seg=E820_PHYSICAL_ADDRESS>>4;
+ Bit16u e820_table_size = read_word(e820_seg, 0x8) * 0x14;
if (regs.u.r32.edx != 0x534D4150) /* SMAP */
goto int15_unimplemented;
@@ -4677,7 +4679,7 @@
if ((regs.u.r16.bx / 0x14) * 0x14 == regs.u.r16.bx) {
if (regs.u.r16.bx + 0x14 <= e820_table_size)
memcpyb(ES, regs.u.r16.di,
- 0xe000, 0x10 + regs.u.r16.bx, 0x14);
+ e820_seg, 0x10 + regs.u.r16.bx, 0x14);
regs.u.r32.ebx += 0x14;
if ((regs.u.r32.ebx + 0x14 - 1) > e820_table_size)
regs.u.r32.ebx = 0;
@@ -4685,8 +4687,8 @@
Bit32u base, type;
Bit16u off;
for (off = 0; off < e820_table_size; off += 0x14) {
- base = read_dword(0xe000, 0x10 + off);
- type = read_dword(0xe000, 0x20 + off);
+ base = read_dword(e820_seg, 0x10 + off);
+ type = read_dword(e820_seg, 0x20 + off);
if ((base >= 0x100000) && (type == 1))
break;
}
@@ -4694,7 +4696,7 @@
SET_CF();
break;
}
- memcpyb(ES, regs.u.r16.di, 0xe000, 0x10 + off, 0x14);
+ memcpyb(ES, regs.u.r16.di, e820_seg, 0x10 + off, 0x14);
regs.u.r32.ebx = 0;
} else { /* AX=E820, DX=534D4150, BX unrecognized */
goto int15_unimplemented;
@@ -4707,7 +4709,8 @@
}
case 0x01: {
- Bit16u off, e820_table_size = read_word(0xe000, 0x8) * 0x14;
+ Bit16u e820_seg=E820_PHYSICAL_ADDRESS>>4;
+ Bit16u off, e820_table_size = read_word(e820_seg, 0x8) * 0x14;
Bit32u base, type, size;
// do we have any reason to fail here ?
@@ -4723,8 +4726,8 @@
// Find first RAM E820 entry >= 1MB.
for (off = 0; off < e820_table_size; off += 0x14) {
- base = read_dword(0xe000, 0x10 + off);
- type = read_dword(0xe000, 0x20 + off);
+ base = read_dword(e820_seg, 0x10 + off);
+ type = read_dword(e820_seg, 0x20 + off);
if ((base >= 0x100000) && (type == 1))
break;
}
@@ -4732,7 +4735,7 @@
// If there is RAM above 16MB, return amount in 64kB chunks.
regs.u.r16.dx = 0;
if (off != e820_table_size) {
- size = base + read_dword(0xe000, 0x18 + off);
+ size = base + read_dword(e820_seg, 0x18 + off);
if (size > 0x1000000) {
size -= 0x1000000;
regs.u.r16.dx = (Bit16u)(size >> 16);
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 3+ messages in thread* [Patch] [2/2] expand shadow mem from 0xc0000-0xdffff to 0xc0000-0xe8fff
2009-01-05 14:24 [Patch] [0/2] Expand shadow memory area for using option ROM v.2 Akio Takebe
2009-01-05 14:29 ` [Patch] [1/2] replace e820 from 0xe0000 to oxeb000 Akio Takebe
@ 2009-01-05 14:30 ` Akio Takebe
1 sibling, 0 replies; 3+ messages in thread
From: Akio Takebe @ 2009-01-05 14:30 UTC (permalink / raw)
To: xen-devel
[-- Attachment #1: Type: text/plain, Size: 160 bytes --]
Hi,
This patch expands shadow mem from 0xc0000-0xdffff to 0xc0000-0xe8fff
Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
Best Regards,
Akio Takebe
[-- Attachment #2: exp_shadow_memory.v2.patch --]
[-- Type: text/x-diff, Size: 1294 bytes --]
diff -r 3173b5e4fefd tools/firmware/hvmloader/hvmloader.c
--- a/tools/firmware/hvmloader/hvmloader.c Mon Jan 05 22:57:02 2009 +0900
+++ b/tools/firmware/hvmloader/hvmloader.c Mon Jan 05 23:24:35 2009 +0900
@@ -401,7 +401,7 @@
printf(" - Product name: %s\n",
(char *)rom + pnph->product_name_offset);
- if ( (dest + rom->rom_size * 512 + 1) > 0xe0000u )
+ if ( (dest + rom->rom_size * 512 + 1) > 0xe9000u )
{
printf("Option ROM size %x exceeds available space\n",
rom->rom_size * 512);
diff -r 3173b5e4fefd tools/firmware/rombios/rombios.c
--- a/tools/firmware/rombios/rombios.c Mon Jan 05 22:57:02 2009 +0900
+++ b/tools/firmware/rombios/rombios.c Mon Jan 05 23:24:35 2009 +0900
@@ -10444,8 +10444,8 @@
rom_scan:
;; Scan for existence of valid expansion ROMS.
;; Video ROM: from 0xC0000..0xC7FFF in 2k increments
- ;; General ROM: from 0xC8000..0xDFFFF in 2k increments
- ;; System ROM: only 0xE0000
+ ;; General ROM: from 0xC8000..0xE8FFF in 2k increments
+ ;; System ROM: only 0xE9000
;;
;; Header:
;; Offset Value
@@ -11021,7 +11021,7 @@
call _init_boot_vectors
mov cx, #0xc800 ;; init option roms
- mov ax, #0xe000
+ mov ax, #0xe900
call rom_scan
#if BX_ELTORITO_BOOT
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 3+ messages in thread