config, dev-arm: Fix UART handling baremetal mode
authorCiro Santilli <ciro.santilli@arm.com>
Thu, 30 Aug 2018 09:58:10 +0000 (10:58 +0100)
committerCiro Santilli <ciro.santilli@arm.com>
Wed, 12 Sep 2018 10:30:28 +0000 (10:30 +0000)
fs.py in baremetal mode currently fails for the VExpress_GEM5_V1 platform
due to inconsistent UART naming with error message:

AttributeError: object 'VExpress_GEM5_V1' has no attribute 'uart'

Consistently name keep all UARTs in the Arm platforms in a vector named
'uart' or as a single device named 'uart'. Update the configuration
scripts to reflect the fact that 'uart' can be a vector.

Change-Id: I20b8dbac794d6a9be19b6ce8c335a097872132fb
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/12473
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

configs/common/FSConfig.py
src/dev/arm/RealView.py

index 17498c42b3ffacc5e47f43d9d13a7c953653f887..aa00efe609e578ac3f4805d8966bd366676580b3 100644 (file)
@@ -304,7 +304,7 @@ def makeArmSystem(mem_mode, machine_type, num_cpus=1, mdesc=None,
 
     if bare_metal:
         # EOT character on UART will end the simulation
-        self.realview.uart.end_on_eot = True
+        self.realview.uart[0].end_on_eot = True
     else:
         if machine_type in default_kernels:
             self.kernel = binary(default_kernels[machine_type])
index 1537e76b491f76dc4bc0188e3cc517ada9643ab8..769014163dca4f305fbc0600d36bdf9a2e4ee625 100644 (file)
@@ -1141,7 +1141,9 @@ Interrupts:
     clock24MHz = SrcClockDomain(clock="24MHz",
         voltage_domain=VoltageDomain(voltage="3.3V"))
 
-    uart0 = Pl011(pio_addr=0x1c090000, int_num=37)
+    uart = [
+        Pl011(pio_addr=0x1c090000, int_num=37),
+    ]
 
     kmi0 = Pl050(pio_addr=0x1c060000, int_num=44, ps2=PS2Keyboard())
     kmi1 = Pl050(pio_addr=0x1c070000, int_num=45, ps2=PS2TouchKit())
@@ -1166,7 +1168,7 @@ Interrupts:
     def _off_chip_devices(self):
         return [
             self.realview_io,
-            self.uart0,
+            self.uart[0],
             self.kmi0,
             self.kmi1,
             self.rtc,