1/* generated memory regions file - do not edit */ 2define symbol ATCM_START = 0x00000000; 3define symbol ATCM_LENGTH = 0x20000; 4define symbol BTCM_START = 0x00100000; 5define symbol BTCM_LENGTH = 0x20000; 6define symbol SYSTEM_RAM_START = 0x10000000; 7define symbol SYSTEM_RAM_LENGTH = 0x180000; 8define symbol SYSTEM_RAM_MIRROR_START = 0x30000000; 9define symbol SYSTEM_RAM_MIRROR_LENGTH = 0x180000; 10define symbol xSPI0_CS0_SPACE_MIRROR_START = 0x40000000; 11define symbol xSPI0_CS0_SPACE_MIRROR_LENGTH = 0x4000000; 12define symbol xSPI0_CS1_SPACE_MIRROR_START = 0x44000000; 13define symbol xSPI0_CS1_SPACE_MIRROR_LENGTH = 0x4000000; 14define symbol xSPI1_CS0_SPACE_MIRROR_START = 0x48000000; 15define symbol xSPI1_CS0_SPACE_MIRROR_LENGTH = 0x4000000; 16define symbol CS0_SPACE_MIRROR_START = 0x50000000; 17define symbol CS0_SPACE_MIRROR_LENGTH = 0x4000000; 18define symbol CS2_SPACE_MIRROR_START = 0x54000000; 19define symbol CS2_SPACE_MIRROR_LENGTH = 0x4000000; 20define symbol CS3_SPACE_MIRROR_START = 0x58000000; 21define symbol CS3_SPACE_MIRROR_LENGTH = 0x4000000; 22define symbol CS5_SPACE_MIRROR_START = 0x5C000000; 23define symbol CS5_SPACE_MIRROR_LENGTH = 0x4000000; 24define symbol xSPI0_CS0_SPACE_START = 0x60000000; 25define symbol xSPI0_CS0_SPACE_LENGTH = 0x4000000; 26define symbol xSPI0_CS1_SPACE_START = 0x64000000; 27define symbol xSPI0_CS1_SPACE_LENGTH = 0x4000000; 28define symbol xSPI1_CS0_SPACE_START = 0x68000000; 29define symbol xSPI1_CS0_SPACE_LENGTH = 0x4000000; 30define symbol CS0_SPACE_START = 0x70000000; 31define symbol CS0_SPACE_LENGTH = 0x4000000; 32define symbol CS2_SPACE_START = 0x74000000; 33define symbol CS2_SPACE_LENGTH = 0x4000000; 34define symbol CS3_SPACE_START = 0x78000000; 35define symbol CS3_SPACE_LENGTH = 0x4000000; 36define symbol CS5_SPACE_START = 0x7C000000; 37define symbol CS5_SPACE_LENGTH = 0x4000000; 38 39/* The memory information for each device is done in memory regions file. 40 * The starting address and length of memory not defined in memory regions file are defined as 0. */ 41 42if (isdefinedsymbol(ATCM_START)) 43{ 44 define symbol ATCM_PRV_START = ATCM_START; 45} 46else 47{ 48 define symbol ATCM_PRV_START = 0; 49} 50 51if (isdefinedsymbol(ATCM_LENGTH)) 52{ 53 define symbol ATCM_PRV_LENGTH = ATCM_LENGTH; 54} 55else 56{ 57 define symbol ATCM_PRV_LENGTH = 0; 58} 59 60if (isdefinedsymbol(BTCM_START)) 61{ 62 define symbol BTCM_PRV_START = BTCM_START; 63} 64else 65{ 66 define symbol BTCM_PRV_START = 0; 67} 68 69if (isdefinedsymbol(BTCM_LENGTH)) 70{ 71 define symbol BTCM_PRV_LENGTH = BTCM_LENGTH; 72} 73else 74{ 75 define symbol BTCM_PRV_LENGTH = 0; 76} 77 78if (isdefinedsymbol(SYSTEM_RAM_START)) 79{ 80 define symbol SYSTEM_RAM_PRV_START = SYSTEM_RAM_START; 81} 82else 83{ 84 define symbol SYSTEM_RAM_PRV_START = 0; 85} 86 87if (isdefinedsymbol(SYSTEM_RAM_LENGTH)) 88{ 89 define symbol SYSTEM_RAM_PRV_LENGTH = SYSTEM_RAM_LENGTH; 90} 91else 92{ 93 define symbol SYSTEM_RAM_PRV_LENGTH = 0; 94} 95 96if (isdefinedsymbol(SYSTEM_RAM_MIRROR_START)) 97{ 98 define symbol SYSTEM_RAM_MIRROR_PRV_START = SYSTEM_RAM_MIRROR_START; 99} 100else 101{ 102 define symbol SYSTEM_RAM_MIRROR_PRV_START = 0; 103} 104 105if (isdefinedsymbol(SYSTEM_RAM_MIRROR_LENGTH)) 106{ 107 define symbol SYSTEM_RAM_MIRROR_PRV_LENGTH = SYSTEM_RAM_MIRROR_LENGTH; 108} 109else 110{ 111 define symbol SYSTEM_RAM_MIRROR_PRV_LENGTH = 0; 112} 113 114if (isdefinedsymbol(xSPI0_CS0_SPACE_MIRROR_START)) 115{ 116 define symbol xSPI0_CS0_SPACE_MIRROR_PRV_START = xSPI0_CS0_SPACE_MIRROR_START; 117} 118else 119{ 120 define symbol xSPI0_CS0_SPACE_MIRROR_PRV_START = 0; 121} 122 123if (isdefinedsymbol(xSPI0_CS0_SPACE_MIRROR_LENGTH)) 124{ 125 define symbol xSPI0_CS0_SPACE_MIRROR_PRV_LENGTH = xSPI0_CS0_SPACE_MIRROR_LENGTH; 126} 127else 128{ 129 define symbol xSPI0_CS0_SPACE_MIRROR_PRV_LENGTH = 0; 130} 131 132if (isdefinedsymbol(xSPI0_CS1_SPACE_MIRROR_START)) 133{ 134 define symbol xSPI0_CS1_SPACE_MIRROR_PRV_START = xSPI0_CS1_SPACE_MIRROR_START; 135} 136else 137{ 138 define symbol xSPI0_CS1_SPACE_MIRROR_PRV_START = 0; 139} 140 141if (isdefinedsymbol(xSPI0_CS1_SPACE_MIRROR_LENGTH)) 142{ 143 define symbol xSPI0_CS1_SPACE_MIRROR_PRV_LENGTH = xSPI0_CS1_SPACE_MIRROR_LENGTH; 144} 145else 146{ 147 define symbol xSPI0_CS1_SPACE_MIRROR_PRV_LENGTH = 0; 148} 149 150if (isdefinedsymbol(xSPI1_CS0_SPACE_MIRROR_START)) 151{ 152 define symbol xSPI1_CS0_SPACE_MIRROR_PRV_START = xSPI1_CS0_SPACE_MIRROR_START; 153} 154else 155{ 156 define symbol xSPI1_CS0_SPACE_MIRROR_PRV_START = 0; 157} 158 159if (isdefinedsymbol(xSPI1_CS0_SPACE_MIRROR_LENGTH)) 160{ 161 define symbol xSPI1_CS0_SPACE_MIRROR_PRV_LENGTH = xSPI1_CS0_SPACE_MIRROR_LENGTH; 162} 163else 164{ 165 define symbol xSPI1_CS0_SPACE_MIRROR_PRV_LENGTH = 0; 166} 167 168if (isdefinedsymbol(xSPI1_CS1_SPACE_MIRROR_START)) 169{ 170 define symbol xSPI1_CS1_SPACE_MIRROR_PRV_START = xSPI1_CS1_SPACE_MIRROR_START; 171} 172else 173{ 174 define symbol xSPI1_CS1_SPACE_MIRROR_PRV_START = 0; 175} 176 177if (isdefinedsymbol(xSPI1_CS1_SPACE_MIRROR_LENGTH)) 178{ 179 define symbol xSPI1_CS1_SPACE_MIRROR_PRV_LENGTH = xSPI1_CS1_SPACE_MIRROR_LENGTH; 180} 181else 182{ 183 define symbol xSPI1_CS1_SPACE_MIRROR_PRV_LENGTH = 0; 184} 185 186if (isdefinedsymbol(CS0_SPACE_MIRROR_START)) 187{ 188 define symbol CS0_SPACE_MIRROR_PRV_START = CS0_SPACE_MIRROR_START; 189} 190else 191{ 192 define symbol CS0_SPACE_MIRROR_PRV_START = 0; 193} 194 195if (isdefinedsymbol(CS0_SPACE_MIRROR_LENGTH)) 196{ 197 define symbol CS0_SPACE_MIRROR_PRV_LENGTH = CS0_SPACE_MIRROR_LENGTH; 198} 199else 200{ 201 define symbol CS0_SPACE_MIRROR_PRV_LENGTH = 0; 202} 203 204if (isdefinedsymbol(CS2_SPACE_MIRROR_START)) 205{ 206 define symbol CS2_SPACE_MIRROR_PRV_START = CS2_SPACE_MIRROR_START; 207} 208else 209{ 210 define symbol CS2_SPACE_MIRROR_PRV_START = 0; 211} 212 213if (isdefinedsymbol(CS2_SPACE_MIRROR_LENGTH)) 214{ 215 define symbol CS2_SPACE_MIRROR_PRV_LENGTH = CS2_SPACE_MIRROR_LENGTH; 216} 217else 218{ 219 define symbol CS2_SPACE_MIRROR_PRV_LENGTH = 0; 220} 221 222 223if (isdefinedsymbol(CS3_SPACE_MIRROR_START)) 224{ 225 define symbol CS3_SPACE_MIRROR_PRV_START = CS3_SPACE_MIRROR_START; 226} 227else 228{ 229 define symbol CS3_SPACE_MIRROR_PRV_START = 0; 230} 231 232if (isdefinedsymbol(CS3_SPACE_MIRROR_LENGTH)) 233{ 234 define symbol CS3_SPACE_MIRROR_PRV_LENGTH = CS3_SPACE_MIRROR_LENGTH; 235} 236else 237{ 238 define symbol CS3_SPACE_MIRROR_PRV_LENGTH = 0; 239} 240 241if (isdefinedsymbol(CS5_SPACE_MIRROR_START)) 242{ 243 define symbol CS5_SPACE_MIRROR_PRV_START = CS5_SPACE_MIRROR_START; 244} 245else 246{ 247 define symbol CS5_SPACE_MIRROR_PRV_START = 0; 248} 249 250if (isdefinedsymbol(CS5_SPACE_MIRROR_LENGTH)) 251{ 252 define symbol CS5_SPACE_MIRROR_PRV_LENGTH = CS5_SPACE_MIRROR_LENGTH; 253} 254else 255{ 256 define symbol CS5_SPACE_MIRROR_PRV_LENGTH = 0; 257} 258 259 260if (isdefinedsymbol(xSPI0_CS0_SPACE_START)) 261{ 262 define symbol xSPI0_CS0_SPACE_PRV_START = xSPI0_CS0_SPACE_START; 263} 264else 265{ 266 define symbol xSPI0_CS0_SPACE_PRV_START = 0; 267} 268 269if (isdefinedsymbol(xSPI0_CS0_SPACE_LENGTH)) 270{ 271 define symbol xSPI0_CS0_SPACE_PRV_LENGTH = xSPI0_CS0_SPACE_LENGTH; 272} 273else 274{ 275 define symbol xSPI0_CS0_SPACE_PRV_LENGTH = 0; 276} 277 278if (isdefinedsymbol(xSPI0_CS1_SPACE_START)) 279{ 280 define symbol xSPI0_CS1_SPACE_PRV_START = xSPI0_CS1_SPACE_START; 281} 282else 283{ 284 define symbol xSPI0_CS1_SPACE_PRV_START = 0; 285} 286 287if (isdefinedsymbol(xSPI0_CS1_SPACE_LENGTH)) 288{ 289 define symbol xSPI0_CS1_SPACE_PRV_LENGTH = xSPI0_CS1_SPACE_LENGTH; 290} 291else 292{ 293 define symbol xSPI0_CS1_SPACE_PRV_LENGTH = 0; 294} 295 296if (isdefinedsymbol(xSPI1_CS0_SPACE_START)) 297{ 298 define symbol xSPI1_CS0_SPACE_PRV_START = xSPI1_CS0_SPACE_START; 299} 300else 301{ 302 define symbol xSPI1_CS0_SPACE_PRV_START = 0; 303} 304 305if (isdefinedsymbol(xSPI1_CS0_SPACE_LENGTH)) 306{ 307 define symbol xSPI1_CS0_SPACE_PRV_LENGTH = xSPI1_CS0_SPACE_LENGTH; 308} 309else 310{ 311 define symbol xSPI1_CS0_SPACE_PRV_LENGTH = 0; 312} 313 314if (isdefinedsymbol(xSPI1_CS1_SPACE_START)) 315{ 316 define symbol xSPI1_CS1_SPACE_PRV_START = xSPI1_CS1_SPACE_START; 317} 318else 319{ 320 define symbol xSPI1_CS1_SPACE_PRV_START = 0; 321} 322 323if (isdefinedsymbol(xSPI1_CS1_SPACE_LENGTH)) 324{ 325 define symbol xSPI1_CS1_SPACE_PRV_LENGTH = xSPI1_CS1_SPACE_LENGTH; 326} 327else 328{ 329 define symbol xSPI1_CS1_SPACE_PRV_LENGTH = 0; 330} 331 332if (isdefinedsymbol(CS0_SPACE_START)) 333{ 334 define symbol CS0_SPACE_PRV_START = CS0_SPACE_START; 335} 336else 337{ 338 define symbol CS0_SPACE_PRV_START = 0; 339} 340 341if (isdefinedsymbol(CS0_SPACE_LENGTH)) 342{ 343 define symbol CS0_SPACE_PRV_LENGTH = CS0_SPACE_LENGTH; 344} 345else 346{ 347 define symbol CS0_SPACE_PRV_LENGTH = 0; 348} 349 350if (isdefinedsymbol(CS2_SPACE_START)) 351{ 352 define symbol CS2_SPACE_PRV_START = CS2_SPACE_START; 353} 354else 355{ 356 define symbol CS2_SPACE_PRV_START = 0; 357} 358 359if (isdefinedsymbol(CS2_SPACE_LENGTH)) 360{ 361 define symbol CS2_SPACE_PRV_LENGTH = CS2_SPACE_LENGTH; 362} 363else 364{ 365 define symbol CS2_SPACE_PRV_LENGTH = 0; 366} 367 368if (isdefinedsymbol(CS3_SPACE_START)) 369{ 370 define symbol CS3_SPACE_PRV_START = CS3_SPACE_START; 371} 372else 373{ 374 define symbol CS3_SPACE_PRV_START = 0; 375} 376 377if (isdefinedsymbol(CS3_SPACE_LENGTH)) 378{ 379 define symbol CS3_SPACE_PRV_LENGTH = CS3_SPACE_LENGTH; 380} 381else 382{ 383 define symbol CS3_SPACE_PRV_LENGTH = 0; 384} 385 386if (isdefinedsymbol(CS5_SPACE_START)) 387{ 388 define symbol CS5_SPACE_PRV_START = CS5_SPACE_START; 389} 390else 391{ 392 define symbol CS5_SPACE_PRV_START = 0; 393} 394 395if (isdefinedsymbol(CS5_SPACE_LENGTH)) 396{ 397 define symbol CS5_SPACE_PRV_LENGTH = CS5_SPACE_LENGTH; 398} 399else 400{ 401 define symbol CS5_SPACE_PRV_LENGTH = 0; 402} 403 404define symbol SYSTEM_RAM_END_OFFSET = 0x00048000; 405define symbol FLASH_ADDRESS = xSPI0_CS0_SPACE_PRV_START; 406 407/* 408define symbol INTVEC_ADDRESS = ATCM_PRV_START; 409define symbol RAM_ADDRESS = (ATCM_PRV_START + 0x100); 410define symbol RAM_END_ADDRESS = (ATCM_PRV_START + ATCM_PRV_LENGTH - 1); 411define symbol LOADER_STACK_ADDRESS = (BTCM_PRV_START + 0x2000); 412define symbol LOADER_STACK_END_ADDRESS = (BTCM_PRV_START + BTCM_PRV_LENGTH - 1); 413define symbol DATA_NONCACHE_OFFSET = 0x00048000; 414define symbol DATA_NONCACHE_END_OFFSET = 0x00044000; 415define symbol DMAC_LINK_MODE_OFFSET = 0x00044000; 416define symbol DMAC_LINK_MODE_END_OFFSET = 0x00040000; 417define symbol NONCACHE_BUFFER_OFFSET = 0x00020000; 418define symbol NONCACHE_BUFFER_END_OFFSET = 0; 419*/ 420/************* Override define symbol to place EtherCAT protocol into SystemRAM ************/ 421define symbol INTVEC_ADDRESS = SYSTEM_RAM_PRV_START; 422define symbol RAM_ADDRESS = (SYSTEM_RAM_PRV_START + 0x100); 423define symbol RAM_END_ADDRESS = (SYSTEM_RAM_PRV_START + SYSTEM_RAM_PRV_LENGTH - 1); 424define symbol LOADER_STACK_ADDRESS = (BTCM_PRV_START + 0x2000); 425define symbol LOADER_STACK_END_ADDRESS = (BTCM_PRV_START + BTCM_PRV_LENGTH - 1); 426define symbol DATA_NONCACHE_OFFSET = 0x00048000; 427define symbol DATA_NONCACHE_END_OFFSET = 0x00044000; 428define symbol DMAC_LINK_MODE_OFFSET = 0x00044000; 429define symbol DMAC_LINK_MODE_END_OFFSET = 0x00040000; 430define symbol NONCACHE_BUFFER_OFFSET = 0x00020000; 431define symbol NONCACHE_BUFFER_END_OFFSET = 0; 432/*********************************************************************************************/ 433 434/*###ICF### Section handled by ICF editor, don't touch! ****/ 435/*-Editor annotation file-*/ 436/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */ 437/*-Specials-*/ 438define symbol __ICFEDIT_intvec_start__ = INTVEC_ADDRESS; 439/*-Memory Regions-*/ 440define symbol __ICFEDIT_region_ROM_start__ = FLASH_ADDRESS + 0x20100; 441define symbol __ICFEDIT_region_ROM_end__ = FLASH_ADDRESS + 0x6FFFF; 442define symbol __ICFEDIT_region_RAM_start__ = RAM_ADDRESS; 443define symbol __ICFEDIT_region_RAM_end__ = RAM_END_ADDRESS; 444/**** End of ICF editor section. ###ICF###*/ 445 446/*-Sizes-*/ 447define symbol __ICFEDIT_size_cstack__ = 0x200; 448/**** End of ICF editor section. ###ICF###*/ 449 450define memory mem with size = 4G; 451define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; 452define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; 453 454define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; 455 456define symbol __region_D_LOADER_STACK_start__ = LOADER_STACK_ADDRESS; 457define symbol __region_D_LOADER_STACK_end__ = LOADER_STACK_END_ADDRESS; 458 459define symbol __region_DATA_NONCACHE_start__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - DATA_NONCACHE_OFFSET; 460define symbol __region_DATA_NONCACHE_end__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - DATA_NONCACHE_END_OFFSET - 1; 461define symbol __region_DMAC_LINK_MODE_start__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - DMAC_LINK_MODE_OFFSET; 462define symbol __region_DMAC_LINK_MODE_end__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - DMAC_LINK_MODE_END_OFFSET - 1; 463define symbol __region_SHARED_NONCACHE_BUFFER_start__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - 0x00040000; 464define symbol __region_SHARED_NONCACHE_BUFFER_end__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - 0x00020000 - 1; 465define symbol __region_NONCACHE_BUFFER_start__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - NONCACHE_BUFFER_OFFSET; 466define symbol __region_NONCACHE_BUFFER_end__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - NONCACHE_BUFFER_END_OFFSET - 1; 467 468define symbol __region_ATCM_start__ = ATCM_PRV_START; 469define symbol __region_ATCM_end__ = ATCM_PRV_START + ATCM_PRV_LENGTH - 1; 470define symbol __region_BTCM_start__ = BTCM_PRV_START; 471define symbol __region_BTCM_end__ = BTCM_PRV_START + BTCM_PRV_LENGTH - 1; 472define symbol __region_SYSTEM_RAM_start__ = SYSTEM_RAM_PRV_START; 473define symbol __region_SYSTEM_RAM_end__ = SYSTEM_RAM_PRV_START + SYSTEM_RAM_PRV_LENGTH - SYSTEM_RAM_END_OFFSET - 1; 474define symbol __region_SYSTEM_RAM_MIRROR_start__ = SYSTEM_RAM_MIRROR_PRV_START; 475define symbol __region_SYSTEM_RAM_MIRROR_end__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - SYSTEM_RAM_END_OFFSET - 1; 476 477define symbol __region_XSPI0_CS0_MIRROR_start__ = xSPI0_CS0_SPACE_MIRROR_PRV_START; 478define symbol __region_XSPI0_CS0_MIRROR_end__ = xSPI0_CS0_SPACE_MIRROR_PRV_START + xSPI0_CS0_SPACE_MIRROR_PRV_LENGTH - 1; 479define symbol __region_XSPI0_CS1_MIRROR_start__ = xSPI0_CS1_SPACE_MIRROR_PRV_START; 480define symbol __region_XSPI0_CS1_MIRROR_end__ = xSPI0_CS1_SPACE_MIRROR_PRV_START + xSPI0_CS1_SPACE_MIRROR_PRV_LENGTH - 1; 481define symbol __region_XSPI1_CS0_MIRROR_start__ = xSPI1_CS0_SPACE_MIRROR_PRV_START; 482define symbol __region_XSPI1_CS0_MIRROR_end__ = xSPI1_CS0_SPACE_MIRROR_PRV_START + xSPI1_CS0_SPACE_MIRROR_PRV_LENGTH - 1; 483define symbol __region_XSPI1_CS1_MIRROR_start__ = xSPI1_CS1_SPACE_MIRROR_PRV_START; 484define symbol __region_XSPI1_CS1_MIRROR_end__ = xSPI1_CS1_SPACE_MIRROR_PRV_START + xSPI1_CS1_SPACE_MIRROR_PRV_LENGTH - 1; 485define symbol __region_CS0_MIRROR_start__ = CS0_SPACE_MIRROR_PRV_START; 486define symbol __region_CS0_MIRROR_end__ = CS0_SPACE_MIRROR_PRV_START + CS0_SPACE_MIRROR_PRV_LENGTH - 1; 487define symbol __region_CS2_MIRROR_start__ = CS2_SPACE_MIRROR_PRV_START; 488define symbol __region_CS2_MIRROR_end__ = CS2_SPACE_MIRROR_PRV_START + CS2_SPACE_MIRROR_PRV_LENGTH - 1; 489define symbol __region_CS3_MIRROR_start__ = CS3_SPACE_MIRROR_PRV_START; 490define symbol __region_CS3_MIRROR_end__ = CS3_SPACE_MIRROR_PRV_START + CS3_SPACE_MIRROR_PRV_LENGTH - 1; 491define symbol __region_CS5_MIRROR_start__ = CS5_SPACE_MIRROR_PRV_START; 492define symbol __region_CS5_MIRROR_end__ = CS5_SPACE_MIRROR_PRV_START + CS5_SPACE_MIRROR_PRV_LENGTH - 1; 493define symbol __region_XSPI0_CS0_start__ = xSPI0_CS0_SPACE_PRV_START; 494define symbol __region_XSPI0_CS0_end__ = xSPI0_CS0_SPACE_PRV_START + xSPI0_CS0_SPACE_PRV_LENGTH - 1; 495define symbol __region_XSPI0_CS1_start__ = xSPI0_CS1_SPACE_PRV_START; 496define symbol __region_XSPI0_CS1_end__ = xSPI0_CS1_SPACE_PRV_START + xSPI0_CS1_SPACE_PRV_LENGTH - 1; 497define symbol __region_XSPI1_CS0_start__ = xSPI1_CS0_SPACE_PRV_START; 498define symbol __region_XSPI1_CS0_end__ = xSPI1_CS0_SPACE_PRV_START + xSPI1_CS0_SPACE_PRV_LENGTH - 1; 499define symbol __region_XSPI1_CS1_start__ = xSPI1_CS1_SPACE_PRV_START; 500define symbol __region_XSPI1_CS1_end__ = xSPI1_CS1_SPACE_PRV_START + xSPI1_CS1_SPACE_PRV_LENGTH - 1; 501define symbol __region_CS0_start__ = CS0_SPACE_PRV_START; 502define symbol __region_CS0_end__ = CS0_SPACE_PRV_START + CS0_SPACE_PRV_LENGTH - 1; 503define symbol __region_CS2_start__ = CS2_SPACE_PRV_START; 504define symbol __region_CS2_end__ = CS2_SPACE_PRV_START + CS2_SPACE_PRV_LENGTH - 1; 505define symbol __region_CS3_start__ = CS3_SPACE_PRV_START; 506define symbol __region_CS3_end__ = CS3_SPACE_PRV_START + CS3_SPACE_PRV_LENGTH - 1; 507define symbol __region_CS5_start__ = CS5_SPACE_PRV_START; 508define symbol __region_CS5_end__ = CS5_SPACE_PRV_START + CS5_SPACE_PRV_LENGTH - 1; 509 510/************** SPI boot mode setting **************/ 511define symbol __region_LDR_PARAM_start__ = FLASH_ADDRESS; 512define symbol __region_LDR_PARAM_end__ = FLASH_ADDRESS + 0x0000004B; 513define symbol __region_S_LOADER_STACK_start__ = FLASH_ADDRESS + 0x0000004C; 514define symbol __region_S_LOADER_STACK_end__ = FLASH_ADDRESS + 0x0000804B; 515 516define symbol __region_S_intvec_start__ = FLASH_ADDRESS + 0x20000; 517define symbol __region_S_intvec_end__ = FLASH_ADDRESS + 0x200FF; 518define symbol __region_S_RAM_start__ = FLASH_ADDRESS + 0x70000; 519define symbol __region_S_RAM_end__ = FLASH_ADDRESS + 0x7FFFF; 520/****************************************************/ 521 522define region D_LOADER_STACK_region = mem:[from __region_D_LOADER_STACK_start__ to __region_D_LOADER_STACK_end__]; 523 524define region LDR_PARAM_region = mem:[from __region_LDR_PARAM_start__ to __region_LDR_PARAM_end__]; 525define region S_LOADER_STACK_region = mem:[from __region_S_LOADER_STACK_start__ to __region_S_LOADER_STACK_end__]; 526 527define region S_intvec_region = mem:[from __region_S_intvec_start__ to __region_S_intvec_end__]; 528define region S_RAM_region = mem:[from __region_S_RAM_start__ to __region_S_RAM_end__]; 529 530define region DATA_NONCACHE_region = mem:[from __region_DATA_NONCACHE_start__ to __region_DATA_NONCACHE_end__]; 531define region DMAC_LINK_MODE_region = mem:[from __region_DMAC_LINK_MODE_start__ to __region_DMAC_LINK_MODE_end__]; 532define region SHARED_NONCACHE_BUFFER_region = mem:[from __region_SHARED_NONCACHE_BUFFER_start__ to __region_SHARED_NONCACHE_BUFFER_end__]; 533define region NONCACHE_BUFFER_region = mem:[from __region_NONCACHE_BUFFER_start__ to __region_NONCACHE_BUFFER_end__]; 534 535define region ATCM_region = mem:[from __region_ATCM_start__ to __region_ATCM_end__ ]; 536define region BTCM_region = mem:[from __region_BTCM_start__ to __region_BTCM_end__ ]; 537define region SYSTEM_RAM_region = mem:[from __region_SYSTEM_RAM_start__ to __region_SYSTEM_RAM_end__ ]; 538define region SYSTEM_RAM_MIRROR_region = mem:[from __region_SYSTEM_RAM_MIRROR_start__ to __region_SYSTEM_RAM_MIRROR_end__ ]; 539define region XSPI0_CS0_MIRROR_region = mem:[from __region_XSPI0_CS0_MIRROR_start__ to __region_XSPI0_CS0_MIRROR_end__ ]; 540define region XSPI0_CS1_MIRROR_region = mem:[from __region_XSPI0_CS1_MIRROR_start__ to __region_XSPI0_CS1_MIRROR_end__ ]; 541define region XSPI1_CS0_MIRROR_region = mem:[from __region_XSPI1_CS0_MIRROR_start__ to __region_XSPI1_CS0_MIRROR_end__ ]; 542define region XSPI1_CS1_MIRROR_region = mem:[from __region_XSPI1_CS1_MIRROR_start__ to __region_XSPI1_CS1_MIRROR_end__ ]; 543define region CS0_MIRROR_region = mem:[from __region_CS0_MIRROR_start__ to __region_CS0_MIRROR_end__ ]; 544define region CS2_MIRROR_region = mem:[from __region_CS2_MIRROR_start__ to __region_CS2_MIRROR_end__ ]; 545define region CS3_MIRROR_region = mem:[from __region_CS3_MIRROR_start__ to __region_CS3_MIRROR_end__ ]; 546define region CS5_MIRROR_region = mem:[from __region_CS5_MIRROR_start__ to __region_CS5_MIRROR_end__ ]; 547define region XSPI0_CS0_region = mem:[from __region_XSPI0_CS0_start__ to __region_XSPI0_CS0_end__ ]; 548define region XSPI0_CS1_region = mem:[from __region_XSPI0_CS1_start__ to __region_XSPI0_CS1_end__ ]; 549define region XSPI1_CS0_region = mem:[from __region_XSPI1_CS0_start__ to __region_XSPI1_CS0_end__ ]; 550define region XSPI1_CS1_region = mem:[from __region_XSPI1_CS1_start__ to __region_XSPI1_CS1_end__ ]; 551define region CS0_region = mem:[from __region_CS0_start__ to __region_CS0_end__ ]; 552define region CS2_region = mem:[from __region_CS2_start__ to __region_CS2_end__ ]; 553define region CS3_region = mem:[from __region_CS3_start__ to __region_CS3_end__ ]; 554define region CS5_region = mem:[from __region_CS5_start__ to __region_CS5_end__ ]; 555 556define block LDR_PRG_RBLOCK with fixed order 557 { ro code section .loader_text_init object startup_core.o, 558 ro code object startup_core.o, 559 ro code object system_core.o, 560 ro code object startup.o, 561 ro code object system.o, 562 ro code object bsp_clocks.o, 563 ro code object bsp_irq_core.o, 564 ro code object bsp_irq.o, 565 ro code object bsp_register_protection.o, 566 ro code object r_ioport.o, 567 ro code object bsp_cache.o, 568 ro code section .warm_start_init } 569 except { ro code section .intvec_init, 570 ro code section .reset_handler_init }; 571define block LDR_PRG_WBLOCK with fixed order 572 { rw code section .loader_text object startup_core.o, 573 rw code object startup_core.o, 574 rw code object system_core.o, 575 rw code object startup.o, 576 rw code object system.o, 577 rw code object bsp_clocks.o, 578 rw code object bsp_irq_core.o, 579 rw code object bsp_irq.o, 580 rw code object bsp_register_protection.o, 581 rw code object r_ioport.o, 582 rw code object bsp_cache.o, 583 rw code section .warm_start } 584 except { rw code section .intvec, 585 rw code section .reset_handler }; 586define block LDR_DATA_ZBLOCK with alignment = 4 587 { section .bss object startup_core.o, 588 section .bss object system_core.o, 589 section .bss object startup.o, 590 section .bss object system.o, 591 section .bss object bsp_clocks.o, 592 section .bss object bsp_irq_core.o, 593 section .bss object bsp_irq.o, 594 section .bss object bsp_register_protection.o, 595 section .bss object r_ioport.o, 596 section .bss object bsp_cache.o, 597 section .bss object bsp_io.o }; 598define block LDR_DATA_RBLOCK with fixed order, alignment = 4 599 { section .data_init object startup_core.o, 600 section .data_init object system_core.o, 601 section .data_init object startup.o, 602 section .data_init object system.o, 603 section .data_init object bsp_clocks.o, 604 section .data_init object bsp_irq_core.o, 605 section .data_init object bsp_irq.o, 606 section .data_init object bsp_register_protection.o, 607 section .data_init object r_ioport.o, 608 section .data_init object bsp_cache.o, 609 section .rodata_init object system_core.o }; 610define block LDR_DATA_WBLOCK with fixed order, alignment = 4 611 { section .data object startup_core.o, 612 section .data object system_core.o, 613 section .data object startup.o, 614 section .data object system.o, 615 section .data object bsp_clocks.o, 616 section .data object bsp_irq_core.o, 617 section .data object bsp_irq.o, 618 section .data object bsp_register_protection.o, 619 section .data object r_ioport.o, 620 section .data object bsp_cache.o, 621 section .rodata object system_core.o }; 622 623define block HEAP_BLOCK with alignment = 8 { rw section HEAP }; 624define block THREAD_STACK with alignment = 8 { rw section .stack* }; 625define block SYS_STACK with alignment = 8 { rw section .sys_stack }; 626define block SVC_STACK with alignment = 8 { rw section .svc_stack }; 627define block IRQ_STACK with alignment = 8 { rw section .irq_stack }; 628define block FIQ_STACK with alignment = 8 { rw section .fiq_stack }; 629define block UND_STACK with alignment = 8 { rw section .und_stack }; 630define block ABT_STACK with alignment = 8 { rw section .abt_stack }; 631 632define block VECTOR_RBLOCK with alignment = 32 { ro code section .intvec_init}; 633define block VECTOR_WBLOCK with alignment = 32 { rw code section .intvec}; 634define block USER_PRG_RBLOCK with alignment = 4 { ro code }; 635define block USER_PRG_WBLOCK with alignment = 4 { rw code }; 636define block USER_DATA_ZBLOCK with alignment = 4 { section .bss }; 637define block USER_DATA_RBLOCK with fixed order, alignment = 4 638 { section .data_init, 639 section __DLIB_PERTHREAD_init, 640 section .rodata_init, 641 section .version_init }; 642define block USER_DATA_WBLOCK with fixed order, alignment = 4 643 { section .data, 644 section __DLIB_PERTHREAD, 645 section .rodata, 646 section .version }; 647define block USER_DATA_NONCACHE_RBLOCK with alignment = 4 { section .data_noncache_init }; 648define block USER_DATA_NONCACHE_WBLOCK with alignment = 4 { section .data_noncache }; 649define block DMAC_LINK_MODE_ZBLOCK with alignment = 4 { section .dmac_link_mode* }; 650define block SHARED_NONCACHE_BUFFER_ZBLOCK with alignment = 32 { section .shared_noncache_buffer* }; 651define block NONCACHE_BUFFER_ZBLOCK with alignment = 32 { section .noncache_buffer* }; 652 653initialize manually { ro code object startup_core.o, 654 ro code object system_core.o, 655 ro code object startup.o, 656 ro code object system.o, 657 ro code object bsp_clocks.o, 658 ro code object bsp_irq_core.o, 659 ro code object bsp_irq.o, 660 ro code object bsp_register_protection.o, 661 ro code object r_ioport.o, 662 ro code object bsp_cache.o, 663 ro code section .intvec, 664 ro code section .reset_handler, 665 ro code section .warm_start, 666 ro code, 667 section .data, 668 section __DLIB_PERTHREAD, 669 section .rodata, 670 section .version, 671 section .data_noncache }; 672 673do not initialize { section .noinit, 674 section .bss, 675 section .dmac_link_mode*, 676 section .shared_noncache_buffer*, 677 section .noncache_buffer*, 678 rw section HEAP, 679 rw section .stack*, 680 rw section .sys_stack, 681 rw section .svc_stack, 682 rw section .irq_stack, 683 rw section .fiq_stack, 684 rw section .und_stack, 685 rw section .abt_stack }; 686 687place at address mem: __ICFEDIT_intvec_start__ { block VECTOR_WBLOCK }; 688 689place in LDR_PARAM_region { readonly section .loader_param }; 690place at start of S_LOADER_STACK_region { block LDR_PRG_RBLOCK }; 691place in S_LOADER_STACK_region { section LDR_DATA_RBLOCK, block LDR_DATA_RBLOCK }; 692place in S_intvec_region { block VECTOR_RBLOCK }; 693place in ROM_region { block USER_PRG_RBLOCK, readonly }; 694place in S_RAM_region { block USER_DATA_RBLOCK, block USER_DATA_NONCACHE_RBLOCK }; 695 696place at start of D_LOADER_STACK_region { block LDR_PRG_WBLOCK }; 697place in D_LOADER_STACK_region { section LDR_DATA_WBLOCK, block LDR_DATA_WBLOCK, 698 section LDR_DATA_ZBLOCK, block LDR_DATA_ZBLOCK }; 699place in D_LOADER_STACK_region { section SYS_STACK, block SYS_STACK, 700 section SVC_STACK, block SVC_STACK, 701 section IRQ_STACK, block IRQ_STACK, 702 section FIQ_STACK, block FIQ_STACK, 703 section UND_STACK, block UND_STACK, 704 section ABT_STACK, block ABT_STACK }; 705place in RAM_region { block USER_PRG_WBLOCK }; 706place in RAM_region { readwrite, last block CSTACK }; 707place in RAM_region { block USER_DATA_WBLOCK, 708 block USER_DATA_ZBLOCK }; 709place in RAM_region { section HEAP_BLOCK, block HEAP_BLOCK, 710 section THREAD_STACK, block THREAD_STACK }; 711 712place in DATA_NONCACHE_region { block USER_DATA_NONCACHE_WBLOCK }; 713place in DMAC_LINK_MODE_region { block DMAC_LINK_MODE_ZBLOCK }; 714place in SHARED_NONCACHE_BUFFER_region { block SHARED_NONCACHE_BUFFER_ZBLOCK }; 715place in NONCACHE_BUFFER_region { block NONCACHE_BUFFER_ZBLOCK }; 716place in ATCM_region { }; 717place in BTCM_region { }; 718place in SYSTEM_RAM_region { }; 719place in SYSTEM_RAM_MIRROR_region { }; 720place in XSPI0_CS0_MIRROR_region { }; 721place in XSPI0_CS1_MIRROR_region { }; 722place in XSPI1_CS0_MIRROR_region { }; 723place in XSPI1_CS1_MIRROR_region { }; 724place in CS0_MIRROR_region { }; 725place in CS2_MIRROR_region { }; 726place in CS3_MIRROR_region { }; 727place in CS5_MIRROR_region { }; 728place in XSPI0_CS0_region { }; 729place in XSPI0_CS1_region { }; 730place in XSPI1_CS0_region { }; 731place in XSPI1_CS1_region { }; 732place in CS0_region { }; 733place in CS2_region { }; 734place in CS3_region { }; 735place in CS5_region { }; 736