]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - packages/hal/arm/mx21/ads/v2_0/include/hal_platform_setup.h
Initial revision
[karo-tx-redboot.git] / packages / hal / arm / mx21 / ads / v2_0 / include / hal_platform_setup.h
1 #ifndef CYGONCE_HAL_PLATFORM_SETUP_H
2 #define CYGONCE_HAL_PLATFORM_SETUP_H
3
4 //=============================================================================
5 //
6 //      hal_platform_setup.h
7 //
8 //      Platform specific support for HAL (assembly code)
9 //
10 //=============================================================================
11 //####ECOSGPLCOPYRIGHTBEGIN####
12 // -------------------------------------------
13 // This file is part of eCos, the Embedded Configurable Operating System.
14 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
15 //
16 // eCos is free software; you can redistribute it and/or modify it under
17 // the terms of the GNU General Public License as published by the Free
18 // Software Foundation; either version 2 or (at your option) any later version.
19 //
20 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY
21 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
22 // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
23 // for more details.
24 //
25 // You should have received a copy of the GNU General Public License along
26 // with eCos; if not, write to the Free Software Foundation, Inc.,
27 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
28 //
29 // As a special exception, if other files instantiate templates or use macros
30 // or inline functions from this file, or you compile this file and link it
31 // with other works to produce a work based on this file, this file does not
32 // by itself cause the resulting work to be covered by the GNU General Public
33 // License. However the source code for this file must still be made available
34 // in accordance with section (3) of the GNU General Public License.
35 //
36 // This exception does not invalidate any other reasons why a work based on
37 // this file might be covered by the GNU General Public License.
38 //
39 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
40 // at http://sources.redhat.com/ecos/ecos-license/
41 // -------------------------------------------
42 //####ECOSGPLCOPYRIGHTEND####
43 //===========================================================================
44
45 #include <pkgconf/system.h>             // System-wide configuration info
46 #include CYGBLD_HAL_VARIANT_H           // Variant specific configuration
47 #include CYGBLD_HAL_PLATFORM_H          // Platform specific configuration
48 #include <cyg/hal/hal_soc.h>            // Variant specific hardware definitions
49 #include <cyg/hal/hal_mmu.h>            // MMU definitions
50 #include <cyg/hal/fsl_board.h>          // Platform specific hardware definitions
51
52 #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
53 #define PLATFORM_SETUP1 _platform_setup1
54 #define CYGHWR_HAL_ARM_HAS_MMU
55
56 #ifdef CYG_HAL_STARTUP_ROMRAM
57 #define CYGSEM_HAL_ROM_RESET_USES_JUMP
58 #endif
59
60 #define CYGHWR_HAL_ROM_VADDR 0x0
61
62 // This macro represents the initial startup code for the platform
63 // r11 is reserved to contain chip rev info in this file
64     .macro  _platform_setup1
65 FSL_BOARD_SETUP_START:
66 /*
67  * invalidate I/D cache/TLB and drain write buffer
68  */
69     mov r0, #0
70     mcr 15, 0, r0, c7, c7, 0    /* invalidate I cache and D cache */
71     mcr 15, 0, r0, c8, c7, 0    /* invalidate TLBs */
72     mcr 15, 0, r0, c7, c10, 4    /* Drain the write buffer */
73 Find_silicon_id:
74     ldr r0, MX21_SI_ID_REG_W
75     mov r11, #CHIP_REV_unknown
76     ldr r1, [r0]
77     ldr r2, MX21_SILICONID_Rev2_x_W
78     cmp r1, r2
79     moveq r11, #CHIP_REV_2_x
80     ldr r2, =MX21_SILICONID_Rev3_0_W
81     cmp r1, r2
82     moveq r11, #CHIP_REV_3_0
83     ldr r2, =MX21_SILICONID_Rev3_1_W
84     cmp r1, r2
85     moveq r11, #CHIP_REV_3_1
86
87 /*
88  * Step2: setup AIPI1 and AIPI2
89  */
90     ldr r0, MX21_AIPI1_BASE_W
91     /*
92      * Note: set I2C to be 32bit access because current I2C driver
93      * is written that way
94      */
95     mov r1, #0x00000304
96     str r1, [r0]  /* PSR0 */
97     mov r2, #0xFFFFFCFB
98     str r2, [r0, #4]  /* PSR1 */
99
100     ldr r0, MX21_AIPI2_BASE_W
101     mov r1, #0x3F000000
102     add r1, r1, #0x00FC0000
103     str r1, [r0]  /* PSR0 */
104     mov r2, #0xFFFFFFFF
105     str r2, [r0, #4]  /* PSR1 */
106
107     mov r0, #SDRAM_NON_FLASH_BOOT
108     ldr r1, AVIC_VECTOR0_ADDR_W
109     str r0, [r1] // for checking boot source from nand, nor or sdram
110
111 /*
112  * Step3: setup System Controls
113  */
114     /* PCSR - priority control and select */
115     ldr r0, MX21_CRM_SysCtrl_BASE_W
116     mov r1, #0x03
117     str r1, [r0, #CRM_SysCtrl_PCSR_Offset]
118     mov r1, #0xFFFFFFC9
119     str r1, [r0, #0x14]
120
121 init_max_start:
122     setup_max           //setup MAX for other versions of chips
123
124 init_clock_start:
125     setup_clock
126
127     mov r0, pc
128     cmp r0, #(CS0_BASE_ADDR)
129     /* if we are in SDRAM, it must have been setup - skip the SDRAM setup */
130     blo HWInitialise_skip_SDRAM_setup
131
132     /* Now we must boot from Flash */
133
134     mov r0, #NOR_FLASH_BOOT
135     ldr r1, AVIC_VECTOR0_ADDR_W
136     str r0, [r1]
137
138 /*
139  * Step 6: SDRAM setup
140  */
141     mov r1, #ESDCTL_BASE
142     ldr r2, SDRAM_0x92120300
143     str r2, [r1]         /* set precharge command */
144     ldr r3, SDRAM_0xC0200000
145     ldr r2, [r3]        /* issue precharge all command */
146
147     /* set AutoRefresh command */
148     ldr r2, SDRAM_0xA2120300
149     str r2, [r1]
150
151     /* Issue AutoRefresh command */
152     mov r3, #(CSD0_BASE_ADDR)
153     ldr r2, [r3]
154     ldr r2, [r3]
155     ldr r2, [r3]
156     ldr r2, [r3]
157     ldr r2, [r3]
158     ldr r2, [r3]
159     ldr r2, [r3]
160     ldr r2, [r3]
161
162     /* set Mode Register  */
163     ldr r2, SDRAM_0xB2120300
164     str r2, [r1]
165
166     /* Issue Mode Register command. Burst Length=8 */
167     ldr r3, SDRAM_0xC0119800
168     ldr r2, [r3]
169
170     /* set to Normal Mode */
171 /*
172     ldr    r2, =(0x8212C304)
173 */
174
175     ldr r2, SDRAM_0x8212C300
176
177     str r2, [r1]
178     /* end of CSD0 config */
179 /*
180  * End of SDRAM setup
181  */
182
183 HWInitialise_skip_SDRAM_setup:
184
185     ldr r0, NFC_BASE_W
186     add r2, r0, #0x800      // 2K window
187     cmp pc, r0
188     blo Normal_Boot_Continue
189     cmp pc, r2
190     bhi Normal_Boot_Continue
191 NAND_Boot_Start:
192     /* Copy image from flash to SDRAM first */
193     ldr r1, MXC_REDBOOT_ROM_START
194
195 1:  ldmia r0!, {r3-r10}
196     stmia r1!, {r3-r10}
197     cmp r0, r2
198     blo 1b
199
200     /* Jump to SDRAM */
201     ldr r1, CONST_0xFFF
202     and r0, pc, r1     /* offset of pc */
203     ldr r1, MXC_REDBOOT_ROM_START
204     add r1, r1, #0x10
205     add pc, r0, r1
206     nop
207     nop
208     nop
209     nop
210
211     mov r0, #NAND_FLASH_BOOT
212     ldr r1, AVIC_VECTOR0_ADDR_W
213     str r0, [r1]
214     mov r0, #MXCFIS_NAND
215     ldr r1, AVIC_VECTOR1_ADDR_W
216     str r0, [r1]
217 NAND_Copy_Main:
218     ldr r0, NFC_BASE_W   //r0: nfc base. Reloaded after each page copying
219     mov r1, #0x800       //r1: starting flash addr to be copied. Updated constantly
220     add r2, r0, #0x200   //r2: end of 1st RAM buf. Doesn't change
221     add r12, r0, #0xE00  //r12: NFC register base. Doesn't change
222     ldr r14, MXC_REDBOOT_ROM_START
223     add r13, r14, #REDBOOT_IMAGE_SIZE //r13: end of SDRAM address for copying. Doesn't change
224     add r14, r14, r1     //r14: starting SDRAM address for copying. Updated constantly
225
226     //unlock internal buffer
227     mov r3, #0x2
228     strh r3, [r12, #0xA]
229
230 Nfc_Read_Page:
231 //  writew(FLASH_Read_Mode1, NAND_FLASH_CMD_REG);
232     mov r3, #0x0;
233     strh r3, [r12, #NAND_FLASH_CMD_REG_OFF]
234     mov r3, #NAND_FLASH_CONFIG2_FCMD_EN;
235     strh r3, [r12, #NAND_FLASH_CONFIG2_REG_OFF]
236     do_wait_op_done
237
238 //    start_nfc_addr_ops(ADDRESS_INPUT_READ_PAGE, addr, nflash_dev_info->base_mask);
239     mov r3, r1
240     do_addr_input       //1st addr cycle
241     mov r3, r1, lsr #9
242     do_addr_input       //2nd addr cycle
243     mov r3, r1, lsr #17
244     do_addr_input       //3rd addr cycle
245     mov r3, r1, lsr #25
246     do_addr_input       //4th addr cycle
247
248 //    NFC_DATA_OUTPUT(buf, FDO_PAGE_SPARE_VAL);
249 //        writew(NAND_FLASH_CONFIG1_ECC_EN, NAND_FLASH_CONFIG1_REG);
250 //    mov r3, #(NAND_FLASH_CONFIG1_INT_MSK | NAND_FLASH_CONFIG1_ECC_EN)
251     mov r3, #(NAND_FLASH_CONFIG1_ECC_EN)
252     strh r3, [r12, #NAND_FLASH_CONFIG1_REG_OFF]
253
254 //        writew(buf_no, RAM_BUFFER_ADDRESS_REG);
255     mov r3, #0
256     strh r3, [r12, #RAM_BUFFER_ADDRESS_REG_OFF]
257 //        writew(FDO_PAGE_SPARE_VAL & 0xFF, NAND_FLASH_CONFIG2_REG);
258     mov r3, #FDO_PAGE_SPARE_VAL
259     strh r3, [r12, #NAND_FLASH_CONFIG2_REG_OFF]
260 //        wait_op_done();
261     do_wait_op_done
262
263     // check for bad block
264     mov r3, r1, lsl #(32-5-9)
265     cmp r3, #(512 << (32-5-9))
266     bhi Copy_Good_Blk
267     add r4, r0, #0x800  //r3 -> spare area buf 0
268     ldrh r4, [r4, #0x4]
269     and r4, r4, #0xFF00
270     cmp r4, #0xFF00
271     beq Copy_Good_Blk
272     // really sucks. Bad block!!!!
273     cmp r3, #0x0
274     beq Skip_bad_block
275     // even suckier since we already read the first page!
276     sub r14, r14, #512  //rewind 1 page for the sdram pointer
277     sub r1, r1, #512    //rewind 1 page for the flash pointer
278 Skip_bad_block:
279     add r1, r1, #(32*512)
280     b Nfc_Read_Page
281 Copy_Good_Blk:
282     //copying page
283 1:  ldmia r0!, {r3-r10}
284     stmia r14!, {r3-r10}
285     cmp r0, r2
286     blo 1b
287     cmp r14, r13
288     bge NAND_Copy_Main_done
289     add r1, r1, #0x200
290     ldr r0, NFC_BASE_W
291     b Nfc_Read_Page
292
293 NAND_Copy_Main_done:
294
295 Normal_Boot_Continue:
296
297 #ifdef CYG_HAL_STARTUP_ROMRAM     /* enable running from RAM */
298     /* Copy image from flash to SDRAM first */
299     ldr r0, =0xFFFFF000
300     and r0, r0, pc
301     ldr r1, MXC_REDBOOT_ROM_START
302     cmp r0, r1
303     beq HWInitialise_skip_SDRAM_copy
304
305     add r2, r0, #REDBOOT_IMAGE_SIZE
306
307 1:  ldmia r0!, {r3-r10}
308     stmia r1!, {r3-r10}
309     cmp r0, r2
310     ble 1b
311     /* Jump to SDRAM */
312     ldr r1, =0xFFFF
313     and r0, pc, r1         /* offset of pc */
314     ldr r1, =(SDRAM_BASE_ADDR + SDRAM_SIZE - 0x100000 + 0x8)
315     add pc, r0, r1
316     nop
317     nop
318     nop
319     nop
320 #endif /* CYG_HAL_STARTUP_ROMRAM */
321
322 HWInitialise_skip_SDRAM_copy:
323
324 CS0_Setup: /* for burst flash */
325     ldr r1, =(MX21_EIM_BASE)
326     ldr r2, =(0x00000800)     /* 8 wait states */
327     str r2, [r1]              /* CS0 UPCTRL */
328     ldr r2, =(0x00000E01)     /* 32bit data port size */
329     str r2, [r1, #4]           /* CS0 LOCTRL */
330
331 CS1_Setup: /* ADS board expanded IOs */
332     /* CS1 is setup as 16bit port on D[15:0]. May need to configure the rest later */
333     ldr r1, =(MX21_EIM_BASE)
334     ldr r2, =0x2000
335     str r2, [r1, #MX21_CS1_UPCTRL]
336     ldr r2, =0x11118501
337     str r2, [r1, #MX21_CS1_LOCTRL]
338
339 NAND_ClockSetup:
340     ldr r1, =(MX21_CRM_BASE)
341     ldr r2, [r1, #MX21_CRM_PCDR0]
342     and r2, r2, #0xFFFF0FFF
343     orr r2, r2, #0x7000
344     str r2, [r1, #MX21_CRM_PCDR0]
345
346 /* end of NAND clock divider setup */
347
348     // Set up a stack [for calling C code]
349     ldr r1, =__startup_stack
350     ldr r2, =RAM_BANK0_BASE
351     orr sp, r1, r2
352
353     // Create MMU tables
354     bl hal_mmu_init
355
356     // Enable MMU
357     ldr r2, =10f
358     mrc    MMU_CP, 0, r1, MMU_Control, c0      // get c1 value to r1 first
359     orr r1, r1, #7                          // enable MMU bit
360     mcr    MMU_CP, 0, r1, MMU_Control, c0
361     mov    pc,r2    /* Change address spaces */
362     nop
363     nop
364     nop
365 10:
366
367     // Save shadow copy of BCR, also hardware configuration
368     ldr r1, =_board_BCR
369     str r2,[r1]
370     ldr r1, =_board_CFG
371     str r9,[r1]                // Saved far above...
372
373     .endm                       // _platform_setup1
374
375 #else // defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
376 #define PLATFORM_SETUP1
377 #endif
378
379     /* Setup the clocks. After this setup, the clock values are:
380      *               TO2(MHz)
381      *   FCLK        266(~270)
382      *   HCLK        133
383      *   PerClk1     44.3
384      *   PerClk2     33.25
385      *   NFCClk      66.5
386      */
387     .macro setup_clock
388         ldr r0, MX21_CRM_BASE_W
389
390         /* Configure MPCTL0 */
391         ldr r1, MX21_CRM_MPCTL0_W
392 //        ldr r1, =0x83FF29B9
393         str r1, [r0, #MX21_CRM_MPCTL0]
394
395         /* Configure MPCTL1 */
396         ldr r1, =0x00000040
397         str r1, [r0, #MX21_CRM_MPCTL1]
398
399         /* Configure SPCTL0 */
400         ldr r1, MX21_CRM_SPCTL0_W
401         str r1, [r0, #MX21_CRM_SPCTL0]
402
403         /* issue SPLL restart and MPLL restart */
404         ldr r1, [r0, #MX21_CRM_CSCR]
405         orr r1, r1, #0x00600000
406         str r1, [r0, #MX21_CRM_CSCR]
407     SPLL_Not_Locked:
408         ldr r1, [r0, #MX21_CRM_SPCTL1]
409         ands r1, r1, #0x00008000
410         beq SPLL_Not_Locked
411     MPLL_Not_Locked:
412         ldr r1, [r0, #MX21_CRM_MPCTL1]
413         ands r1, r1, #0x00008000
414         beq MPLL_Not_Locked      /* reach here means MPLL is locked okay */
415
416         // add some delay here
417         mov r1, #0x100
418     1:  subs r1, r1, #0x1
419         bne 1b
420
421         /*BLKDIV =1 for 266Mhz FCLK and HCLK = 133MHz, change the PRESC to 0 for this, else its 1 for 133MHZ FCLK */
422         ldr r2, MX21_CRM_CSCR_W
423         str r2, [r0, #MX21_CRM_CSCR]
424
425         /* Configure PCDR */
426         /* Configure PCDR0 for TO2 and TO3*/
427         ldr r1, MX21_CRM_PCDR0_W    /*  set SSI2DIV=0x29, SSI1DIV=0x19 NFCDIV=7, FIRIDIV = 7 */
428         str r1, [r0, #MX21_CRM_PCDR0]
429
430         /* Configure PCDR1 */
431         ldr r1, MX21_CRM_PCDR1_W
432         str r1, [r0, #MX21_CRM_PCDR1]
433
434         /*
435          * Configure PCCR0 and PCCR1
436          * Only enable peripheral clocks for: SAHARA, BROM, USBOTG, NFC, GPIO,
437          * UART1,2,3%4 and timer1&2, WDOG
438          */
439         ldr r1, MX21_CRM_PCCR0_W
440         str r1, [r0, #MX21_CRM_PCCR0]
441         ldr r1, =0x07000000
442         str r1, [r0, #MX21_CRM_PCCR1]
443         // make default CLKO to be FCLK
444         ldr r1, [r0, #MX21_CRM_CCSR]
445         and r1, r1, #0xFFFFFFE0
446         orr r1, r1, #0x7
447         str r1, [r0, #MX21_CRM_CCSR]
448     .endm //setup_clock
449
450     .macro setup_max
451         ldr r0, MX21_MAX_BASE_W
452         add r1, r0, #MAX_Port1_OFFSET
453         add r2, r0, #MAX_Port2_OFFSET
454         add r3, r0, #MAX_Port3_OFFSET
455         add r4, r0, #MAX_Port4_OFFSET
456         add r5, r0, #MAX_Port5_OFFSET
457         add r0, r0, #MAX_Port0_OFFSET
458
459         /* MPR and AMPR */
460         ldr r6, MX21_MAX_0x00123045         /* Priority LCD>EMMA>DMA>USB>DAHB>IAHB */
461         str r6, [r0, #MAX_Slave_MPR_Offset]   /* same for all slave ports */
462         str r6, [r0, #MAX_Slave_AMPR_Offset]
463         str r6, [r1, #MAX_Slave_MPR_Offset]
464         str r6, [r1, #MAX_Slave_AMPR_Offset]
465         str r6, [r2, #MAX_Slave_MPR_Offset]
466         str r6, [r2, #MAX_Slave_AMPR_Offset]
467         str r6, [r3, #MAX_Slave_MPR_Offset]
468         str r6, [r3, #MAX_Slave_AMPR_Offset]
469         /* ASGPCR */
470         /*
471          HPE bits removed in TO2, ARB added.
472          ARB - Arbitration mode (0 - fixed priority,
473                                  01 - round robin priority)
474          */
475         ldr r6, =0x00000001             /* HLP=0, ARB=0, park ARM */
476         str r6, [r0, #MAX_Slave_ASGPCR_Offset] /* for slave port 0 */
477         ldr r6, =0x00000001             /* HLP=0, ARB=0, park ARM */
478         str r6, [r1, #MAX_Slave_ASGPCR_Offset] /* for slave port 1 */
479         ldr r6, =0x00000004             /* HLP=0, ARB=0, part LCD */
480         str r6, [r2, #MAX_Slave_ASGPCR_Offset] /* for slave port 2 */
481         ldr r6, =0x00000005             /* HLP=0, ARB=0, park EMMA */
482         str r6, [r3, #MAX_Slave_ASGPCR_Offset] /* for slave port 3 */
483
484         /* SGPCR - this has to be the last since RO bit is set here */
485         ldr r6, =0x00000001             /* HLP=0, ARB=0, park ARM */
486         str r6, [r0, #MAX_Slave_SGPCR_Offset] /* for slave port 0 */
487         ldr r6, =0x00000001             /* HLP=0, ARB=0, park ARM */
488         str r6, [r1, #MAX_Slave_SGPCR_Offset] /* for slave port 1 */
489         ldr r6, =0x00000004             /* HLP=0, ARB=0, part LCD */
490         str r6, [r2, #MAX_Slave_SGPCR_Offset] /* for slave port 2 */
491         ldr r6, =0x00000005             /* HLP=0, ARB=0, park EMMA */
492         str r6, [r3, #MAX_Slave_SGPCR_Offset] /* for slave port 3 */
493         /* MGPCR */
494         mov r6, #0x0    /* leave as default */
495         str r6, [r0, #MAX_Master_MGPCR_Offset]
496         str r6, [r1, #MAX_Master_MGPCR_Offset]
497         str r6, [r2, #MAX_Master_MGPCR_Offset]
498         str r6, [r3, #MAX_Master_MGPCR_Offset]
499         str r6, [r4, #MAX_Master_MGPCR_Offset]
500         str r6, [r5, #MAX_Master_MGPCR_Offset]
501     .endm //setup_max
502
503
504     .macro do_wait_op_done
505     1:
506         ldrh r3, [r12, #NAND_FLASH_CONFIG2_REG_OFF]
507         ands r3, r3, #NAND_FLASH_CONFIG2_INT_DONE
508         beq 1b
509         mov r3, #0x0
510         strh r3, [r12, #NAND_FLASH_CONFIG2_REG_OFF]
511     .endm   // do_wait_op_done
512
513     .macro do_addr_input
514         and r3, r3, #0xFF
515         strh r3, [r12, #NAND_FLASH_ADD_REG_OFF]
516         mov r3, #NAND_FLASH_CONFIG2_FADD_EN
517         strh r3, [r12, #NAND_FLASH_CONFIG2_REG_OFF]
518         do_wait_op_done
519     .endm   // do_addr_input
520
521 #define PLATFORM_VECTORS         _platform_vectors
522     .macro  _platform_vectors
523         .globl  _board_BCR, _board_CFG
524 _board_BCR:   .long   0       // Board Control register shadow
525 _board_CFG:   .long   0       // Board Configuration (read at RESET)
526     .endm
527
528 MXC_REDBOOT_ROM_START:      .word   SDRAM_BASE_ADDR + SDRAM_SIZE - 0x100000
529 CONST_0xFFF:                .word   0xFFF
530 AVIC_VECTOR0_ADDR_W:        .word   MXCBOOT_FLAG_REG
531 AVIC_VECTOR1_ADDR_W:        .word   MXCFIS_FLAG_REG
532 MX21_SI_ID_REG_W:           .word   MX21_SI_ID_REG
533 MX21_SILICONID_Rev2_x_W:    .word   MX21_SILICONID_Rev2_x
534 MX21_SILICONID_Rev3_0_W:    .word   MX21_SILICONID_Rev3_0
535 MX21_SILICONID_Rev3_1_W:    .word   MX21_SILICONID_Rev3_1
536 MX21_AIPI1_BASE_W:          .word   MX21_AIPI1_BASE
537 MX21_AIPI2_BASE_W:          .word   MX21_AIPI2_BASE
538 MX21_CRM_SysCtrl_BASE_W:    .word   MX21_CRM_SysCtrl_BASE
539 MX21_MAX_BASE_W:            .word   MX21_MAX_BASE
540 MX21_MAX_0x00123045:        .word   0x00123045
541 MX21_CRM_BASE_W:            .word   MX21_CRM_BASE
542 MX21_CRM_MPCTL0_W:          .word   CRM_MPCTL0_PD+CRM_MPCTL0_MFI+CRM_MPCTL0_MFD+CRM_MPCTL0_MFN
543 MX21_CRM_SPCTL0_W:          .word   CRM_SPCTL0_PD+CRM_SPCTL0_MFI+CRM_SPCTL0_MFD+CRM_SPCTL0_MFN
544 MX21_CRM_CSCR_W:            .word   0x17000607
545 MX21_CRM_PCDR0_W:           .word   0x64197007
546 MX21_CRM_PCDR1_W:           .word   0x02070705
547 MX21_CRM_PCCR0_W:           .word   0x3108480F
548 NFC_BASE_W:                 .word   NFC_BASE
549 SDRAM_0x92120300:           .word   0x92120300
550 SDRAM_0xC0200000:           .word   0xC0200000
551 SDRAM_0xA2120300:           .word   0xA2120300
552 SDRAM_0xB2120300:           .word   0xB2120300
553 SDRAM_0xC0119800:           .word   0xC0119800
554 SDRAM_0x8212C300:           .word   0x8212C300
555
556 /*---------------------------------------------------------------------------*/
557 /* end of hal_platform_setup.h                                               */
558 #endif /* CYGONCE_HAL_PLATFORM_SETUP_H */