Commit 0986ac3be2989f37cec262f3370bac77999a52bf
1 parent
9d0869b6
use OpenBIOS instead of Proll on sparc (Blue Swirl)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1960 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
7 changed files
with
17 additions
and
27 deletions
Makefile
| @@ -68,7 +68,7 @@ install: all $(if $(BUILD_DOCS),install-doc) | @@ -68,7 +68,7 @@ install: all $(if $(BUILD_DOCS),install-doc) | ||
| 68 | $(INSTALL) -m 755 -s $(TOOLS) "$(DESTDIR)$(bindir)" | 68 | $(INSTALL) -m 755 -s $(TOOLS) "$(DESTDIR)$(bindir)" |
| 69 | mkdir -p "$(DESTDIR)$(datadir)" | 69 | mkdir -p "$(DESTDIR)$(datadir)" |
| 70 | for x in bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \ | 70 | for x in bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \ |
| 71 | - video.x proll.elf linux_boot.bin; do \ | 71 | + video.x openbios-sparc32 linux_boot.bin; do \ |
| 72 | $(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \ | 72 | $(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \ |
| 73 | done | 73 | done |
| 74 | ifndef CONFIG_WIN32 | 74 | ifndef CONFIG_WIN32 |
| @@ -149,7 +149,7 @@ tarbin: | @@ -149,7 +149,7 @@ tarbin: | ||
| 149 | $(datadir)/vgabios-cirrus.bin \ | 149 | $(datadir)/vgabios-cirrus.bin \ |
| 150 | $(datadir)/ppc_rom.bin \ | 150 | $(datadir)/ppc_rom.bin \ |
| 151 | $(datadir)/video.x \ | 151 | $(datadir)/video.x \ |
| 152 | - $(datadir)/proll.elf \ | 152 | + $(datadir)/openbios-sparc32 \ |
| 153 | $(datadir)/linux_boot.bin \ | 153 | $(datadir)/linux_boot.bin \ |
| 154 | $(docdir)/qemu-doc.html \ | 154 | $(docdir)/qemu-doc.html \ |
| 155 | $(docdir)/qemu-tech.html \ | 155 | $(docdir)/qemu-tech.html \ |
hw/sun4m.c
| @@ -28,8 +28,7 @@ | @@ -28,8 +28,7 @@ | ||
| 28 | #define INITRD_LOAD_ADDR 0x00800000 | 28 | #define INITRD_LOAD_ADDR 0x00800000 |
| 29 | #define PROM_SIZE_MAX (256 * 1024) | 29 | #define PROM_SIZE_MAX (256 * 1024) |
| 30 | #define PROM_ADDR 0xffd00000 | 30 | #define PROM_ADDR 0xffd00000 |
| 31 | -#define PROM_FILENAMEB "proll.bin" | ||
| 32 | -#define PROM_FILENAMEE "proll.elf" | 31 | +#define PROM_FILENAME "openbios-sparc32" |
| 33 | #define PHYS_JJ_EEPROM 0x71200000 /* m48t08 */ | 32 | #define PHYS_JJ_EEPROM 0x71200000 /* m48t08 */ |
| 34 | #define PHYS_JJ_IDPROM_OFF 0x1FD8 | 33 | #define PHYS_JJ_IDPROM_OFF 0x1FD8 |
| 35 | #define PHYS_JJ_EEPROM_SIZE 0x2000 | 34 | #define PHYS_JJ_EEPROM_SIZE 0x2000 |
| @@ -273,13 +272,9 @@ static void sun4m_init(int ram_size, int vga_ram_size, int boot_device, | @@ -273,13 +272,9 @@ static void sun4m_init(int ram_size, int vga_ram_size, int boot_device, | ||
| 273 | (PROM_SIZE_MAX + TARGET_PAGE_SIZE - 1) & TARGET_PAGE_MASK, | 272 | (PROM_SIZE_MAX + TARGET_PAGE_SIZE - 1) & TARGET_PAGE_MASK, |
| 274 | prom_offset | IO_MEM_ROM); | 273 | prom_offset | IO_MEM_ROM); |
| 275 | 274 | ||
| 276 | - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, PROM_FILENAMEE); | 275 | + snprintf(buf, sizeof(buf), "%s/%s", bios_dir, PROM_FILENAME); |
| 277 | ret = load_elf(buf, 0, NULL); | 276 | ret = load_elf(buf, 0, NULL); |
| 278 | if (ret < 0) { | 277 | if (ret < 0) { |
| 279 | - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, PROM_FILENAMEB); | ||
| 280 | - ret = load_image(buf, phys_ram_base + prom_offset); | ||
| 281 | - } | ||
| 282 | - if (ret < 0) { | ||
| 283 | fprintf(stderr, "qemu: could not load prom '%s'\n", | 278 | fprintf(stderr, "qemu: could not load prom '%s'\n", |
| 284 | buf); | 279 | buf); |
| 285 | exit(1); | 280 | exit(1); |
hw/sun4u.c
| @@ -32,8 +32,7 @@ | @@ -32,8 +32,7 @@ | ||
| 32 | #define APB_SPECIAL_BASE 0x1fe00000000ULL | 32 | #define APB_SPECIAL_BASE 0x1fe00000000ULL |
| 33 | #define APB_MEM_BASE 0x1ff00000000ULL | 33 | #define APB_MEM_BASE 0x1ff00000000ULL |
| 34 | #define VGA_BASE (APB_MEM_BASE + 0x400000ULL) | 34 | #define VGA_BASE (APB_MEM_BASE + 0x400000ULL) |
| 35 | -#define PROM_FILENAMEB "proll-sparc64.bin" | ||
| 36 | -#define PROM_FILENAMEE "proll-sparc64.elf" | 35 | +#define PROM_FILENAME "openbios-sparc64" |
| 37 | #define NVRAM_SIZE 0x2000 | 36 | #define NVRAM_SIZE 0x2000 |
| 38 | 37 | ||
| 39 | /* TSC handling */ | 38 | /* TSC handling */ |
| @@ -282,13 +281,9 @@ static void sun4u_init(int ram_size, int vga_ram_size, int boot_device, | @@ -282,13 +281,9 @@ static void sun4u_init(int ram_size, int vga_ram_size, int boot_device, | ||
| 282 | (PROM_SIZE_MAX + TARGET_PAGE_SIZE) & TARGET_PAGE_MASK, | 281 | (PROM_SIZE_MAX + TARGET_PAGE_SIZE) & TARGET_PAGE_MASK, |
| 283 | prom_offset | IO_MEM_ROM); | 282 | prom_offset | IO_MEM_ROM); |
| 284 | 283 | ||
| 285 | - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, PROM_FILENAMEE); | 284 | + snprintf(buf, sizeof(buf), "%s/%s", bios_dir, PROM_FILENAME); |
| 286 | ret = load_elf(buf, 0, NULL); | 285 | ret = load_elf(buf, 0, NULL); |
| 287 | if (ret < 0) { | 286 | if (ret < 0) { |
| 288 | - snprintf(buf, sizeof(buf), "%s/%s", bios_dir, PROM_FILENAMEB); | ||
| 289 | - ret = load_image(buf, phys_ram_base + prom_offset); | ||
| 290 | - } | ||
| 291 | - if (ret < 0) { | ||
| 292 | fprintf(stderr, "qemu: could not load prom '%s'\n", | 287 | fprintf(stderr, "qemu: could not load prom '%s'\n", |
| 293 | buf); | 288 | buf); |
| 294 | exit(1); | 289 | exit(1); |
pc-bios/README
| @@ -7,11 +7,10 @@ | @@ -7,11 +7,10 @@ | ||
| 7 | - The PowerPC Open Hack'Ware Open Firmware Compatible BIOS is | 7 | - The PowerPC Open Hack'Ware Open Firmware Compatible BIOS is |
| 8 | available at http://perso.magic.fr/l_indien/OpenHackWare/index.htm. | 8 | available at http://perso.magic.fr/l_indien/OpenHackWare/index.htm. |
| 9 | 9 | ||
| 10 | -- Proll is a GPL'd boot PROM for Sparc JavaStations | ||
| 11 | - (http://people.redhat.com/zaitcev/linux/). | ||
| 12 | - Applying proll.patch allows circumventing some bugs and enables | ||
| 13 | - faster kernel load through a hack. | ||
| 14 | - | ||
| 15 | - video.x is a PowerMac NDRV compatible driver for a VGA frame | 10 | - video.x is a PowerMac NDRV compatible driver for a VGA frame |
| 16 | buffer. It comes from the Mac-on-Linux project | 11 | buffer. It comes from the Mac-on-Linux project |
| 17 | (http://www.maconlinux.org/). | 12 | (http://www.maconlinux.org/). |
| 13 | + | ||
| 14 | +- OpenBIOS (http://www.openbios.org/) is a free (GPL v2) portable | ||
| 15 | + firmware implementation. The goal is to implement a 100% IEEE | ||
| 16 | + 1275-1994 (referred to as Open Firmware) compliant firmware. |
pc-bios/openbios-sparc32
0 → 100644
No preview for this file type
pc-bios/proll.elf deleted
100644 → 0
No preview for this file type
qemu-doc.texi
| @@ -1394,7 +1394,7 @@ More information is available at | @@ -1394,7 +1394,7 @@ More information is available at | ||
| 1394 | @node Sparc32 System emulator invocation | 1394 | @node Sparc32 System emulator invocation |
| 1395 | @section Sparc32 System emulator invocation | 1395 | @section Sparc32 System emulator invocation |
| 1396 | 1396 | ||
| 1397 | -Use the executable @file{qemu-system-sparc} to simulate a JavaStation | 1397 | +Use the executable @file{qemu-system-sparc} to simulate a SparcStation 5 |
| 1398 | (sun4m architecture). The emulation is somewhat complete. | 1398 | (sun4m architecture). The emulation is somewhat complete. |
| 1399 | 1399 | ||
| 1400 | QEMU emulates the following sun4m peripherals: | 1400 | QEMU emulates the following sun4m peripherals: |
| @@ -1419,13 +1419,14 @@ Floppy drive | @@ -1419,13 +1419,14 @@ Floppy drive | ||
| 1419 | 1419 | ||
| 1420 | The number of peripherals is fixed in the architecture. | 1420 | The number of peripherals is fixed in the architecture. |
| 1421 | 1421 | ||
| 1422 | -QEMU uses the Proll, a PROM replacement available at | ||
| 1423 | -@url{http://people.redhat.com/@/zaitcev/linux/}. The required | ||
| 1424 | -QEMU-specific patches are included with the sources. | 1422 | +Since version 0.8.1, QEMU uses OpenBIOS |
| 1423 | +@url{http://www.openbios.org/}. OpenBIOS is a free (GPL v2) portable | ||
| 1424 | +firmware implementation. The goal is to implement a 100% IEEE | ||
| 1425 | +1275-1994 (referred to as Open Firmware) compliant firmware. | ||
| 1425 | 1426 | ||
| 1426 | A sample Linux 2.6 series kernel and ram disk image are available on | 1427 | A sample Linux 2.6 series kernel and ram disk image are available on |
| 1427 | -the QEMU web site. Please note that currently neither Linux 2.4 | ||
| 1428 | -series, NetBSD, nor OpenBSD kernels work. | 1428 | +the QEMU web site. Please note that currently NetBSD, OpenBSD or |
| 1429 | +Solaris kernels don't work. | ||
| 1429 | 1430 | ||
| 1430 | @c man begin OPTIONS | 1431 | @c man begin OPTIONS |
| 1431 | 1432 |