tizen: sd_fusing.py: add support for writing bootcode to sector zero 85/308885/3
authorMarek Szyprowski <m.szyprowski@samsung.com>
Tue, 2 Apr 2024 07:42:08 +0000 (09:42 +0200)
committerMarek Szyprowski <m.szyprowski@samsung.com>
Wed, 3 Apr 2024 09:54:19 +0000 (11:54 +0200)
Some boards require special binary bootcode in sector zero (MBR or
protective MBR) to boot properly. Add support for such case.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I8cc0594328ccd6e5445d1b47804e374b0b3550a8

scripts/tizen/sd_fusing.py

index ceecb0c..c71d6de 100755 (executable)
@@ -128,6 +128,8 @@ class SdFusingTarget:
             self.part_table[self.user_partition]["size"] = self.user_size
 
         self.label = Label(self.part_table, ltype)
+        if not hasattr(self, 'bootcode'):
+            self.bootcode = None
         self.binaries = self._get_binaries('binaries')
 
     def apply_partition_sizes(self, partition_sizes):
@@ -610,6 +612,12 @@ def mkpart(args, target):
         logging.error(f"New partition table:\n" + str(target.label))
         sys.exit(1)
 
+    if target.bootcode:
+        logging.debug("Writing bootcode\n")
+        with open(Device, "wb") as f:
+            f.write(target.bootcode)
+            f.close
+
     for i, part in enumerate(target.part_table):
         d = "/dev/" + get_partition_device(target.device, i+1)
         if not 'fstype' in part: