- Fix direct loading of a linux kernel with -kernel & -initrd (bz 234681)
- Remove spurious execute bits from manpages (bz 222573)
This commit is contained in:
parent
4cf268e250
commit
76b47ee470
63
qemu-0.9.0-load-initrd.patch
Normal file
63
qemu-0.9.0-load-initrd.patch
Normal file
@ -0,0 +1,63 @@
|
||||
--- hw/pc.c.orig 2007-02-06 07:01:54.000000000 +0800
|
||||
+++ hw/pc.c 2007-04-01 22:19:50.000000000 +0800
|
||||
@@ -32,9 +32,11 @@
|
||||
#define LINUX_BOOT_FILENAME "linux_boot.bin"
|
||||
|
||||
#define KERNEL_LOAD_ADDR 0x00100000
|
||||
-#define INITRD_LOAD_ADDR 0x00600000
|
||||
+#define MAX_INITRD_LOAD_ADDR 0x38000000
|
||||
#define KERNEL_PARAMS_ADDR 0x00090000
|
||||
#define KERNEL_CMDLINE_ADDR 0x00099000
|
||||
+/* Leave a chunk of memory at the top of RAM for the BIOS ACPI tables. */
|
||||
+#define ACPI_DATA_SIZE 0x10000
|
||||
|
||||
static fdctrl_t *floppy_controller;
|
||||
static RTCState *rtc_state;
|
||||
@@ -451,7 +453,7 @@
|
||||
{
|
||||
char buf[1024];
|
||||
int ret, linux_boot, initrd_size, i;
|
||||
- unsigned long bios_offset, vga_bios_offset, option_rom_offset;
|
||||
+ unsigned long bios_offset, vga_bios_offset, option_rom_offset, initrd_offset;
|
||||
int bios_size, isa_bios_size;
|
||||
PCIBus *pci_bus;
|
||||
int piix3_devfn = -1;
|
||||
@@ -576,8 +578,28 @@
|
||||
|
||||
/* load initrd */
|
||||
initrd_size = 0;
|
||||
+ initrd_offset = 0;
|
||||
if (initrd_filename) {
|
||||
- initrd_size = load_image(initrd_filename, phys_ram_base + INITRD_LOAD_ADDR);
|
||||
+ initrd_size = get_image_size (initrd_filename);
|
||||
+ if (initrd_size > 0) {
|
||||
+ initrd_offset = (ram_size - initrd_size) & TARGET_PAGE_MASK;
|
||||
+ /* Leave space for BIOS ACPI tables. */
|
||||
+ initrd_offset -= ACPI_DATA_SIZE;
|
||||
+ /* Avoid the last 64k to avoid 2.2.x kernel bugs. */
|
||||
+ initrd_offset -= 0x10000;
|
||||
+ if (initrd_offset > MAX_INITRD_LOAD_ADDR)
|
||||
+ initrd_offset = MAX_INITRD_LOAD_ADDR;
|
||||
+
|
||||
+ if (initrd_size > ram_size
|
||||
+ || initrd_offset < KERNEL_LOAD_ADDR + ret) {
|
||||
+ fprintf(stderr,
|
||||
+ "qemu: memory too small for initial ram disk '%s'\n",
|
||||
+ initrd_filename);
|
||||
+ exit(1);
|
||||
+ }
|
||||
+ initrd_size = load_image(initrd_filename,
|
||||
+ phys_ram_base + initrd_offset);
|
||||
+ }
|
||||
if (initrd_size < 0) {
|
||||
fprintf(stderr, "qemu: could not load initial ram disk '%s'\n",
|
||||
initrd_filename);
|
||||
@@ -585,7 +607,7 @@
|
||||
}
|
||||
}
|
||||
if (initrd_size > 0) {
|
||||
- stl_raw(phys_ram_base + KERNEL_PARAMS_ADDR + 0x218, INITRD_LOAD_ADDR);
|
||||
+ stl_raw(phys_ram_base + KERNEL_PARAMS_ADDR + 0x218, initrd_offset);
|
||||
stl_raw(phys_ram_base + KERNEL_PARAMS_ADDR + 0x21c, initrd_size);
|
||||
}
|
||||
pstrcpy(phys_ram_base + KERNEL_CMDLINE_ADDR, 4096,
|
@ -8,7 +8,7 @@
|
||||
Summary: QEMU is a FAST! processor emulator
|
||||
Name: qemu
|
||||
Version: 0.9.0
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
License: GPL/LGPL
|
||||
Group: Development/Tools
|
||||
URL: http://www.qemu.org/
|
||||
@ -16,6 +16,7 @@ Source0: http://www.qemu.org/%{name}-%{version}.tar.gz
|
||||
Source1: qemu.init
|
||||
Patch0: qemu-0.7.0-build.patch
|
||||
Patch1: qemu-0.8.0-sdata.patch
|
||||
Patch2: qemu-0.9.0-load-initrd.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: SDL-devel compat-gcc-%{gccver} zlib-devel which texi2html
|
||||
Requires(post): /sbin/chkconfig
|
||||
@ -40,6 +41,7 @@ As QEMU requires no host kernel patches to run, it is safe and easy to use.
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p0
|
||||
|
||||
%build
|
||||
./configure \
|
||||
@ -58,6 +60,7 @@ make prefix="${RPM_BUILD_ROOT}%{_prefix}" \
|
||||
mandir="${RPM_BUILD_ROOT}%{_mandir}" \
|
||||
docdir="${RPM_BUILD_ROOT}%{_docdir}/%{name}-%{version}" \
|
||||
datadir="${RPM_BUILD_ROOT}%{_prefix}/share/qemu" install
|
||||
chmod -x ${RPM_BUILD_ROOT}%{_mandir}/man1/*
|
||||
|
||||
install -D -p -m 0755 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/qemu
|
||||
|
||||
@ -89,6 +92,10 @@ fi
|
||||
%{_mandir}/man1/*
|
||||
|
||||
%changelog
|
||||
* Sun Apr 1 2007 Hans de Goede <j.w.r.degoede@hhs.nl> 0.9.0-2
|
||||
- Fix direct loading of a linux kernel with -kernel & -initrd (bz 234681)
|
||||
- Remove spurious execute bits from manpages (bz 222573)
|
||||
|
||||
* Tue Feb 6 2007 David Woodhouse <dwmw2@infradead.org> 0.9.0-1
|
||||
- Update to 0.9.0
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user