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

H. Peter Anvin
2007-08-15T23:22:41Z

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,
but use fixed types (u8, u16, u32, u64), *NOT* unsigned long which is
different between i386 and x86-64. Also keep in mind the boot code
might in the future be compiled with a 16-bit compiler, so assuming
"unsigned int" == 32 bits is also a Bad Thing.

>
> I'll give up and will drop the EFI patches. I'd suggest that you work with
> Peter on getting these patches integrated.
>

Thanks.

-hpa