019-powerpc_create_fit_uImages.patch 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. --- a/arch/powerpc/Makefile
  2. +++ b/arch/powerpc/Makefile
  3. @@ -157,7 +157,8 @@ drivers-$(CONFIG_OPROFILE) += arch/power
  4. # Default to zImage, override when needed
  5. all: zImage
  6. -BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% simpleImage.%
  7. +BOOT_TARGETS = zImage zImage.initrd uImage uImage.fit.% zImage% dtbImage% \
  8. + treeImage.% cuImage.% simpleImage.%
  9. PHONY += $(BOOT_TARGETS)
  10. @@ -184,6 +185,7 @@ define archhelp
  11. @echo '* zImage - Build default images selected by kernel config'
  12. @echo ' zImage.* - Compressed kernel image (arch/$(ARCH)/boot/zImage.*)'
  13. @echo ' uImage - U-Boot native image format'
  14. + @echo ' uImage.fit.<dt> - U-Boot Flattened Image Tree image format'
  15. @echo ' cuImage.<dt> - Backwards compatible U-Boot image for older'
  16. @echo ' versions which do not support device trees'
  17. @echo ' dtbImage.<dt> - zImage with an embedded device tree blob'
  18. --- a/arch/powerpc/boot/.gitignore
  19. +++ b/arch/powerpc/boot/.gitignore
  20. @@ -19,6 +19,7 @@ kernel-vmlinux.strip.c
  21. kernel-vmlinux.strip.gz
  22. mktree
  23. uImage
  24. +uImage.fit.*
  25. cuImage.*
  26. dtbImage.*
  27. treeImage.*
  28. --- a/arch/powerpc/boot/Makefile
  29. +++ b/arch/powerpc/boot/Makefile
  30. @@ -308,6 +308,9 @@ $(obj)/zImage.iseries: vmlinux
  31. $(obj)/uImage: vmlinux $(wrapperbits)
  32. $(call if_changed,wrap,uboot)
  33. +$(obj)/uImage.fit.%: vmlinux $(obj)/%.dtb $(wrapperbits)
  34. + $(call if_changed,wrap,uboot.fit,,$(obj)/$*.dtb)
  35. +
  36. $(obj)/cuImage.initrd.%: vmlinux $(obj)/%.dtb $(wrapperbits)
  37. $(call if_changed,wrap,cuboot-$*,,$(obj)/$*.dtb,$(obj)/ramdisk.image.gz)
  38. @@ -347,7 +350,7 @@ install: $(CONFIGURE) $(addprefix $(obj)
  39. # anything not in $(targets)
  40. clean-files += $(image-) $(initrd-) cuImage.* dtbImage.* treeImage.* \
  41. - zImage zImage.initrd zImage.chrp zImage.coff zImage.holly \
  42. + uImage.* zImage zImage.initrd zImage.chrp zImage.coff zImage.holly \
  43. zImage.iseries zImage.miboot zImage.pmac zImage.pseries \
  44. simpleImage.* otheros.bld *.dtb
  45. --- a/arch/powerpc/boot/wrapper
  46. +++ b/arch/powerpc/boot/wrapper
  47. @@ -46,6 +46,9 @@ CROSS=
  48. # mkimage wrapper script
  49. MKIMAGE=$srctree/scripts/mkuboot.sh
  50. +# script to generate an .its file for uImage.fit.* images
  51. +MKITS=$srctree/scripts/mkits.sh
  52. +
  53. # directory for object and other files used by this script
  54. object=arch/powerpc/boot
  55. objbin=$object
  56. @@ -157,7 +160,7 @@ coff)
  57. lds=$object/zImage.coff.lds
  58. link_address='0x500000'
  59. ;;
  60. -miboot|uboot)
  61. +miboot|uboot|uboot.fit)
  62. # miboot and U-boot want just the bare bits, not an ELF binary
  63. ext=bin
  64. objflags="-O binary"
  65. @@ -273,6 +276,21 @@ uboot)
  66. fi
  67. exit 0
  68. ;;
  69. +uboot.fit)
  70. + rm -f "$ofile"
  71. + ${MKITS} -A ppc -C gzip -a $membase -e $membase -v $version \
  72. + -d "$srctree/$dtb" -k "$srctree/$vmz" -o "$object/uImage.its"
  73. +
  74. + # mkimage calls dtc for FIT images so use kernel dtc if necessary
  75. + export PATH=$PATH:$srctree/scripts/dtc
  76. +
  77. + ${MKIMAGE} -f "$object/uImage.its" "$ofile"
  78. + rm "$object/uImage.its"
  79. + if [ -z "$cacheit" ]; then
  80. + rm -f "$vmz"
  81. + fi
  82. + exit 0
  83. + ;;
  84. esac
  85. addsec() {