Hi Leif, I have make a multiboot support patch V3 following all your suggestion The main change are : (1)separate all the xen specific code to multiboot_xen.c and multiboot_xen.h (2)support for ramdisk and xsm (3)fully support http://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Multiboot and xen/docs/misc/arm/device-tree/booting.txt in Xen source code. (4)there is not limit in the module's number
For the test log, please check : https://staging.validation.linaro.org/scheduler/job/46542/log_file
I have tested it locally, it works fine for me.
Please check the patch, and provide some suggestions.
Thank you very much!