Hi,
Multiboot header in libpayload is at a too high location (>0x2000), which breaks the standard (GRUB checks for the header and refuses to load if a header could not be found below 0x2000).
Attached patch fixes the problem by reordering the objects in link command.