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,
         }
     }
 }
