common-sercomm.mk 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. DEVICE_VARS += SERCOMM_KERNEL_OFFSET SERCOMM_ROOTFS_OFFSET
  2. define Build/sercomm-crypto
  3. $(TOPDIR)/scripts/sercomm-crypto.py \
  4. --input-file $@ \
  5. --key-file [email protected] \
  6. --output-file [email protected] \
  7. --version $(SERCOMM_SWVER)
  8. $(STAGING_DIR_HOST)/bin/openssl enc -md md5 -aes-256-cbc \
  9. -in $@ \
  10. -out [email protected] \
  11. -K `cat [email protected]` \
  12. -iv 00000000000000000000000000000000
  13. dd [email protected] >> [email protected] 2>/dev/null
  14. mv [email protected] $@
  15. rm -f [email protected] [email protected]
  16. endef
  17. define Build/sercomm-kernel
  18. $(TOPDIR)/scripts/sercomm-kernel-header.py \
  19. --kernel-image $@ \
  20. --kernel-offset $(SERCOMM_KERNEL_OFFSET) \
  21. --rootfs-offset $(SERCOMM_ROOTFS_OFFSET) \
  22. --output-header [email protected]
  23. dd if=$@ >> [email protected] 2>/dev/null
  24. mv [email protected] $@
  25. endef
  26. define Build/sercomm-part-tag
  27. $(call Build/sercomm-part-tag-common,$(word 1,$(1)) $@)
  28. endef
  29. define Build/sercomm-part-tag-common
  30. $(eval file=$(word 2,$(1)))
  31. $(TOPDIR)/scripts/sercomm-partition-tag.py \
  32. --input-file $(file) \
  33. --output-file $(file).tmp \
  34. --part-name $(word 1,$(1)) \
  35. --part-version $(SERCOMM_SWVER)
  36. mv $(file).tmp $(file)
  37. endef
  38. define Build/sercomm-payload
  39. $(TOPDIR)/scripts/sercomm-pid.py \
  40. --hw-version $(SERCOMM_HWVER) \
  41. --hw-id $(SERCOMM_HWID) \
  42. --sw-version $(SERCOMM_SWVER) \
  43. --pid-file [email protected] \
  44. --extra-padding-size 0x10 \
  45. --extra-padding-first-byte 0x0a
  46. $(TOPDIR)/scripts/sercomm-payload.py \
  47. --input-file $@ \
  48. --output-file [email protected] \
  49. --pid "$$(cat [email protected] | od -t x1 -An -v | tr -d '\n')"
  50. mv [email protected] $@
  51. rm [email protected]
  52. endef
  53. define Build/sercomm-prepend-tagged-kernel
  54. $(CP) $(IMAGE_KERNEL) $(IMAGE_KERNEL).tagged
  55. $(call Build/sercomm-part-tag-common,$(word 1,$(1)) \
  56. $(IMAGE_KERNEL).tagged)
  57. dd if=$@ >> $(IMAGE_KERNEL).tagged 2>/dev/null
  58. mv $(IMAGE_KERNEL).tagged $@
  59. endef
  60. define Device/sercomm_dxx
  61. $(Device/dsa-migration)
  62. BLOCKSIZE := 128k
  63. PAGESIZE := 2048
  64. KERNEL_SIZE := 6144k
  65. UBINIZE_OPTS := -E 5
  66. LOADER_TYPE := bin
  67. KERNEL_LOADADDR := 0x81001000
  68. LZMA_TEXT_START := 0x82800000
  69. KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | lzma -a0 | \
  70. uImage lzma | sercomm-kernel
  71. KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | loader-kernel | \
  72. lzma -a0 | uImage lzma
  73. IMAGES += factory.img
  74. IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
  75. IMAGE/factory.img := append-ubi | sercomm-part-tag rootfs | \
  76. sercomm-prepend-tagged-kernel kernel | gzip | sercomm-payload | \
  77. sercomm-crypto
  78. SERCOMM_KERNEL_OFFSET := 0x400100
  79. SERCOMM_ROOTFS_OFFSET := 0x1000000
  80. endef