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
This commit is contained in:
parent
9d0869b630
commit
0986ac3be2
4
Makefile
4
Makefile
@ -68,7 +68,7 @@ install: all $(if $(BUILD_DOCS),install-doc)
|
|||||||
$(INSTALL) -m 755 -s $(TOOLS) "$(DESTDIR)$(bindir)"
|
$(INSTALL) -m 755 -s $(TOOLS) "$(DESTDIR)$(bindir)"
|
||||||
mkdir -p "$(DESTDIR)$(datadir)"
|
mkdir -p "$(DESTDIR)$(datadir)"
|
||||||
for x in bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \
|
for x in bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \
|
||||||
video.x proll.elf linux_boot.bin; do \
|
video.x openbios-sparc32 linux_boot.bin; do \
|
||||||
$(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
|
$(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
|
||||||
done
|
done
|
||||||
ifndef CONFIG_WIN32
|
ifndef CONFIG_WIN32
|
||||||
@ -149,7 +149,7 @@ tarbin:
|
|||||||
$(datadir)/vgabios-cirrus.bin \
|
$(datadir)/vgabios-cirrus.bin \
|
||||||
$(datadir)/ppc_rom.bin \
|
$(datadir)/ppc_rom.bin \
|
||||||
$(datadir)/video.x \
|
$(datadir)/video.x \
|
||||||
$(datadir)/proll.elf \
|
$(datadir)/openbios-sparc32 \
|
||||||
$(datadir)/linux_boot.bin \
|
$(datadir)/linux_boot.bin \
|
||||||
$(docdir)/qemu-doc.html \
|
$(docdir)/qemu-doc.html \
|
||||||
$(docdir)/qemu-tech.html \
|
$(docdir)/qemu-tech.html \
|
||||||
|
@ -28,8 +28,7 @@
|
|||||||
#define INITRD_LOAD_ADDR 0x00800000
|
#define INITRD_LOAD_ADDR 0x00800000
|
||||||
#define PROM_SIZE_MAX (256 * 1024)
|
#define PROM_SIZE_MAX (256 * 1024)
|
||||||
#define PROM_ADDR 0xffd00000
|
#define PROM_ADDR 0xffd00000
|
||||||
#define PROM_FILENAMEB "proll.bin"
|
#define PROM_FILENAME "openbios-sparc32"
|
||||||
#define PROM_FILENAMEE "proll.elf"
|
|
||||||
#define PHYS_JJ_EEPROM 0x71200000 /* m48t08 */
|
#define PHYS_JJ_EEPROM 0x71200000 /* m48t08 */
|
||||||
#define PHYS_JJ_IDPROM_OFF 0x1FD8
|
#define PHYS_JJ_IDPROM_OFF 0x1FD8
|
||||||
#define PHYS_JJ_EEPROM_SIZE 0x2000
|
#define PHYS_JJ_EEPROM_SIZE 0x2000
|
||||||
@ -273,12 +272,8 @@ static void sun4m_init(int ram_size, int vga_ram_size, int boot_device,
|
|||||||
(PROM_SIZE_MAX + TARGET_PAGE_SIZE - 1) & TARGET_PAGE_MASK,
|
(PROM_SIZE_MAX + TARGET_PAGE_SIZE - 1) & TARGET_PAGE_MASK,
|
||||||
prom_offset | IO_MEM_ROM);
|
prom_offset | IO_MEM_ROM);
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), "%s/%s", bios_dir, PROM_FILENAMEE);
|
snprintf(buf, sizeof(buf), "%s/%s", bios_dir, PROM_FILENAME);
|
||||||
ret = load_elf(buf, 0, NULL);
|
ret = load_elf(buf, 0, NULL);
|
||||||
if (ret < 0) {
|
|
||||||
snprintf(buf, sizeof(buf), "%s/%s", bios_dir, PROM_FILENAMEB);
|
|
||||||
ret = load_image(buf, phys_ram_base + prom_offset);
|
|
||||||
}
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
fprintf(stderr, "qemu: could not load prom '%s'\n",
|
fprintf(stderr, "qemu: could not load prom '%s'\n",
|
||||||
buf);
|
buf);
|
||||||
|
@ -32,8 +32,7 @@
|
|||||||
#define APB_SPECIAL_BASE 0x1fe00000000ULL
|
#define APB_SPECIAL_BASE 0x1fe00000000ULL
|
||||||
#define APB_MEM_BASE 0x1ff00000000ULL
|
#define APB_MEM_BASE 0x1ff00000000ULL
|
||||||
#define VGA_BASE (APB_MEM_BASE + 0x400000ULL)
|
#define VGA_BASE (APB_MEM_BASE + 0x400000ULL)
|
||||||
#define PROM_FILENAMEB "proll-sparc64.bin"
|
#define PROM_FILENAME "openbios-sparc64"
|
||||||
#define PROM_FILENAMEE "proll-sparc64.elf"
|
|
||||||
#define NVRAM_SIZE 0x2000
|
#define NVRAM_SIZE 0x2000
|
||||||
|
|
||||||
/* TSC handling */
|
/* TSC handling */
|
||||||
@ -282,12 +281,8 @@ static void sun4u_init(int ram_size, int vga_ram_size, int boot_device,
|
|||||||
(PROM_SIZE_MAX + TARGET_PAGE_SIZE) & TARGET_PAGE_MASK,
|
(PROM_SIZE_MAX + TARGET_PAGE_SIZE) & TARGET_PAGE_MASK,
|
||||||
prom_offset | IO_MEM_ROM);
|
prom_offset | IO_MEM_ROM);
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), "%s/%s", bios_dir, PROM_FILENAMEE);
|
snprintf(buf, sizeof(buf), "%s/%s", bios_dir, PROM_FILENAME);
|
||||||
ret = load_elf(buf, 0, NULL);
|
ret = load_elf(buf, 0, NULL);
|
||||||
if (ret < 0) {
|
|
||||||
snprintf(buf, sizeof(buf), "%s/%s", bios_dir, PROM_FILENAMEB);
|
|
||||||
ret = load_image(buf, phys_ram_base + prom_offset);
|
|
||||||
}
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
fprintf(stderr, "qemu: could not load prom '%s'\n",
|
fprintf(stderr, "qemu: could not load prom '%s'\n",
|
||||||
buf);
|
buf);
|
||||||
|
@ -7,11 +7,10 @@
|
|||||||
- The PowerPC Open Hack'Ware Open Firmware Compatible BIOS is
|
- The PowerPC Open Hack'Ware Open Firmware Compatible BIOS is
|
||||||
available at http://perso.magic.fr/l_indien/OpenHackWare/index.htm.
|
available at http://perso.magic.fr/l_indien/OpenHackWare/index.htm.
|
||||||
|
|
||||||
- Proll is a GPL'd boot PROM for Sparc JavaStations
|
|
||||||
(http://people.redhat.com/zaitcev/linux/).
|
|
||||||
Applying proll.patch allows circumventing some bugs and enables
|
|
||||||
faster kernel load through a hack.
|
|
||||||
|
|
||||||
- video.x is a PowerMac NDRV compatible driver for a VGA frame
|
- video.x is a PowerMac NDRV compatible driver for a VGA frame
|
||||||
buffer. It comes from the Mac-on-Linux project
|
buffer. It comes from the Mac-on-Linux project
|
||||||
(http://www.maconlinux.org/).
|
(http://www.maconlinux.org/).
|
||||||
|
|
||||||
|
- OpenBIOS (http://www.openbios.org/) is a free (GPL v2) portable
|
||||||
|
firmware implementation. The goal is to implement a 100% IEEE
|
||||||
|
1275-1994 (referred to as Open Firmware) compliant firmware.
|
||||||
|
BIN
pc-bios/openbios-sparc32
Normal file
BIN
pc-bios/openbios-sparc32
Normal file
Binary file not shown.
Binary file not shown.
@ -1394,7 +1394,7 @@ More information is available at
|
|||||||
@node Sparc32 System emulator invocation
|
@node Sparc32 System emulator invocation
|
||||||
@section Sparc32 System emulator invocation
|
@section Sparc32 System emulator invocation
|
||||||
|
|
||||||
Use the executable @file{qemu-system-sparc} to simulate a JavaStation
|
Use the executable @file{qemu-system-sparc} to simulate a SparcStation 5
|
||||||
(sun4m architecture). The emulation is somewhat complete.
|
(sun4m architecture). The emulation is somewhat complete.
|
||||||
|
|
||||||
QEMU emulates the following sun4m peripherals:
|
QEMU emulates the following sun4m peripherals:
|
||||||
@ -1419,13 +1419,14 @@ Floppy drive
|
|||||||
|
|
||||||
The number of peripherals is fixed in the architecture.
|
The number of peripherals is fixed in the architecture.
|
||||||
|
|
||||||
QEMU uses the Proll, a PROM replacement available at
|
Since version 0.8.1, QEMU uses OpenBIOS
|
||||||
@url{http://people.redhat.com/@/zaitcev/linux/}. The required
|
@url{http://www.openbios.org/}. OpenBIOS is a free (GPL v2) portable
|
||||||
QEMU-specific patches are included with the sources.
|
firmware implementation. The goal is to implement a 100% IEEE
|
||||||
|
1275-1994 (referred to as Open Firmware) compliant firmware.
|
||||||
|
|
||||||
A sample Linux 2.6 series kernel and ram disk image are available on
|
A sample Linux 2.6 series kernel and ram disk image are available on
|
||||||
the QEMU web site. Please note that currently neither Linux 2.4
|
the QEMU web site. Please note that currently NetBSD, OpenBSD or
|
||||||
series, NetBSD, nor OpenBSD kernels work.
|
Solaris kernels don't work.
|
||||||
|
|
||||||
@c man begin OPTIONS
|
@c man begin OPTIONS
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user