grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 7/7] Add support for ARM UEFI ("EFI") platforms


From: Leif Lindholm
Subject: Re: [PATCH 7/7] Add support for ARM UEFI ("EFI") platforms
Date: Thu, 9 May 2013 18:08:54 +0000
User-agent: Mutt/1.5.20 (2009-06-14)

On Tue, Apr 09, 2013 at 07:30:46PM +0200, Vladimir 'φ-coder/phcoder' Serbinenko 
wrote:
> > Since I didn't want to have to duplicate my relocation handling
> > between kernel and grub-mkimage, I use kern/arm/dl.c for both.
> 
> Could you move the common functions to dl_helper.c as in ISA64?
 
Done in the attached patch.

> > In order to do that in an endianess-safe way, I need to be able to
> > export target platform information over there, as well as the
> > host_to_target/target_to_host macros. This would involve moving these
> > macros, as well as the struct image_target_desc definition, out of
> > grub-mkimage.c.
> 
> Is big-endian ARM of any interest at all? I was under impression that it
> was limited to few devices and not supported by either u-boot or EFI.
> You still have grub_le_to_cpu / grub_cpu_to_le
 
It shouldn't be of much interest at the boot stage, but even if it is
there are two things that make life easier:
1) With the endianess support introduced in ARMv6 (supported by RasPi),
   instructions are always little-endian. This would leave only the
   abs32 relocations as needing to be configured for a specific target.
2) The UEFI spec (2.3.1) states that on an ARM processor, little-endian
   will always be the configured state of the data interface(s).

> > However, this would also make it possible to do the same for IA64,
> > and get rid of some code duplication between grub-mkimagexx.c and
> > kern/ia64/dl.c.
> 
> I already did. For IA64 I simply used le_to_cpu/cpu_to_le as ia64-efi is
> always little-endian

I was referring more to functions like add_value_to_slot_* that are
duplicated between these files. But of course, given the IA64 fixed
endianess, the other part of my comment was irrelevant :)

Attached is a patch that:
- incoorporates Francesco's bug fixes
- splits out relocation work into dl_helper.c
- cleans up code slightly
- makes relocations use le_to_cpu/cpu_to_le
- changes all grub_util printout calls to grub_dprintf 

/
    Leif

Attachment: arm-dl-rework.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]