diff options
Diffstat (limited to 'classes/image_types_fsl.bbclass')
-rw-r--r-- | classes/image_types_fsl.bbclass | 312 |
1 files changed, 312 insertions, 0 deletions
diff --git a/classes/image_types_fsl.bbclass b/classes/image_types_fsl.bbclass new file mode 100644 index 0000000..dfa55e4 --- /dev/null +++ b/classes/image_types_fsl.bbclass | |||
@@ -0,0 +1,312 @@ | |||
1 | inherit image_types | ||
2 | |||
3 | IMAGE_BOOTLOADER ?= "u-boot" | ||
4 | |||
5 | # Handle u-boot suffixes | ||
6 | UBOOT_SUFFIX ?= "bin" | ||
7 | UBOOT_PADDING ?= "0" | ||
8 | UBOOT_SUFFIX_SDCARD ?= "${UBOOT_SUFFIX}" | ||
9 | |||
10 | # | ||
11 | # Handles i.MX mxs bootstream generation | ||
12 | # | ||
13 | |||
14 | # IMX Bootlets Linux bootstream | ||
15 | IMAGE_DEPENDS_linux.sb = "elftosb-native:do_populate_sysroot \ | ||
16 | imx-bootlets:do_deploy \ | ||
17 | virtual/kernel:do_deploy" | ||
18 | IMAGE_LINK_NAME_linux.sb = "" | ||
19 | IMAGE_CMD_linux.sb () { | ||
20 | kernel_bin="`readlink ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin`" | ||
21 | kernel_dtb="`readlink ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.dtb || true`" | ||
22 | linux_bd_file=imx-bootlets-linux.bd-${MACHINE} | ||
23 | if [ `basename $kernel_bin .bin` = `basename $kernel_dtb .dtb` ]; then | ||
24 | # When using device tree we build a zImage with the dtb | ||
25 | # appended on the end of the image | ||
26 | linux_bd_file=imx-bootlets-linux.bd-dtb-${MACHINE} | ||
27 | cat $kernel_bin $kernel_dtb \ | ||
28 | > $kernel_bin-dtb | ||
29 | rm -f ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin-dtb | ||
30 | ln -s $kernel_bin-dtb ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin-dtb | ||
31 | fi | ||
32 | |||
33 | # Ensure the file is generated | ||
34 | rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.linux.sb | ||
35 | (cd ${DEPLOY_DIR_IMAGE}; elftosb -z -c $linux_bd_file -o ${IMAGE_NAME}.linux.sb) | ||
36 | |||
37 | # Remove the appended file as it is only used here | ||
38 | rm -f ${DEPLOY_DIR_IMAGE}/$kernel_bin-dtb | ||
39 | } | ||
40 | |||
41 | # IMX Bootlets barebox bootstream | ||
42 | IMAGE_DEPENDS_barebox.mxsboot-sdcard = "elftosb-native:do_populate_sysroot \ | ||
43 | u-boot-mxsboot-native:do_populate_sysroot \ | ||
44 | imx-bootlets:do_deploy \ | ||
45 | barebox:do_deploy" | ||
46 | IMAGE_CMD_barebox.mxsboot-sdcard () { | ||
47 | barebox_bd_file=imx-bootlets-barebox_ivt.bd-${MACHINE} | ||
48 | |||
49 | # Ensure the files are generated | ||
50 | (cd ${DEPLOY_DIR_IMAGE}; rm -f ${IMAGE_NAME}.barebox.sb ${IMAGE_NAME}.barebox.mxsboot-sdcard; \ | ||
51 | elftosb -f mx28 -z -c $barebox_bd_file -o ${IMAGE_NAME}.barebox.sb; \ | ||
52 | mxsboot sd ${IMAGE_NAME}.barebox.sb ${IMAGE_NAME}.barebox.mxsboot-sdcard) | ||
53 | } | ||
54 | |||
55 | # U-Boot mxsboot generation to SD-Card | ||
56 | UBOOT_SUFFIX_SDCARD_mxs ?= "mxsboot-sdcard" | ||
57 | IMAGE_DEPENDS_uboot.mxsboot-sdcard = "u-boot-mxsboot-native:do_populate_sysroot \ | ||
58 | u-boot:do_deploy" | ||
59 | IMAGE_CMD_uboot.mxsboot-sdcard = "mxsboot sd ${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.${UBOOT_SUFFIX} \ | ||
60 | ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.uboot.mxsboot-sdcard" | ||
61 | |||
62 | # Boot partition volume id | ||
63 | BOOTDD_VOLUME_ID ?= "Boot ${MACHINE}" | ||
64 | |||
65 | # Boot partition size [in KiB] | ||
66 | BOOT_SPACE ?= "8192" | ||
67 | |||
68 | # Barebox environment size [in KiB] | ||
69 | BAREBOX_ENV_SPACE ?= "512" | ||
70 | |||
71 | # Set alignment to 4MB [in KiB] | ||
72 | IMAGE_ROOTFS_ALIGNMENT = "4096" | ||
73 | |||
74 | IMAGE_DEPENDS_sdcard = "parted-native:do_populate_sysroot \ | ||
75 | dosfstools-native:do_populate_sysroot \ | ||
76 | mtools-native:do_populate_sysroot \ | ||
77 | virtual/kernel:do_deploy \ | ||
78 | ${@d.getVar('IMAGE_BOOTLOADER', True) and d.getVar('IMAGE_BOOTLOADER', True) + ':do_deploy' or ''}" | ||
79 | |||
80 | SDCARD = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.sdcard" | ||
81 | |||
82 | SDCARD_GENERATION_COMMAND_mxs = "generate_mxs_sdcard" | ||
83 | SDCARD_GENERATION_COMMAND_mx25 = "generate_imx_sdcard" | ||
84 | SDCARD_GENERATION_COMMAND_mx5 = "generate_imx_sdcard" | ||
85 | SDCARD_GENERATION_COMMAND_mx6 = "generate_imx_sdcard" | ||
86 | SDCARD_GENERATION_COMMAND_vf60 = "generate_imx_sdcard" | ||
87 | |||
88 | # | ||
89 | # Create an image that can by written onto a SD card using dd for use | ||
90 | # with i.MX SoC family | ||
91 | # | ||
92 | # External variables needed: | ||
93 | # ${SDCARD_ROOTFS} - the rootfs image to incorporate | ||
94 | # ${IMAGE_BOOTLOADER} - bootloader to use {u-boot, barebox} | ||
95 | # | ||
96 | # The disk layout used is: | ||
97 | # | ||
98 | # 0 -> IMAGE_ROOTFS_ALIGNMENT - reserved to bootloader (not partitioned) | ||
99 | # IMAGE_ROOTFS_ALIGNMENT -> BOOT_SPACE - kernel and other data | ||
100 | # BOOT_SPACE -> SDIMG_SIZE - rootfs | ||
101 | # | ||
102 | # Default Free space = 1.3x | ||
103 | # Use IMAGE_OVERHEAD_FACTOR to add more space | ||
104 | # <---------> | ||
105 | # 4MiB 8MiB SDIMG_ROOTFS 4MiB | ||
106 | # <-----------------------> <----------> <----------------------> <------------------------------> | ||
107 | # ------------------------ ------------ ------------------------ ------------------------------- | ||
108 | # | IMAGE_ROOTFS_ALIGNMENT | BOOT_SPACE | ROOTFS_SIZE | IMAGE_ROOTFS_ALIGNMENT | | ||
109 | # ------------------------ ------------ ------------------------ ------------------------------- | ||
110 | # ^ ^ ^ ^ ^ | ||
111 | # | | | | | | ||
112 | # 0 4096 4MiB + 8MiB 4MiB + 8Mib + SDIMG_ROOTFS 4MiB + 8MiB + SDIMG_ROOTFS + 4MiB | ||
113 | generate_imx_sdcard () { | ||
114 | # Create partition table | ||
115 | parted -s ${SDCARD} mklabel msdos | ||
116 | parted -s ${SDCARD} unit KiB mkpart primary fat32 ${IMAGE_ROOTFS_ALIGNMENT} $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) | ||
117 | parted -s ${SDCARD} unit KiB mkpart primary $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} \+ $ROOTFS_SIZE) | ||
118 | parted ${SDCARD} print | ||
119 | |||
120 | # Burn bootloader | ||
121 | case "${IMAGE_BOOTLOADER}" in | ||
122 | imx-bootlets) | ||
123 | bberror "The imx-bootlets is not supported for i.MX based machines" | ||
124 | exit 1 | ||
125 | ;; | ||
126 | u-boot) | ||
127 | if [ -n "${SPL_BINARY}" ]; then | ||
128 | dd if=${DEPLOY_DIR_IMAGE}/${SPL_BINARY} of=${SDCARD} conv=notrunc seek=2 bs=512 | ||
129 | dd if=${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.${UBOOT_SUFFIX_SDCARD} of=${SDCARD} conv=notrunc seek=42 bs=1K | ||
130 | else | ||
131 | dd if=${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.${UBOOT_SUFFIX_SDCARD} of=${SDCARD} conv=notrunc seek=2 skip=${UBOOT_PADDING} bs=512 | ||
132 | fi | ||
133 | ;; | ||
134 | barebox) | ||
135 | dd if=${DEPLOY_DIR_IMAGE}/barebox-${MACHINE}.bin of=${SDCARD} conv=notrunc seek=1 skip=1 bs=512 | ||
136 | dd if=${DEPLOY_DIR_IMAGE}/bareboxenv-${MACHINE}.bin of=${SDCARD} conv=notrunc seek=1 bs=512k | ||
137 | ;; | ||
138 | "") | ||
139 | ;; | ||
140 | *) | ||
141 | bberror "Unkown IMAGE_BOOTLOADER value" | ||
142 | exit 1 | ||
143 | ;; | ||
144 | esac | ||
145 | |||
146 | # Create boot partition image | ||
147 | BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDCARD} unit b print \ | ||
148 | | awk '/ 1 / { print substr($4, 1, length($4 -1)) / 1024 }') | ||
149 | mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS | ||
150 | mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin ::/${KERNEL_IMAGETYPE} | ||
151 | |||
152 | # Copy boot scripts | ||
153 | for item in ${BOOT_SCRIPTS}; do | ||
154 | src=`echo $item | awk -F':' '{ print $1 }'` | ||
155 | dst=`echo $item | awk -F':' '{ print $2 }'` | ||
156 | |||
157 | mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$src ::/$dst | ||
158 | done | ||
159 | |||
160 | # Copy device tree file | ||
161 | if test -n "${KERNEL_DEVICETREE}"; then | ||
162 | for DTS_FILE in ${KERNEL_DEVICETREE}; do | ||
163 | DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F "." '{print $1}'` | ||
164 | if [ -e "${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb" ]; then | ||
165 | kernel_bin="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.bin`" | ||
166 | kernel_bin_for_dtb="`readlink ${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb | sed "s,$DTS_BASE_NAME,${MACHINE},g;s,\.dtb$,.bin,g"`" | ||
167 | if [ $kernel_bin = $kernel_bin_for_dtb ]; then | ||
168 | mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb ::/${DTS_BASE_NAME}.dtb | ||
169 | fi | ||
170 | fi | ||
171 | done | ||
172 | fi | ||
173 | |||
174 | # Burn Partition | ||
175 | dd if=${WORKDIR}/boot.img of=${SDCARD} conv=notrunc seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync | ||
176 | dd if=${SDCARD_ROOTFS} of=${SDCARD} conv=notrunc seek=1 bs=$(expr ${BOOT_SPACE_ALIGNED} \* 1024 + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync | ||
177 | } | ||
178 | |||
179 | # | ||
180 | # Create an image that can by written onto a SD card using dd for use | ||
181 | # with i.MXS SoC family | ||
182 | # | ||
183 | # External variables needed: | ||
184 | # ${SDCARD_ROOTFS} - the rootfs image to incorporate | ||
185 | # ${IMAGE_BOOTLOADER} - bootloader to use {imx-bootlets, u-boot} | ||
186 | # | ||
187 | generate_mxs_sdcard () { | ||
188 | # Create partition table | ||
189 | parted -s ${SDCARD} mklabel msdos | ||
190 | |||
191 | case "${IMAGE_BOOTLOADER}" in | ||
192 | imx-bootlets) | ||
193 | # The disk layout used is: | ||
194 | # | ||
195 | # 0 -> 1024 - Unused (not partitioned) | ||
196 | # 1024 -> BOOT_SPACE - kernel and other data (bootstream) | ||
197 | # BOOT_SPACE -> SDIMG_SIZE - rootfs | ||
198 | # | ||
199 | # Default Free space = 1.3x | ||
200 | # Use IMAGE_OVERHEAD_FACTOR to add more space | ||
201 | # <---------> | ||
202 | # 1024 8MiB SDIMG_ROOTFS 4MiB | ||
203 | # <-------> <----------> <----------------------> <------------------------------> | ||
204 | # --------------------- ------------------------ ------------------------------- | ||
205 | # | Unused | BOOT_SPACE | ROOTFS_SIZE | IMAGE_ROOTFS_ALIGNMENT | | ||
206 | # --------------------- ------------------------ ------------------------------- | ||
207 | # ^ ^ ^ ^ ^ | ||
208 | # | | | | | | ||
209 | # 0 1024 1024 + 8MiB 1024 + 8Mib + SDIMG_ROOTFS 1024 + 8MiB + SDIMG_ROOTFS + 4MiB | ||
210 | parted -s ${SDCARD} unit KiB mkpart primary 1024 $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) | ||
211 | parted -s ${SDCARD} unit KiB mkpart primary $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} \+ $ROOTFS_SIZE) | ||
212 | |||
213 | # Empty 4 bytes from boot partition | ||
214 | dd if=/dev/zero of=${SDCARD} conv=notrunc seek=2048 count=4 | ||
215 | |||
216 | # Write the bootstream in (2048 + 4) bytes | ||
217 | dd if=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.linux.sb of=${SDCARD} conv=notrunc seek=1 seek=2052 | ||
218 | ;; | ||
219 | u-boot) | ||
220 | # The disk layout used is: | ||
221 | # | ||
222 | # 1M - 2M - reserved to bootloader and other data | ||
223 | # 2M - BOOT_SPACE - kernel | ||
224 | # BOOT_SPACE - SDCARD_SIZE - rootfs | ||
225 | # | ||
226 | # The disk layout used is: | ||
227 | # | ||
228 | # 1M -> 2M - reserved to bootloader and other data | ||
229 | # 2M -> BOOT_SPACE - kernel and other data | ||
230 | # BOOT_SPACE -> SDIMG_SIZE - rootfs | ||
231 | # | ||
232 | # Default Free space = 1.3x | ||
233 | # Use IMAGE_OVERHEAD_FACTOR to add more space | ||
234 | # <---------> | ||
235 | # 4MiB 8MiB SDIMG_ROOTFS 4MiB | ||
236 | # <-----------------------> <-------------> <----------------------> <------------------------------> | ||
237 | # ---------------------------------------- ------------------------ ------------------------------- | ||
238 | # | | | |ROOTFS_SIZE | IMAGE_ROOTFS_ALIGNMENT | | ||
239 | # ---------------------------------------- ------------------------ ------------------------------- | ||
240 | # ^ ^ ^ ^ ^ ^ ^ | ||
241 | # | | | | | | | | ||
242 | # 0 1M 2M 4M 4MiB + BOOTSPACE 4MiB + BOOTSPACE + SDIMG_ROOTFS 4MiB + BOOTSPACE + SDIMG_ROOTFS + 4MiB | ||
243 | # | ||
244 | parted -s ${SDCARD} unit KiB mkpart primary 1024 2048 | ||
245 | parted -s ${SDCARD} unit KiB mkpart primary 2048 $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) | ||
246 | parted -s ${SDCARD} unit KiB mkpart primary $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} \+ $ROOTFS_SIZE) | ||
247 | |||
248 | dd if=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.uboot.mxsboot-sdcard of=${SDCARD} conv=notrunc seek=1 skip=${UBOOT_PADDING} bs=$(expr 1024 \* 1024) | ||
249 | BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDCARD} unit b print \ | ||
250 | | awk '/ 2 / { print substr($4, 1, length($4 -1)) / 1024 }') | ||
251 | |||
252 | mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS | ||
253 | mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin ::/${KERNEL_IMAGETYPE} | ||
254 | if test -n "${KERNEL_DEVICETREE}"; then | ||
255 | for DTS_FILE in ${KERNEL_DEVICETREE}; do | ||
256 | DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F "." '{print $1}'` | ||
257 | if [ -e "${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb" ]; then | ||
258 | kernel_bin="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.bin`" | ||
259 | kernel_bin_for_dtb="`readlink ${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb | sed "s,$DTS_BASE_NAME,${MACHINE},g;s,\.dtb$,.bin,g"`" | ||
260 | if [ $kernel_bin = $kernel_bin_for_dtb ]; then | ||
261 | mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb ::/${DTS_BASE_NAME}.dtb | ||
262 | fi | ||
263 | fi | ||
264 | done | ||
265 | fi | ||
266 | |||
267 | dd if=${WORKDIR}/boot.img of=${SDCARD} conv=notrunc seek=2 bs=$(expr 1024 \* 1024) | ||
268 | ;; | ||
269 | barebox) | ||
270 | # BAREBOX_ENV_SPACE is taken on BOOT_SPACE_ALIGNED but it doesn't really matter as long as the rootfs is aligned | ||
271 | parted -s ${SDCARD} unit KiB mkpart primary 1024 $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} - ${BAREBOX_ENV_SPACE}) | ||
272 | parted -s ${SDCARD} unit KiB mkpart primary $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} - ${BAREBOX_ENV_SPACE}) $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) | ||
273 | parted -s ${SDCARD} unit KiB mkpart primary $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} \+ $ROOTFS_SIZE) | ||
274 | |||
275 | dd if=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.barebox.mxsboot-sdcard of=${SDCARD} conv=notrunc seek=1 bs=$(expr 1024 \* 1024) | ||
276 | dd if=${DEPLOY_DIR_IMAGE}/bareboxenv-${MACHINE}.bin of=${SDCARD} conv=notrunc seek=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} - ${BAREBOX_ENV_SPACE}) bs=1024 | ||
277 | ;; | ||
278 | *) | ||
279 | bberror "Unkown IMAGE_BOOTLOADER value" | ||
280 | exit 1 | ||
281 | ;; | ||
282 | esac | ||
283 | |||
284 | # Change partition type for mxs processor family | ||
285 | bbnote "Setting partition type to 0x53 as required for mxs' SoC family." | ||
286 | echo -n S | dd of=${SDCARD} bs=1 count=1 seek=450 conv=notrunc | ||
287 | |||
288 | parted ${SDCARD} print | ||
289 | |||
290 | dd if=${SDCARD_ROOTFS} of=${SDCARD} conv=notrunc seek=1 bs=$(expr ${BOOT_SPACE_ALIGNED} \* 1024 + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync | ||
291 | } | ||
292 | |||
293 | IMAGE_CMD_sdcard () { | ||
294 | if [ -z "${SDCARD_ROOTFS}" ]; then | ||
295 | bberror "SDCARD_ROOTFS is undefined. To use sdcard image from Freescale's BSP it needs to be defined." | ||
296 | exit 1 | ||
297 | fi | ||
298 | |||
299 | # Align boot partition and calculate total SD card image size | ||
300 | BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1) | ||
301 | BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE_ALIGNED} - ${BOOT_SPACE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT}) | ||
302 | SDCARD_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} + ${BOOT_SPACE_ALIGNED} + $ROOTFS_SIZE + ${IMAGE_ROOTFS_ALIGNMENT}) | ||
303 | |||
304 | # Initialize a sparse file | ||
305 | dd if=/dev/zero of=${SDCARD} bs=1 count=0 seek=$(expr 1024 \* ${SDCARD_SIZE}) | ||
306 | |||
307 | ${SDCARD_GENERATION_COMMAND} | ||
308 | } | ||
309 | |||
310 | # The sdcard requires the rootfs filesystem to be built before using | ||
311 | # it so we must make this dependency explicit. | ||
312 | IMAGE_TYPEDEP_sdcard = "${@d.getVar('SDCARD_ROOTFS', 1).split('.')[-1]}" | ||