1 From ddc092180bd24b34afdd6fd7cd48b77b55a5bd5e Mon Sep 17 00:00:00 2001
2 From: Kurt Mahan <kmahan@freescale.com>
3 Date: Tue, 24 Jun 2008 23:21:07 -0600
4 Subject: [PATCH] Cleanup ACR mappings and document.
6 LTIBName: mcfv4e-acr-cleanup
7 Signed-off-by: Kurt Mahan <kmahan@freescale.com>
9 arch/m68k/coldfire/head.S | 81 +++++++++++++++++++++++++-------------------
10 1 files changed, 46 insertions(+), 35 deletions(-)
12 --- a/arch/m68k/coldfire/head.S
13 +++ b/arch/m68k/coldfire/head.S
15 #define __FINIT .previous
18 -/* JKM -- REVISE DOCS FOR M547x_8x and PHYS MAPPING */
19 +#if CONFIG_SDRAM_BASE != PAGE_OFFSET
21 - * Setup ACR mappings to provide the following memory map:
23 - * 0xA0000000 -> 0xAFFFFFFF [0] NO CACHE / PRECISE / SUPER ONLY
24 - * 0xF0000000 -> 0xFFFFFFFF [1] NO CACHE / PRECISE / SUPER ONLY
26 - * None currently (mapped via TLBs)
27 + * Kernel mapped to virtual ram address.
30 + * Data[0]: 0xF0000000 -> 0xFFFFFFFF System regs
31 + * Data[1]: 0xA0000000 -> 0xAFFFFFFF PCI
32 + * Code[0]: Not Mapped
33 + * Code[1]: Not Mapped
36 + * Data[0]: 0xF0000000 -> 0xFFFFFFFF System regs
37 + * Data[1]: Not Mapped
38 + * Code[0]: Not Mapped
39 + * Code[1]: Not Mapped
42 -#if CONFIG_SDRAM_BASE != PAGE_OFFSET
43 #if defined(CONFIG_M5445X)
45 -#define ACR0_DEFAULT #0xA00FA048 /* ACR0 default value */
47 -#define ACR0_DEFAULT #0x400FA028 /* ACR0 default value */
48 -#define ACR1_DEFAULT #0xF00FA040 /* ACR1 default value */
50 -#define ACR2_DEFAULT #0x00000000 /* ACR2 default value */
52 -#define ACR2_DEFAULT #0x400FA028 /* ACR2 default value */
53 -#define ACR3_DEFAULT #0x00000000 /* ACR3 default value */
54 -/* ACR mapping for FPGA (maps 0) */
55 -#define ACR0_FPGA #0x000FA048 /* ACR0 enable FPGA */
56 +#define ACR0_DEFAULT #0xF00FA048 /* System regs */
57 +#define ACR1_DEFAULT #0xA00FA048 /* PCI */
58 +#define ACR2_DEFAULT #0x00000000 /* Not Mapped */
59 +#define ACR3_DEFAULT #0x00000000 /* Not Mapped */
60 #elif defined(CONFIG_M547X_8X)
61 -#define ACR0_DEFAULT #0xE000C040 /* ACR0 default value */
62 -#define ACR1_DEFAULT #0x00000000 /* ACR1 default value */
63 -#define ACR2_DEFAULT #0x00000000 /* ACR2 default value */
64 -#define ACR3_DEFAULT #0x00000000 /* ACR3 default value */
65 +#define ACR0_DEFAULT #0xF00FA048 /* System Regs */
66 +#define ACR1_DEFAULT #0x00000000 /* Not Mapped */
67 +#define ACR2_DEFAULT #0x00000000 /* Not Mapped */
68 +#define ACR3_DEFAULT #0x00000000 /* Not Mapped */
72 +#else /* CONFIG_SDRAM_BASE = PAGE_OFFSET */
74 + * Kernel mapped to physical ram address.
77 + * Data[0]: 0xF0000000 -> 0xFFFFFFFF System regs
78 + * Data[1]: 0x40000000 -> 0x4FFFFFFF SDRAM - uncached
79 + * Code[0]: Not Mapped
80 + * Code[1]: 0x40000000 -> 0x4FFFFFFF SDRAM - cached
83 + * Data[0]: 0xF0000000 -> 0xFFFFFFFF System regs
84 + * Data[1]: 0x00000000 -> 0x0FFFFFFF SDRAM - uncached
85 + * Code[0]: Not Mapped
86 + * Code[1]: 0x00000000 -> 0x0FFFFFFF SDRAM - cached
88 #if defined(CONFIG_M5445X)
89 -#define ACR0_DEFAULT #0xF00FC040 /* ACR0 default value */
90 -#define ACR1_DEFAULT #0x400FA008 /* ACR1 default value */
91 -#define ACR2_DEFAULT #0x00000000 /* ACR2 default value */
92 -#define ACR3_DEFAULT #0x400FA008 /* ACR3 default value */
93 +#define ACR0_DEFAULT #0xF00FA048 /* System Regs */
94 +#define ACR1_DEFAULT #0x400FA048 /* SDRAM uncached */
95 +#define ACR2_DEFAULT #0x00000000 /* Not mapped */
96 +#define ACR3_DEFAULT #0x400FA008 /* SDRAM cached */
97 #elif defined(CONFIG_M547X_8X)
98 -#define ACR0_DEFAULT #0xF00FC040 /* ACR0 default value */
99 -#define ACR1_DEFAULT #0x000FA008 /* ACR1 default value */
100 -#define ACR2_DEFAULT #0x00000000 /* ACR2 default value */
101 -#define ACR3_DEFAULT #0x000FA008 /* ACR3 default value */
102 +#define ACR0_DEFAULT #0xF00FA048 /* System Regs */
103 +#define ACR1_DEFAULT #0x000FA048 /* SDRAM uncached */
104 +#define ACR2_DEFAULT #0x00000000 /* Not mapped */
105 +#define ACR3_DEFAULT #0x000FA008 /* SDRAM cached */
110 /* Several macros to make the writing of subroutines easier:
111 * - func_start marks the beginning of the routine which setups the frame
112 * register and saves the registers, it also defines another macro