WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [RFC] [PATCH] HVM SMBIOS support 4/6

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [RFC] [PATCH] HVM SMBIOS support 4/6
From: "Andrew D. Ball" <aball@xxxxxxxxxx>
Date: Fri, 07 Jul 2006 15:38:49 -0400
Delivery-date: Fri, 07 Jul 2006 12:39:36 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
[HVM] [Firmware] Pick up SMBIOS entry point from 0x9f000 in ROMBIOS.  This is
needed so that the entry point can be found on a 16-byte boundary in
0xf0000-0xfffff.

Signed-off-by: Andrew D. Ball <aball@xxxxxxxxxx>

diff -r f91cc71173c5 tools/firmware/rombios/rombios.c
--- a/tools/firmware/rombios/rombios.c  Thu Jun 22 20:37:33 2006
+++ b/tools/firmware/rombios/rombios.c  Fri Jul  7 13:48:13 2006
@@ -9443,6 +9443,43 @@
   mov  ds, ax
   ret
 
+#ifdef HVMASSIST
+
+smbios_init:
+  push ax
+  push cx
+  push es
+  push ds
+  push di
+  push si
+
+  ; If we have SMBIOS data, it will be at address 0x9f000, and this
+  ; will copy it to the entry point address (smbios_entry_point).
+  ; This will still copy the memory over if we don't, but that shouldn't
+  ; hurt anything, as that memory won't have the '_SM_' signature.
+  mov cx, #0x001f ; 0x1f bytes to copy
+  mov ax, #0xf000
+  mov es, ax      ; destination segment is 0xf0000
+  mov di, smbios_entry_point ; destination offset
+  mov ax, #0x9f00
+  mov ds, ax      ; source segment is 0x9f000
+  mov si, #0x0000 ; source offset is 0
+  cld
+  rep
+    movsb
+      
+smbios_out:
+  pop si
+  pop di
+  pop ds
+  pop es
+  pop cx
+  pop ax
+
+  ret
+
+#endif
+
 ;; for 'C' strings and other data, insert them here with
 ;; a the following hack:
 ;; DATA_SEG_DEFS_HERE
@@ -9724,6 +9761,7 @@
 
 #ifdef HVMASSIST
   call _copy_e820_table
+  call smbios_init
 #endif
 
   call rom_scan
@@ -10834,4 +10872,11 @@
 db 0,0,0,0     ;; MP feature bytes 2-5.
 #endif
 
+; space for SMBIOS entry point (31 bytes)
+.align 16
+smbios_entry_point:
+db 0,0,0,0,0,0,0,0,0,0
+db 0,0,0,0,0,0,0,0,0,0
+db 0,0,0,0,0,0,0,0,0,0,0
+
 ASM_END

Attachment: smbios_4_rombios.patch
Description: Text Data

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [RFC] [PATCH] HVM SMBIOS support 4/6, Andrew D. Ball <=