On 9/30/07, J. Mayer <[EMAIL PROTECTED]> wrote:
> About the design, my opinion is:
> - to support wider physical address spaces:
> * full 32 bits targets (ie 32 bits virtual & physical address spaces)
> should stay 32 bits.
> * for 32 bits targets with a few more bits for their physical address
> space (like the ppcemb target, which has 36 bits of physical address
> space and I guess x86 with PAE extension), it seems acceptable to only
> adjust the L1_BITS constants.

Thanks for the comments, I updated the patch to reflect these. Can the
ppcemb target be detected somehow so that the address space can be
adjusted?

> * for 64 bits targets, a multiple level table has to be used to avoid
> the need of huge l1_xxx tables. This includes the alpha target (42 bits
> of physical address space), for which I recognize the quick hack I did
> commit is not really acceptable.

IIRC HP's PA CPU used a hash table based TLB or MMU, maybe similar
could be used so that we avoid tables after tables?

> - to support more than 2 GB of RAM:
> I still think you should have to use a consistent type here, not just
> unsigned long.
> Do you really need another new type ? It seems to me that  one of
> physical_addr_t or ram_addr_t could be used ?

In my opinion target_phys_addr_t is specific to target, what we want
should be fixed to the host. Maybe ram_addr_t is OK, I have to check
where it's used.
Index: qemu/cpu-all.h
===================================================================
--- qemu.orig/cpu-all.h	2007-09-30 07:40:09.000000000 +0000
+++ qemu/cpu-all.h	2007-09-30 07:41:45.000000000 +0000
@@ -771,7 +771,7 @@
 
 /* memory API */
 
-extern int phys_ram_size;
+extern unsigned long phys_ram_size;
 extern int phys_ram_fd;
 extern uint8_t *phys_ram_base;
 extern uint8_t *phys_ram_dirty;
@@ -797,8 +797,8 @@
 void cpu_register_physical_memory(target_phys_addr_t start_addr,
                                   unsigned long size,
                                   unsigned long phys_offset);
-uint32_t cpu_get_physical_page_desc(target_phys_addr_t addr);
-ram_addr_t qemu_ram_alloc(unsigned int size);
+unsigned long cpu_get_physical_page_desc(target_phys_addr_t addr);
+ram_addr_t qemu_ram_alloc(unsigned long size);
 void qemu_ram_free(ram_addr_t addr);
 int cpu_register_io_memory(int io_index,
                            CPUReadMemoryFunc **mem_read,
Index: qemu/exec.c
===================================================================
--- qemu.orig/exec.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/exec.c	2007-09-30 07:51:50.000000000 +0000
@@ -72,9 +72,11 @@
 #define TARGET_VIRT_ADDR_SPACE_BITS 42
 #elif defined(TARGET_PPC64)
 #define TARGET_PHYS_ADDR_SPACE_BITS 42
-#else
+#elif defined(USE_KQEMU) || HOST_LONG_BITS < 64 || !defined(TARGET_I386)
 /* Note: for compatibility with kqemu, we use 32 bits for x86_64 */
 #define TARGET_PHYS_ADDR_SPACE_BITS 32
+#else
+#define TARGET_PHYS_ADDR_SPACE_BITS 36
 #endif
 
 TranslationBlock tbs[CODE_GEN_MAX_BLOCKS];
@@ -86,7 +88,7 @@
 uint8_t code_gen_buffer[CODE_GEN_BUFFER_SIZE] __attribute__((aligned (32)));
 uint8_t *code_gen_ptr;
 
-int phys_ram_size;
+unsigned long phys_ram_size;
 int phys_ram_fd;
 uint8_t *phys_ram_base;
 uint8_t *phys_ram_dirty;
@@ -111,7 +113,7 @@
 
 typedef struct PhysPageDesc {
     /* offset in host memory of the page + io_index in the low 12 bits */
-    uint32_t phys_offset;
+    unsigned long phys_offset;
 } PhysPageDesc;
 
 #define L2_BITS 10
@@ -122,7 +124,7 @@
  */
 #define L1_BITS (TARGET_VIRT_ADDR_SPACE_BITS - L2_BITS - TARGET_PAGE_BITS)
 #else
-#define L1_BITS (32 - L2_BITS - TARGET_PAGE_BITS)
+#define L1_BITS (TARGET_PHYS_ADDR_SPACE_BITS - L2_BITS - TARGET_PAGE_BITS)
 #endif
 
 #define L1_SIZE (1 << L1_BITS)
@@ -211,7 +213,7 @@
     memset(l1_phys_map, 0, L1_SIZE * sizeof(void *));
 }
 
