Re: [PATCH 0/3] x86_64 EFI runtime service support

Huang, Ying
2007-08-16T08:00:42Z

On Thu, 2007-08-16 at 07:22 +0800, H. Peter Anvin wrote:
> Andrew Morton wrote:
> > On Mon, 13 Aug 2007 15:30:19 +0800
> > "Huang, Ying" <ying.huang@intel.com> wrote:
> >
> >> Following sets of patches add EFI/UEFI (Unified Extensible Firmware
> >> Interface) runtime services support to x86_64 architecture.
> >
> > OK, we have a major trainwreck when these patches meet Peter's
> > get-newsetup.patch.
> >
> > I'm halfway into fixing it when I see this. You have:
> >
> > #define SYS_DESC_TABLE (*(struct sys_desc_table_struct*)(PARAM
> +0xa0))
> > +#define EFI_LOADER_SIG ((unsigned char *)(PARAM+0x1c0))
> > +#define EFI_MEMDESC_SIZE (*((unsigned int *) (PARAM+0x1c4)))
> > +#define EFI_MEMDESC_VERSION (*((unsigned int *) (PARAM+0x1c8)))
> > +#define EFI_MEMMAP_SIZE (*((unsigned int *) (PARAM+0x1cc)))
> > +#define EFI_MEMMAP (*((unsigned long *)(PARAM+0x1d0)))
> > +#define EFI_SYSTAB (*((unsigned long *)(PARAM+0x1d8)))
> > #define MOUNT_ROOT_RDONLY (*(unsigned short *) (PARAM+0x1F2))
> >
>
> Please, no more of these kinds of macros. We have already had
> collisions. Go ahead and redefine the efi_info structure if
> necessary,

I missed the git-newsetup.patch. I will change EFI runtime service patch
according to the git-newsetup.patch.

One question:

The boot_params.efi_info.efi_systab is defined as u32. But it should be
u64 on x86_64, because it comes from firmware and is not controlled by
bootloader. But, changing it from u32 to u64 will break current i386 EFI
support, should we change it and fix the i386 EFI bootloader?

Best Regards,
Huang Ying