qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [6130] Use the firmware configuration device


From: Blue Swirl
Subject: [Qemu-devel] [6130] Use the firmware configuration device
Date: Wed, 24 Dec 2008 20:29:16 +0000

Revision: 6130
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6130
Author:   blueswir1
Date:     2008-12-24 20:29:16 +0000 (Wed, 24 Dec 2008)

Log Message:
-----------
Use the firmware configuration device

Modified Paths:
--------------
    trunk/hw/ppc_oldworld.c

Modified: trunk/hw/ppc_oldworld.c
===================================================================
--- trunk/hw/ppc_oldworld.c     2008-12-24 20:26:14 UTC (rev 6129)
+++ trunk/hw/ppc_oldworld.c     2008-12-24 20:29:16 UTC (rev 6130)
@@ -32,10 +32,18 @@
 #include "isa.h"
 #include "pci.h"
 #include "boards.h"
+#include "fw_cfg.h"
 
 #define MAX_IDE_BUS 2
 #define VGA_BIOS_SIZE 65536
+#define CFG_ADDR 0xf0000510
 
+enum {
+    ARCH_PREP = 0,
+    ARCH_MAC99,
+    ARCH_HEATHROW,
+};
+
 /* temporary frame buffer OSI calls for the video.x driver. The right
    solution is to modify the driver to use VGA PCI I/Os */
 /* XXX: to be removed. This is no way related to emulation */
@@ -128,6 +136,7 @@
     int ppc_boot_device;
     BlockDriverState *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
     int index;
+    void *fw_cfg;
 
     linux_boot = (kernel_filename != NULL);
 
@@ -363,6 +372,11 @@
 
     /* Special port to get debug messages from Open-Firmware */
     register_ioport_write(0x0F00, 4, 1, &PPC_debug_write, NULL);
+
+    fw_cfg = fw_cfg_init(0, 0, CFG_ADDR, CFG_ADDR + 2);
+    fw_cfg_add_i32(fw_cfg, FW_CFG_ID, 1);
+    fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)ram_size);
+    fw_cfg_add_i16(fw_cfg, FW_CFG_MACHINE_ID, ARCH_HEATHROW);
 }
 
 QEMUMachine heathrow_machine = {






reply via email to

[Prev in Thread] Current Thread [Next in Thread]