1 #ifndef CYGONCE_HAL_PLATFORM_SETUP_H
2 #define CYGONCE_HAL_PLATFORM_SETUP_H
4 //=============================================================================
6 // hal_platform_setup.h
8 // Platform specific support for HAL (assembly code)
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.
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.
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
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.
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.
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.
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 //===========================================================================
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
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
56 #ifdef CYG_HAL_STARTUP_ROMRAM
57 #define CYGSEM_HAL_ROM_RESET_USES_JUMP
60 #define SDRAM_FULL_PAGE_BIT 0x100
61 #define SDRAM_FULL_PAGE_MODE 0x37
62 #define SDRAM_BURST_MODE 0x33
64 #define CYGHWR_HAL_ROM_VADDR 0x0
66 #define DEBUG_UART_BASE UART3_BASE_ADDR
69 #define UNALIGNED_ACCESS_ENABLE
70 #define SET_T_BIT_DISABLE
71 #define BRANCH_PREDICTION_ENABLE
74 //#define TURN_OFF_IMPRECISE_ABORT
76 // This macro represents the initial startup code for the platform
77 // r11 is reserved to contain chip rev info in this file
78 .macro _platform_setup1
79 FSL_BOARD_SETUP_START:
82 * - invalidate I/D cache/TLB and drain write buffer;
83 * - invalidate L2 cache
85 * - branch predictions
87 #ifdef TURN_OFF_IMPRECISE_ABORT
94 mcr 15, 0, r0, c7, c7, 0 /* invalidate I cache and D cache */
95 mcr 15, 0, r0, c8, c7, 0 /* invalidate TLBs */
96 mcr 15, 0, r0, c7, c10, 4 /* Drain the write buffer */
98 /* Also setup the Peripheral Port Remap register inside the core */
99 ldr r0, ARM_PPMRR /* start from AIPS 2GB region */
100 mcr p15, 0, r0, c15, c2, 4
102 /*** L2 Cache setup/invalidation/disable ***/
103 /* Disable L2 cache first */
104 mov r0, #L2CC_BASE_ADDR
105 ldr r2, [r0, #L2_CACHE_CTL_REG]
107 str r2, [r0, #L2_CACHE_CTL_REG]
109 * Configure L2 Cache:
110 * - 128k size(16k way)
111 * - 8-way associativity
112 * - 0 ws TAG/VALID/DIRTY
115 ldr r1, [r0, #L2_CACHE_AUX_CTL_REG]
116 and r1, r1, #0xFE000000
117 ldr r2, L2CACHE_PARAM
119 str r1, [r0, #L2_CACHE_AUX_CTL_REG]
123 str r1, [r0, #L2_CACHE_INV_WAY_REG]
125 /* Poll Invalidate By Way register */
126 ldr r2, [r0, #L2_CACHE_INV_WAY_REG]
129 /*** End of L2 operations ***/
131 mov r0, #SDRAM_NON_FLASH_BOOT
132 ldr r1, AVIC_VECTOR0_ADDR_W
133 str r0, [r1] // for checking boot source from nand, nor or sdram
135 * End of ARM1136 init
146 mov r11, #CHIP_REV_2_0
147 ldr r0, IIM_SREV_REG_VAL
150 movne r11, #CHIP_REV_2_1
152 init_cs0_async_start:
155 /* If SDRAM has been setup, bypass clock/WEIM setup */
156 cmp pc, #SDRAM_BASE_ADDR
158 cmp pc, #(SDRAM_BASE_ADDR + SDRAM_SIZE)
159 blo HWInitialise_skip_SDRAM_setup
161 mov r0, #NOR_FLASH_BOOT
162 ldr r1, AVIC_VECTOR0_ADDR_W
168 /* Based on chip rev, setup params for SDRAM controller */
169 #if 0 // remove code for "old" chip that require for SDRAM full-page workaround
171 mov r4, #SDRAM_FULL_PAGE_MODE
172 cmp r11, #CHIP_REV_2_0
173 moveq r10, #SDRAM_FULL_PAGE_BIT
174 movgt r4, #SDRAM_BURST_MODE
178 mov r4, #SDRAM_BURST_MODE
182 /* Assuming DDR memory first */
184 /* Testing if it is truly DDR */
185 ldr r1, SDRAM_COMPARE_CONST1
186 mov r0, #SDRAM_BASE_ADDR
188 ldr r2, SDRAM_COMPARE_CONST2
192 beq HWInitialise_skip_SDRAM_setup
194 /* Reach here ONLY when SDR */
195 ldr r3, SDRAM_SDR_X32_W /* 32 bit memory */
196 add r3, r3, r10 /* adjust for full-page mode if necessary */
198 /* Test to make sure SDR */
199 ldr r1, SDRAM_COMPARE_CONST1
200 mov r0, #SDRAM_BASE_ADDR
202 ldr r2, SDRAM_COMPARE_CONST2
206 beq HWInitialise_skip_SDRAM_setup
208 ldr r3, SDRAM_SDR_X16_W /* 16 bit memory */
209 add r3, r3, r10 /* adjust for full-page mode if necessary */
211 /* Test to make sure SDR */
212 ldr r1, SDRAM_COMPARE_CONST1
213 mov r0, #SDRAM_BASE_ADDR
215 ldr r2, SDRAM_COMPARE_CONST2
219 beq HWInitialise_skip_SDRAM_setup
221 /* Reach hear means memory setup problem. Try to
222 * increase the HCLK divider */
223 ldr r0, CRM_MCU_BASE_ADDR_W
224 ldr r1, [r0, #CLKCTL_PDR0]
229 str r1, [r0, #CLKCTL_PDR0]
233 b loop_forever /* shouldn't get here */
235 HWInitialise_skip_SDRAM_setup:
238 add r2, r0, #0x800 // 2K window
240 blo Normal_Boot_Continue
242 bhi Normal_Boot_Continue
244 /* Copy image from flash to SDRAM first */
245 ldr r1, MXC_REDBOOT_ROM_START
247 1: ldmia r0!, {r3-r10}
253 and r0, pc, r1 /* offset of pc */
254 ldr r1, MXC_REDBOOT_ROM_START
262 mov r0, #NAND_FLASH_BOOT
263 ldr r1, AVIC_VECTOR0_ADDR_W
266 ldr r1, AVIC_VECTOR1_ADDR_W
269 mov r0, #NFC_BASE; //r0: nfc base. Reloaded after each page copying
270 mov r1, #0x800 //r1: starting flash addr to be copied. Updated constantly
271 add r2, r0, #0x200 //r2: end of 1st RAM buf. Doesn't change
272 add r12, r0, #0xE00 //r12: NFC register base. Doesn't change
273 ldr r14, MXC_REDBOOT_ROM_START
274 add r13, r14, #REDBOOT_IMAGE_SIZE //r13: end of SDRAM address for copying. Doesn't change
275 add r14, r14, r1 //r14: starting SDRAM address for copying. Updated constantly
277 //unlock internal buffer
282 // writew(FLASH_Read_Mode1, NAND_FLASH_CMD_REG);
284 strh r3, [r12, #NAND_FLASH_CMD_REG_OFF]
285 mov r3, #NAND_FLASH_CONFIG2_FCMD_EN;
286 strh r3, [r12, #NAND_FLASH_CONFIG2_REG_OFF]
289 // start_nfc_addr_ops(ADDRESS_INPUT_READ_PAGE, addr, nflash_dev_info->base_mask);
291 do_addr_input //1st addr cycle
293 do_addr_input //2nd addr cycle
295 do_addr_input //3rd addr cycle
297 // NFC_DATA_OUTPUT(buf, FDO_PAGE_SPARE_VAL);
298 // writew(NAND_FLASH_CONFIG1_INT_MSK | NAND_FLASH_CONFIG1_ECC_EN,
299 // NAND_FLASH_CONFIG1_REG);
300 mov r3, #(NAND_FLASH_CONFIG1_INT_MSK | NAND_FLASH_CONFIG1_ECC_EN)
301 strh r3, [r12, #NAND_FLASH_CONFIG1_REG_OFF]
303 // writew(buf_no, RAM_BUFFER_ADDRESS_REG);
305 strh r3, [r12, #RAM_BUFFER_ADDRESS_REG_OFF]
306 // writew(FDO_PAGE_SPARE_VAL & 0xFF, NAND_FLASH_CONFIG2_REG);
307 mov r3, #FDO_PAGE_SPARE_VAL
308 strh r3, [r12, #NAND_FLASH_CONFIG2_REG_OFF]
312 // check for bad block
313 mov r3, r1, lsl #(32-5-9)
314 cmp r3, #(512 << (32-5-9))
316 add r4, r0, #0x800 //r3 -> spare area buf 0
321 // really sucks. Bad block!!!!
324 // even suckier since we already read the first page!
325 sub r14, r14, #512 //rewind 1 page for the sdram pointer
326 sub r1, r1, #512 //rewind 1 page for the flash pointer
328 add r1, r1, #(32*512)
332 1: ldmia r0!, {r3-r10}
337 bge NAND_Copy_Main_done
344 Normal_Boot_Continue:
349 #ifdef CYG_HAL_STARTUP_ROMRAM /* enable running from RAM */
350 /* Copy image from flash to SDRAM first */
353 ldr r1, MXC_REDBOOT_ROM_START
355 beq HWInitialise_skip_SDRAM_copy
357 add r2, r0, #REDBOOT_IMAGE_SIZE
359 1: ldmia r0!, {r3-r10}
365 and r0, pc, r1 /* offset of pc */
366 ldr r1, =(SDRAM_BASE_ADDR + SDRAM_SIZE - 0x100000 + 0x8)
372 #endif /* CYG_HAL_STARTUP_ROMRAM */
374 HWInitialise_skip_SDRAM_copy:
376 #ifdef CYGPKG_HAL_ARM_MXC91331_CHIP
377 //FIXME! DDTS: TLSbo58944
380 #ifdef CYGPKG_HAL_ARM_MXC91321_CHIP
388 * IOMUX/PBC setup is done in C function plf_hardware_init() for simplicity
392 // Set up a stack [for calling C code]
393 ldr r1, =__startup_stack
394 ldr r2, =RAM_BANK0_BASE
402 mrc MMU_CP, 0, r1, MMU_Control, c0 // get c1 value to r1 first
403 orr r1, r1, #7 // enable MMU bit
404 orr r1, r1, #0x800 // enable z bit
405 mcr MMU_CP, 0, r1, MMU_Control, c0
406 mov pc,r2 /* Change address spaces */
412 // Save shadow copy of BCR, also hardware configuration
416 str r9, [r1] // Saved far above...
418 .endm // _platform_setup1
420 #else // defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
421 #define PLATFORM_SETUP1
424 /* Allow all 3 masters to have access to these shared peripherals */
426 ldr r0, SPBA_CTRL_BASE_ADDR_W
428 ldr r1, =0x7 /* allow all 3 masters access */
429 ldr r2, SPBA_LOCK_VAL
439 .endm /* init_spba */
441 /* AIPS setup - Only setup MPROTx registers. The PACR default values are good.*/
444 * Set all MPROTx to be non-bufferable, trusted for R/W,
445 * not forced to user-mode.
447 ldr r0, AIPS1_CTRL_BASE_ADDR_W
448 ldr r1, AIPS1_PARAM_W
451 ldr r0, AIPS2_CTRL_BASE_ADDR_W
456 * Clear the on and off peripheral modules Supervisor Protect bit
457 * for SDMA to access them. Did not change the AIPS control registers
458 * (offset 0x20) access type
460 ldr r0, AIPS1_CTRL_BASE_ADDR_W
467 and r1, r1, #0x00FFFFFF
470 ldr r0, AIPS2_CTRL_BASE_ADDR_W
477 and r1, r1, #0x00FFFFFF
479 .endm /* init_aips */
481 /* MAX (Multi-Layer AHB Crossbar Switch) setup */
483 ldr r0, MAX_BASE_ADDR_W
484 /* MPR - priority is M4 > M2 > M3 > M5 > M0 > M1 */
486 str r1, [r0, #0x000] /* for S0 */
487 str r1, [r0, #0x100] /* for S1 */
488 str r1, [r0, #0x200] /* for S2 */
489 str r1, [r0, #0x300] /* for S3 */
490 str r1, [r0, #0x400] /* for S4 */
491 /* SGPCR - always park on last master */
493 str r1, [r0, #0x010] /* for S0 */
494 str r1, [r0, #0x110] /* for S1 */
495 str r1, [r0, #0x210] /* for S2 */
496 str r1, [r0, #0x310] /* for S3 */
497 str r1, [r0, #0x410] /* for S4 */
498 /* MGPCR - restore default values */
500 str r1, [r0, #0x800] /* for M0 */
501 str r1, [r0, #0x900] /* for M1 */
502 str r1, [r0, #0xA00] /* for M2 */
503 str r1, [r0, #0xB00] /* for M3 */
504 str r1, [r0, #0xC00] /* for M4 */
505 str r1, [r0, #0xD00] /* for M5 */
510 /* RVAL/WVAL for L2 cache memory */
512 ldr r1, CLKCTL_BASE_ADDR_W
517 * - These are the targeted speed settings (may not be true for now).
518 * Note: the default USBPLL seems to be 286MHz instead of 288MHz?
520 Module Freq (MHz) Note
521 =========================================================================
522 ARM core 399 ipg_clk_arm
523 AHB 133 known as "hclk", ipg_clk_max
524 IP 66.5 ipg_clk (also used as ipg_per_clk ???)
527 ldr r0, CRM_MCU_BASE_ADDR_W
528 #ifdef CYGPKG_HAL_ARM_MXC91331_CHIP
529 ldr r1, CRM_MCR_0x18FF2902
530 str r1, [r0, #CLKCTL_MCR]
532 ldr r1, [r0, #CLKCTL_MCR]
536 #ifdef CYGPKG_HAL_ARM_MXC91321_CHIP
537 // enable MPLL, UPLL, TurboPLL
538 ldr r1, CRM_MCR_0x18FF2952
539 str r1, [r0, #CLKCTL_MCR]
541 ldr r1, [r0, #CLKCTL_MCR]
547 * J10 (CPU card) - CKO1=MCU_PLL div by 8
548 * J9 (CPU card) - CKO2=IPG_CLK_ARM div by 8
550 ldr r1, CRM_COSR_0x00036C58
551 str r1, [r0, #CLKCTL_COSR]
553 #if defined(CYGPKG_HAL_ARM_MXC91331_CHIP)
555 ldrb r2, [r1, #0x60] /* See if pass 1 silicon */
557 ldr r1, PDR0_399_100_50_W
558 // ldr r1, PDR0_399_133_66_W
559 ldreq r1, PDR0_399_66_66_W /* For pass 1, HCLK=66.5MHz*/
560 #elif defined(CYGPKG_HAL_ARM_MXC91321_CHIP)
561 #if 1 // for 133MHz HCLK
562 ldr r1, TPCTL_PARAM_532_W
563 str r1, [r0, #CLKCTL_TPCTL]
564 ldr r1, PDR0_399_133_66_W
566 ldr r1, TPCTL_PARAM_500_W
567 str r1, [r0, #CLKCTL_TPCTL]
568 // add some delay here
573 ldr r1, PDR0_399_100_50_W
576 str r1, [r0, #CLKCTL_PDR0]
577 ldr r1, MPCTL_PARAM_399_W
578 str r1, [r0, #CLKCTL_MPCTL]
580 /* Set to default values */
581 ldr r1, PDR1_0x2910AC56_W
582 str r1, [r0, #CLKCTL_PDR1]
583 /* Set UPLL=288MHz */
584 ldr r1, UPCTL_PARAM_288_W
585 str r1, [r0, #CLKCTL_UPCTL]
586 .endm /* init_clock */
590 /* Configure M3IF registers */
593 * M3IF Control Register (M3IFCTL)
594 * MRRP[0] = TMAX not on priority list (0 << 0) = 0x00000000
595 * MRRP[1] = SMIF not on priority list (0 << 0) = 0x00000000
596 * MRRP[2] = MAX0 not on priority list (0 << 0) = 0x00000000
597 * MRRP[3] = MAX1 not on priority list (0 << 0) = 0x00000000
598 * MRRP[4] = SDMA not on priority list (0 << 0) = 0x00000000
599 * MRRP[5] = MPEG4 not on priority list (0 << 0) = 0x00000000
600 * MRRP[6] = IPU on priority list (1 << 6) = 0x00000040
601 * MRRP[7] = SMIF-L2CC not on priority list (0 << 0) = 0x00000000
606 str r0, [r1] /* M3IF control reg */
607 .endm /* init_m3if */
609 /* CS0 sync mode setup */
612 * Sync mode (AHB Clk = 133MHz ; BCLK = 44.3MHz)
614 /* Flash reset command */
615 mov r0, #CS0_BASE_ADDR
633 /* Write flash config register */
636 /* Flash reset command */
640 ldr r0, WEIM_CTRL_CS0_W
647 .endm /* init_cs0_sync */
649 /* CS0 async mode setup */
650 .macro init_cs0_async
651 /* Async flash mode */
652 ldr r0, WEIM_CTRL_CS0_W
653 ldr r1, CS0_CSCRU_0x11414C80
655 ldr r1, CS0_CSCRL_0x30000D03
657 ldr r1, CS0_CSCRA_0x00310800
659 .endm /* init_cs0_async */
661 /* CPLD on CS4 setup */
663 ldr r0, =WEIM_CTRL_CS4
671 ldr r0, CS4_BASE_ADDR_W
677 ldr r0, =WEIM_CTRL_CS4
690 /* r4 = burst mode vs full-page mode */
691 .macro init_ddr_sdram
692 ldr r3, SDRAM_0x82216080 /* 16 bit memory */
693 ldr r0, ESDCTL_BASE_W
694 mov r2, #SDRAM_BASE_ADDR
695 ldr r1, SDRAM_0x0079E73A
697 mov r1, #0x2 // reset
702 // Hold for more than 200ns
708 add r1, r3, #0x10000000
714 add r1, r3, #0x20000000 // 0xA2216080
721 add r1, r3, #0x30000000 // 0xB2216080
725 add r12, r2, #0x01000000
733 /* r3 = value for ESDCTL0
734 * r4 = burst mode vs full-page mode */
735 .macro init_sdr_sdram
736 ldr r0, ESDCTL_BASE_W
737 mov r2, #SDRAM_BASE_ADDR
738 ldr r1, SDRAM_0x0075E73A
740 ldr r1, =0x2 // reset
745 // Hold for more than 200ns
751 ldr r1, SDRAM_0x92126080
755 add r12, r12, #0x00000400
757 ldr r1, SDRAM_0xA2126080
764 ldr r1, SDRAM_0xB2126180
776 .macro do_wait_op_done
777 #if defined(CYGPKG_HAL_ARM_MXC91331_CHIP)
784 ldrh r3, [r12, #NAND_FLASH_CONFIG2_REG_OFF]
785 ands r3, r3, #NAND_FLASH_CONFIG2_INT_DONE
788 strh r3, [r12, #NAND_FLASH_CONFIG2_REG_OFF]
789 .endm // do_wait_op_done
793 strh r3, [r12, #NAND_FLASH_ADD_REG_OFF]
794 mov r3, #NAND_FLASH_CONFIG2_FADD_EN
795 strh r3, [r12, #NAND_FLASH_CONFIG2_REG_OFF]
797 .endm // do_addr_input
799 /* To support 133MHz SDR */
800 .macro init_drive_strength
801 // max drive strength for all pads except SDQS0/1
803 ldr r0, IOMUXC_BASE_ADDR_W
805 //=========== set_drive_strenght_ctl_signals =======================
806 /* OE line sw_pad_ctl_dqm3_oe_b_cs0_b */
810 /* SDRAM DQMx lines sw_pad_ctl_dqm0_dqm1_dqm2 */
814 /* SDRAM SD16-SD31 data lines sw_pad_ctl_sd15_sd16_sd17 */
818 //============= set_drive_strength_ctl_data ========================
819 /* SDRAM SD0-SD15 data lines sw_pad_ctl_sd0_sd1_sd2 */
823 //============= set_drive_strength_ctl_addr ========================
824 /* SDRAM address lines sw_pad_ctl_a0_ma0_a1_ma1_a2_ma2 */
832 /* sw_pad_ctl_SDCLK */
836 /* for SDRAM SDQS lines sw_pad_ctl_DQS0 */
844 .endm /* init_drive_strength */
848 * Deal with DSP reset
854 beq skip_dsp_switch_le
855 bic r1, r1, #(1 << 5)
859 /* Put DSP in reset */
863 /* Hold for some time */
869 /* Put DSP out of reset */
873 #define PLATFORM_VECTORS _platform_vectors
874 .macro _platform_vectors
875 .globl _board_BCR, _board_CFG
876 _board_BCR: .long 0 // Board Control register shadow
877 _board_CFG: .long 0 // Board Configuration (read at RESET)
880 #define PLATFORM_PREAMBLE _switch_to_le
883 .word 0xEE110F10 // mrc 15, 0, r0, c1, c0, 0
884 .word 0xE3C00080 // bic r0, r0, #0x80
885 .word 0xEE010F10 // mcr 15, 0, r0, c1, c0, 0
887 .word 0x0F10EE11 // mrc 15, 0, r0, c1, c0, 0
888 .word 0x0080E3C0 // bic r0, r0, #0x80
889 .word 0x0F10EE01 // mcr 15, 0, r0, c1, c0, 0
901 #if 0 /// good for SDRAM since 32bit
902 .word 0xEE110F10 // mrc 15, 0, r0, c1, c0, 0
903 .word 0xE3C00080 // bic r0, r0, #0x80
904 .word 0xEE010F10 // mcr 15, 0, r0, c1, c0, 0
907 ARM_PPMRR: .word 0x40000015
908 L2CACHE_PARAM: .word 0x00030024
909 IIM_SREV_REG_VAL: .word IIM_BASE_ADDR + IIM_SREV_OFF
910 AIPS1_CTRL_BASE_ADDR_W: .word AIPS1_CTRL_BASE_ADDR
911 AIPS2_CTRL_BASE_ADDR_W: .word AIPS2_CTRL_BASE_ADDR
912 CS4_BASE_ADDR_W: .word CS4_BASE_ADDR
913 AIPS1_PARAM_W: .word 0x77777777
914 MAX_BASE_ADDR_W: .word MAX_BASE_ADDR
915 MAX_PARAM1: .word 0x00302154
916 RVAL_WVAL_W: .word 0x515
917 CLKCTL_BASE_ADDR_W: .word CLKCTL_BASE_ADDR
918 CRM_MCR_0x18FF2902: .word 0x18FF2902
919 CRM_MCR_0x18FF2952: .word 0x18FF2952
920 CRM_COSR_0x00036C58: .word 0x00036C58
921 PDR0_399_100_50_W: .word PDR0_399_100_50
922 PDR0_399_133_66_W: .word PDR0_399_133_66
923 PDR0_399_66_66_W: .word PDR0_399_66_66
924 PDR1_0x2910AC56_W: .word 0x2910AC56
925 MPCTL_PARAM_399_W: .word MPCTL_PARAM_399
926 UPCTL_PARAM_288_W: .word UPCTL_PARAM_288
927 TPCTL_PARAM_500_W: .word TPCTL_PARAM_500
928 TPCTL_PARAM_532_W: .word TPCTL_PARAM_532
929 SPBA_CTRL_BASE_ADDR_W: .word SPBA_CTRL_BASE_ADDR
930 SPBA_LOCK_VAL: .word 0xC0010007
931 ESDCTL_BASE_W: .word ESDCTL_BASE
932 M3IF_BASE_W: .word M3IF_BASE
933 SDRAM_DDR_X32_W: .word 0x82226080
934 SDRAM_0x82216080: .word 0x82216080
935 SDRAM_SDR_X32_W: .word 0x82126080
936 SDRAM_SDR_X16_W: .word 0x82116080
937 SDRAM_0x92126080: .word 0x92126080
938 SDRAM_0xA2126080: .word 0xA2126080
939 SDRAM_0xB2126180: .word 0xB2126180
940 SDRAM_0x0075E73A: .word 0x0075E73A
941 SDRAM_0x0079E73A: .word 0x0079E73A
942 SDRAM_0x92100000: .word 0x92100000
943 SDRAM_0xA2100000: .word 0xA2100000
944 SDRAM_0xB2100000: .word 0xB2100000
945 SDRAM_0x12344321: .word 0x12344321
946 SDRAM_COMPARE_CONST1: .word 0x55555555
947 SDRAM_COMPARE_CONST2: .word 0xAAAAAAAA
948 WEIM_CTRL_CS0_W: .word WEIM_CTRL_CS0
949 CS0_CSCRU_0x11414C80: .word 0x11414C80
950 CS0_CSCRL_0x30000D03: .word 0x30000D03
951 CS0_CSCRA_0x00310800: .word 0x00310800
952 IOMUXC_BASE_ADDR_W: .word IOMUXC_BASE_ADDR
953 CRM_MCU_BASE_ADDR_W: .word CRM_MCU_BASE_ADDR
954 MXC_REDBOOT_ROM_START: .word SDRAM_BASE_ADDR + SDRAM_SIZE - 0x100000
955 CONST_0x0FFF: .word 0x0FFF
956 AVIC_VECTOR0_ADDR_W: .word MXCBOOT_FLAG_REG
957 AVIC_VECTOR1_ADDR_W: .word MXCFIS_FLAG_REG
959 /*---------------------------------------------------------------------------*/
960 /* end of hal_platform_setup.h */
961 #endif /* CYGONCE_HAL_PLATFORM_SETUP_H */