]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
m68knommu: clean up use of MBAR for DRAM registers on ColdFire start
authorGreg Ungerer <gerg@uclinux.org>
Sun, 6 Mar 2011 13:01:46 +0000 (23:01 +1000)
committerGreg Ungerer <gerg@uclinux.org>
Tue, 15 Mar 2011 11:01:55 +0000 (21:01 +1000)
In some of the RAM size autodetection code on ColdFire CPU startup
we reference DRAM registers relative to the MBAR register. Not all of
the supported ColdFire CPUs have an MBAR, and currently this works
because we fake an MBAR address on those registers. In an effort to
clean this up, and eventually remove the fake MBAR setting make the
DRAM register address definitions actually contain the MBAR (or IPSBAR
as appropriate) value as required.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
arch/m68k/include/asm/m5206sim.h
arch/m68k/include/asm/m523xsim.h
arch/m68k/include/asm/m5249sim.h
arch/m68k/include/asm/m527xsim.h
arch/m68k/include/asm/m528xsim.h
arch/m68k/include/asm/m5307sim.h
arch/m68k/include/asm/m5407sim.h
arch/m68knommu/platform/coldfire/head.S

index 7b58da5050a01f00b5a6d26b594811d92dc9dc7b..dfd6d3f73584ed9d93c5628f05d8a86023ff7d57 100644 (file)
 #define        MCFSIM_SWIVR            0x42            /* SW Watchdog intr reg (r/w) */
 #define        MCFSIM_SWSR             0x43            /* SW Watchdog service (r/w) */
 
-#define        MCFSIM_DCRR             0x46            /* DRAM Refresh reg (r/w) */
-#define        MCFSIM_DCTR             0x4a            /* DRAM Timing reg (r/w) */
-#define        MCFSIM_DAR0             0x4c            /* DRAM 0 Address reg(r/w) */
-#define        MCFSIM_DMR0             0x50            /* DRAM 0 Mask reg (r/w) */
-#define        MCFSIM_DCR0             0x57            /* DRAM 0 Control reg (r/w) */
-#define        MCFSIM_DAR1             0x58            /* DRAM 1 Address reg (r/w) */
-#define        MCFSIM_DMR1             0x5c            /* DRAM 1 Mask reg (r/w) */
-#define        MCFSIM_DCR1             0x63            /* DRAM 1 Control reg (r/w) */
+#define        MCFSIM_DCRR             (MCF_MBAR + 0x46) /* DRAM Refresh reg (r/w) */
+#define        MCFSIM_DCTR             (MCF_MBAR + 0x4a) /* DRAM Timing reg (r/w) */
+#define        MCFSIM_DAR0             (MCF_MBAR + 0x4c) /* DRAM 0 Address reg(r/w) */
+#define        MCFSIM_DMR0             (MCF_MBAR + 0x50) /* DRAM 0 Mask reg (r/w) */
+#define        MCFSIM_DCR0             (MCF_MBAR + 0x57) /* DRAM 0 Control reg (r/w) */
+#define        MCFSIM_DAR1             (MCF_MBAR + 0x58) /* DRAM 1 Address reg (r/w) */
+#define        MCFSIM_DMR1             (MCF_MBAR + 0x5c) /* DRAM 1 Mask reg (r/w) */
+#define        MCFSIM_DCR1             (MCF_MBAR + 0x63) /* DRAM 1 Control reg (r/w) */
 
 #define        MCFSIM_CSAR0            0x64            /* CS 0 Address 0 reg (r/w) */
 #define        MCFSIM_CSMR0            0x68            /* CS 0 Mask 0 reg (r/w) */
index 89067bd041503efc794746554c5fe292a60b56b3..3f3dbf01a10963a5ae96a4f5e9535ef655bc68a9 100644 (file)
 /*
  *     SDRAM configuration registers.
  */
-#define        MCFSIM_DCR              0x44            /* SDRAM control */
-#define        MCFSIM_DACR0            0x48            /* SDRAM base address 0 */
-#define        MCFSIM_DMR0             0x4c            /* SDRAM address mask 0 */
-#define        MCFSIM_DACR1            0x50            /* SDRAM base address 1 */
-#define        MCFSIM_DMR1             0x54            /* SDRAM address mask 1 */
+#define        MCFSIM_DCR              (MCF_IPSBAR + 0x44)     /* Control */
+#define        MCFSIM_DACR0            (MCF_IPSBAR + 0x48)     /* Base address 0 */
+#define        MCFSIM_DMR0             (MCF_IPSBAR + 0x4c)     /* Address mask 0 */
+#define        MCFSIM_DACR1            (MCF_IPSBAR + 0x50)     /* Base address 1 */
+#define        MCFSIM_DMR1             (MCF_IPSBAR + 0x54)     /* Address mask 1 */
 
 /*
  *  Reset Controll Unit (relative to IPSBAR).
index c318ce786f93a04ee019f0fdc7e76cdfb1b4aa27..33b0b4df07caa95101754a6edc3da656df6b4e0f 100644 (file)
 #define MCFSIM_CSMR3           0xa8            /* CS 3 Mask reg (r/w) */
 #define MCFSIM_CSCR3           0xae            /* CS 3 Control reg (r/w) */
 
