]> git.sur5r.net Git - freertos/blob
5267a9f07930737f13e34aae72cbb51e9e104b1b
[freertos] /
1 /******************************************************************************
2 *
3 * Copyright (C) 2009 - 2014 Xilinx, Inc.  All rights reserved.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a copy
6 * of this software and associated documentation files (the "Software"), to deal
7 * in the Software without restriction, including without limitation the rights
8 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 * copies of the Software, and to permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included in
13 * all copies or substantial portions of the Software.
14 *
15 * Use of the Software is limited solely to applications:
16 * (a) running on a Xilinx device, or
17 * (b) that interact with a Xilinx device through a bus or interconnect.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22 * XILINX  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
24 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25 * SOFTWARE.
26 *
27 * Except as contained in this notice, the name of the Xilinx shall not be used
28 * in advertising or otherwise to promote the sale, use or other dealings in
29 * this Software without prior written authorization from Xilinx.
30 *
31 ******************************************************************************/
32 /*****************************************************************************/
33 /**
34 * @file translation_table.s
35 *
36 * This file contains the initialization for the MMU table in RAM
37 * needed by the Cortex A9 processor
38 *
39 * <pre>
40 * MODIFICATION HISTORY:
41 *
42 * Ver   Who  Date     Changes
43 * ----- ---- -------- ---------------------------------------------------
44 * 1.00a ecm  10/20/09 Initial version
45 * 3.04a sdm  01/13/12 Updated MMU table to mark DDR memory as Shareable
46 * 3.07a sgd  07/05/2012 Configuring device address spaces as shareable device
47 *                      instead of strongly-ordered.
48 * 3.07a asa  07/17/2012 Changed the property of the ".mmu_tbl" section.
49 * </pre>
50 *
51 * @note
52 *
53 * None.
54 *
55 ******************************************************************************/
56         .globl  MMUTable
57
58         .section .mmu_tbl,"a"
59
60 MMUTable:
61         /* Each table entry occupies one 32-bit word and there are
62          * 4096 entries, so the entire table takes up 16KB.
63          * Each entry covers a 1MB section.
64          */
65
66 .set SECT, 0
67
68 .rept   0x0400                  /* 0x00000000 - 0x3fffffff (DDR Cacheable) */
69 .word   SECT + 0x15de6          /* S=b1 TEX=b101 AP=b11, Domain=b1111, C=b0, B=b1 */
70 .set    SECT, SECT+0x100000
71 .endr
72
73 .rept   0x0400                  /* 0x40000000 - 0x7fffffff (FPGA slave0) */
74 .word   SECT + 0xc02            /* S=b0 TEX=b000 AP=b11, Domain=b0, C=b0, B=b1 */
75 .set    SECT, SECT+0x100000
76 .endr
77
78 .rept   0x0400                  /* 0x80000000 - 0xbfffffff (FPGA slave1) */
79 .word   SECT + 0xc02            /* S=b0 TEX=b000 AP=b11, Domain=b0, C=b0, B=b1 */
80 .set    SECT, SECT+0x100000
81 .endr
82
83 .rept   0x0200                  /* 0xc0000000 - 0xdfffffff (unassigned/reserved).
84                                  * Generates a translation fault if accessed */
85 .word   SECT + 0x0              /* S=b0 TEX=b000 AP=b00, Domain=b0, C=b0, B=b0 */
86 .set    SECT, SECT+0x100000
87 .endr
88
89 .rept   0x0020                  /* 0xe0000000 - 0xe1ffffff (Memory mapped devices)
90                                  * UART/USB/IIC/SPI/CAN/GEM/GPIO/QSPI/SD/NAND */
91 .word   SECT + 0xc06            /* S=b0 TEX=b000 AP=b11, Domain=b0, C=b0, B=b1 */
92 .set    SECT, SECT+0x100000
93 .endr
94
95 .rept   0x0020                  /* 0xe2000000 - 0xe3ffffff (NOR) */
96 .word   SECT + 0xc06            /* S=b0 TEX=b000 AP=b11, Domain=b0, C=b0, B=b1 */
97 .set    SECT, SECT+0x100000
98 .endr
99
100 .rept   0x0020                  /* 0xe4000000 - 0xe5ffffff (SRAM) */
101 .word   SECT + 0xc0e            /* S=b0 TEX=b000 AP=b11, Domain=b0, C=b1, B=b1 */
102 .set    SECT, SECT+0x100000
103 .endr
104
105 .rept   0x0120                  /* 0xe6000000 - 0xf7ffffff (unassigned/reserved).
106                                  * Generates a translation fault if accessed */
107 .word   SECT + 0x0              /* S=b0 TEX=b000 AP=b00, Domain=b0, C=b0, B=b0 */
108 .set    SECT, SECT+0x100000
109 .endr
110
111 .rept   0x0010                  /* 0xf8000000 - 0xf8ffffff (AMBA APB Peripherals) */
112 .word   SECT + 0xc06            /* S=b0 TEX=b000 AP=b11, Domain=b0, C=b0, B=b1 */
113 .set    SECT, SECT+0x100000
114 .endr
115
116 .rept   0x0030                  /* 0xf9000000 - 0xfbffffff (unassigned/reserved).
117                                  * Generates a translation fault if accessed */
118 .word   SECT + 0x0              /* S=b0 TEX=b000 AP=b00, Domain=b0, C=b0, B=b0 */
119 .set    SECT, SECT+0x100000
120 .endr
121
122 .rept   0x003f                  /* 0xfc000000 - 0xffefffff (Linear QSPI - XIP) */
123 .word   SECT + 0xc0a            /* S=b0 TEX=b000 AP=b11, Domain=b0, C=b1, B=b1 */
124 .set    SECT, SECT+0x100000
125 .endr
126
127                                 /* 256K OCM when mapped to high address space
128                                  * inner-cacheable */
129 .word   SECT + 0x4c0e           /* S=b0 TEX=b100 AP=b11, Domain=b0, C=b1, B=b1 */
130 .set    SECT, SECT+0x100000
131
132 .end