]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - board/freescale/mx35_3stack/flash_header.S
applied patches from Freescale and Ka-Ro
[karo-tx-uboot.git] / board / freescale / mx35_3stack / flash_header.S
1 /*
2  * Copyright 2009 Freescale Semiconductor, Inc.
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License as
6  * published by the Free Software Foundation; either version 2 of
7  * the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
17  * MA 02111-1307 USA
18  */
19
20 #include <config.h>
21 #include <asm/arch/mx35.h>
22 #include "board-mx35_3stack.h"
23
24 #ifdef  CONFIG_FLASH_HEADER
25 #ifndef CONFIG_FLASH_HEADER_OFFSET
26 # error "Must define the offset of flash header"
27 #endif
28
29 /* Flash header setup */
30 #define DCDGEN(i,type, addr, data) \
31 dcd_##i:                         ;\
32     .long type                   ;\
33     .long addr                   ;\
34     .long data
35
36 #define GEN_FHEADERADDR(x) (x)
37
38 .section ".text.flasheader", "x"
39         b _start
40         .org CONFIG_FLASH_HEADER_OFFSET
41 app_code_jump_v:    .long GEN_FHEADERADDR(_start)
42 app_code_barker:    .long CONFIG_FLASH_HEADER_BARKER
43 app_code_csf:       .long 0
44 hwcfg_ptr_ptr:      .long GEN_FHEADERADDR(hwcfg_ptr)
45 super_root_key:     .long 0
46 hwcfg_ptr:          .long GEN_FHEADERADDR(dcd_data)
47 app_dest_ptr:       .long TEXT_BASE
48 dcd_data:           .long 0xB17219E9
49 #ifdef MEMORY_MDDR_ENABLE
50                     .long (dcd_data_end - dcd_data - 8)
51
52 //WEIM config-CS5 init
53 DCDGEN(1, 4, 0xB8002054, 0x444a4541)
54 DCDGEN(1_1, 4, 0xB8002050, 0x0000dcf6)
55 DCDGEN(1_2, 4, 0xB8002058, 0x44443302)
56 //MDDR init
57 //enable mDDR
58 DCDGEN(2, 4, 0xB8001010, 0x00000004)
59 //reset delay time
60 DCDGEN(3, 4, 0xB8001010, 0x0000000C)
61 DCDGEN(4, 4, 0xB800100C, 0x007ffc3f)
62 DCDGEN(5, 4, 0xB800100C, 0x007ffc3f)
63 DCDGEN(6, 4, 0xB8001004, 0x007ffc3f)
64 DCDGEN(7, 4, 0xB8001000, 0x92220000)
65 DCDGEN(8, 1, 0x80000400, 0xda)
66 DCDGEN(9, 4, 0xB8001000, 0xA2220000)
67 DCDGEN(10, 4, 0x80000000, 0x87654321)
68 DCDGEN(11, 4, 0x80000000, 0x87654321)
69 DCDGEN(12, 4, 0xB8001000, 0xB2220000)
70 DCDGEN(13, 1, 0x80000033, 0xda)
71 DCDGEN(14, 1, 0x82000000, 0xda)
72 DCDGEN(15, 4, 0xB8001000, 0x82226080)
73 DCDGEN(16, 4, 0xB8001010, 0x00000004)
74 DCDGEN(17, 4, 0xB8001008, 0x00002000)
75
76 #else
77                     .long 240
78
79 //WEIM config-CS5 init
80 DCDGEN(1, 4, 0xB8002050, 0x0000d843)
81 DCDGEN(1_1, 4, 0xB8002054, 0x22252521)
82 DCDGEN(1_2, 4, 0xB8002058, 0x22220a00)
83
84 //DDR2 init
85 DCDGEN(2, 4, 0xB8001010, 0x00000304)
86 DCDGEN(3, 4, 0xB8001010, 0x0000030C)
87 DCDGEN(4, 4, 0xB8001004, 0x007ffc3f)
88 DCDGEN(5, 4, 0xB8001000, 0x92220000)
89 DCDGEN(6, 4, 0x80000400, 0x12345678)
90 DCDGEN(7, 4, 0xB8001000, 0xA2220000)
91 DCDGEN(8, 4, 0x80000000, 0x87654321)
92 DCDGEN(9, 4, 0x80000000, 0x87654321)
93 DCDGEN(10, 4, 0xB8001000, 0xB2220000)
94 DCDGEN(11, 1, 0x80000233, 0xda)
95 DCDGEN(12, 1, 0x82000780, 0xda)
96 DCDGEN(13, 1, 0x82000400, 0xda)
97 DCDGEN(14, 4, 0xB8001000, 0x82226080)
98 DCDGEN(15, 4, 0xB8001004, 0x007ffc3f)
99 DCDGEN(16, 4, 0xB800100C, 0x007ffc3f)
100 DCDGEN(17, 4, 0xB8001010, 0x00000304)
101 DCDGEN(18, 4, 0xB8001008, 0x00002000)
102
103 #endif
104 dcd_data_end:
105
106 //CARD_FLASH_CFG_PARMS_T---length
107 card_cfg:           .long 0x100000
108 #endif