The current arm-uboot image type is hardcoded to run at address 0x08000000 which means that it cannot be used on ARM systems which do not have RAM starting from address 0 (which is many of them). This is a bit of a problem for distros.
The following series attempts to address this by only performing a partial link of the arm-uboot kernel.img at build time and enhancing grub-mkimage to finalise the link to a specific address while building the core.img. I have test this on a Midway system, which has RAM at address 0, linking to a variety of addresses (0x{0,1,4}8000000) and on a cubieboard2 which has RAM at 0x40000000-0x80000000 linked at 0x48000000. (there is an unrelated issue on cubieboard2 relating to the scan for the uboot API signature, which I'm still investigating, but I hacked around it here and things worked fine otherwise). I have done build only tests of arm64-efi, i386-pc and x86_64-efi. After running grub-mkimage under faketime the resulting binaries are bit for bit identical in every case (faketime due to the timestamp in the PE header). I haven't yet integrated this into grub-install, I need to think a bit more about how to automagically determine the correct link address for a given platform. If no target address is given then the existing hardcoded address (0x08000000) is used as the default. Please CC on any replies since I'm not subscribed. Ian. _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel