summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorTom Zanussi <tom.zanussi@linux.intel.com>2014-02-03 19:16:59 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-02-04 12:57:36 +0000
commit94b805f1b4b9df596ab6275c6cd2dcada50c2ba4 (patch)
tree0707123986c84347f7e85cde43db6b1f40b9fc95 /scripts
parente663d2f5c10ca2c71b287c5af19f74b0de0d7c7c (diff)
downloadpoky-94b805f1b4b9df596ab6275c6cd2dcada50c2ba4.tar.gz
wic: Hook up BootimgEFIPlugin and BootimgPcbiosPlugin plugins
Remove all the Wic_PartData and DirectImageCreator code now implemented by the BootimgEFIPlugin and BootimgPcbiosPlugin plugins, as well as all the special-cased boot_type code, significantly cleaning up the code. Replace the calling code with general-purpose plugin invocations, in essence calling the appropriate implementations at run-time based on the --source value in effect. Change the directdisk.wks and mkefidisk.wks scripts to make use of the new plugins. (From OE-Core rev: 43558610a5793888ff2b18bd3a27c7ab558e5ad0) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/lib/image/canned-wks/directdisk.wks2
-rw-r--r--scripts/lib/image/canned-wks/mkefidisk.wks2
-rw-r--r--scripts/lib/mic/imager/direct.py194
-rw-r--r--scripts/lib/mic/kickstart/custom_commands/partition.py155
-rw-r--r--scripts/lib/mic/plugins/source/bootimg-efi.py6
-rw-r--r--scripts/lib/mic/plugins/source/bootimg-pcbios.py6
6 files changed, 86 insertions, 279 deletions
diff --git a/scripts/lib/image/canned-wks/directdisk.wks b/scripts/lib/image/canned-wks/directdisk.wks
index d54b382fd0..397a929c74 100644
--- a/scripts/lib/image/canned-wks/directdisk.wks
+++ b/scripts/lib/image/canned-wks/directdisk.wks
@@ -3,7 +3,7 @@
3# can directly dd to boot media. 3# can directly dd to boot media.
4 4
5 5
6part /boot --source bootimg --ondisk sda --fstype=msdos --label boot --active --align 1024 6part /boot --source bootimg-pcbios --ondisk sda --fstype=msdos --label boot --active --align 1024
7part / --source rootfs --ondisk sda --fstype=ext3 --label platform --align 1024 7part / --source rootfs --ondisk sda --fstype=ext3 --label platform --align 1024
8 8
9bootloader --timeout=0 --append="rootwait rootfstype=ext3 video=vesafb vga=0x318 console=tty0" 9bootloader --timeout=0 --append="rootwait rootfstype=ext3 video=vesafb vga=0x318 console=tty0"
diff --git a/scripts/lib/image/canned-wks/mkefidisk.wks b/scripts/lib/image/canned-wks/mkefidisk.wks
index 8a3e1f6bc1..e976bc80dd 100644
--- a/scripts/lib/image/canned-wks/mkefidisk.wks
+++ b/scripts/lib/image/canned-wks/mkefidisk.wks
@@ -2,7 +2,7 @@
2# long-description: Creates a partitioned EFI disk image that the user 2# long-description: Creates a partitioned EFI disk image that the user
3# can directly dd to boot media. 3# can directly dd to boot media.
4 4
5part /boot --source bootimg --ondisk sda --fstype=efi --label msdos --active --align 1024 5part /boot --source bootimg-efi --ondisk sda --fstype=msdos --label msdos --active --align 1024
6 6
7part / --source rootfs --ondisk sda --fstype=ext3 --label platform --align 1024 7part / --source rootfs --ondisk sda --fstype=ext3 --label platform --align 1024
8 8
diff --git a/scripts/lib/mic/imager/direct.py b/scripts/lib/mic/imager/direct.py
index 3827eb8e94..f8c300c787 100644
--- a/scripts/lib/mic/imager/direct.py
+++ b/scripts/lib/mic/imager/direct.py
@@ -35,6 +35,11 @@ from mic.utils.partitionedfs import PartitionedMount
35from mic.utils.errors import CreatorError, MountError 35from mic.utils.errors import CreatorError, MountError
36from mic.imager.baseimager import BaseImageCreator 36from mic.imager.baseimager import BaseImageCreator
37from mic.utils.oe.misc import * 37from mic.utils.oe.misc import *
38from mic.plugin import pluginmgr
39
40disk_methods = {
41 "do_install_disk":None,
42}
38 43
39class DirectImageCreator(BaseImageCreator): 44class DirectImageCreator(BaseImageCreator):
40 """ 45 """
@@ -78,7 +83,6 @@ class DirectImageCreator(BaseImageCreator):
78 self.native_sysroot = native_sysroot 83 self.native_sysroot = native_sysroot
79 self.hdddir = hdddir 84 self.hdddir = hdddir
80 self.staging_data_dir = staging_data_dir 85 self.staging_data_dir = staging_data_dir
81 self.boot_type = ""
82 86
83 def __write_fstab(self): 87 def __write_fstab(self):
84 """overriden to generate fstab (temporarily) in rootfs. This 88 """overriden to generate fstab (temporarily) in rootfs. This
@@ -101,7 +105,7 @@ class DirectImageCreator(BaseImageCreator):
101 def _update_fstab(self, fstab_lines, parts): 105 def _update_fstab(self, fstab_lines, parts):
102 """Assume partition order same as in wks""" 106 """Assume partition order same as in wks"""
103 for num, p in enumerate(parts, 1): 107 for num, p in enumerate(parts, 1):
104 if p.mountpoint == "/" or p.mountpoint == "/boot": 108 if not p.mountpoint or p.mountpoint == "/" or p.mountpoint == "/boot":
105 continue 109 continue
106 if self._ptable_format == 'msdos' and num > 3: 110 if self._ptable_format == 'msdos' and num > 3:
107 device_name = "/dev/" + p.disk + str(num + 1) 111 device_name = "/dev/" + p.disk + str(num + 1)
@@ -132,6 +136,15 @@ class DirectImageCreator(BaseImageCreator):
132 136
133 return fstab_contents 137 return fstab_contents
134 138
139 def set_bootimg_dir(self, bootimg_dir):
140 """
141 Accessor for bootimg_dir, the actual location used for the source
142 of the bootimg. Should be set by source plugins (only if they
143 change the default bootimg source) so the correct info gets
144 displayed for print_outimage_info().
145 """
146 self.bootimg_dir = bootimg_dir
147
135 def _get_parts(self): 148 def _get_parts(self):
136 if not self.ks: 149 if not self.ks:
137 raise CreatorError("Failed to get partition info, " 150 raise CreatorError("Failed to get partition info, "
@@ -182,19 +195,18 @@ class DirectImageCreator(BaseImageCreator):
182 """ Construct full file path to a file we generate. """ 195 """ Construct full file path to a file we generate. """
183 return os.path.join(path, self._full_name(name, extention)) 196 return os.path.join(path, self._full_name(name, extention))
184 197
185 def get_boot_type(self): 198 def get_default_source_plugin(self):
186 """ Determine the boot type from fstype and mountpoint. """ 199 """
187 parts = self._get_parts() 200 The default source plugin i.e. the plugin that's consulted for
188 201 overall image generation tasks outside of any particular
189 boot_type = "" 202 partition. For convenience, we just hang it off the
190 203 bootloader handler since it's the one non-partition object in
191 for p in parts: 204 any setup. By default the default plugin is set to the same
192 if p.mountpoint == "/boot": 205 plugin as the /boot partition; since we hang it off the
193 if p.fstype == "msdos": 206 bootloader object, the default can be explicitly set using the
194 boot_type = "pcbios" 207 --source bootloader param.
195 else: 208 """
196 boot_type = p.fstype 209 return self.ks.handler.bootloader.source
197 return boot_type
198 210
199 # 211 #
200 # Actual implemention 212 # Actual implemention
@@ -231,25 +243,7 @@ class DirectImageCreator(BaseImageCreator):
231 if not self.ks.handler.bootloader.source and p.mountpoint == "/boot": 243 if not self.ks.handler.bootloader.source and p.mountpoint == "/boot":
232 self.ks.handler.bootloader.source = p.source 244 self.ks.handler.bootloader.source = p.source
233 245
234 self.boot_type = self.get_boot_type()
235
236 if not self.bootimg_dir:
237 if self.boot_type == "pcbios":
238 self.bootimg_dir = self.staging_data_dir
239 elif self.boot_type == "efi":
240 self.bootimg_dir = self.hdddir
241
242 if self.boot_type == "pcbios":
243 self._create_syslinux_config()
244 elif self.boot_type == "efi":
245 self._create_grubefi_config()
246 else:
247 raise CreatorError("Failed to detect boot type (no /boot partition?), "
248 "please check your kickstart setting.")
249
250 for p in parts: 246 for p in parts:
251 if p.fstype == "efi":
252 p.fstype = "msdos"
253 # need to create the filesystems in order to get their 247 # need to create the filesystems in order to get their
254 # sizes before we can add them and do the layout. 248 # sizes before we can add them and do the layout.
255 # PartitionedMount.mount() actually calls __format_disks() 249 # PartitionedMount.mount() actually calls __format_disks()
@@ -266,9 +260,8 @@ class DirectImageCreator(BaseImageCreator):
266 # when/if we need to actually do package selection we 260 # when/if we need to actually do package selection we
267 # should modify things to use those objects, but for now 261 # should modify things to use those objects, but for now
268 # we can avoid that. 262 # we can avoid that.
269 p.prepare(self.workdir, self.oe_builddir, self.boot_type, 263 p.prepare(self, self.workdir, self.oe_builddir, self.rootfs_dir,
270 self.rootfs_dir, self.bootimg_dir, self.kernel_dir, 264 self.bootimg_dir, self.kernel_dir, self.native_sysroot)
271 self.native_sysroot)
272 265
273 self.__instimage.add_partition(int(p.size), 266 self.__instimage.add_partition(int(p.size),
274 p.disk, 267 p.disk,
@@ -311,8 +304,16 @@ class DirectImageCreator(BaseImageCreator):
311 For now, it just prepares the image to be bootable by e.g. 304 For now, it just prepares the image to be bootable by e.g.
312 creating and installing a bootloader configuration. 305 creating and installing a bootloader configuration.
313 """ 306 """
314 if self.boot_type == "pcbios": 307 source_plugin = self.get_default_source_plugin()
315 self._install_syslinux() 308 if source_plugin:
309 self._source_methods = pluginmgr.get_source_plugin_methods(source_plugin, disk_methods)
310 for disk_name, disk in self.__instimage.disks.items():
311 self._source_methods["do_install_disk"](disk, disk_name, self,
312 self.workdir,
313 self.oe_builddir,
314 self.bootimg_dir,
315 self.kernel_dir,
316 self.native_sysroot)
316 317
317 def print_outimage_info(self): 318 def print_outimage_info(self):
318 """ 319 """
@@ -352,123 +353,6 @@ class DirectImageCreator(BaseImageCreator):
352 353
353 return (rootdev, root_part_uuid) 354 return (rootdev, root_part_uuid)
354 355
355 def _create_syslinux_config(self):
356 hdddir = "%s/hdd/boot" % self.workdir
357 rm_cmd = "rm -rf " + self.workdir
358 exec_cmd(rm_cmd)
359
360 install_cmd = "install -d %s" % hdddir
361 tmp = exec_cmd(install_cmd)
362
363 splash = os.path.join(self.workdir, "/hdd/boot/splash.jpg")
364 if os.path.exists(splash):
365 splashline = "menu background splash.jpg"
366 else:
367 splashline = ""
368
369 (rootdev, root_part_uuid) = self._get_boot_config()
370 options = self.ks.handler.bootloader.appendLine
371
372 syslinux_conf = ""
373 syslinux_conf += "PROMPT 0\n"
374 timeout = kickstart.get_timeout(self.ks)
375 if not timeout:
376 timeout = 0
377 syslinux_conf += "TIMEOUT " + str(timeout) + "\n"
378 syslinux_conf += "\n"
379 syslinux_conf += "ALLOWOPTIONS 1\n"
380 syslinux_conf += "SERIAL 0 115200\n"
381 syslinux_conf += "\n"
382 if splashline:
383 syslinux_conf += "%s\n" % splashline
384 syslinux_conf += "DEFAULT boot\n"
385 syslinux_conf += "LABEL boot\n"
386
387 kernel = "/vmlinuz"
388 syslinux_conf += "KERNEL " + kernel + "\n"
389
390 if self._ptable_format == 'msdos':
391 rootstr = rootdev
392 else:
393 if not root_part_uuid:
394 raise MountError("Cannot find the root GPT partition UUID")
395 rootstr = "PARTUUID=%s" % root_part_uuid
396
397 syslinux_conf += "APPEND label=boot root=%s %s\n" % (rootstr, options)
398
399 msger.debug("Writing syslinux config %s/hdd/boot/syslinux.cfg" \
400 % self.workdir)
401 cfg = open("%s/hdd/boot/syslinux.cfg" % self.workdir, "w")
402 cfg.write(syslinux_conf)
403 cfg.close()
404
405 def _create_grubefi_config(self):
406 hdddir = "%s/hdd/boot" % self.workdir
407 rm_cmd = "rm -rf %s" % self.workdir
408 exec_cmd(rm_cmd)
409
410 install_cmd = "install -d %s/EFI/BOOT" % hdddir
411 tmp = exec_cmd(install_cmd)
412
413 splash = os.path.join(self.workdir, "/EFI/boot/splash.jpg")
414 if os.path.exists(splash):
415 splashline = "menu background splash.jpg"
416 else:
417 splashline = ""
418
419 (rootdev, root_part_uuid) = self._get_boot_config()
420 options = self.ks.handler.bootloader.appendLine
421
422 grubefi_conf = ""
423 grubefi_conf += "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1\n"
424 grubefi_conf += "default=boot\n"
425 timeout = kickstart.get_timeout(self.ks)
426 if not timeout:
427 timeout = 0
428 grubefi_conf += "timeout=%s\n" % timeout
429 grubefi_conf += "menuentry 'boot'{\n"
430
431 kernel = "/vmlinuz"
432
433 if self._ptable_format == 'msdos':
434 rootstr = rootdev
435 else:
436 if not root_part_uuid:
437 raise MountError("Cannot find the root GPT partition UUID")
438 rootstr = "PARTUUID=%s" % root_part_uuid
439
440 grubefi_conf += "linux %s root=%s rootwait %s\n" \
441 % (kernel, rootstr, options)
442 grubefi_conf += "}\n"
443 if splashline:
444 syslinux_conf += "%s\n" % splashline
445
446 msger.debug("Writing grubefi config %s/hdd/boot/EFI/BOOT/grub.cfg" \
447 % self.workdir)
448 cfg = open("%s/hdd/boot/EFI/BOOT/grub.cfg" % self.workdir, "w")
449 cfg.write(grubefi_conf)
450 cfg.close()
451
452 def _install_syslinux(self):
453 mbrfile = "%s/syslinux/" % self.bootimg_dir
454 if self._ptable_format == 'gpt':
455 mbrfile += "gptmbr.bin"
456 else:
457 mbrfile += "mbr.bin"
458
459 if not os.path.exists(mbrfile):
460 msger.error("Couldn't find %s. If using the -e option, do you have the right MACHINE set in local.conf? If not, is the bootimg_dir path correct?" % mbrfile)
461
462 for disk_name, disk in self.__instimage.disks.items():
463 full_path = self._full_path(self.__imgdir, disk_name, "direct")
464 msger.debug("Installing MBR on disk %s as %s with size %s bytes" \
465 % (disk_name, full_path, disk['min_size']))
466
467 rc = runner.show(['dd', 'if=%s' % mbrfile,
468 'of=%s' % full_path, 'conv=notrunc'])
469 if rc != 0:
470 raise MountError("Unable to set MBR to %s" % full_path)
471
472 def _unmount_instroot(self): 356 def _unmount_instroot(self):
473 if not self.__instimage is None: 357 if not self.__instimage is None:
474 try: 358 try:
diff --git a/scripts/lib/mic/kickstart/custom_commands/partition.py b/scripts/lib/mic/kickstart/custom_commands/partition.py
index fe8e55a376..4974a87d93 100644
--- a/scripts/lib/mic/kickstart/custom_commands/partition.py
+++ b/scripts/lib/mic/kickstart/custom_commands/partition.py
@@ -28,8 +28,14 @@ import shutil
28 28
29from pykickstart.commands.partition import * 29from pykickstart.commands.partition import *
30from mic.utils.oe.misc import * 30from mic.utils.oe.misc import *
31
32from mic.kickstart.custom_commands import * 31from mic.kickstart.custom_commands import *
32from mic.plugin import pluginmgr
33
34partition_methods = {
35 "do_stage_partition":None,
36 "do_prepare_partition":None,
37 "do_configure_partition":None,
38}
33 39
34class Wic_PartData(Mic_PartData): 40class Wic_PartData(Mic_PartData):
35 removedKeywords = Mic_PartData.removedKeywords 41 removedKeywords = Mic_PartData.removedKeywords
@@ -50,8 +56,22 @@ class Wic_PartData(Mic_PartData):
50 56
51 return retval 57 return retval
52 58
53 def prepare(self, cr_workdir, oe_builddir, boot_type, rootfs_dir, 59 def set_size(self, size):
54 bootimg_dir, kernel_dir, native_sysroot): 60 """
61 Accessor for actual partition size, which must be set by source
62 plugins.
63 """
64 self.size = size
65
66 def set_source_file(self, source_file):
67 """
68 Accessor for source_file, the location of the generated partition
69 image, which must be set by source plugins.
70 """
71 self.source_file = source_file
72
73 def prepare(self, cr, cr_workdir, oe_builddir, rootfs_dir, bootimg_dir,
74 kernel_dir, native_sysroot):
55 """ 75 """
56 Prepare content for individual partitions, depending on 76 Prepare content for individual partitions, depending on
57 partition command parameters. 77 partition command parameters.
@@ -65,121 +85,24 @@ class Wic_PartData(Mic_PartData):
65 native_sysroot) 85 native_sysroot)
66 return 86 return
67 87
68 if self.source == "bootimg" and boot_type == "pcbios": 88 if self.source.startswith("rootfs"):
69 self.prepare_bootimg_pcbios(cr_workdir, oe_builddir, bootimg_dir,
70 kernel_dir, native_sysroot)
71 elif self.source == "bootimg" and boot_type == "efi":
72 self.prepare_bootimg_efi(cr_workdir, oe_builddir, bootimg_dir,
73 kernel_dir, native_sysroot)
74 elif self.source.startswith("rootfs"):
75 self.prepare_rootfs(cr_workdir, oe_builddir, rootfs_dir, 89 self.prepare_rootfs(cr_workdir, oe_builddir, rootfs_dir,
76 native_sysroot) 90 native_sysroot)
77 91 else:
78 def prepare_bootimg_pcbios(self, cr_workdir, oe_builddir, bootimg_dir, 92 self._source_methods = pluginmgr.get_source_plugin_methods(self.source, partition_methods)
79 kernel_dir, native_sysroot): 93 self._source_methods["do_configure_partition"](self, cr, cr_workdir,
80 """ 94 oe_builddir,
81 Prepare content for a legacy bios boot partition. 95 bootimg_dir,
82 """ 96 kernel_dir,
83 staging_kernel_dir = kernel_dir 97 native_sysroot)
84 staging_data_dir = bootimg_dir 98 self._source_methods["do_stage_partition"](self, cr, cr_workdir,
85 99 oe_builddir,
86 hdddir = "%s/hdd/boot" % cr_workdir 100 bootimg_dir, kernel_dir,
87 101 native_sysroot)
88 install_cmd = "install -m 0644 %s/bzImage %s/vmlinuz" \ 102 self._source_methods["do_prepare_partition"](self, cr, cr_workdir,
89 % (staging_kernel_dir, hdddir) 103 oe_builddir,
90 tmp = exec_cmd(install_cmd) 104 bootimg_dir, kernel_dir,
91 105 native_sysroot)
92 install_cmd = "install -m 444 %s/syslinux/ldlinux.sys %s/ldlinux.sys" \
93 % (staging_data_dir, hdddir)
94 tmp = exec_cmd(install_cmd)
95
96 du_cmd = "du -bks %s" % hdddir
97 rc, out = exec_cmd(du_cmd)
98 blocks = int(out.split()[0])
99
100 blocks += BOOTDD_EXTRA_SPACE
101
102 # Ensure total sectors is an integral number of sectors per
103 # track or mcopy will complain. Sectors are 512 bytes, and we
104 # generate images with 32 sectors per track. This calculation is
105 # done in blocks, thus the mod by 16 instead of 32.
106 blocks += (16 - (blocks % 16))
107
108 # dosfs image, created by mkdosfs
109 bootimg = "%s/boot.img" % cr_workdir
110
111 dosfs_cmd = "mkdosfs -n boot -S 512 -C %s %d" % (bootimg, blocks)
112 exec_native_cmd(dosfs_cmd, native_sysroot)
113
114 mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (bootimg, hdddir)
115 exec_native_cmd(mcopy_cmd, native_sysroot)
116
117 syslinux_cmd = "syslinux %s" % bootimg
118 exec_native_cmd(syslinux_cmd, native_sysroot)
119
120 chmod_cmd = "chmod 644 %s" % bootimg
121 exec_cmd(chmod_cmd)
122
123 du_cmd = "du -Lbms %s" % bootimg
124 rc, out = exec_cmd(du_cmd)
125 bootimg_size = out.split()[0]
126
127 self.size = bootimg_size
128 self.source_file = bootimg
129
130 def prepare_bootimg_efi(self, cr_workdir, oe_builddir, bootimg_dir,
131 kernel_dir, native_sysroot):
132 """
133 Prepare content for an EFI (grub) boot partition.
134 """
135 staging_kernel_dir = kernel_dir
136 staging_data_dir = bootimg_dir
137
138 hdddir = "%s/hdd/boot" % cr_workdir
139
140 install_cmd = "install -m 0644 %s/bzImage %s/vmlinuz" % \
141 (staging_kernel_dir, hdddir)
142 tmp = exec_cmd(install_cmd)
143
144 shutil.copyfile("%s/hdd/boot/EFI/BOOT/grub.cfg" % cr_workdir,
145 "%s/grub.cfg" % cr_workdir)
146
147 cp_cmd = "cp %s/EFI/BOOT/* %s/EFI/BOOT" % (staging_data_dir, hdddir)
148 exec_cmd(cp_cmd, True)
149
150 shutil.move("%s/grub.cfg" % cr_workdir,
151 "%s/hdd/boot/EFI/BOOT/grub.cfg" % cr_workdir)
152
153 du_cmd = "du -bks %s" % hdddir
154 rc, out = exec_cmd(du_cmd)
155 blocks = int(out.split()[0])
156
157 blocks += BOOTDD_EXTRA_SPACE
158
159 # Ensure total sectors is an integral number of sectors per
160 # track or mcopy will complain. Sectors are 512 bytes, and we
161 # generate images with 32 sectors per track. This calculation is
162 # done in blocks, thus the mod by 16 instead of 32.
163 blocks += (16 - (blocks % 16))
164
165 # dosfs image, created by mkdosfs
166 bootimg = "%s/boot.img" % cr_workdir
167
168 dosfs_cmd = "mkdosfs -n efi -C %s %d" % (bootimg, blocks)
169 exec_native_cmd(dosfs_cmd, native_sysroot)
170
171 mcopy_cmd = "mcopy -i %s -s %s/* ::/" % (bootimg, hdddir)
172 exec_native_cmd(mcopy_cmd, native_sysroot)
173
174 chmod_cmd = "chmod 644 %s" % bootimg
175 exec_cmd(chmod_cmd)
176
177 du_cmd = "du -Lbms %s" % bootimg
178 rc, out = exec_cmd(du_cmd)
179 bootimg_size = out.split()[0]
180
181 self.size = bootimg_size
182 self.source_file = bootimg
183 106
184 def prepare_rootfs_from_fs_image(self, cr_workdir, oe_builddir, 107 def prepare_rootfs_from_fs_image(self, cr_workdir, oe_builddir,
185 rootfs_dir): 108 rootfs_dir):
diff --git a/scripts/lib/mic/plugins/source/bootimg-efi.py b/scripts/lib/mic/plugins/source/bootimg-efi.py
index f2bd071aff..3e0997bacf 100644
--- a/scripts/lib/mic/plugins/source/bootimg-efi.py
+++ b/scripts/lib/mic/plugins/source/bootimg-efi.py
@@ -107,7 +107,7 @@ class BootimgEFIPlugin(SourcePlugin):
107 if not bootimg_dir: 107 if not bootimg_dir:
108 msger.error("Couldn't find HDDDIR, exiting\n") 108 msger.error("Couldn't find HDDDIR, exiting\n")
109 # just so the result notes display it 109 # just so the result notes display it
110 cr.bootimg_dir = bootimg_dir 110 cr.set_bootimg_dir(bootimg_dir)
111 111
112 staging_kernel_dir = kernel_dir 112 staging_kernel_dir = kernel_dir
113 staging_data_dir = bootimg_dir 113 staging_data_dir = bootimg_dir
@@ -155,7 +155,7 @@ class BootimgEFIPlugin(SourcePlugin):
155 rc, out = exec_cmd(du_cmd) 155 rc, out = exec_cmd(du_cmd)
156 bootimg_size = out.split()[0] 156 bootimg_size = out.split()[0]
157 157
158 part.size = bootimg_size 158 part.set_size(bootimg_size)
159 part.source_file = bootimg 159 part.set_source_file(bootimg)
160 160
161 161
diff --git a/scripts/lib/mic/plugins/source/bootimg-pcbios.py b/scripts/lib/mic/plugins/source/bootimg-pcbios.py
index 1da2a41fa7..3cd446f052 100644
--- a/scripts/lib/mic/plugins/source/bootimg-pcbios.py
+++ b/scripts/lib/mic/plugins/source/bootimg-pcbios.py
@@ -135,7 +135,7 @@ class BootimgPcbiosPlugin(SourcePlugin):
135 if not bootimg_dir: 135 if not bootimg_dir:
136 msger.error("Couldn't find STAGING_DATADIR, exiting\n") 136 msger.error("Couldn't find STAGING_DATADIR, exiting\n")
137 # just so the result notes display it 137 # just so the result notes display it
138 cr.bootimg_dir = bootimg_dir 138 cr.set_bootimg_dir(bootimg_dir)
139 139
140 staging_kernel_dir = kernel_dir 140 staging_kernel_dir = kernel_dir
141 staging_data_dir = bootimg_dir 141 staging_data_dir = bootimg_dir
@@ -181,7 +181,7 @@ class BootimgPcbiosPlugin(SourcePlugin):
181 rc, out = exec_cmd(du_cmd) 181 rc, out = exec_cmd(du_cmd)
182 bootimg_size = out.split()[0] 182 bootimg_size = out.split()[0]
183 183
184 part.size = bootimg_size 184 part.set_size(bootimg_size)
185 part.source_file = bootimg 185 part.set_source_file(bootimg)
186 186
187 187