]> rtime.felk.cvut.cz Git - arc.git/blob - boards/mpc5606b_xpc560b/config/Fls_Cfg.c
782d9dab447b3e5ef19e61260e1af712f1d157d8
[arc.git] / boards / mpc5606b_xpc560b / config / Fls_Cfg.c
1 /* -------------------------------- Arctic Core ------------------------------\r
2  * Arctic Core - the open source AUTOSAR platform http://arccore.com\r
3  *\r
4  * Copyright (C) 2009  ArcCore AB <contact@arccore.com>\r
5  *\r
6  * This source code is free software; you can redistribute it and/or modify it\r
7  * under the terms of the GNU General Public License version 2 as published by the\r
8  * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.\r
9  *\r
10  * This program is distributed in the hope that it will be useful, but\r
11  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
12  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\r
13  * for more details.\r
14  * -------------------------------- Arctic Core ------------------------------*/\r
15 \r
16 #include "Fls.h"\r
17 #include "flash.h"\r
18 #include <stdlib.h>\r
19 \r
20 \r
21 #if defined(CFG_MPC5606S)\r
22 \r
23 /* TODO: This can actually be read from the flash instead */\r
24 const FlashType flashInfo[] = {\r
25         /* NO RWW */\r
26 \r
27         /* Bank 0, Array 0 (LOW) */\r
28         [0].sectCnt = 8,\r
29         [0].bankSize = 0x80000,\r
30 //      [0].bankRange = BANK_RANGE_CODE_LOW,\r
31         [0].regBase = 0xC3F88000UL,\r
32         [0].sectAddr[0] = 0,       /* 0, B0F0, LOW  */\r
33         [0].addrSpace[0] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 0,\r
34         [0].sectAddr[1] = 0x08000, /* 1, B0F1, LOW */\r
35         [0].addrSpace[1] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 1,\r
36         [0].sectAddr[2] = 0x0c000, /* 2, B0F2, LOW */\r
37         [0].addrSpace[2] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 2,\r
38         [0].sectAddr[3] = 0x10000, /* 3, B0F3, LOW */\r
39         [0].addrSpace[3] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 3,\r
40         [0].sectAddr[4] = 0x18000, /* 4, B0F4, LOW */\r
41         [0].addrSpace[4] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 4,\r
42         [0].sectAddr[5] = 0x20000, /* 5, B0F5, LOW */\r
43         [0].addrSpace[5] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 5,\r
44         [0].sectAddr[6] = 0x40000, /* 6, B0F6, MID */\r
45         [0].addrSpace[6] = ADDR_SPACE_SET(ADDR_SPACE_MID) + 0,\r
46         [0].sectAddr[7] = 0x60000, /* 7, B0F7, MID */\r
47         [0].addrSpace[7] = ADDR_SPACE_SET(ADDR_SPACE_MID) + 1,\r
48         [0].sectAddr[8] = 0x80000,      /* End, NOT a sector */\r
49 \r
50         /* Bank 1, Data */\r
51         [1].sectCnt = 4,\r
52         [1].bankSize = 0x810000 - 0x800000,\r
53         [1].regBase = 0xC3F8C000UL,\r
54         [1].sectAddr[0] = 0x800000,  /* LOW */\r
55         [1].addrSpace[0] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 0,\r
56         [1].sectAddr[1] = 0x804000,  /* LOW */\r
57         [1].addrSpace[1] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 1,\r
58         [1].sectAddr[2] = 0x808000,  /* LOW */\r
59         [1].addrSpace[2] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 2,\r
60         [1].sectAddr[3] = 0x80c000,  /* LOW */\r
61         [1].addrSpace[3] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 3,\r
62         [1].sectAddr[4] = 0x810000, /* End, NOT a sector */\r
63 \r
64         /* Bank 2, Array 1 (MID)*/\r
65         [2].sectCnt = 4,\r
66         [2].bankSize = 0x100000-0x80000,\r
67         [2].regBase = 0xC3FB0000UL,\r
68         [2].sectAddr[0] = 0x80000,  /* 0, B2F0, LOW  */\r
69         [2].addrSpace[0] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 0,\r
70         [2].sectAddr[1] = 0xa0000,      /* 1, B2F1, LOW  */\r
71         [2].addrSpace[1] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 1,\r
72         [2].sectAddr[2] = 0xc0000,      /* 2, B2F2, MID  */\r
73         [2].addrSpace[2] = ADDR_SPACE_SET(ADDR_SPACE_MID) + 0,\r
74         [2].sectAddr[3] = 0xe0000,  /* 3, B2F3, MID  */\r
75         [2].addrSpace[3] = ADDR_SPACE_SET(ADDR_SPACE_MID) + 1,\r
76         [2].sectAddr[4] = 0x100000, /* End, NOT a sector */\r
77 };\r
78 #else if defined(CFG_MPC5606B)\r
79 \r
80 /* TODO: This can actually be read from the flash instead */\r
81 const FlashType flashInfo[] = {\r
82         /* NO RWW */\r
83 \r
84         /* Bank 0, Array 0 (LOW) */\r
85         [0].sectCnt = 8,\r
86         [0].bankSize = 0x80000,\r
87 //      [0].bankRange = BANK_RANGE_CODE_LOW,\r
88         [0].regBase = 0xC3F88000UL,\r
89         [0].sectAddr[0] = 0,       /* 0, B0F0, LOW  */\r
90         [0].addrSpace[0] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 0,\r
91         [0].sectAddr[1] = 0x08000, /* 1, B0F1, LOW */\r
92         [0].addrSpace[1] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 1,\r
93         [0].sectAddr[2] = 0x0c000, /* 2, B0F2, LOW */\r
94         [0].addrSpace[2] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 2,\r
95         [0].sectAddr[3] = 0x10000, /* 3, B0F3, LOW */\r
96         [0].addrSpace[3] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 3,\r
97         [0].sectAddr[4] = 0x18000, /* 4, B0F4, LOW */\r
98         [0].addrSpace[4] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 4,\r
99         [0].sectAddr[5] = 0x20000, /* 5, B0F5, LOW */\r
100         [0].addrSpace[5] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 5,\r
101         [0].sectAddr[6] = 0x40000, /* 6, B0F6, MID */\r
102         [0].addrSpace[6] = ADDR_SPACE_SET(ADDR_SPACE_MID) + 0,\r
103         [0].sectAddr[7] = 0x60000, /* 7, B0F7, MID */\r
104         [0].addrSpace[7] = ADDR_SPACE_SET(ADDR_SPACE_MID) + 1,\r
105         [0].sectAddr[8] = 0x80000,      /* End, NOT a sector */\r
106 \r
107         /* Bank 1, Data */\r
108         [1].sectCnt = 4,\r
109         [1].bankSize = 0x810000 - 0x800000,\r
110         [1].regBase = 0xC3F8C000UL,\r
111         [1].sectAddr[0] = 0x800000,  /* LOW */\r
112         [1].addrSpace[0] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 0,\r
113         [1].sectAddr[1] = 0x804000,  /* LOW */\r
114         [1].addrSpace[1] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 1,\r
115         [1].sectAddr[2] = 0x808000,  /* LOW */\r
116         [1].addrSpace[2] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 2,\r
117         [1].sectAddr[3] = 0x80c000,  /* LOW */\r
118         [1].addrSpace[3] = ADDR_SPACE_SET(ADDR_SPACE_LOW) + 3,\r
119         [1].sectAddr[4] = 0x810000, /* End, NOT a sector */\r
120 };\r
121 \r
122 #else\r
123 #error CPU NOT supported\r
124 #endif\r
125 \r
126 \r
127 const Fls_ConfigType FlsConfigSet[]=\r
128 {\r
129   {\r
130 #if ( FLS_AC_LOAD_ON_JOB_START == STD_ON)\r
131     .FlsAcWrite = __FLS_ERASE_RAM__,\r
132     .FlsAcErase = __FLS_WRITE_RAM__,\r
133 #else\r
134     .FlsAcWrite = NULL,\r
135     .FlsAcErase = NULL,\r
136 #endif\r
137     .FlsJobEndNotification = NULL,\r
138     .FlsJobErrorNotification = NULL,\r
139     .FlsInfo = flashInfo,\r
140 //    .FlsSectorList = &fls_evbSectorList[0],\r
141 //    .FlsSectorListSize = sizeof(fls_evbSectorList)/sizeof(Fls_SectorType),\r
142 //    .FlsBlockToPartitionMap = Fls_BlockToPartitionMap,\r
143   }\r
144 };\r