Committed to arm branch after fixing few bugs. On 09.05.2013 20:08, Leif Lindholm wrote:
> 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
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel