Skip to content

Commit 8ffe148

Browse files
authored
Merge pull request #107 from nathanchance/update-dtbs-locations
boot-qemu.py: Handle dtb location shuffle in linux-next
2 parents e6bb228 + 2940648 commit 8ffe148

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

boot-qemu.py

+16-11
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def __init__(self):
5858
self.timeout = ''
5959

6060
self._default_kernel_path = None
61-
self._dtb = None
61+
self._dtbs = []
6262
self._efi_img = None
6363
self._efi_vars = None
6464
self._initrd_arch = None
@@ -72,21 +72,22 @@ def __init__(self):
7272
self._ram = '512m'
7373

7474
def _find_dtb(self):
75-
if not self._dtb:
76-
raise RuntimeError('No dtb set?')
75+
if not self._dtbs:
76+
raise RuntimeError('No dtbs set?')
7777
if not self.kernel:
7878
raise RuntimeError('Cannot locate dtb without kernel')
7979

8080
# If we are in a boot folder, look for them in the dts folder in it.
8181
# Otherwise, assume there is a 'dtbs' folder in the same folder as the
8282
# kernel image (tuxmake)
8383
dtb_dir = 'dts' if self.kernel.parent.name == 'boot' else 'dtbs'
84-
if not (dtb := Path(self.kernel.parent, dtb_dir, self._dtb)).exists():
85-
raise FileNotFoundError(
86-
f"dtb ('{self._dtb}') is required for booting but it could not be found at expected location ('{dtb}')",
87-
)
84+
for dtb_loc in self._dtbs:
85+
if (dtb := Path(self.kernel.parent, dtb_dir, dtb_loc)).exists():
86+
return dtb
8887

89-
return dtb
88+
raise FileNotFoundError(
89+
f"dtb is required for booting but it could not be found at expected locations ('{self._dtbs}')"
90+
)
9091

9192
def _get_default_smp_value(self):
9293
if not self.kernel_dir:
@@ -278,7 +279,7 @@ def run(self):
278279
self.cmdline.append('nokaslr')
279280
if self.cmdline:
280281
self._qemu_args += ['-append', ' '.join(self.cmdline)]
281-
if self._dtb:
282+
if self._dtbs:
282283
self._qemu_args += ['-dtb', self._find_dtb()]
283284
self._qemu_args += ['-kernel', self.kernel]
284285
self._qemu_args += ['-initrd', self._prepare_initrd()]
@@ -331,7 +332,9 @@ def __init__(self):
331332

332333
self.cmdline.append('earlycon')
333334

334-
self._dtb = 'aspeed-bmc-opp-palmetto.dtb'
335+
self._dtbs = [
336+
'aspeed/aspeed-bmc-opp-palmetto.dtb', 'aspeed-bmc-opp-palmetto.dtb'
337+
]
335338
self._machine = 'palmetto-bmc'
336339

337340

@@ -340,7 +343,9 @@ class ARMV6QEMURunner(ARMQEMURunner):
340343
def __init__(self):
341344
super().__init__()
342345

343-
self._dtb = 'aspeed-bmc-opp-romulus.dtb'
346+
self._dtbs = [
347+
'aspeed/aspeed-bmc-opp-romulus.dtb', 'aspeed-bmc-opp-romulus.dtb'
348+
]
344349
self._machine = 'romulus-bmc'
345350

346351

0 commit comments

Comments
 (0)