diff --git a/capsules/src/elfloader_capsule.rs b/capsules/src/elfloader_capsule.rs
index 1345f43..22ec75a 100644
--- a/capsules/src/elfloader_capsule.rs
+++ b/capsules/src/elfloader_capsule.rs
@@ -34,7 +34,6 @@
 pub struct ElfLoaderCapsule<'a, F: hil::flash::Flash + 'static> {
     mailbox_hal: Option<&'static dyn MailboxHAL>,
     smc_ctrl_hal: Option<&'static dyn smc_ctrl_hal::SmcCtrlHal>,
-    fpga: bool,
     flash: Option<&'static capsules::virtual_flash::FlashUser<'static, F>>,
     flash_busy: Cell<bool>,
     read_page: TakeCell<'static, F::Page>,
@@ -108,11 +107,10 @@
 }
 
 impl<'a, F: hil::flash::Flash> ElfLoaderCapsule<'a, F> {
-    pub fn new(fpga: bool) -> Self {
+    pub fn new() -> Self {
         Self {
             mailbox_hal: None,
             smc_ctrl_hal: None,
-            fpga: fpga,
             flash: None,
             flash_busy: Cell::new(false),
             read_page: TakeCell::empty(),
@@ -621,10 +619,15 @@
         if minor_num == matcha_config::CMD_ELFLOADER_BOOT_SEL4 {
             match self.flash {
                 Some(_) => {
-                    if self.fpga {
+                    #[cfg(debug_assertions)]
+                    let debug = true;
+
+                    #[cfg(not(debug_assertions))]
+                    let debug = false;
+                    if !debug {
                         self.load_sel4();
                     } else {
-                        dprintf!("Simulation; bypass loading from SPI flash\r\n");
+                        dprintf!("Debug; bypass loading from SPI flash\r\n");
                         self.mailbox_hal.map(|mb| {
                             matcha_utils::load_sel4(mb);
                         });
diff --git a/platform/src/main.rs b/platform/src/main.rs
index 752c07c..98186f1 100644
--- a/platform/src/main.rs
+++ b/platform/src/main.rs
@@ -42,7 +42,6 @@
 use matcha_hal::timer_hal;
 use matcha_hal::uart_hal;
 use matcha_hal::smc_ctrl_hal;
-use matcha_hal::rv_core_ibex_hal;
 use rv32i::csr;
 
 pub mod chip;
@@ -289,7 +288,6 @@
         )
     );
 
-    let fpga_version = rv_core_ibex_hal::RV_CORE_IBEX_SEC.fpga_version();
     let elfloader_capsule = static_init!(
              matcha_capsules::elfloader_capsule::ElfLoaderCapsule<
                  'static,
@@ -297,7 +295,7 @@
                  'static,
                  capsules::virtual_spi::VirtualSpiMasterDevice<'static, spi_host_hal::SpiHw>,
              >>,
-             matcha_capsules::elfloader_capsule::ElfLoaderCapsule::new(fpga_version != 0)
+             matcha_capsules::elfloader_capsule::ElfLoaderCapsule::new()
     );
 
     let mailbox_capsule = static_init!(
diff --git a/utils/src/lib.rs b/utils/src/lib.rs
index b39fced..32c544c 100644
--- a/utils/src/lib.rs
+++ b/utils/src/lib.rs
@@ -25,7 +25,7 @@
 pub mod elf_loader;
 pub mod tar_loader;
 
-pub const SMC_CONTROL_BLOCK: *mut u32 = 0x54020000 as *mut u32;
+pub const SMC_CONTROL_BLOCK: *mut u32 = 0x54020004 as *mut u32;
 
 pub const SMC_PAGE_SIZE: usize = 4096;         // SMC page size
 pub const SMC_BEGIN: usize = 0x50000000;       // Start of SMC memory in SEC map
@@ -77,9 +77,6 @@
 
         dprintf!("Starting management core\n");
 
-        let entry_point: u32 = (*sel4_elf).e_entry
-            - (elf_loader::elf_virt_min(sel4_segments) - elf_loader::elf_phys_min(sel4_segments));
-
         smc_send_bootmsg(mailbox, [
             ui_p_reg_start,
             ui_p_reg_start
@@ -91,7 +88,7 @@
             (*capdl_elf).e_entry,
         ]);
 
-        SMC_CONTROL_BLOCK.write_volatile(entry_point);
+        SMC_CONTROL_BLOCK.write_volatile(1);
     }
 }
 
