1) u-boot без расширения - это собранный u-boot в формате ELF32. AISGen использует для вывода скрипта AIS утилиту ofd6x (object file display), которая должна поддерживать тот ABI формат (COFF, ELF32), в котором ей передается собранный исполняемый модуль.
2) в сборке u-boot есть штатный метод получения бинарного образа u-boot.bin из u-boot, который задействует утилиту objcopy из пакета binutils. u-boot.bin - это уже просто массив, который нужно положить в память, начиная с адреса CONFIG_SYS_TEXT_BASE, который задается при сборке u-boot.
3) В поставку u-boot входят вспомогательные утилиты, которые сами умеют делать разные образы, в том числе AIS image. утилита называется mkimage, исходник живет в каталоге <u-boot-root>/tools. Подробнее о том, как она работает, можно узнать, поизучав Makefile:
Код
$(obj)u-boot.ais: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin
$(obj)tools/mkimage -s -n /dev/null -T aisimage \
-e $(CONFIG_SPL_TEXT_BASE) \
-d $(obj)spl/u-boot-spl.bin \
$(obj)spl/u-boot-spl.ais
$(OBJCOPY) ${OBJCFLAGS} -I binary \
--pad-to=$(CONFIG_SPL_MAX_SIZE) -O binary \
$(obj)spl/u-boot-spl.ais $(obj)spl/u-boot-spl-pad.ais
cat $(obj)spl/u-boot-spl-pad.ais $(obj)u-boot.bin > \
$(obj)u-boot.ais
rm $(obj)spl/u-boot-spl{,-pad}.ais
Она делает готовый AIS image сама, причем намного быстрее, чем aisgen.