sencha/bancha: use OpenTitan uart

With the addition of Sonata board support the OpenTitan uart is
supported so switch sencha (uart5) + bancha (uart0).

While here cleanup bancha a bit.

Bypass-Presubmit-Reason: only relevant flow passes (shodan flows are broken by futures crate version issue)

Change-Id: I82e4e3e34e80d32d465a3dfd243544a404e4731e
diff --git a/bancha.resc b/bancha.resc
index c8c4255..53da385 100644
--- a/bancha.resc
+++ b/bancha.resc
@@ -28,8 +28,6 @@
 include @sim/config/shodan_infrastructure/KelvinCPU.cs
 EnsureTypeIsLoaded "Antmicro.Renode.Peripherals.CPU.KelvinCPU"
 EnsureTypeIsLoaded "Antmicro.Renode.Peripherals.CPU.MlTopControlBlock"
-#include @sim/config/shodan_infrastructure/SmcCheriotCPU.cs
-#include @sim/config/shodan_infrastructure/Mailbox.cs
 include @sim/config/shodan_infrastructure/AddressRangeStub.cs
 include @sim/config/shodan_infrastructure/MatchaI2S.cs
 EnsureTypeIsLoaded "Antmicro.Renode.Peripherals.Sound.MatchaI2S"
@@ -40,14 +38,12 @@
 
 $term_port?=3456
 emulation CreateServerSocketTerminal $term_port "term" false
-connector Connect uart5 term
+connector Connect uart0 term
 
 showAnalyzer "uart0-analyzer" sysbus.uart0 Antmicro.Renode.Analyzers.LoggingUartAnalyzer
-showAnalyzer "uart5-analyzer" sysbus.uart5 Antmicro.Renode.Analyzers.LoggingUartAnalyzer
 
-# Set the uarts host/virt timestamp format. Options: None, Virtual, Host, Full.
+# Set the uart host/virt timestamp format. Options: None, Virtual, Host, Full.
 uart0-analyzer TimestampFormat None
-uart5-analyzer TimestampFormat None
 
 cpu0 IsHalted true
 $cheriotLibrary ?= @out/cheriot/sim/librenode_mpact_cheriot.so
@@ -55,11 +51,11 @@
 
 # Configure an I$ and a D$.
 # Each configuration is a string of the form:
-#   "size,block_size,associativity,write_allocate"
-# for instance "8k,16,2,false".
+#   "size,block_size,associativity,write_allocate,[c|nc]:<start_address>:<size>*"
+# where the last items optionally specify cacheable (c) and noncacheable (nc)
+# address ranges. For instance "8k,16,2,false" or "1M,16,2,false,c0x100:0x3ff".
 # NB: Statistics are collected only when MemProfile is enabled (see below).
 #sysbus.cpu0 ICache "8k,16,2,false"
-# NB: D$ can be configured but is not implemented yet
 #sysbus.cpu0 DCache "1k,8,1,false"
 
 # Load the boot rom into the 32k rom at 0x8000 (useVirtualAddress = false, allowLoadsOnlyToMemory = false)
@@ -100,10 +96,6 @@
 $vector_core_mips ?= 1000
 sysbus.cpu2 PerformanceInMips $vector_core_mips
 
-# NB: model is normally loaded from SPI
-#$kelvin_bin?=@out/cheriot/sim/kelvin.bin
-#sysbus LoadBinary $kelvin_bin 0x5A000000
-
 # Start GDB and halt both cores so we can connect GDB before the bootrom has
 # started.
 # cpu2 does not support GDB. Please follow docs/KelvinIssDebugging.md to debug
diff --git a/platforms/sencha_smc.repl b/platforms/sencha_smc.repl
index f7bbac3..f8487ce 100644
--- a/platforms/sencha_smc.repl
+++ b/platforms/sencha_smc.repl
@@ -24,4 +24,12 @@
     cpu: cpu1
     pc: 0x80000000
 
-uart5: Antmicro.Renode.Peripherals.UART.TrivialUart @ sysbus 0x54000000
+uart5: UART.OpenTitan_UART @ sysbus 0x54000000
+    TxWatermarkIRQ -> smc_plic@1
+    RxWatermarkIRQ -> smc_plic@2
+    TxEmptyIRQ -> smc_plic@3
+    RxOverflowIRQ -> smc_plic@4
+    RxFrameErrorIRQ -> smc_plic@5
+    RxBreakErrorIRQ -> smc_plic@6
+    RxTimeoutIRQ -> smc_plic@7
+    RxParityErrorIRQ -> smc_plic@8