-#define MCFSIM_DCR             0x100           /* DRAM Control reg (r/w) */
-#define MCFSIM_DACR0           0x108           /* DRAM 0 Addr and Ctrl (r/w) */
-#define MCFSIM_DMR0            0x10c           /* DRAM 0 Mask reg (r/w) */
-#define MCFSIM_DACR1           0x110           /* DRAM 1 Addr and Ctrl (r/w) */
-#define MCFSIM_DMR1            0x114           /* DRAM 1 Mask reg (r/w) */
+#define MCFSIM_DCR             (MCF_MBAR + 0x100)      /* DRAM Control */
+#define MCFSIM_DACR0           (MCF_MBAR + 0x108)      /* DRAM 0 Addr/Ctrl */
+#define MCFSIM_DMR0            (MCF_MBAR + 0x10c)      /* DRAM 0 Mask */
+#define MCFSIM_DACR1           (MCF_MBAR + 0x110)      /* DRAM 1 Addr/Ctrl */
+#define MCFSIM_DMR1            (MCF_MBAR + 0x114)      /* DRAM 1 Mask */
 
 /*
  *     Timer module.
index 04b8c103095d4336d97a46aedf23879c9e32561c..838fb2b1e88b8f40e4af488253dbabd91185991e 100644 (file)
  *     SDRAM configuration registers.
  */
 #ifdef CONFIG_M5271
-#define        MCFSIM_DCR              0x40            /* SDRAM control */
-#define        MCFSIM_DACR0            0x48            /* SDRAM base address 0 */
-#define        MCFSIM_DMR0             0x4c            /* SDRAM address mask 0 */
-#define        MCFSIM_DACR1            0x50            /* SDRAM base address 1 */
-#define        MCFSIM_DMR1             0x54            /* SDRAM address mask 1 */
+#define        MCFSIM_DCR              (MCF_IPSBAR + 0x40)     /* Control */
+#define        MCFSIM_DACR0            (MCF_IPSBAR + 0x48)     /* Base address 0 */
+#define        MCFSIM_DMR0             (MCF_IPSBAR + 0x4c)     /* Address mask 0 */
+#define        MCFSIM_DACR1            (MCF_IPSBAR + 0x50)     /* Base address 1 */
+#define        MCFSIM_DMR1             (MCF_IPSBAR + 0x54)     /* Address mask 1 */
 #endif
 #ifdef CONFIG_M5275
-#define        MCFSIM_DMR              0x40            /* SDRAM mode */
-#define        MCFSIM_DCR              0x44            /* SDRAM control */
-#define        MCFSIM_DCFG1            0x48            /* SDRAM configuration 1 */
-#define        MCFSIM_DCFG2            0x4c            /* SDRAM configuration 2 */
-#define        MCFSIM_DBAR0            0x50            /* SDRAM base address 0 */
-#define        MCFSIM_DMR0             0x54            /* SDRAM address mask 0 */
-#define        MCFSIM_DBAR1            0x58            /* SDRAM base address 1 */
-#define        MCFSIM_DMR1             0x5c            /* SDRAM address mask 1 */
+#define        MCFSIM_DMR              (MCF_IPSBAR + 0x40)     /* Mode */
+#define        MCFSIM_DCR              (MCF_IPSBAR + 0x44)     /* Control */
+#define        MCFSIM_DCFG1            (MCF_IPSBAR + 0x48)     /* Configuration 1 */
+#define        MCFSIM_DCFG2            (MCF_IPSBAR + 0x4c)     /* Configuration 2 */
+#define        MCFSIM_DBAR0            (MCF_IPSBAR + 0x50)     /* Base address 0 */
+#define        MCFSIM_DMR0             (MCF_IPSBAR + 0x54)     /* Address mask 0 */
+#define        MCFSIM_DBAR1            (MCF_IPSBAR + 0x58)     /* Base address 1 */
+#define        MCFSIM_DMR1             (MCF_IPSBAR + 0x5c)     /* Address mask 1 */
 #endif
 
 /*
index 87c0cce59057e522a577032621f6f65264350a69..47324f2258a783ef57e8e9f31a797560f4423510 100644 (file)
 /*
  *     SDRAM configuration registers.
  */
