soc/integration/builder: don't build bios is user is providing rom data
authorFlorent Kermarrec <florent@enjoy-digital.fr>
Thu, 28 Dec 2017 21:42:58 +0000 (22:42 +0100)
committerFlorent Kermarrec <florent@enjoy-digital.fr>
Thu, 28 Dec 2017 21:42:58 +0000 (22:42 +0100)
litex/soc/integration/builder.py

index b5fd06b58523e3d8d95d1d5ca61f7189a04e2296..3cfe1ab292e719cc9d62b06f16bc03ae6507aaaa 100644 (file)
@@ -117,12 +117,15 @@ class Builder:
             dst_dir = os.path.join(self.output_dir, "software", name)
             os.makedirs(dst_dir, exist_ok=True)
 
-    def _generate_software(self):
+    def _generate_software(self, compile_bios=True):
          for name, src_dir in self.software_packages:
-            dst_dir = os.path.join(self.output_dir, "software", name)
-            makefile = os.path.join(src_dir, "Makefile")
-            if self.compile_software:
-                subprocess.check_call(["make", "-C", dst_dir, "-f", makefile])
+            if name == "bios" and not compile_bios:
+                pass
+            else:
+                dst_dir = os.path.join(self.output_dir, "software", name)
+                makefile = os.path.join(src_dir, "Makefile")
+                if self.compile_software:
+                    subprocess.check_call(["make", "-C", dst_dir, "-f", makefile])
 
     def _initialize_rom(self):
         bios_file = os.path.join(self.output_dir, "software", "bios",
@@ -144,7 +147,7 @@ class Builder:
         if self.soc.cpu_type is not None:
             self._prepare_software()
             self._generate_includes()
-            self._generate_software()
+            self._generate_software(not self.soc.integrated_rom_initialized)
             if self.soc.integrated_rom_size and self.compile_software:
                 if not self.soc.integrated_rom_initialized:
                     self._initialize_rom()