All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] Re: [PATCH 0/2][RFC][PPC] openbios support
       [not found] <1229635267-16897-1-git-send-email-Laurent@lvivier.info>
@ 2008-12-19  8:45 ` Aurelien Jarno
  2008-12-20  7:54   ` François Revol
       [not found] ` <1229635267-16897-2-git-send-email-Laurent@lvivier.info>
  1 sibling, 1 reply; 8+ messages in thread
From: Aurelien Jarno @ 2008-12-19  8:45 UTC (permalink / raw)
  To: Laurent Vivier; +Cc: Blue Swirl, qemu-devel

Laurent Vivier a écrit :
> These two patches allows to load an openbios elf image instead of an
> openhackware image.
> 
> [PATCH 1/2][RFC] Modify hw/ppc_oldword.c to use qemu_ram_alloc().
> [PATCH 2/2][RFC] Load an OpenBios ELF image instead of OpenHackware binary

Great job! We are closer to get rid of OpenHackware.

However I have tried those patches with the latest SVN from OpenBios,
and I am unable to get the machine booting. Do we need other patches for
OpenBios or QEMU? It would be nice to make them available, even if they
are not ready for merge.

-- 
  .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   aurel32@debian.org         | aurelien@aurel32.net
   `-    people.debian.org/~aurel32 | www.aurel32.net

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Qemu-devel] Re: [PATCH 2/2][RFC] Load an OpenBios ELF image instead of OpenHackware binary object if found
       [not found]   ` <1229635267-16897-3-git-send-email-Laurent@lvivier.info>
@ 2008-12-19  8:45     ` Aurelien Jarno
  2008-12-19 12:12       ` Paul Brook
  0 siblings, 1 reply; 8+ messages in thread
From: Aurelien Jarno @ 2008-12-19  8:45 UTC (permalink / raw)
  To: Laurent Vivier; +Cc: Blue Swirl, qemu-devel

Laurent Vivier a écrit :
> This patch try to load an OpenBIOS ELF image instead of
> OpenHackware binary. Default behavior is used if the OpenBIOS (openbios-ppc32)
> file is not found

Actually, I wonder if it won't be simpler to just remove OpenHackware
and always use the OpenBIOS image.

> Signed-off-by: Laurent Vivier <Laurent@lvivier.info>
> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
> ---
>  hw/ppc_mac.h      |    2 ++
>  hw/ppc_oldworld.c |   32 ++++++++++++++++++++++----------
>  2 files changed, 24 insertions(+), 10 deletions(-)
> 
> diff --git a/hw/ppc_mac.h b/hw/ppc_mac.h
> index 3a26cde..c833d17 100644
> --- a/hw/ppc_mac.h
> +++ b/hw/ppc_mac.h
> @@ -31,6 +31,8 @@
>  #define BIOS_FILENAME "ppc_rom.bin"
>  #define VGABIOS_FILENAME "video.x"
>  #define NVRAM_SIZE        0x2000
> +#define PROM_FILENAME    "openbios-ppc32"
> +#define PROM_ADDR         0xfff00000
>  
>  #define KERNEL_LOAD_ADDR 0x01000000
>  #define INITRD_LOAD_ADDR 0x01800000
> diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c
> index 696add2..73cf4ab 100644
> --- a/hw/ppc_oldworld.c
> +++ b/hw/ppc_oldworld.c
> @@ -164,19 +164,31 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
>      /* allocate and load BIOS */
>      bios_offset = qemu_ram_alloc(BIOS_SIZE);
>      if (bios_name == NULL)
> -        bios_name = BIOS_FILENAME;
> +        bios_name = PROM_FILENAME;
>      snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name);
> -    bios_size = load_image(buf, phys_ram_base + bios_offset);
> +    cpu_register_physical_memory(PROM_ADDR, BIOS_SIZE, bios_offset | IO_MEM_ROM);
> +    /* First try OpenBIOS (ELF) */
> +    bios_size = load_elf(buf, 0, NULL, NULL, NULL);
>      if (bios_size < 0 || bios_size > BIOS_SIZE) {
> -        cpu_abort(env, "qemu: could not load PowerPC bios '%s'\n", buf);
> -        exit(1);
> -    }
> -    if (bios_size > 0x00080000) {
> -        /* As the NVRAM is located at 0xFFF04000, we cannot use 1 MB BIOSes */
> -        cpu_abort(env, "G3BW Mac hardware can not handle 1 MB BIOS\n");
> +
> +        /* OpenHackWare */
> +
> +        bios_name = BIOS_FILENAME;
> +        snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name);
> +        bios_size =  get_image_size(buf);
> +        bios_size = load_image_targphys(buf, (uint32_t)(-bios_size), bios_size);
> +        if (bios_size < 0 || bios_size > BIOS_SIZE) {
> +            cpu_abort(env, "qemu: could not load PowerPC bios '%s'\n", buf);
> +            exit(1);
> +        }
> +        bios_size = (bios_size + 0xfff) & ~0xffff;
> +        if (bios_size > 0x00080000) {
> +          /* As the NVRAM is located at 0xFFF04000,
> +           * we cannot use 1 MB BIOSes
> +           */
> +            cpu_abort(env, "G3BW Mac hardware can not handle 1 MB BIOS\n");
> +        }
>      }
> -    cpu_register_physical_memory((uint32_t)(-bios_size),
> -                                 bios_size, bios_offset | IO_MEM_ROM);
>  
>      /* allocate and load VGA BIOS */
>      vga_bios_offset = qemu_ram_alloc(VGA_BIOS_SIZE);


-- 
  .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   aurel32@debian.org         | aurelien@aurel32.net
   `-    people.debian.org/~aurel32 | www.aurel32.net

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Qemu-devel] Re: [PATCH 1/2][RFC] Modify hw/ppc_oldword.c to use qemu_ram_alloc().
       [not found] ` <1229635267-16897-2-git-send-email-Laurent@lvivier.info>
       [not found]   ` <1229635267-16897-3-git-send-email-Laurent@lvivier.info>
