[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH v3 03/10] raven: move BIOS loading from board code
From: |
Andreas Färber |
Subject: |
Re: [Qemu-ppc] [PATCH v3 03/10] raven: move BIOS loading from board code to PCI host |
Date: |
Mon, 23 Dec 2013 02:05:01 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 |
Hi,
Am 05.11.2013 00:09, schrieb Hervé Poussineau:
> Raven datasheet explains where firmware lives in system memory, so do
> it there instead of in board code. Other boards using the same PCI
> host will not have to copy the firmware loading code.
This part we had discussed and no one objected to the approach, so OK.
> However, add a specific hack for Open Hack'Ware, which provides only
> a 512KB blob to be loaded at 0xfff00000, but expects valid code at
> 0xfffffffc (specific Open Hack'Ware reset instruction pointer).
Was this part explained before? I don't spot the equivalent in the
deleted code. If this is a new workaround, I would rather like to put it
in a separate patch for bisecting (can offer to do that myself then).
What are the symptoms? I am testing all these patches with OHW.
Regards,
Andreas
>
> Signed-off-by: Hervé Poussineau <address@hidden>
> ---
> hw/pci-host/prep.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
> hw/ppc/prep.c | 50 +++++++++++++-------------------------------------
> 2 files changed, 64 insertions(+), 37 deletions(-)
[...]
> diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c
> index 9f8538c..8a09e2b 100644
> --- a/hw/ppc/prep.c
> +++ b/hw/ppc/prep.c
[...]
> @@ -510,41 +509,13 @@ static void ppc_prep_init(QEMUMachineInitArgs *args)
> memory_region_add_subregion(sysmem, 0, ram);
>
> /* allocate and load BIOS */
> - memory_region_init_ram(bios, NULL, "ppc_prep.bios", BIOS_SIZE);
> - memory_region_set_readonly(bios, true);
> - memory_region_add_subregion(sysmem, (uint32_t)(-BIOS_SIZE), bios);
> - vmstate_register_ram_global(bios);
> - if (bios_name == NULL)
> - bios_name = BIOS_FILENAME;
> - filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
> - if (filename) {
> - bios_size = load_elf(filename, NULL, NULL, NULL,
> - NULL, NULL, 1, ELF_MACHINE, 0);
> - if (bios_size < 0) {
> - bios_size = get_image_size(filename);
> - if (bios_size > 0 && bios_size <= BIOS_SIZE) {
> - hwaddr bios_addr;
> - bios_size = (bios_size + 0xfff) & ~0xfff;
> - bios_addr = (uint32_t)(-bios_size);
> - bios_size = load_image_targphys(filename, bios_addr,
> bios_size);
> - }
> - if (bios_size > BIOS_SIZE) {
> - fprintf(stderr, "qemu: PReP bios '%s' is too large (0x%x)\n",
> - bios_name, bios_size);
> - exit(1);
> - }
> - }
> - } else {
> - bios_size = -1;
> - }
> - if (bios_size < 0 && !qtest_enabled()) {
> - fprintf(stderr, "qemu: could not load PPC PReP bios '%s'\n",
> - bios_name);
> - exit(1);
> - }
> - if (filename) {
> - g_free(filename);
> - }
> + /* Open Hack'Ware hack: bios size is 512K and is loaded at 0xfff00000.
> + * However, reset address is 0xfffffffc. Mirror the bios from
> + * 0xfff00000 to 0xfff80000.
> + */
> + memory_region_init_alias(bios, NULL, "bios-alias", sysmem, 0xfff00000,
> + 0x00080000);
> + memory_region_add_subregion_overlap(sysmem, 0xfff80000, bios, 1);
>
> if (linux_boot) {
> kernel_base = KERNEL_LOAD_ADDR;
[snip]
- Re: [Qemu-ppc] [PATCH v3 03/10] raven: move BIOS loading from board code to PCI host,
Andreas Färber <=
- Re: [Qemu-ppc] [PATCH v3 03/10] raven: move BIOS loading from board code to PCI host, Hervé Poussineau, 2013/12/23
- Re: [Qemu-ppc] [PATCH v3 03/10] raven: move BIOS loading from board code to PCI host, Hervé Poussineau, 2013/12/23
- Re: [Qemu-ppc] [PATCH v3 03/10] raven: move BIOS loading from board code to PCI host, Alexander Graf, 2013/12/23
- Re: [Qemu-ppc] [PATCH v3 03/10] raven: move BIOS loading from board code to PCI host, Hervé Poussineau, 2013/12/23
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 03/10] raven: move BIOS loading from board code to PCI host, Andreas Färber, 2013/12/23
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 03/10] raven: move BIOS loading from board code to PCI host, Hervé Poussineau, 2013/12/23
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 03/10] raven: move BIOS loading from board code to PCI host, Alexander Graf, 2013/12/23
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 03/10] raven: move BIOS loading from board code to PCI host, Andreas Färber, 2013/12/23
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 03/10] raven: move BIOS loading from board code to PCI host, Hervé Poussineau, 2013/12/24
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 03/10] raven: move BIOS loading from board code to PCI host, Alexander Graf, 2013/12/29