1 /* -------------------------------- Arctic Core ------------------------------
\r
2 * Arctic Core - the open source AUTOSAR platform http://arccore.com
\r
4 * Copyright (C) 2009 ArcCore AB <contact@arccore.com>
\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
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
14 * -------------------------------- Arctic Core ------------------------------*/
\r
21 #if defined(CFG_MPC5606S)
\r
23 /* TODO: This can actually be read from the flash instead */
\r
24 const FlashType flashInfo[] = {
\r
27 /* Bank 0, Array 0 (LOW) */
\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
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
64 /* Bank 2, Array 1 (MID)*/
\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
78 #else if defined(CFG_MPC5606B)
\r
80 /* TODO: This can actually be read from the flash instead */
\r
81 const FlashType flashInfo[] = {
\r
84 /* Bank 0, Array 0 (LOW) */
\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
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
123 #error CPU NOT supported
\r
127 const Fls_ConfigType FlsConfigSet[]=
\r
130 #if ( FLS_AC_LOAD_ON_JOB_START == STD_ON)
\r
131 .FlsAcWrite = __FLS_ERASE_RAM__,
\r
132 .FlsAcErase = __FLS_WRITE_RAM__,
\r
134 .FlsAcWrite = NULL,
\r
135 .FlsAcErase = NULL,
\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