diff options
author | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-09-24 19:44:09 +0000 |
---|---|---|
committer | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-09-24 19:44:09 +0000 |
commit | 40ce0a9a8f498dc4c766f55760eea49b3f55069e (patch) | |
tree | 65d1caaafabe10233fd5f0514daf9a08b957a6b8 /hw | |
parent | 9437454a8427c1b32de4ab7a426615ea237e59c6 (diff) |
CPU boot mode
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3231 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'hw')
-rw-r--r-- | hw/sun4m.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/hw/sun4m.c b/hw/sun4m.c index 4da4138d91..a76c53b28b 100644 --- a/hw/sun4m.c +++ b/hw/sun4m.c @@ -50,7 +50,8 @@ #define CMDLINE_ADDR 0x007ff000 #define INITRD_LOAD_ADDR 0x00800000 #define PROM_SIZE_MAX (256 * 1024) -#define PROM_ADDR 0xffd00000 +#define PROM_PADDR 0xff0000000ULL +#define PROM_VADDR 0xffd00000 #define PROM_FILENAME "openbios-sparc32" #define MAX_CPUS 16 @@ -425,12 +426,12 @@ static void sun4m_load_kernel(long vram_size, int RAM_size, int boot_device, linux_boot = (kernel_filename != NULL); prom_offset = RAM_size + vram_size; - cpu_register_physical_memory(PROM_ADDR, + cpu_register_physical_memory(PROM_PADDR, (PROM_SIZE_MAX + TARGET_PAGE_SIZE - 1) & TARGET_PAGE_MASK, prom_offset | IO_MEM_ROM); snprintf(buf, sizeof(buf), "%s/%s", bios_dir, PROM_FILENAME); - ret = load_elf(buf, 0, NULL, NULL, NULL); + ret = load_elf(buf, PROM_PADDR - PROM_VADDR, NULL, NULL, NULL); if (ret < 0) { fprintf(stderr, "qemu: could not load prom '%s'\n", buf); @@ -588,7 +589,7 @@ static void ss10_init(int RAM_size, int vga_ram_size, int boot_device, cpu_model = "TI SuperSparc II"; sun4m_common_init(RAM_size, boot_device, ds, kernel_filename, kernel_cmdline, initrd_filename, cpu_model, - 1, PROM_ADDR); // XXX prom overlap, actually first 4GB ok + 1, 0xffffffff); // XXX actually first 62GB ok } QEMUMachine ss5_machine = { |