-#define        MCFSIM_DCR              0x44            /* SDRAM control */
-#define        MCFSIM_DACR0            0x48            /* SDRAM base address 0 */
-#define        MCFSIM_DMR0             0x4c            /* SDRAM address mask 0 */
-#define        MCFSIM_DACR1            0x50            /* SDRAM base address 1 */
-#define        MCFSIM_DMR1             0x54            /* SDRAM address mask 1 */
+#define        MCFSIM_DCR              (MCF_IPSBAR + 0x00000044) /* Control */
+#define        MCFSIM_DACR0            (MCF_IPSBAR + 0x00000048) /* Base address 0 */
+#define        MCFSIM_DMR0             (MCF_IPSBAR + 0x0000004c) /* Address mask 0 */
+#define        MCFSIM_DACR1            (MCF_IPSBAR + 0x00000050) /* Base address 1 */
+#define        MCFSIM_DMR1             (MCF_IPSBAR + 0x00000054) /* Address mask 1 */
 
 /*
  *     DMA unit base addresses.
index c3846fcfa5d1ab6660dbdab7edf73e7b6b7c32b7..e4365f2e5c29b59ce3b3c1d403fb90b146eeff2c 100644 (file)
 #define MCFSIM_CSCR7           0xde            /* CS 7 Control reg (r/w) */
 #endif /* CONFIG_OLDMASK */
 
-#define MCFSIM_DCR             0x100           /* DRAM Control reg (r/w) */
-#define MCFSIM_DACR0           0x108           /* DRAM 0 Addr and Ctrl (r/w) */
-#define MCFSIM_DMR0            0x10c           /* DRAM 0 Mask reg (r/w) */
-#define MCFSIM_DACR1           0x110           /* DRAM 1 Addr and Ctrl (r/w) */
-#define MCFSIM_DMR1            0x114           /* DRAM 1 Mask reg (r/w) */
+#define MCFSIM_DCR             (MCF_MBAR + 0x100)      /* DRAM Control */
+#define MCFSIM_DACR0           (MCF_MBAR + 0x108)      /* DRAM Addr/Ctrl 0 */
+#define MCFSIM_DMR0            (MCF_MBAR + 0x10c)      /* DRAM Mask 0 */
+#define MCFSIM_DACR1           (MCF_MBAR + 0x110)      /* DRAM Addr/Ctrl 1 */
+#define MCFSIM_DMR1            (MCF_MBAR + 0x114)      /* DRAM Mask 1 */
 
 /*
  *  Timer module.
index 43272584dc0909de38781fbc29672c9f714bd726..c1eba01d26b0c8eb205fe5245114f915464ce858 100644 (file)
 #define MCFSIM_CSMR7           0xd8            /* CS 7 Mask reg (r/w) */
 #define MCFSIM_CSCR7           0xde            /* CS 7 Control reg (r/w) */
 
-#define MCFSIM_DCR             0x100           /* DRAM Control reg (r/w) */
-#define MCFSIM_DACR0           0x108           /* DRAM 0 Addr and Ctrl (r/w) */
-#define MCFSIM_DMR0            0x10c           /* DRAM 0 Mask reg (r/w) */
-#define MCFSIM_DACR1           0x110           /* DRAM 1 Addr and Ctrl (r/w) */
-#define MCFSIM_DMR1            0x114           /* DRAM 1 Mask reg (r/w) */
+#define MCFSIM_DCR             (MCF_MBAR + 0x100)      /* DRAM Control */
+#define MCFSIM_DACR0           (MCF_MBAR + 0x108)      /* DRAM 0 Addr/Ctrl */
+#define MCFSIM_DMR0            (MCF_MBAR + 0x10c)      /* DRAM 0 Mask */
+#define MCFSIM_DACR1           (MCF_MBAR + 0x110)      /* DRAM 1 Addr/Ctrl */
+#define MCFSIM_DMR1            (MCF_MBAR + 0x114)      /* DRAM 1 Mask */
 
 /*
  *     Timer module.
index 7967e8ab9fae3c991431fc81c08a06082891c73b..129bff4956b56fb3af5000b4e091b23a1f431d3e 100644 (file)
  *     DRAM controller is quite different.
  */
 .macro GET_MEM_SIZE
-       movel   MCF_MBAR+MCFSIM_DMR0,%d0 /* get mask for 1st bank */
+       movel   MCFSIM_DMR0,%d0         /* get mask for 1st bank */
        btst    #0,%d0                  /* check if region enabled */
        beq     1f
        andl    #0xfffc0000,%d0
        beq     1f
        addl    #0x00040000,%d0         /* convert mask to size */
 1:
-       movel   MCF_MBAR+MCFSIM_DMR1,%d1 /* get mask for 2nd bank */
+       movel   MCFSIM_DMR1,%d1         /* get mask for 2nd bank */
        btst    #0,%d1                  /* check if region enabled */
        beq     2f
-       andl    #0xfffc0000, %d1
+       andl    #0xfffc0000,%d1
        beq     2f
        addl    #0x00040000,%d1
        addl    %d1,%d0                 /* total mem size in d0 */