#include <linux/err.h>
 #include <linux/io.h>
 #include <mach/clock.h>
+#include <mach/hardware.h>
 #include <asm/div64.h>
 
 #include "crm_regs.h"
 
  * published by the Free Software Foundation.
  */
 
+#include <mach/hardware.h>
+
 #define AVIC_NIMASK    0x04
 
        @ this macro disables fast irq (not implemented)
 
                /* Access all peripherals below 0x80000000 as nonshared device
                 * but leave l2cc alone.
                 */
-               if ((phys_addr < 0x80000000) && ((phys_addr < L2CC_BASE_ADDR) ||
-                       (phys_addr >= L2CC_BASE_ADDR + L2CC_SIZE)))
+               if ((phys_addr < 0x80000000) && ((phys_addr < 0x30000000) ||
+                       (phys_addr >= 0x30000000 + SZ_1M)))
                        mtype = MT_DEVICE_NONSHARED;
        }
 
 
 #ifndef __ASM_ARCH_MXC_MEMORY_H__
 #define __ASM_ARCH_MXC_MEMORY_H__
 
-#include <mach/hardware.h>
+#if defined CONFIG_ARCH_MX1
+#define PHYS_OFFSET            UL(0x08000000)
+#elif defined CONFIG_ARCH_MX2
+#define PHYS_OFFSET            UL(0xA0000000)
+#elif defined CONFIG_ARCH_MX3
+#define PHYS_OFFSET            UL(0x80000000)
+#endif
 
 #endif /* __ASM_ARCH_MXC_MEMORY_H__ */
 
 
 #include <mach/vmalloc.h>
 
-#define PHYS_OFFSET    UL(0x08000000)
-
 /*
  * Memory map
  */
 
 /* this CPU supports up to 192 GPIOs (don't forget the baseboard!) */
 #define ARCH_NR_GPIOS          (192 + 16)
 
-/* Start of RAM */
-#define PHYS_OFFSET            SDRAM_BASE_ADDR
-
 #endif /* __ASM_ARCH_MXC_MX27_H__ */
 
 #define PCMCIA_IO_ADDRESS(x) \
        (((x) - X_MEMC_BASE_ADDR) + X_MEMC_BASE_ADDR_VIRT)
 
-/* Start of physical RAM - On many MX31 platforms, this is the first SDRAM bank (CSD0) */
-#define PHYS_OFFSET             CSD0_BASE_ADDR
-
 /*
  * Interrupt numbers
  */
 
 #include <linux/io.h>
 #include <mach/common.h>
 #include <asm/mach/irq.h>
+#include <mach/hardware.h>
 
 #define AVIC_BASE              IO_ADDRESS(AVIC_BASE_ADDR)
 #define AVIC_INTCNTL           (AVIC_BASE + 0x00)      /* int control reg */