Re: [PATCH 15/16] bootparam: Pass acpi_rsdp pointer in bootparam

Vivek Goyal
2013-09-12T13:20:07Z

On Thu, Sep 12, 2013 at 02:53:50PM +0200, Borislav Petkov wrote:

[..]
> > Are you also working on kexec userspace part? Already have a patch?
>
> Why userspace part -

I think Dave is referring to passing efi related tables to second kernel
in bootparams.

> I'm thinking the kexec'ed kernel would simply add
> the mappings made by SetVirtualAddressMap without calling it. And it
> will know which mappings go to which virtual addresses because we start
> at the -4G virtual address and go downwards and the mappings will have
> the same addresses per UEFI implementation.

Ok, so virtual addresses for EFI mappings are fixed and that's why first
kernel need not pass it to second kernel. Second kernel will again map
EFI regions using those fixed virtual addresses and *not* call
SetVirtualAddressMap() and hence it should be able to make run time calls.
Sounds good.

I was going through previous conversations in your postings. I kind of
liked James Bottomley's suggestion of calling SetVirtualAdddressMap()
with 1:1 mapping.

I did not understand this argument that we need to use high virtual
addresses because windows is using it and now we end up creating
fixed EFI addresses and that becomes an ABI. If EFI implementations
are dependent on high addresses being passed, shouldn't it be those
implementations which need to be fixed instead of kernel fixing EFI
addresses in higher region.

Anyway, I am not an EFI expert. I just need a working solution. How to
do it, I will leave it to experts.

Thanks
Vivek