select CPU_V7
        select MSM_V2_TLMM
        select MSM_GPIOMUX
-       select MACH_MSM8X60_SURF if (!MACH_MSM8X60_RUMI3)
+       select MACH_MSM8X60_SURF if (!MACH_MSM8X60_RUMI3 && !MACH_MSM8X60_SIM)
 
 endchoice
 
        help
          Support for the Qualcomm MSM8x60 SURF eval board.
 
+config MACH_MSM8X60_SIM
+       depends on ARCH_MSM8X60
+       bool "MSM8x60 Simulator"
+       help
+         Support for the Qualcomm MSM8x60 simulator.
+
 endmenu
 
 config MSM_DEBUG_UART
 
        /* RUMI does not adhere to GIC spec by enabling STIs by default.
         * Enable/clear is supposed to be RO for STIs, but is RW on RUMI.
         */
-       writel(0x0000FFFF, MSM_QGIC_DIST_BASE + GIC_DIST_ENABLE_SET);
+       if (!machine_is_msm8x60_sim())
+               writel(0x0000FFFF, MSM_QGIC_DIST_BASE + GIC_DIST_ENABLE_SET);
 
        /* FIXME: Not installing AVS_SVICINT and AVS_SVICINTSWDONE yet
         * as they are configured as level, which does not play nice with
        .init_machine = msm8x60_init,
        .timer = &msm_timer,
 MACHINE_END
+
+MACHINE_START(MSM8X60_SIM, "QCT MSM8X60 SIMULATOR")
+       .map_io = msm8x60_map_io,
+       .init_irq = msm8x60_init_irq,
+       .init_machine = msm8x60_init,
+       .timer = &msm_timer,
+MACHINE_END