@ 2008-12-19  8:45   ` Aurelien Jarno
  2008-12-20 23:41   ` Aurelien Jarno
  2 siblings, 0 replies; 8+ messages in thread
From: Aurelien Jarno @ 2008-12-19  8:45 UTC (permalink / raw)
  To: Laurent Vivier; +Cc: Blue Swirl, qemu-devel

Laurent Vivier a écrit :
> This patch uses qemu_ram_alloc() to allocate RAM, VGA RAM and VGA BIOS.

This patch looks good, I think it could be merged. Any objection to that?

> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
> Signed-off-by: Laurent Vivier <Laurent@lvivier.info>
> ---
>  hw/ppc_oldworld.c |   21 ++++++++++++---------
>  1 files changed, 12 insertions(+), 9 deletions(-)
> 
> diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c
> index 0265596..696add2 100644
> --- a/hw/ppc_oldworld.c
> +++ b/hw/ppc_oldworld.c
> @@ -34,6 +34,7 @@
>  #include "boards.h"
>  
>  #define MAX_IDE_BUS 2
> +#define VGA_BIOS_SIZE 65536
>  
>  /* temporary frame buffer OSI calls for the video.x driver. The right
>     solution is to modify the driver to use VGA PCI I/Os */
> @@ -116,7 +117,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
>      nvram_t nvram;
>      m48t59_t *m48t59;
>      int linux_boot, i;
> -    unsigned long bios_offset, vga_bios_offset;
> +    ram_addr_t ram_offset, vga_ram_offset, bios_offset, vga_bios_offset;
>      uint32_t kernel_base, kernel_size, initrd_base, initrd_size;
>      PCIBus *pci_bus;
>      MacIONVRAMState *nvr;
> @@ -154,10 +155,14 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
>      }
>  
>      /* allocate RAM */
> -    cpu_register_physical_memory(0, ram_size, IO_MEM_RAM);
> +    ram_offset = qemu_ram_alloc(ram_size);
> +    cpu_register_physical_memory(0, ram_size, ram_offset);
> +
> +    /* allocate VGA RAM */
> +    vga_ram_offset = qemu_ram_alloc(vga_ram_size);
>  
>      /* allocate and load BIOS */
> -    bios_offset = ram_size + vga_ram_size;
> +    bios_offset = qemu_ram_alloc(BIOS_SIZE);
>      if (bios_name == NULL)
>          bios_name = BIOS_FILENAME;
>      snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name);
> @@ -166,7 +171,6 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
>          cpu_abort(env, "qemu: could not load PowerPC bios '%s'\n", buf);
>          exit(1);
>      }
> -    bios_size = (bios_size + 0xfff) & ~0xfff;
>      if (bios_size > 0x00080000) {
>          /* As the NVRAM is located at 0xFFF04000, we cannot use 1 MB BIOSes */
>          cpu_abort(env, "G3BW Mac hardware can not handle 1 MB BIOS\n");
> @@ -175,7 +179,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
>                                   bios_size, bios_offset | IO_MEM_ROM);
>  
>      /* allocate and load VGA BIOS */
> -    vga_bios_offset = bios_offset + bios_size;
> +    vga_bios_offset = qemu_ram_alloc(VGA_BIOS_SIZE);
>      snprintf(buf, sizeof(buf), "%s/%s", bios_dir, VGABIOS_FILENAME);
>      vga_bios_size = load_image(buf, phys_ram_base + vga_bios_offset + 8);
>      if (vga_bios_size < 0) {
> @@ -193,7 +197,6 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
>                       vga_bios_size);
>          vga_bios_size += 8;
>      }
> -    vga_bios_size = (vga_bios_size + 0xfff) & ~0xfff;
>  
>      if (linux_boot) {
>          kernel_base = KERNEL_LOAD_ADDR;
> @@ -278,8 +281,8 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
>      }
>      pic = heathrow_pic_init(&pic_mem_index, 1, heathrow_irqs);
>      pci_bus = pci_grackle_init(0xfec00000, pic);
> -    pci_vga_init(pci_bus, ds, phys_ram_base + ram_size,
> -                 ram_size, vga_ram_size,
> +    pci_vga_init(pci_bus, ds, phys_ram_base + vga_ram_offset,
> +                 vga_ram_offset, vga_ram_size,
>                   vga_bios_offset, vga_bios_size);
>  
>      /* XXX: suppress that */
> @@ -369,6 +372,6 @@ QEMUMachine heathrow_machine = {
>      .name = "g3bw",
>      .desc = "Heathrow based PowerMAC",
>      .init = ppc_heathrow_init,
> -    .ram_require = BIOS_SIZE + VGA_RAM_SIZE,
> +    .ram_require = BIOS_SIZE + VGA_BIOS_SIZE + VGA_RAM_SIZE,
>      .max_cpus = MAX_CPUS,
>  };


-- 
  .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   aurel32@debian.org         | aurelien@aurel32.net
   `-    people.debian.org/~aurel32 | www.aurel32.net

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Re: [PATCH 2/2][RFC] Load an OpenBios ELF image instead of OpenHackware binary object if found
  2008-12-19  8:45     ` [Qemu-devel] Re: [PATCH 2/2][RFC] Load an OpenBios ELF image instead of OpenHackware binary object if found Aurelien Jarno
@ 2008-12-19 12:12       ` Paul Brook
  2008-12-19 18:13         ` Blue Swirl
  0 siblings, 1 reply; 8+ messages in thread
From: Paul Brook @ 2008-12-19 12:12 UTC (permalink / raw)
  To: qemu-devel; +Cc: Blue Swirl, Laurent Vivier, Aurelien Jarno

On Friday 19 December 2008, Aurelien Jarno wrote:
> Laurent Vivier a écrit :
> > This patch try to load an OpenBIOS ELF image instead of
> > OpenHackware binary. Default behavior is used if the OpenBIOS
> > (openbios-ppc32) file is not found
>
> Actually, I wonder if it won't be simpler to just remove OpenHackware
> and always use the OpenBIOS image.

I'm inclined to agree.
Supporting two different bios just adds confusion, especially when they're 
both broken.

Paul

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Re: [PATCH 2/2][RFC] Load an OpenBios ELF image instead of OpenHackware binary object if found
  2008-12-19 12:12       ` Paul Brook
@ 2008-12-19 18:13         ` Blue Swirl
  0 siblings, 0 replies; 8+ messages in thread
From: Blue Swirl @ 2008-12-19 18:13 UTC (permalink / raw)
  To: Paul Brook; +Cc: Laurent Vivier, qemu-devel, Aurelien Jarno

[-- Attachment #1: Type: text/plain, Size: 611 bytes --]

On 12/19/08, Paul Brook <paul@codesourcery.com> wrote:
> On Friday 19 December 2008, Aurelien Jarno wrote:
>  > Laurent Vivier a écrit :
>  > > This patch try to load an OpenBIOS ELF image instead of
>  > > OpenHackware binary. Default behavior is used if the OpenBIOS
>  > > (openbios-ppc32) file is not found
>  >
>  > Actually, I wonder if it won't be simpler to just remove OpenHackware
>  > and always use the OpenBIOS image.
>
>
> I'm inclined to agree.
>  Supporting two different bios just adds confusion, especially when they're
>  both broken.

This would make things easier. Updated patch attached.

[-- Attachment #2: ppc_openbios.diff --]
[-- Type: plain/text, Size: 2193 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Re: [PATCH 0/2][RFC][PPC] openbios support
  2008-12-19  8:45 ` [Qemu-devel] Re: [PATCH 0/2][RFC][PPC] openbios support Aurelien Jarno
@ 2008-12-20  7:54   ` François Revol
  0 siblings, 0 replies; 8+ messages in thread
From: François Revol @ 2008-12-20  7:54 UTC (permalink / raw)
  To: qemu-devel

> Laurent Vivier a écrit :
> > These two patches allows to load an openbios elf image instead of
> > an
> > openhackware image.
> >
> > [PATCH 1/2][RFC] Modify hw/ppc_oldword.c to use qemu_ram_alloc().
> > [PATCH 2/2][RFC] Load an OpenBios ELF image instead of OpenHackware
> > binary
>
> Great job! We are closer to get rid of OpenHackware.

Cool!

Sadly I've lost access to the server I used to test ppc builds (stupid
ISP going bankrupt without warning), I'll have to make room on disks
here to resume work.

François.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Qemu-devel] Re: [PATCH 1/2][RFC] Modify hw/ppc_oldword.c to use qemu_ram_alloc().
       [not found] ` <1229635267-16897-2-git-send-email-Laurent@lvivier.info>
       [not found]   ` <1229635267-16897-3-git-send-email-Laurent@lvivier.info>
  2008-12-19  8:45   ` [Qemu-devel] Re: [PATCH 1/2][RFC] Modify hw/ppc_oldword.c to use qemu_ram_alloc() Aurelien Jarno
@ 2008-12-20 23:41   ` Aurelien Jarno
  2 siblings, 0 replies; 8+ messages in thread
From: Aurelien Jarno @ 2008-12-20 23:41 UTC (permalink / raw)
  To: Laurent Vivier; +Cc: Blue Swirl, qemu-devel

On Thu, Dec 18, 2008 at 10:21:06PM +0100, Laurent Vivier wrote:
> This patch uses qemu_ram_alloc() to allocate RAM, VGA RAM and VGA BIOS.
> 
> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
> Signed-off-by: Laurent Vivier <Laurent@lvivier.info>

Thanks, I have applied it.

> ---
>  hw/ppc_oldworld.c |   21 ++++++++++++---------
>  1 files changed, 12 insertions(+), 9 deletions(-)
> 
> diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c
> index 0265596..696add2 100644
> --- a/hw/ppc_oldworld.c
> +++ b/hw/ppc_oldworld.c
> @@ -34,6 +34,7 @@
>  #include "boards.h"
>  
>  #define MAX_IDE_BUS 2
> +#define VGA_BIOS_SIZE 65536
>  
>  /* temporary frame buffer OSI calls for the video.x driver. The right
>     solution is to modify the driver to use VGA PCI I/Os */
> @@ -116,7 +117,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
>      nvram_t nvram;
>      m48t59_t *m48t59;
>      int linux_boot, i;
> -    unsigned long bios_offset, vga_bios_offset;
> +    ram_addr_t ram_offset, vga_ram_offset, bios_offset, vga_bios_offset;
>      uint32_t kernel_base, kernel_size, initrd_base, initrd_size;
>      PCIBus *pci_bus;
>      MacIONVRAMState *nvr;
> @@ -154,10 +155,14 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
>      }
>  
>      /* allocate RAM */
> -    cpu_register_physical_memory(0, ram_size, IO_MEM_RAM);
> +    ram_offset = qemu_ram_alloc(ram_size);
> +    cpu_register_physical_memory(0, ram_size, ram_offset);
> +
> +    /* allocate VGA RAM */
> +    vga_ram_offset = qemu_ram_alloc(vga_ram_size);
>  
>      /* allocate and load BIOS */
> -    bios_offset = ram_size + vga_ram_size;
> +    bios_offset = qemu_ram_alloc(BIOS_SIZE);
>      if (bios_name == NULL)
>          bios_name = BIOS_FILENAME;
>      snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name);
> @@ -166,7 +171,6 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
>          cpu_abort(env, "qemu: could not load PowerPC bios '%s'\n", buf);
>          exit(1);
>      }
> -    bios_size = (bios_size + 0xfff) & ~0xfff;
>      if (bios_size > 0x00080000) {
>          /* As the NVRAM is located at 0xFFF04000, we cannot use 1 MB BIOSes */
>          cpu_abort(env, "G3BW Mac hardware can not handle 1 MB BIOS\n");
> @@ -175,7 +179,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
>                                   bios_size, bios_offset | IO_MEM_ROM);
>  
>      /* allocate and load VGA BIOS */
> -    vga_bios_offset = bios_offset + bios_size;
> +    vga_bios_offset = qemu_ram_alloc(VGA_BIOS_SIZE);
>      snprintf(buf, sizeof(buf), "%s/%s", bios_dir, VGABIOS_FILENAME);
>      vga_bios_size = load_image(buf, phys_ram_base + vga_bios_offset + 8);
>      if (vga_bios_size < 0) {
> @@ -193,7 +197,6 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
>                       vga_bios_size);
>          vga_bios_size += 8;
>      }
> -    vga_bios_size = (vga_bios_size + 0xfff) & ~0xfff;
>  
>      if (linux_boot) {
>          kernel_base = KERNEL_LOAD_ADDR;
> @@ -278,8 +281,8 @@ static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
>      }
>      pic = heathrow_pic_init(&pic_mem_index, 1, heathrow_irqs);
>      pci_bus = pci_grackle_init(0xfec00000, pic);
> -    pci_vga_init(pci_bus, ds, phys_ram_base + ram_size,
> -                 ram_size, vga_ram_size,
> +    pci_vga_init(pci_bus, ds, phys_ram_base + vga_ram_offset,
> +                 vga_ram_offset, vga_ram_size,
>                   vga_bios_offset, vga_bios_size);
>  
>      /* XXX: suppress that */
> @@ -369,6 +372,6 @@ QEMUMachine heathrow_machine = {
>      .name = "g3bw",
>      .desc = "Heathrow based PowerMAC",
>      .init = ppc_heathrow_init,
> -    .ram_require = BIOS_SIZE + VGA_RAM_SIZE,
> +    .ram_require = BIOS_SIZE + VGA_BIOS_SIZE + VGA_RAM_SIZE,
>      .max_cpus = MAX_CPUS,
>  };
> -- 
> 1.5.6.5
> 
> 

-- 
  .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   aurel32@debian.org         | aurelien@aurel32.net
   `-    people.debian.org/~aurel32 | www.aurel32.net

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Qemu-devel] Re: [PATCH 2/2][RFC] Load an OpenBios ELF image instead of OpenHackware binary object if found
@ 2008-12-19  8:56 laurent
  0 siblings, 0 replies; 8+ messages in thread
From: laurent @ 2008-12-19  8:56 UTC (permalink / raw)
  To: aurelien; +Cc: blauwirbel, qemu-devel

>Laurent Vivier a écrit :
>> This patch try to load an OpenBIOS ELF image instead of
>> OpenHackware binary. Default behavior is used if the OpenBIOS 
>(openbios-ppc32)
>> file is not found
>
>Actually, I wonder if it won't be simpler to just remove OpenHackware
>and always use the OpenBIOS image.

While OpenBIOS is not fully functional, I think we should allow to load OpenHackware.

Regards,
Laurent

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2008-12-20 23:41 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1229635267-16897-1-git-send-email-Laurent@lvivier.info>
2008-12-19  8:45 ` [Qemu-devel] Re: [PATCH 0/2][RFC][PPC] openbios support Aurelien Jarno
2008-12-20  7:54   ` François Revol
     [not found] ` <1229635267-16897-2-git-send-email-Laurent@lvivier.info>
     [not found]   ` <1229635267-16897-3-git-send-email-Laurent@lvivier.info>
2008-12-19  8:45     ` [Qemu-devel] Re: [PATCH 2/2][RFC] Load an OpenBios ELF image instead of OpenHackware binary object if found Aurelien Jarno
2008-12-19 12:12       ` Paul Brook
2008-12-19 18:13         ` Blue Swirl
2008-12-19  8:45   ` [Qemu-devel] Re: [PATCH 1/2][RFC] Modify hw/ppc_oldword.c to use qemu_ram_alloc() Aurelien Jarno
2008-12-20 23:41   ` Aurelien Jarno
2008-12-19  8:56 [Qemu-devel] Re: [PATCH 2/2][RFC] Load an OpenBios ELF image instead of OpenHackware binary object if found laurent

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.