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] [PATCH 07 of 15] hvmloader: make SMBIOS initialisation more

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH 07 of 15] hvmloader: make SMBIOS initialisation more general
From: Ian Campbell <ian.campbell@xxxxxxxxxx>
Date: Wed, 1 Jun 2011 10:40:02 +0100
Cc: Ian Campbell <ian.campbell@xxxxxxxxxx>
Delivery-date: Wed, 01 Jun 2011 02:46:40 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <patchbomb.1306921195@xxxxxxxxxxxxxxxxxxxxxxxxx>
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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <patchbomb.1306921195@xxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mercurial-patchbomb/1.6.4
# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1306917341 -3600
# Node ID 673d9039cd5972d496fa1dbdb2b783a6696c3fbb
# Parent  4d9116ca460ed18d23f2c04c28ea2b5a67586830
hvmloader: make SMBIOS initialisation more general.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

diff -r 4d9116ca460e -r 673d9039cd59 tools/firmware/hvmloader/config.h
--- a/tools/firmware/hvmloader/config.h Wed Jun 01 09:28:29 2011 +0100
+++ b/tools/firmware/hvmloader/config.h Wed Jun 01 09:35:41 2011 +0100
@@ -16,9 +16,6 @@ struct bios_config {
     /* Physical address to load at */
     unsigned int bios_address;
 
-    /* SMBIOS */
-    unsigned int smbios_start, smbios_end;
-
     /* ROMS */
     int load_roms;
     unsigned int optionrom_start, optionrom_end;
@@ -31,6 +28,7 @@ struct bios_config {
 
     void (*acpi_build_tables)(void);
     void (*create_mp_tables)(void);
+    void (*create_smbios_tables)(void);
 };
 
 extern struct bios_config rombios_config;
diff -r 4d9116ca460e -r 673d9039cd59 tools/firmware/hvmloader/hvmloader.c
--- a/tools/firmware/hvmloader/hvmloader.c      Wed Jun 01 09:28:29 2011 +0100
+++ b/tools/firmware/hvmloader/hvmloader.c      Wed Jun 01 09:35:41 2011 +0100
@@ -383,7 +383,7 @@ int main(void)
 {
     uint32_t highbios = 0;
     const struct bios_config *bios;
-    int option_rom_sz = 0, vgabios_sz = 0, etherboot_sz = 0, smbios_sz = 0;
+    int option_rom_sz = 0, vgabios_sz = 0, etherboot_sz = 0;
     uint32_t etherboot_phys_addr = 0, option_rom_phys_addr = 0;
 
     /* Initialise hypercall stubs with RET, rendering them no-ops. */
@@ -407,11 +407,9 @@ int main(void)
 
     perform_tests();
 
-    if (bios->smbios_start) {
+    if (bios->create_smbios_tables) {
         printf("Writing SMBIOS tables ...\n");
-        smbios_sz = hvm_write_smbios_tables(SCRATCH_PHYSICAL_ADDRESS,
-                                            bios->smbios_start,
-                                            bios->smbios_end);
+        bios->create_smbios_tables();
     }
 
     printf("Loading %s ...\n", bios->name);
@@ -495,10 +493,6 @@ int main(void)
         printf(" %05x-%05x: PCI Option ROMs\n",
                option_rom_phys_addr,
                option_rom_phys_addr + option_rom_sz - 1);
-    if ( smbios_sz )
-        printf(" %05x-%05x: SMBIOS tables\n",
-               bios->smbios_start,
-               bios->smbios_start + smbios_sz - 1);
     printf(" %05x-%05x: Main BIOS\n",
            bios->bios_address,
            bios->bios_address + bios->image_size - 1);
diff -r 4d9116ca460e -r 673d9039cd59 tools/firmware/hvmloader/rombios.c
--- a/tools/firmware/hvmloader/rombios.c        Wed Jun 01 09:28:29 2011 +0100
+++ b/tools/firmware/hvmloader/rombios.c        Wed Jun 01 09:35:41 2011 +0100
@@ -136,6 +136,13 @@ static void rombios_create_mp_tables(voi
     reset_bios_checksum();
 }
 
+static void rombios_create_smbios_tables(void)
+{
+    hvm_write_smbios_tables(SCRATCH_PHYSICAL_ADDRESS,
+                            SMBIOS_PHYSICAL_ADDRESS,
+                            SMBIOS_PHYSICAL_END);
+}
+
 //BUILD_BUG_ON(sizeof(rombios) > (0x00100000U - ROMBIOS_PHYSICAL_ADDRESS));
 
 struct bios_config rombios_config =  {
@@ -146,9 +153,6 @@ struct bios_config rombios_config =  {
 
     .bios_address = ROMBIOS_PHYSICAL_ADDRESS,
 
-    .smbios_start = SMBIOS_PHYSICAL_ADDRESS,
-    .smbios_end = SMBIOS_PHYSICAL_END,
-
     .load_roms = 1,
 
     .optionrom_start = OPTIONROM_PHYSICAL_ADDRESS,
@@ -162,6 +166,7 @@ struct bios_config rombios_config =  {
 
     .acpi_build_tables = rombios_acpi_build_tables,
     .create_mp_tables = rombios_create_mp_tables,
+    .create_smbios_tables = rombios_create_smbios_tables,
 };
 
 /*
diff -r 4d9116ca460e -r 673d9039cd59 tools/firmware/hvmloader/seabios.c
--- a/tools/firmware/hvmloader/seabios.c        Wed Jun 01 09:28:29 2011 +0100
+++ b/tools/firmware/hvmloader/seabios.c        Wed Jun 01 09:35:41 2011 +0100
@@ -38,9 +38,6 @@ struct bios_config seabios_config = {
 
     .bios_address = SEABIOS_PHYSICAL_ADDRESS,
 
-    .smbios_start = 0,
-    .smbios_end = 0,
-
     .load_roms = 0,
 
     .optionrom_start = 0,
@@ -53,6 +50,7 @@ struct bios_config seabios_config = {
 
     .acpi_build_tables = NULL,
     .create_mp_tables = NULL,
+    .create_smbios_tables = NULL,
 };
 
 /*

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>