soc/integration/builder: remove error when compile_software=False and integrated ROM: when using compile_software=False user knows what he's doing.

This commit is contained in:
Florent Kermarrec 2017-04-26 13:45:00 +02:00
parent bb582619eb
commit bedd428d9d
1 changed files with 11 additions and 15 deletions

View File

@ -127,30 +127,26 @@ class Builder:
def _initialize_rom(self): def _initialize_rom(self):
bios_file = os.path.join(self.output_dir, "software", "bios", bios_file = os.path.join(self.output_dir, "software", "bios",
"bios.bin") "bios.bin")
if self.soc.integrated_rom_size: with open(bios_file, "rb") as boot_file:
with open(bios_file, "rb") as boot_file: boot_data = []
boot_data = [] while True:
while True: w = boot_file.read(4)
w = boot_file.read(4) if not w:
if not w: break
break boot_data.append(struct.unpack(">I", w)[0])
boot_data.append(struct.unpack(">I", w)[0]) self.soc.initialize_rom(boot_data)
self.soc.initialize_rom(boot_data)
def build(self, toolchain_path=None, **kwargs): def build(self, toolchain_path=None, **kwargs):
self.soc.finalize() self.soc.finalize()
os.makedirs(self.output_dir, exist_ok=True) os.makedirs(self.output_dir, exist_ok=True)
if self.soc.cpu_type is not None and self.compile_software: if self.soc.cpu_type is not None:
if self.soc.integrated_rom_size:
raise ValueError("Software must be compiled in order to "
"intitialize integrated ROM")
self._prepare_software() self._prepare_software()
self._generate_includes() self._generate_includes()
self._generate_software() self._generate_software()
self._initialize_rom() if self.soc.integrated_rom_size and self.compile_software:
self._initialize_rom()
if self.csr_csv is not None: if self.csr_csv is not None:
self._generate_csr_csv() self._generate_csr_csv()