diy.patch 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. --- a/include/image-commands.mk
  2. +++ b/include/image-commands.mk
  3. @@ -502,6 +502,34 @@ define Build/kernel-bin
  4. cp $< $@
  5. endef
  6. +define Build/gl-qsdk-factory
  7. + $(eval GL_NAME := $(call param_get_default,type,$(1),$(DEVICE_NAME)))
  8. + $(eval GL_IMGK := $(KDIR_TMP)/$(DEVICE_IMG_PREFIX)-squashfs-factory.img)
  9. + $(eval GL_ITS := $(KDIR_TMP)/$(GL_NAME).its)
  10. + $(eval GL_UBI := "ubi")
  11. +
  12. + $(CP) $(BOOT_SCRIPT) $(KDIR_TMP)/
  13. + $(shell mv $(GL_IMGK) $(GL_IMGK).tmp)
  14. +
  15. + sed -i "s/rootfs_size/`wc -c $(GL_IMGK) | \
  16. + cut -d " " -f 1 | xargs printf "0x%x"`/g" $(KDIR_TMP)/$(BOOT_SCRIPT);
  17. +
  18. + $(TOPDIR)/scripts/mkits-qsdk-ipq-image.sh \
  19. + $(GL_ITS) \
  20. + $(GL_UBI) \
  21. + $(GL_IMGK) \
  22. + $(BOOT_SCRIPT)
  23. +
  24. + PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f \
  25. + $(GL_ITS) \
  26. + $(GL_IMGK)
  27. +
  28. + $(RM) \
  29. + $(GL_ITS) \
  30. + $(GL_IMGK).tmp \
  31. + $(KDIR_TMP)/$(notdir $(BOOT_SCRIPT))
  32. +endef
  33. +
  34. define Build/linksys-image
  35. let \
  36. size="$$(stat -c%s $@)" \
  37. --- a/target/linux/qualcommax/image/ipq50xx.mk
  38. +++ b/target/linux/qualcommax/image/ipq50xx.mk
  39. @@ -41,6 +41,33 @@ define Device/linksys_mx5500
  40. endef
  41. TARGET_DEVICES += linksys_mx5500
  42. +define Device/cmcc_rax3000q
  43. + $(call Device/FitImage)
  44. + $(call Device/UbiFit)
  45. + SOC := ipq5018
  46. + DEVICE_VENDOR := CMCC
  47. + DEVICE_MODEL := RAX3000Q
  48. + BLOCKSIZE := 128k
  49. + PAGESIZE := 2048
  50. + DEVICE_DTS_CONFIG := [email protected]
  51. + DEVICE_PACKAGES := ath11k-firmware-qcn6122 ipq-wifi-cmcc_rax3000q
  52. +endef
  53. +TARGET_DEVICES += cmcc_rax3000q
  54. +
  55. +define Device/jdcloud_re-cs-03
  56. + $(call Device/FitImage)
  57. + $(call Device/EmmcImage)
  58. + DEVICE_VENDOR := JDCloud
  59. + DEVICE_MODEL := AX3000
  60. + BLOCKSIZE := 128k
  61. + KERNEL_SIZE := 6144k
  62. + SOC := ipq5018
  63. + DEVICE_DTS_CONFIG := [email protected]
  64. + DEVICE_PACKAGES := ipq-wifi-jdcloud_re-cs-03
  65. + IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-rootfs | append-metadata
  66. + endef
  67. + TARGET_DEVICES += jdcloud_re-cs-03
  68. +
  69. define Device/linksys_spnmx56
  70. $(call Device/linksys_ipq50xx_mx_base)
  71. DEVICE_MODEL := SPNMX56
  72. --- a/target/linux/qualcommax/ipq50xx/base-files/etc/board.d/02_network
  73. +++ b/target/linux/qualcommax/ipq50xx/base-files/etc/board.d/02_network
  74. @@ -13,6 +13,8 @@ ipq50xx_setup_interfaces()
  75. linksys,mr5500)
  76. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
  77. ;;
  78. + cmcc,rax3000q|\
  79. + jdcloud,re-cs-03|\
  80. linksys,mx2000|\
  81. linksys,mx5500|\
  82. linksys,spnmx56)
  83. --- a/target/linux/qualcommax/ipq50xx/base-files/lib/upgrade/platform.sh
  84. +++ b/target/linux/qualcommax/ipq50xx/base-files/lib/upgrade/platform.sh
  85. @@ -74,6 +74,11 @@ platform_do_upgrade() {
  86. glinet,gl-b3000)
  87. glinet_do_upgrade "$1"
  88. ;;
  89. + jdcloud,re-cs-03)
  90. + CI_KERNPART="0:HLOS"
  91. + CI_ROOTPART="rootfs"
  92. + emmc_do_upgrade "$1"
  93. + ;;
  94. linksys,mr5500|\
  95. linksys,mx2000|\
  96. linksys,mx5500|\
  97. @@ -87,3 +92,13 @@ platform_do_upgrade() {
  98. ;;
  99. esac
  100. }
  101. +
  102. +platform_copy_config() {
  103. + case "$(board_name)" in
  104. + jdcloud,re-cs-03)
  105. + emmc_copy_config
  106. + ;;
  107. + esac
  108. + return 0;
  109. +}
  110. +
  111. --- a/target/linux/qualcommax/ipq50xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata
  112. +++ b/target/linux/qualcommax/ipq50xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata
  113. @@ -15,11 +15,15 @@ case "$FIRMWARE" in
  114. ath11k_patch_mac $wlan_mac 0
  115. ath11k_set_macflag
  116. ;;
  117. - glinet,gl-b3000)
  118. + glinet,gl-b3000|\
  119. + cmcc,rax3000q)
  120. caldata_extract "0:art" 0x1000 0x20000
  121. ath11k_patch_mac $(macaddr_add $(get_mac_label_dt) 3) 0
  122. ath11k_set_macflag
  123. ;;
  124. + jdcloud,re-cs-03)
  125. + caldata_extract_mmc "0:ART" 0x1000 0x20000
  126. + ;;
  127. linksys,mr5500|\
  128. linksys,mx2000|\
  129. linksys,mx5500|\
  130. @@ -40,11 +44,15 @@ case "$FIRMWARE" in
  131. ath11k_patch_mac $wlan_mac 0
  132. ath11k_set_macflag
  133. ;;
  134. - glinet,gl-b3000)
  135. + glinet,gl-b3000|\
  136. + cmcc,rax3000q)
  137. caldata_extract "0:art" 0x26800 0x20000
  138. ath11k_patch_mac $(macaddr_add $(get_mac_label_dt) 4) 0
  139. ath11k_set_macflag
  140. ;;
  141. + jdcloud,re-cs-03)
  142. + caldata_extract_mmc "0:ART" 0x26800 0x20000
  143. + ;;
  144. linksys,mx2000)
  145. caldata_extract "0:ART" 0x26800 0x20000
  146. label_mac=$(mtd_get_mac_ascii devinfo hw_mac_addr)
  147. --- a/package/firmware/ipq-wifi/Makefile
  148. +++ b/package/firmware/ipq-wifi/Makefile
  149. @@ -33,6 +33,7 @@ ALLWIFIBOARDS:= \
  150. asus_rt-ax89x \
  151. buffalo_wxr-5950ax12 \
  152. cambiumnetworks_xe34 \
  153. + cmcc_rax3000q \
  154. cmcc_rm2-6 \
  155. compex_wpq873 \
  156. dynalink_dl-wrx36 \
  157. @@ -41,6 +42,7 @@ ALLWIFIBOARDS:= \
  158. glinet_gl-ax1800 \
  159. glinet_gl-axt1800 \
  160. glinet_gl-b3000 \
  161. + jdcloud_re-cs-03 \
  162. linksys_homewrk \
  163. linksys_mr5500 \
  164. linksys_mr7350 \
  165. @@ -183,6 +185,7 @@ $(eval $(call generate-ipq-wifi-package,arcadyan_aw1000,Arcadyan AW1000))
  166. $(eval $(call generate-ipq-wifi-package,asus_rt-ax89x,Asus RT-AX89X))
  167. $(eval $(call generate-ipq-wifi-package,buffalo_wxr-5950ax12,Buffalo WXR-5950AX12))
  168. $(eval $(call generate-ipq-wifi-package,cambiumnetworks_xe34,Cambium Networks XE3-4))
  169. +$(eval $(call generate-ipq-wifi-package,cmcc_rax3000q,CMCC RAX3000Q))
  170. $(eval $(call generate-ipq-wifi-package,cmcc_rm2-6,CMCC RM2-6))
  171. $(eval $(call generate-ipq-wifi-package,compex_wpq873,Compex WPQ-873))
  172. $(eval $(call generate-ipq-wifi-package,dynalink_dl-wrx36,Dynalink DL-WRX36))
  173. @@ -191,6 +194,7 @@ $(eval $(call generate-ipq-wifi-package,edimax_cax1800,Edimax CAX1800))
  174. $(eval $(call generate-ipq-wifi-package,glinet_gl-ax1800,GL.iNet GL-AX1800))
  175. $(eval $(call generate-ipq-wifi-package,glinet_gl-axt1800,GL.iNet GL-AXT1800))
  176. $(eval $(call generate-ipq-wifi-package,glinet_gl-b3000,GL.iNet GL-B3000))
  177. +$(eval $(call generate-ipq-wifi-package,jdcloud_re-cs-03,JDCloud RE-CS-03))
  178. $(eval $(call generate-ipq-wifi-package,linksys_homewrk,Linksys HomeWRK))
  179. $(eval $(call generate-ipq-wifi-package,linksys_mr5500,Linksys MR5500))
  180. $(eval $(call generate-ipq-wifi-package,linksys_mr7350,Linksys MR7350))
  181. --- a/scripts/mkits-qsdk-ipq-image.sh
  182. +++ b/scripts/mkits-qsdk-ipq-image.sh
  183. @@ -15,16 +15,19 @@
  184. #
  185. usage() {
  186. - echo "Usage: `basename $0` output img0_name img0_file [[img1_name img1_file] ...]"
  187. + echo "Usage: `basename $0` output [[device].bootscript] img0_name img0_file [[img1_name img1_file] ...]"
  188. exit 1
  189. }
  190. # We need at least 3 arguments
  191. -[ "$#" -lt 3 ] && usage
  192. +[ "$#" -lt 3 ] && usage || node_type="firmware"
  193. # Target output file
  194. OUTPUT="$1"; shift
  195. +# check for bootscript
  196. +[ "${1##*.}" = "bootscript" ] && has_script=true && node_type="script"
  197. +
  198. # Create a default, fully populated DTS file
  199. echo "\
  200. /dts-v1/;
  201. @@ -35,17 +38,30 @@ echo "\
  202. images {" > ${OUTPUT}
  203. -while [ -n "$1" -a -n "$2" ]; do
  204. - [ -f "$2" ] || usage
  205. +while [ -n "$1" -a -n "$2" ] || [ $has_script ]; do
  206. + [ -f "$2" ] || [ $has_script ] && has_script= || usage
  207. - name="$1"; shift
  208. - file="$1"; shift
  209. + case "$node_type" in
  210. + script)
  211. + name="$node_type"
  212. + file="$1"; shift
  213. + desc="${file%.*} uboot ${file##*.}"
  214. + type="$node_type"
  215. + node_type="firmware"
  216. + ;;
  217. + firmware)
  218. + name="$1"; shift
  219. + file="$1"; shift
  220. + desc="$name"
  221. + type="$node_type"
  222. + ;;
  223. + esac
  224. echo \
  225. " ${name} {
  226. - description = \"${name}\";
  227. + description = \"${desc}\";
  228. data = /incbin/(\"${file}\");
  229. - type = \"Firmware\";
  230. + type = \"${type}\";
  231. arch = \"ARM\";
  232. compression = \"none\";
  233. hash@1 {