-static inline PageDesc *page_find_alloc(unsigned int index)
+static inline PageDesc *page_find_alloc(unsigned long index)
 {
     PageDesc **lp, *p;
 
@@ -1938,7 +1940,7 @@
 
 static int subpage_register (subpage_t *mmio, uint32_t start, uint32_t end,
                              int memory);
-static void *subpage_init (target_phys_addr_t base, uint32_t *phys,
+static void *subpage_init (target_phys_addr_t base, unsigned long *phys,
                            int orig_memory);
 #define CHECK_SUBPAGE(addr, start_addr, start_addr2, end_addr, end_addr2, \
                       need_subpage)                                     \
@@ -2031,7 +2033,7 @@
 }
 
 /* XXX: temporary until new memory mapping API */
-uint32_t cpu_get_physical_page_desc(target_phys_addr_t addr)
+unsigned long cpu_get_physical_page_desc(target_phys_addr_t addr)
 {
     PhysPageDesc *p;
 
@@ -2042,11 +2044,11 @@
 }
 
 /* XXX: better than nothing */
-ram_addr_t qemu_ram_alloc(unsigned int size)
+ram_addr_t qemu_ram_alloc(unsigned long size)
 {
     ram_addr_t addr;
     if ((phys_ram_alloc_offset + size) >= phys_ram_size) {
-        fprintf(stderr, "Not enough memory (requested_size = %u, max memory = %d)\n",
+        fprintf(stderr, "Not enough memory (requested_size = %lu, max memory = %lu)\n",
                 size, phys_ram_size);
         abort();
     }
@@ -2382,7 +2384,7 @@
     return 0;
 }
 
-static void *subpage_init (target_phys_addr_t base, uint32_t *phys,
+static void *subpage_init (target_phys_addr_t base, unsigned long *phys,
                            int orig_memory)
 {
     subpage_t *mmio;
Index: qemu/vl.c
===================================================================
--- qemu.orig/vl.c	2007-09-30 07:40:30.000000000 +0000
+++ qemu/vl.c	2007-09-30 07:55:13.000000000 +0000
@@ -126,7 +126,12 @@
 //#define DEBUG_UNUSED_IOPORT
 //#define DEBUG_IOPORT
 
+#if defined(USE_KQEMU) || HOST_LONG_BITS < 64 || \
+    !(defined(TARGET_I386) || defined(TARGET_SPARC))
 #define PHYS_RAM_MAX_SIZE (2047 * 1024 * 1024)
+#else
+#define PHYS_RAM_MAX_SIZE (64 * 1024 * 1024 * 1024ULL)
+#endif
 
 #ifdef TARGET_PPC
 #define DEFAULT_RAM_SIZE 144
@@ -161,7 +166,7 @@
 const char* keyboard_layout = NULL;
 int64_t ticks_per_sec;
 int boot_device = 'c';
-int ram_size;
+unsigned long ram_size;
 int pit_min_timer_count = 0;
 int nb_nics;
 NICInfo nd_table[MAX_NICS];
@@ -7853,12 +7858,12 @@
                 help(0);
                 break;
             case QEMU_OPTION_m:
-                ram_size = atoi(optarg) * 1024 * 1024;
+                ram_size = atol(optarg) * 1024 * 1024;
                 if (ram_size <= 0)
                     help(1);
                 if (ram_size > PHYS_RAM_MAX_SIZE) {
                     fprintf(stderr, "qemu: at most %d MB RAM can be simulated\n",
-                            PHYS_RAM_MAX_SIZE / (1024 * 1024));
+                            (int)(PHYS_RAM_MAX_SIZE / (1024 * 1024)));
                     exit(1);
                 }
                 break;
Index: qemu/vl.h
===================================================================
--- qemu.orig/vl.h	2007-09-30 07:40:30.000000000 +0000
+++ qemu/vl.h	2007-09-30 07:41:45.000000000 +0000
@@ -162,7 +162,7 @@
 
 void main_loop_wait(int timeout);
 
-extern int ram_size;
+extern unsigned long ram_size;
 extern int bios_size;
 extern int rtc_utc;
 extern int cirrus_vga_enabled;
@@ -723,7 +723,7 @@
 
 #ifndef QEMU_TOOL
 
-typedef void QEMUMachineInitFunc(int ram_size, int vga_ram_size,
+typedef void QEMUMachineInitFunc(unsigned long ram_size, int vga_ram_size,
                                  int boot_device,
              DisplayState *ds, const char **fd_filename, int snapshot,
              const char *kernel_filename, const char *kernel_cmdline,
Index: qemu/hw/pc.c
===================================================================
--- qemu.orig/hw/pc.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/pc.c	2007-09-30 15:11:00.000000000 +0000
@@ -152,7 +152,7 @@
 }
 
 /* hd_table must contain 4 block drivers */
-static void cmos_init(int ram_size, int boot_device, BlockDriverState **hd_table)
+static void cmos_init(unsigned long ram_size, unsigned long above_bios_ram_size, int boot_device, BlockDriverState **hd_table)
 {
     RTCState *s = rtc_state;
     int val;
@@ -174,6 +174,13 @@
     rtc_set_memory(s, 0x30, val);
     rtc_set_memory(s, 0x31, val >> 8);
 
+    val = (unsigned int)above_bios_ram_size / 65536;
+    if (above_bios_ram_size) {
+        rtc_set_memory(s, 0x5b, (unsigned int)above_bios_ram_size >> 16);
+        rtc_set_memory(s, 0x5c, (unsigned int)above_bios_ram_size >> 24);
+        rtc_set_memory(s, 0x5d, above_bios_ram_size >> 32);
+    }
+
     if (ram_size > (16 * 1024 * 1024))
         val = (ram_size / 65536) - ((16 * 1024 * 1024) / 65536);
     else
@@ -662,7 +669,7 @@
 }
 
 /* PC hardware initialisation */
-static void pc_init1(int ram_size, int vga_ram_size, int boot_device,
+static void pc_init1(unsigned long ram_size, int vga_ram_size, int boot_device,
                      DisplayState *ds, const char **fd_filename, int snapshot,
                      const char *kernel_filename, const char *kernel_cmdline,
                      const char *initrd_filename,
@@ -670,7 +677,7 @@
 {
     char buf[1024];
     int ret, linux_boot, i;
-    ram_addr_t ram_addr, vga_ram_addr, bios_offset, vga_bios_offset;
+    ram_addr_t ram_addr, vga_ram_addr, bios_offset, vga_bios_offset, above_bios_mem_size = 0;
     int bios_size, isa_bios_size, vga_bios_size;
     PCIBus *pci_bus;
     int piix3_devfn = -1;
@@ -679,6 +686,10 @@
     qemu_irq *cpu_irq;
     qemu_irq *i8259;
 
+    if (ram_size >= 0xf0000000) {
+        above_bios_mem_size = ram_size - 0xf0000000;
+        ram_size = 0xf0000000;
+    }
     linux_boot = (kernel_filename != NULL);
 
     /* init CPUs */
@@ -699,8 +710,10 @@
     }
 
     /* allocate RAM */
-    ram_addr = qemu_ram_alloc(ram_size);
+    ram_addr = qemu_ram_alloc(ram_size + above_bios_mem_size);
     cpu_register_physical_memory(0, ram_size, ram_addr);
+    if(above_bios_mem_size > 0)
+        cpu_register_physical_memory(0x100000000, above_bios_mem_size, ram_addr + ram_size);
 
     /* allocate VGA RAM */
     vga_ram_addr = qemu_ram_alloc(vga_ram_size);
@@ -898,7 +911,7 @@
 
     floppy_controller = fdctrl_init(i8259[6], 2, 0, 0x3f0, fd_table);
 
-    cmos_init(ram_size, boot_device, bs_table);
+    cmos_init(ram_size, above_bios_mem_size, boot_device, bs_table);
 
     if (pci_enabled && usb_enabled) {
         usb_uhci_piix3_init(pci_bus, piix3_devfn + 2);
@@ -937,7 +950,7 @@
 #endif
 }
 
-static void pc_init_pci(int ram_size, int vga_ram_size, int boot_device,
+static void pc_init_pci(unsigned long ram_size, int vga_ram_size, int boot_device,
                         DisplayState *ds, const char **fd_filename,
                         int snapshot,
                         const char *kernel_filename,
@@ -951,7 +964,7 @@
              initrd_filename, 1);
 }
 
-static void pc_init_isa(int ram_size, int vga_ram_size, int boot_device,
+static void pc_init_isa(unsigned long ram_size, int vga_ram_size, int boot_device,
                         DisplayState *ds, const char **fd_filename,
                         int snapshot,
                         const char *kernel_filename,
Index: qemu/hw/vga.c
===================================================================
--- qemu.orig/hw/vga.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/vga.c	2007-09-30 15:04:41.000000000 +0000
@@ -1415,10 +1415,11 @@
 static void vga_draw_graphic(VGAState *s, int full_update)
 {
     int y1, y, update, page_min, page_max, linesize, y_start, double_scan, mask;
-    int width, height, shift_control, line_offset, page0, page1, bwidth;
+    int width, height, shift_control, line_offset, bwidth;
     int disp_width, multi_scan, multi_run;
     uint8_t *d;
     uint32_t v, addr1, addr;
+    long page0, page1;
     vga_draw_line_func *vga_draw_line;
 
     full_update |= update_basic_params(s);
Index: qemu/hw/sun4m.c
===================================================================
--- qemu.orig/hw/sun4m.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/sun4m.c	2007-09-30 07:41:45.000000000 +0000
@@ -158,7 +158,7 @@
 extern int nographic;
 
 static void nvram_init(m48t59_t *nvram, uint8_t *macaddr, const char *cmdline,
-		       int boot_device, uint32_t RAM_size,
+		       int boot_device, unsigned long RAM_size,
 		       uint32_t kernel_size,
 		       int width, int height, int depth,
                        int machine_id)
@@ -174,7 +174,7 @@
     m48t59_write(nvram, 0x2D, smp_cpus & 0xff);
     m48t59_write(nvram, 0x2E, 0);
     m48t59_write(nvram, 0x2F, nographic & 0xff);
-    nvram_set_lword(nvram,  0x30, RAM_size);
+    nvram_set_lword(nvram,  0x30, RAM_size & 0xffffffff);
     m48t59_write(nvram, 0x34, boot_device & 0xff);
     nvram_set_lword(nvram,  0x38, KERNEL_LOAD_ADDR);
     nvram_set_lword(nvram,  0x3C, kernel_size);
@@ -187,6 +187,7 @@
     nvram_set_word(nvram,   0x54, width);
     nvram_set_word(nvram,   0x56, height);
     nvram_set_word(nvram,   0x58, depth);
+    nvram_set_lword(nvram,  0x5c, RAM_size >> 32);
 
     // OpenBIOS nvram variables
     // Variable partition
@@ -306,7 +307,7 @@
     env->halted = 1;
 }
 
-static void *sun4m_hw_init(const struct hwdef *hwdef, int RAM_size,
+static void *sun4m_hw_init(const struct hwdef *hwdef, unsigned long RAM_size,
                            DisplayState *ds, const char *cpu_model)
 
 {
@@ -411,7 +412,8 @@
     return nvram;
 }
 
-static void sun4m_load_kernel(long vram_size, int RAM_size, int boot_device,
+static void sun4m_load_kernel(long vram_size, unsigned long RAM_size,
+                              int boot_device,
                               const char *kernel_filename,
                               const char *kernel_cmdline,
                               const char *initrd_filename,
@@ -546,17 +548,19 @@
     },
 };
 
-static void sun4m_common_init(int RAM_size, int boot_device, DisplayState *ds,
-                              const char *kernel_filename, const char *kernel_cmdline,
-                              const char *initrd_filename, const char *cpu_model,
-                              unsigned int machine, int max_ram)
+static void sun4m_common_init(unsigned long RAM_size, int boot_device,
+                              DisplayState *ds,
+                              const char *kernel_filename,
+                              const char *kernel_cmdline,
+                              const char *initrd_filename,
+                              const char *cpu_model,
+                              unsigned int machine, unsigned long max_ram)
 {
     void *nvram;
 
-    if ((unsigned int)RAM_size > (unsigned int)max_ram) {
-        fprintf(stderr, "qemu: Too much memory for this machine: %d, maximum %d\n",
-                (unsigned int)RAM_size / (1024 * 1024),
-                (unsigned int)max_ram / (1024 * 1024));
+    if (RAM_size > max_ram) {
+        fprintf(stderr, "qemu: Too much memory for this machine: %ld, maximum %ld\n",
+                RAM_size / (1024 * 1024), max_ram / (1024 * 1024));
         exit(1);
     }
     nvram = sun4m_hw_init(&hwdefs[machine], RAM_size, ds, cpu_model);
@@ -567,10 +571,10 @@
 }
 
 /* SPARCstation 5 hardware initialisation */
-static void ss5_init(int RAM_size, int vga_ram_size, int boot_device,
-                       DisplayState *ds, const char **fd_filename, int snapshot,
-                       const char *kernel_filename, const char *kernel_cmdline,
-                       const char *initrd_filename, const char *cpu_model)
+static void ss5_init(unsigned long RAM_size, int vga_ram_size, int boot_device,
+                     DisplayState *ds, const char **fd_filename, int snapshot,
+                     const char *kernel_filename, const char *kernel_cmdline,
+                     const char *initrd_filename, const char *cpu_model)
 {
     if (cpu_model == NULL)
         cpu_model = "Fujitsu MB86904";
@@ -580,16 +584,16 @@
 }
 
 /* SPARCstation 10 hardware initialisation */
-static void ss10_init(int RAM_size, int vga_ram_size, int boot_device,
-                            DisplayState *ds, const char **fd_filename, int snapshot,
-                            const char *kernel_filename, const char *kernel_cmdline,
-                            const char *initrd_filename, const char *cpu_model)
+static void ss10_init(unsigned long RAM_size, int vga_ram_size, int boot_device,
+                      DisplayState *ds, const char **fd_filename, int snapshot,
+                      const char *kernel_filename, const char *kernel_cmdline,
+                      const char *initrd_filename, const char *cpu_model)
 {
     if (cpu_model == NULL)
         cpu_model = "TI SuperSparc II";
     sun4m_common_init(RAM_size, boot_device, ds, kernel_filename,
                       kernel_cmdline, initrd_filename, cpu_model,
-                      1, 0xffffffff); // XXX actually first 62GB ok
+                      1, 0xe000000000ULL);
 }
 
 QEMUMachine ss5_machine = {
Index: qemu/target-sparc/op_helper.c
===================================================================
--- qemu.orig/target-sparc/op_helper.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/target-sparc/op_helper.c	2007-09-30 08:58:56.000000000 +0000
@@ -251,8 +251,7 @@
             break;
         }
         break;
-    case 0x2e: /* MMU passthrough, 0xexxxxxxxx */
-    case 0x2f: /* MMU passthrough, 0xfxxxxxxxx */
+    case 0x21 ... 0x2f: /* MMU passthrough, 0x1xxxxxxxx .. 0xfxxxxxxxx .. */
         switch(size) {
         case 1:
             ret = ldub_phys((target_phys_addr_t)T0
@@ -275,7 +274,6 @@
             break;
         }
         break;
-    case 0x21 ... 0x2d: /* MMU passthrough, unassigned */
     default:
         do_unassigned_access(T0, 0, 0, 1);
         ret = 0;
Index: qemu/hw/an5206.c
===================================================================
--- qemu.orig/hw/an5206.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/an5206.c	2007-09-30 07:41:45.000000000 +0000
@@ -27,7 +27,8 @@
 
 /* Board init.  */
 
-static void an5206_init(int ram_size, int vga_ram_size, int boot_device,
+static void an5206_init(unsigned long ram_size, int vga_ram_size,
+                     int boot_device,
                      DisplayState *ds, const char **fd_filename, int snapshot,
                      const char *kernel_filename, const char *kernel_cmdline,
                      const char *initrd_filename, const char *cpu_model)
Index: qemu/hw/integratorcp.c
===================================================================
--- qemu.orig/hw/integratorcp.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/integratorcp.c	2007-09-30 07:41:45.000000000 +0000
@@ -462,7 +462,8 @@
 
 /* Board init.  */
 
-static void integratorcp_init(int ram_size, int vga_ram_size, int boot_device,
+static void integratorcp_init(unsigned long ram_size, int vga_ram_size,
+                     int boot_device,
                      DisplayState *ds, const char **fd_filename, int snapshot,
                      const char *kernel_filename, const char *kernel_cmdline,
                      const char *initrd_filename, const char *cpu_model)
Index: qemu/hw/mcf5208.c
===================================================================
--- qemu.orig/hw/mcf5208.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/mcf5208.c	2007-09-30 07:41:45.000000000 +0000
@@ -197,7 +197,8 @@
     }
 }
 
-static void mcf5208evb_init(int ram_size, int vga_ram_size, int boot_device,
+static void mcf5208evb_init(unsigned long ram_size, int vga_ram_size,
+                     int boot_device,
                      DisplayState *ds, const char **fd_filename, int snapshot,
                      const char *kernel_filename, const char *kernel_cmdline,
                      const char *initrd_filename, const char *cpu_model)
Index: qemu/hw/mips_malta.c
===================================================================
--- qemu.orig/hw/mips_malta.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/mips_malta.c	2007-09-30 07:41:45.000000000 +0000
@@ -740,7 +740,7 @@
 }
 
 static
-void mips_malta_init (int ram_size, int vga_ram_size, int boot_device,
+void mips_malta_init (unsigned long ram_size, int vga_ram_size, int boot_device,
                       DisplayState *ds, const char **fd_filename, int snapshot,
                       const char *kernel_filename, const char *kernel_cmdline,
                       const char *initrd_filename, const char *cpu_model)
Index: qemu/hw/mips_pica61.c
===================================================================
--- qemu.orig/hw/mips_pica61.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/mips_pica61.c	2007-09-30 07:41:45.000000000 +0000
@@ -55,7 +55,8 @@
 }
 
 static
-void mips_pica61_init (int ram_size, int vga_ram_size, int boot_device,
+void mips_pica61_init (unsigned long ram_size, int vga_ram_size,
+                    int boot_device,
                     DisplayState *ds, const char **fd_filename, int snapshot,
                     const char *kernel_filename, const char *kernel_cmdline,
                     const char *initrd_filename, const char *cpu_model)
Index: qemu/hw/mips_r4k.c
===================================================================
--- qemu.orig/hw/mips_r4k.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/mips_r4k.c	2007-09-30 07:41:45.000000000 +0000
@@ -136,7 +136,7 @@
 }
 
 static
-void mips_r4k_init (int ram_size, int vga_ram_size, int boot_device,
+void mips_r4k_init (unsigned long ram_size, int vga_ram_size, int boot_device,
                     DisplayState *ds, const char **fd_filename, int snapshot,
                     const char *kernel_filename, const char *kernel_cmdline,
                     const char *initrd_filename, const char *cpu_model)
Index: qemu/hw/palm.c
===================================================================
--- qemu.orig/hw/palm.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/palm.c	2007-09-30 07:41:45.000000000 +0000
@@ -61,7 +61,8 @@
 {
 }
 
-static void palmte_init(int ram_size, int vga_ram_size, int boot_device,
+static void palmte_init(unsigned long ram_size, int vga_ram_size,
+                int boot_device,
                 DisplayState *ds, const char **fd_filename, int snapshot,
                 const char *kernel_filename, const char *kernel_cmdline,
                 const char *initrd_filename, const char *cpu_model)
Index: qemu/hw/ppc405_boards.c
===================================================================
--- qemu.orig/hw/ppc405_boards.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/ppc405_boards.c	2007-09-30 07:41:45.000000000 +0000
@@ -171,7 +171,8 @@
     }
 }
 
-static void ref405ep_init (int ram_size, int vga_ram_size, int boot_device,
+static void ref405ep_init (unsigned long ram_size, int vga_ram_size,
+                           int boot_device,
                            DisplayState *ds, const char **fd_filename,
                            int snapshot,
                            const char *kernel_filename,
@@ -494,7 +495,8 @@
     }
 }
 
-static void taihu_405ep_init(int ram_size, int vga_ram_size, int boot_device,
+static void taihu_405ep_init(unsigned long ram_size, int vga_ram_size,
+                             int boot_device,
                              DisplayState *ds, const char **fd_filename,
                              int snapshot,
                              const char *kernel_filename,
Index: qemu/hw/ppc_chrp.c
===================================================================
--- qemu.orig/hw/ppc_chrp.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/ppc_chrp.c	2007-09-30 07:41:45.000000000 +0000
@@ -300,7 +300,8 @@
 }
 
 /* PowerPC CHRP hardware initialisation */
-static void ppc_chrp_init (int ram_size, int vga_ram_size, int boot_device,
+static void ppc_chrp_init (unsigned long ram_size, int vga_ram_size,
+                           int boot_device,
                            DisplayState *ds, const char **fd_filename,
                            int snapshot,
                            const char *kernel_filename,
@@ -567,7 +568,8 @@
     register_ioport_write(0x0F00, 4, 1, &PPC_debug_write, NULL);
 }
 
-static void ppc_core99_init (int ram_size, int vga_ram_size, int boot_device,
+static void ppc_core99_init (unsigned long ram_size, int vga_ram_size,
+                             int boot_device,
                              DisplayState *ds, const char **fd_filename,
                              int snapshot,
                              const char *kernel_filename,
@@ -581,7 +583,8 @@
                   initrd_filename, cpu_model, 0);
 }
 
-static void ppc_heathrow_init (int ram_size, int vga_ram_size, int boot_device,
+static void ppc_heathrow_init (unsigned long ram_size, int vga_ram_size,
+                               int boot_device,
                                DisplayState *ds, const char **fd_filename,
                                int snapshot,
                                const char *kernel_filename,
Index: qemu/hw/ppc_prep.c
===================================================================
--- qemu.orig/hw/ppc_prep.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/ppc_prep.c	2007-09-30 07:41:45.000000000 +0000
@@ -514,7 +514,8 @@
 #define NVRAM_SIZE        0x2000
 
 /* PowerPC PREP hardware initialisation */
-static void ppc_prep_init (int ram_size, int vga_ram_size, int boot_device,
+static void ppc_prep_init (unsigned long ram_size, int vga_ram_size,
+                           int boot_device,
                            DisplayState *ds, const char **fd_filename,
                            int snapshot, const char *kernel_filename,
                            const char *kernel_cmdline,
Index: qemu/hw/realview.c
===================================================================
--- qemu.orig/hw/realview.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/realview.c	2007-09-30 07:41:45.000000000 +0000
@@ -12,7 +12,8 @@
 
 /* Board init.  */
 
-static void realview_init(int ram_size, int vga_ram_size, int boot_device,
+static void realview_init(unsigned long ram_size, int vga_ram_size,
+                     int boot_device,
                      DisplayState *ds, const char **fd_filename, int snapshot,
                      const char *kernel_filename, const char *kernel_cmdline,
                      const char *initrd_filename, const char *cpu_model)
Index: qemu/hw/shix.c
===================================================================
--- qemu.orig/hw/shix.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/shix.c	2007-09-30 07:41:45.000000000 +0000
@@ -62,7 +62,7 @@
     /* XXXXX */
 }
 
-void shix_init(int ram_size, int vga_ram_size, int boot_device,
+void shix_init(unsigned long ram_size, int vga_ram_size, int boot_device,
 	       DisplayState * ds, const char **fd_filename, int snapshot,
 	       const char *kernel_filename, const char *kernel_cmdline,
 	       const char *initrd_filename, const char *cpu_model)
Index: qemu/hw/spitz.c
===================================================================
--- qemu.orig/hw/spitz.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/spitz.c	2007-09-30 07:41:45.000000000 +0000
@@ -1167,7 +1167,7 @@
 /* Board init.  */
 enum spitz_model_e { spitz, akita, borzoi, terrier };
 
-static void spitz_common_init(int ram_size, int vga_ram_size,
+static void spitz_common_init(unsigned long  ram_size, int vga_ram_size,
                 DisplayState *ds, const char *kernel_filename,
                 const char *kernel_cmdline, const char *initrd_filename,
                 const char *cpu_model, enum spitz_model_e model, int arm_id)
@@ -1224,7 +1224,8 @@
     sl_bootparam_write(SL_PXA_PARAM_BASE - PXA2XX_SDRAM_BASE);
 }
 
-static void spitz_init(int ram_size, int vga_ram_size, int boot_device,
+static void spitz_init(unsigned long ram_size, int vga_ram_size,
+                int boot_device,
                 DisplayState *ds, const char **fd_filename, int snapshot,
                 const char *kernel_filename, const char *kernel_cmdline,
                 const char *initrd_filename, const char *cpu_model)
@@ -1233,7 +1234,8 @@
                 kernel_cmdline, initrd_filename, cpu_model, spitz, 0x2c9);
 }
 
-static void borzoi_init(int ram_size, int vga_ram_size, int boot_device,
+static void borzoi_init(unsigned long ram_size, int vga_ram_size,
+                int boot_device,
                 DisplayState *ds, const char **fd_filename, int snapshot,
                 const char *kernel_filename, const char *kernel_cmdline,
                 const char *initrd_filename, const char *cpu_model)
@@ -1242,7 +1244,8 @@
                 kernel_cmdline, initrd_filename, cpu_model, borzoi, 0x33f);
 }
 
-static void akita_init(int ram_size, int vga_ram_size, int boot_device,
+static void akita_init(unsigned long ram_size, int vga_ram_size,
+                int boot_device,
                 DisplayState *ds, const char **fd_filename, int snapshot,
                 const char *kernel_filename, const char *kernel_cmdline,
                 const char *initrd_filename, const char *cpu_model)
@@ -1251,7 +1254,8 @@
                 kernel_cmdline, initrd_filename, cpu_model, akita, 0x2e8);
 }
 
-static void terrier_init(int ram_size, int vga_ram_size, int boot_device,
+static void terrier_init(unsigned long ram_size, int vga_ram_size,
+                int boot_device,
                 DisplayState *ds, const char **fd_filename, int snapshot,
                 const char *kernel_filename, const char *kernel_cmdline,
                 const char *initrd_filename, const char *cpu_model)
Index: qemu/hw/sun4u.c
===================================================================
--- qemu.orig/hw/sun4u.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/sun4u.c	2007-09-30 07:41:45.000000000 +0000
@@ -331,10 +331,11 @@
 static fdctrl_t *floppy_controller;
 
 /* Sun4u hardware initialisation */
-static void sun4u_init(int ram_size, int vga_ram_size, int boot_device,
-             DisplayState *ds, const char **fd_filename, int snapshot,
-             const char *kernel_filename, const char *kernel_cmdline,
-             const char *initrd_filename, const char *cpu_model)
+static void sun4u_init(unsigned long ram_size, int vga_ram_size,
+                       int boot_device,
+                       DisplayState *ds, const char **fd_filename, int snapshot,
+                       const char *kernel_filename, const char *kernel_cmdline,
+                       const char *initrd_filename, const char *cpu_model)
 {
     CPUState *env;
     char buf[1024];
Index: qemu/hw/versatilepb.c
===================================================================
--- qemu.orig/hw/versatilepb.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/versatilepb.c	2007-09-30 07:41:45.000000000 +0000
@@ -151,7 +151,8 @@
    peripherans and expansion busses.  For now we emulate a subset of the
    PB peripherals and just change the board ID.  */
 
-static void versatile_init(int ram_size, int vga_ram_size, int boot_device,
+static void versatile_init(unsigned long ram_size, int vga_ram_size,
+                     int boot_device,
                      DisplayState *ds, const char **fd_filename, int snapshot,
                      const char *kernel_filename, const char *kernel_cmdline,
                      const char *initrd_filename, const char *cpu_model,
@@ -266,7 +267,7 @@
                     initrd_filename, board_id, 0x0);
 }
 
-static void vpb_init(int ram_size, int vga_ram_size, int boot_device,
+static void vpb_init(unsigned long ram_size, int vga_ram_size, int boot_device,
                      DisplayState *ds, const char **fd_filename, int snapshot,
                      const char *kernel_filename, const char *kernel_cmdline,
                      const char *initrd_filename, const char *cpu_model)
@@ -277,7 +278,7 @@
                    initrd_filename, cpu_model, 0x183);
 }
 
-static void vab_init(int ram_size, int vga_ram_size, int boot_device,
+static void vab_init(unsigned long ram_size, int vga_ram_size, int boot_device,
                      DisplayState *ds, const char **fd_filename, int snapshot,
                      const char *kernel_filename, const char *kernel_cmdline,
                      const char *initrd_filename, const char *cpu_model)
Index: qemu/osdep.c
===================================================================
--- qemu.orig/osdep.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/osdep.c	2007-09-30 07:41:45.000000000 +0000
@@ -87,7 +87,7 @@
 void *kqemu_vmalloc(size_t size)
 {
     static int phys_ram_fd = -1;
-    static int phys_ram_size = 0;
+    static unsigned long phys_ram_size = 0;
     const char *tmpdir;
     char phys_ram_file[1024];
     void *ptr;
@@ -110,7 +110,7 @@
             int64_t free_space;
             int ram_mb;
 
-            extern int ram_size;
+            extern unsigned long ram_size;
             free_space = (int64_t)stfs.f_bavail * stfs.f_bsize;
             if ((ram_size + 8192 * 1024) >= free_space) {
                 ram_mb = (ram_size / (1024 * 1024));
Index: qemu/hw/piix_pci.c
===================================================================
--- qemu.orig/hw/piix_pci.c	2007-09-30 07:40:09.000000000 +0000
+++ qemu/hw/piix_pci.c	2007-09-30 07:41:45.000000000 +0000
@@ -52,7 +52,7 @@
     return (irq_num + slot_addend) & 3;
 }
 
-static uint32_t isa_page_descs[384 / 4];
+static unsigned long isa_page_descs[384 / 4];
 static uint8_t smm_enabled;
 
 static void update_pam(PCIDevice *d, uint32_t start, uint32_t end, int r)
Index: qemu/hw/r2d.c
===================================================================
--- qemu.orig/hw/r2d.c	2007-09-30 07:42:05.000000000 +0000
+++ qemu/hw/r2d.c	2007-09-30 07:42:22.000000000 +0000
@@ -27,7 +27,7 @@
 #define SDRAM_BASE 0x0c000000 /* Physical location of SDRAM: Area 3 */
 #define SDRAM_SIZE 0x04000000
 
-void r2d_init(int ram_size, int vga_ram_size, int boot_device,
+void r2d_init(unsigned long ram_size, int vga_ram_size, int boot_device,
 	      DisplayState * ds, const char **fd_filename, int snapshot,
 	      const char *kernel_filename, const char *kernel_cmdline,
 	      const char *initrd_filename, const char *cpu_model)

Reply via email to