[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH][RFC] elf loader: use the virtual address
From: |
Laurent Desnogues |
Subject: |
Re: [Qemu-devel] [PATCH][RFC] elf loader: use the virtual address |
Date: |
Fri, 9 Jan 2009 16:57:36 +0100 |
On Fri, Jan 9, 2009 at 4:47 PM, Aurelien Jarno <address@hidden> wrote:
> Most Linux kernels have their physical address corresponding to they
> virtual address in the ELF header. This is however not true anymore for
> the PowerPC kernels (>= 2.6.25).
>
> For PowerPC, the kernel needs to be started with address translation
> enabled (that's even true for the firmware), and thus the kernel loaded
> at the virtual address.
>
> As all the other kernels/bios I have looked have the same virtual and
> physical address, I don't think it will break other targets. This is
> what is done in the patch below. Alternatively, we can add a new
> argument to the load_elf functions, to select between virtual and
> physical load address.
>
> Any opinon?
I wonder if some platforms don't use the address_offset parameter
to simulate that behaviour.
Anyway wouldn't a parameter be cleaner and allow more flexibility?
Laurent
> diff --git a/elf_ops.h b/elf_ops.h
> index feea12f..19d1a5e 100644
> --- a/elf_ops.h
> +++ b/elf_ops.h
> @@ -231,7 +231,7 @@ static int glue(load_elf, SZ)(int fd, int64_t
> address_offset,
> }
> /* address_offset is hack for kernel images that are
> linked at the wrong physical address. */
> - addr = ph->p_paddr + address_offset;
> + addr = ph->p_vaddr + address_offset;
>
> cpu_physical_memory_write_rom(addr, data, mem_size);
>
> --
> .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
> : :' : Debian developer | Electrical Engineer
> `. `' address@hidden | address@hidden
> `- people.debian.org/~aurel32 | www.aurel32.net
>
>
>