@@ -58,7 +58,7 @@ def __init__(self):
58
58
self .timeout = ''
59
59
60
60
self ._default_kernel_path = None
61
- self ._dtb = None
61
+ self ._dtbs = []
62
62
self ._efi_img = None
63
63
self ._efi_vars = None
64
64
self ._initrd_arch = None
@@ -72,21 +72,22 @@ def __init__(self):
72
72
self ._ram = '512m'
73
73
74
74
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?' )
77
77
if not self .kernel :
78
78
raise RuntimeError ('Cannot locate dtb without kernel' )
79
79
80
80
# If we are in a boot folder, look for them in the dts folder in it.
81
81
# Otherwise, assume there is a 'dtbs' folder in the same folder as the
82
82
# kernel image (tuxmake)
83
83
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
88
87
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
+ )
90
91
91
92
def _get_default_smp_value (self ):
92
93
if not self .kernel_dir :
@@ -278,7 +279,7 @@ def run(self):
278
279
self .cmdline .append ('nokaslr' )
279
280
if self .cmdline :
280
281
self ._qemu_args += ['-append' , ' ' .join (self .cmdline )]
281
- if self ._dtb :
282
+ if self ._dtbs :
282
283
self ._qemu_args += ['-dtb' , self ._find_dtb ()]
283
284
self ._qemu_args += ['-kernel' , self .kernel ]
284
285
self ._qemu_args += ['-initrd' , self ._prepare_initrd ()]
@@ -331,7 +332,9 @@ def __init__(self):
331
332
332
333
self .cmdline .append ('earlycon' )
333
334
334
- self ._dtb = 'aspeed-bmc-opp-palmetto.dtb'
335
+ self ._dtbs = [
336
+ 'aspeed/aspeed-bmc-opp-palmetto.dtb' , 'aspeed-bmc-opp-palmetto.dtb'
337
+ ]
335
338
self ._machine = 'palmetto-bmc'
336
339
337
340
@@ -340,7 +343,9 @@ class ARMV6QEMURunner(ARMQEMURunner):
340
343
def __init__ (self ):
341
344
super ().__init__ ()
342
345
343
- self ._dtb = 'aspeed-bmc-opp-romulus.dtb'
346
+ self ._dtbs = [
347
+ 'aspeed/aspeed-bmc-opp-romulus.dtb' , 'aspeed-bmc-opp-romulus.dtb'
348
+ ]
344
349
self ._machine = 'romulus-bmc'
345
350
346
351
0 commit comments