Merge "sim/config: Update bug TODO"
diff --git a/platforms/smc.repl b/platforms/smc.repl
index 10a03f2..f7b0e1c 100644
--- a/platforms/smc.repl
+++ b/platforms/smc.repl
@@ -57,12 +57,12 @@
     RxTimeoutIRQ -> smc_plic@7
     RxParityErrorIRQ -> smc_plic@8
 
-// RV_TIMER_SMC, timer for Kata kernel.
+// RV_TIMER_SMC, timer for Cantrip kernel.
 timer_smc: Timers.OpenTitan_Timer@ sysbus 0x50010000
     frequency: 24000000
     IRQ -> cpu1@5
 
-// Timer for Kata software timer service.
+// Timer for Cantrip software timer service.
 timer_smc_sw: Timers.OpenTitan_Timer@ sysbus 0x50030000
     frequency: 24000000
     IRQ -> smc_plic@31
diff --git a/shodan.resc b/shodan.resc
index 4c49ea7..f0136bc 100644
--- a/shodan.resc
+++ b/shodan.resc
@@ -43,8 +43,8 @@
 
 # Load the tarball of CAmkES components, cpio bundle of built-in files, and the seL4 kernel
 $tar ?= @out/ext_flash_release.tar
-$cpio ?= @out/ext_builtins_release.cpio
-$kernel ?= @out/kata/riscv32-unknown-elf/release/kernel/kernel.elf
+$cpio ?= @out/cantrip/riscv32-unknown-elf/release/ext_builtins.cpio
+$kernel ?= @out/cantrip/riscv32-unknown-elf/release/kernel/kernel.elf
 sysbus LoadBinary $tar 0x44000000
 sysbus LoadBinary $cpio 0x46000000
 sysbus LoadSymbolsFrom $kernel
diff --git a/shodan_infrastructure/DoubleBufferDMA.cs b/shodan_infrastructure/DoubleBufferDMA.cs
index 686e011..4034335 100644
--- a/shodan_infrastructure/DoubleBufferDMA.cs
+++ b/shodan_infrastructure/DoubleBufferDMA.cs
@@ -54,13 +54,16 @@
             }
 
             var data = RegisteredPeripheral.ReadFrame();
+            var size = horizontalSize.Value * verticalSize.Value;
+            // Restore bottom 3 bits of address.
+            var addr1 = rxBuffer1Address.Value << 3;
 
-            if(data.Length != rxBufferSize.Value)
+            if(data.Length != size)
             {
-                this.Log(LogLevel.Warning, "Received {0} bytes from the device, but RX DMA stream is configured for {1} bytes. This might indicate problems in the driver", data.Length, rxBufferSize.Value);
+                this.Log(LogLevel.Warning, "Received {0} bytes from the device, but RX DMA stream is configured for {1} bytes. This might indicate problems in the driver", data.Length, size);
             }
-
-            Machine.SystemBus.WriteBytes(data, rxBuffer1Address.Value);
+            
+            Machine.SystemBus.WriteBytes(data, addr1);
 
             // TODO(jesionowski): re-enable double buffer once sw supports it
             // if(use_buffer1) {
@@ -78,38 +81,39 @@
         public GPIO Trigger { get; }
         public GPIO IRQ { get; }
 
-        public long Size => 0x100;
+        public long Size => 0x1000;
 
         private void DefineRegisters()
         {
-            Registers.RxBufferSize.Define(this)
-                .WithValueField(0, 32, out rxBufferSize, name: "RX_SIZE")
+            Registers.HorizontalSize.Define(this)
+                .WithValueField(0, 15, out horizontalSize, name: "HORIZONTAL_SIZE")
+            ;
+
+            Registers.VerticalSize.Define(this)
+                .WithValueField(0, 14, out verticalSize, name: "VERTICAL_SIZE")
             ;
 
             Registers.RxBufferBaseAddress1.Define(this)
-                .WithValueField(0, 32, out rxBuffer1Address, name: "ADDR1")
+                .WithValueField(3, 29, out rxBuffer1Address, name: "ADDR1")
             ;
 
             Registers.RxBufferBaseAddress2.Define(this)
-                .WithValueField(0, 32, out rxBuffer2Address, name: "ADDR2")
-            ;
-
-            Registers.Configuration.Define(this)
-                .WithReservedBits(0, 32)
+                .WithValueField(3, 29, out rxBuffer2Address, name: "ADDR2")
             ;
         }
 
         private bool use_buffer1 = true;
         private IValueRegisterField rxBuffer1Address;
         private IValueRegisterField rxBuffer2Address;
-        private IValueRegisterField rxBufferSize;
+        private IValueRegisterField horizontalSize;
+        private IValueRegisterField verticalSize;
 
         private enum Registers
         {
-            Configuration = 0x0,
-            RxBufferSize = 0x4,
-            RxBufferBaseAddress1 = 0x8,
-            RxBufferBaseAddress2 = 0xc,
+            HorizontalSize = 0x410,
+            VerticalSize = 0x414,
+            RxBufferBaseAddress1 = 0xe08,
+            RxBufferBaseAddress2 = 0xf30,
         }
     }
 }