lkml.org 
[lkml]   [2009]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] Fix e820 end address with EFI
From
Date
On Mon, 2009-03-02 at 10:32 +0800, Yinghai Lu wrote:
> Huang Ying wrote:
> > On Mon, 2009-03-02 at 10:16 +0800, Yinghai Lu wrote:
> >> Huang Ying wrote:
> >>> On Mon, 2009-03-02 at 09:39 +0800, Brian Maly wrote:
> >>>> Huang Ying wrote:
> >>>>> Hi, Brian,
> >>>>>
> >>>>> On Mon, 2009-03-02 at 04:13 +0800, Brian Maly wrote:
> >>>>>
> >>>>>> I was able verify the kernel that does not boot on the MacBook (vanilla
> >>>>>> 2.6.29-rc4) does call efi_ioremap() which bails out early returning
> >>>>>> NULL. So no remapping happens in this case. I have no idea if
> >>>>>> efi_ioremap ever does succeed in mapping any ranges though being I have
> >>>>>> no video or console this early in the boot and have to rely on triple
> >>>>>> faulting as a means of debugging.
> >>>>>>
> >>>>> Please attach your dmesg of successful boot, so we can take a look at
> >>>>> the EFI memory map.
> >>>>>
> >>>>> Best Regards,
> >>>>> Huang Ying
> >>>>>
> >>>> This dmesg is from a 2.6.25 kernel which works fine. I can gather
> >>>> other debugging info from the booting kernels if needed. But its a
> >>>> challenge to debug the bad kernel being efifb is initialized very late
> >>>> (so you never even get to the video initialization and cant see any
> >>>> logged messages) and since its a MacBook I dont have a real serial
> >>>> port for serial console. The efi map is for MacBook has a different
> >>>> layout from other EFI systems I have to test on. 2.6.29 kernel works
> >>>> on every EFI system I have except MacBook.
> >>> It seems that you have an EFI system which has too big runtime area.
> >>>
> >>> EFI: mem44: type=0, attr=0x8000000000000000, range=[0x000000007ff00000-0x0000000080000000) (1MB)
> >>>
> >>> efi_ioremap() can map only memory range < 400k now.
> >>>
> >>> It seems that efi_ioremap is the bottle net now. Can we just use
> >>> init_memory_mapping() instead of efi_ioremap() for EFI runtime area?
> >>>
> >>> Yinghai, how about your opinion?
> >> you could call init_memory_maping() in that efi_ioremap position?
> >>
> >> problems is how about 32bit?
> >
> > efi_ioremap() is defined as ioremap_cache() on 32bit system. As that in
> > arch/x86/include/asm/efi.h.
> >
> > On 64bit system, efi_ioremap() can be a wrapper for
> > init_memory_mapping(). Do you think it is appropriate?
>
> so 64bit could use ioremap_cache() too?
> we may keep 32bit and 64bit a bit consistent.

If we use ioremap_cache(), kexec runtime service will not work in kexec
situation, which needs EFI runtime memory area to be mapped at exact
same location across kexec. I think we should support kexec if possible.

Best Regards,
Huang Ying

[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2009-03-02 03:39    [W:0.075 / U:0.468 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site