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 NFC_2K_BI_SWAP
62 //#define SDRAM_FULL_PAGE_BIT 0x100
63 //#define SDRAM_FULL_PAGE_MODE 0x37
64 //#define SDRAM_BURST_MODE 0x33
66 #define CYGHWR_HAL_ROM_VADDR 0x0
69 #define UNALIGNED_ACCESS_ENABLE
70 #define SET_T_BIT_DISABLE
71 #define LOW_INT_LATENCY_ENABLE
72 #define BRANCH_PREDICTION_ENABLE
75 #define UNALIGNED_ACCESS_ENABLE
76 #define LOW_INT_LATENCY_ENABLE
77 #define BRANCH_PREDICTION_ENABLE
79 //#define TURN_OFF_IMPRECISE_ABORT
81 // This macro represents the initial startup code for the platform
82 // r11 is reserved to contain chip rev info in this file
83 .macro _platform_setup1
84 FSL_BOARD_SETUP_START:
87 * - invalidate I/D cache/TLB and drain write buffer;
88 * - invalidate L2 cache
90 * - branch predictions
92 #ifdef TURN_OFF_IMPRECISE_ABORT
98 mrc 15, 0, r1, c1, c0, 0
99 bic r1, r1, #(0x3<<21)
100 bic r1, r1, #(0x3<<11)
103 #ifndef BRANCH_PREDICTION_ENABLE
104 mrc 15, 0, r0, c1, c0, 1
106 mcr 15, 0, r0, c1, c0, 1
108 mrc 15, 0, r0, c1, c0, 1
110 mcr 15, 0, r0, c1, c0, 1
114 #ifdef UNALIGNED_ACCESS_ENABLE
118 #ifdef LOW_INT_LATENCY_ENABLE
121 mcr 15, 0, r1, c1, c0, 0
123 #ifdef BRANCH_PREDICTION_ENABLE
125 mcr 15, 0, r0, c15, c2, 4
129 mcr 15, 0, r0, c7, c7, 0 /* invalidate I cache and D cache */
130 mcr 15, 0, r0, c8, c7, 0 /* invalidate TLBs */
131 mcr 15, 0, r0, c7, c10, 4 /* Drain the write buffer */
133 /* Also setup the Peripheral Port Remap register inside the core */
134 ldr r0, ARM_PPMRR /* start from AIPS 2GB region */
135 mcr p15, 0, r0, c15, c2, 4
137 /* Reload data from spare area to 0x1000 of main area if booting from NAND */
145 #define MXC_NAND_BOOT_LOAD_AT_0x404
146 #ifdef MXC_NAND_BOOT_LOAD_AT_0x404
147 // Recover the word at 0x404 offset using the one stored in the spare area
152 #ifdef NFC_2K_BI_SWAP
153 ldr r3, [r0, #0x7D0] // load word at addr 464 of last 512 RAM buffer
154 and r3, r3, #0xFFFFFF00 // mask off the LSB
155 ldr r4, [r0, #0x834] // load word at addr 4 of the 3rd spare area buffer
156 mov r4, r4, lsr #8 // shift it to get the byte at addr 5
157 and r4, r4, #0xFF // throw away upper 3 bytes
158 add r3, r4, r3 // construct the word
159 str r3, [r0, #0x7D0] // write back
163 /*** L2 Cache setup/invalidation/disable ***/
164 /* Disable L2 cache first */
165 mov r0, #L2CC_BASE_ADDR
166 ldr r2, [r0, #L2_CACHE_CTL_REG]
168 str r2, [r0, #L2_CACHE_CTL_REG]
170 * Configure L2 Cache:
171 * - 128k size(16k way)
172 * - 8-way associativity
173 * - 0 ws TAG/VALID/DIRTY
176 ldr r1, [r0, #L2_CACHE_AUX_CTL_REG]
177 and r1, r1, #0xFE000000
178 ldr r2, L2CACHE_PARAM
180 str r1, [r0, #L2_CACHE_AUX_CTL_REG]
181 /* Workaournd for DDR issue:WT*/
182 ldr r1, [r0, #L2_CACHE_DBG_CTL_REG]
184 str r1, [r0, #L2_CACHE_DBG_CTL_REG]
188 str r1, [r0, #L2_CACHE_INV_WAY_REG]
190 /* Poll Invalidate By Way register */
191 ldr r2, [r0, #L2_CACHE_INV_WAY_REG]
194 /*** End of L2 operations ***/
196 mov r0, #SDRAM_NON_FLASH_BOOT
197 ldr r1, AVIC_VECTOR0_ADDR_W
198 str r0, [r1] // for checking boot source from nand or sdram
200 * End of ARM1136 init
213 /* If SDRAM has been setup, bypass clock/WEIM setup */
214 cmp pc, #SDRAM_BASE_ADDR
216 cmp pc, #(SDRAM_BASE_ADDR + SDRAM_SIZE)
217 blo HWInitialise_skip_SDRAM_setup
219 mov r0, #NOR_FLASH_BOOT
220 ldr r1, AVIC_VECTOR0_ADDR_W
230 /* Based on chip rev, setup params for SDRAM controller */
233 /* Assuming DDR memory first */
236 HWInitialise_skip_SDRAM_setup:
239 add r2, r0, #0x1000 // 4K window
241 blo Normal_Boot_Continue
243 bhi Normal_Boot_Continue
245 /* Copy image from flash to SDRAM first */
246 ldr r1, MXC_REDBOOT_ROM_START
248 1: ldmia r0!, {r3-r10}
254 and r0, pc, r1 /* offset of pc */
255 ldr r1, MXC_REDBOOT_ROM_START
264 ldr r7, CCM_BASE_ADDR_W
265 ldr r7, [r7, #CLKCTL_RCSR]
268 orrne r7, r7, #0x4000
269 biceq r7, r7, #0x4000
280 mov r0, #NAND_FLASH_BOOT
281 ldr r1, AVIC_VECTOR0_ADDR_W
284 ldr r1, AVIC_VECTOR1_ADDR_W
287 mov r0, #NFC_BASE; //r0: nfc base. Reloaded after each page copying
288 mov r1, #0x1000 //r1: starting flash addr to be copied. Updated constantly
289 add r2, r0, #0x1000 //r2: end of 3rd RAM buf. Doesn't change
290 ldr r7, CCM_BASE_ADDR_W
291 ldr r7, [r7, #CLKCTL_RCSR]
298 ldr r11, MXC_REDBOOT_ROM_START
299 add r12, r0, #0x1E00 //r12: NFC register base. Doesn't change
300 add r13, r11, #REDBOOT_IMAGE_SIZE //r13: end of SDRAM address for copying. Doesn't change
301 add r11, r11, r1 //r11: starting SDRAM address for copying. Updated constantly
303 //unlock internal buffer
305 strh r3, [r12, #NFC_CONFIGURATION_REG_OFF]
311 // Check if x16/2kb page
312 ldr r7, CCM_BASE_ADDR_W
313 ldr r7, [r7, #CLKCTL_RCSR]
320 do_addr_input //1st addr cycle
322 do_addr_input //2nd addr cycle
324 do_addr_input //3rd addr cycle
326 do_addr_input //4th addr cycle
327 b end_of_nfc_addr_ops
331 do_addr_input //1st addr cycle
333 do_addr_input //2nd addr cycle
335 do_addr_input //3rd addr cycle
337 do_addr_input //4th addr cycle
339 do_addr_input //5th addr cycle
343 b end_of_nfc_addr_ops
347 do_addr_input //1st addr cycle
349 do_addr_input //2nd addr cycle
351 do_addr_input //3rd addr cycle
353 do_addr_input //4th addr cycle
355 do_addr_input //5th addr cycle
364 // Check if x16/2kb page
365 ldr r7, CCM_BASE_ADDR_W
366 ldr r7, [r7, #CLKCTL_RCSR]
368 beq nfc_addr_data_output_done_512
369 // For 4K page - 2nd 512
385 beq nfc_addr_data_output_done_2k
398 #ifdef NFC_4K_BI_SWAP
399 ldr r3, [r0, #0x7D0] // load word at addr 464 of last 512 RAM buffer
400 and r3, r3, #0xFFFFFF00 // mask off the LSB
401 ldr r4, [r0, #0x834] // load word at addr 4 of the 3rd spare area buffer
402 mov r4, r4, lsr #8 // shift it to get the byte at addr 5
403 and r4, r4, #0xFF // throw away upper 3 bytes
404 add r3, r4, r3 // construct the word
405 str r3, [r0, #0x7D0] // write back
407 // check for bad block
408 mov r3, r1, lsl #(32-17) // get rid of block number
409 cmp r3, #(0x800 << (32-17)) // check if not page 0 or 1
410 b nfc_addr_data_output_done
412 nfc_addr_data_output_done_2k:
414 #ifdef NFC_2K_BI_SWAP
415 ldr r3, [r0, #0x7D0] // load word at addr 464 of last 512 RAM buffer
416 and r3, r3, #0xFFFFFF00 // mask off the LSB
417 ldr r4, [r0, #0x834] // load word at addr 4 of the 3rd spare area buffer
418 mov r4, r4, lsr #8 // shift it to get the byte at addr 5
419 and r4, r4, #0xFF // throw away upper 3 bytes
420 add r3, r4, r3 // construct the word
421 str r3, [r0, #0x7D0] // write back
423 // check for bad block
424 mov r3, r1, lsl #(32-17) // get rid of block number
425 cmp r3, #(0x800 << (32-17)) // check if not page 0 or 1
426 b nfc_addr_data_output_done
428 nfc_addr_data_output_done_512:
429 // check for bad block
430 mov r3, r1, lsl #(32-5-9) // get rid of block number
431 cmp r3, #(512 << (32-5-9)) // check if not page 0 or 1
433 nfc_addr_data_output_done:
435 add r4, r0, #0x1000 //r3 -> spare area buf 0
440 // really sucks. Bad block!!!!
443 // even suckier since we already read the first page!
444 // Check if x16/2kb page
445 ldr r7, CCM_BASE_ADDR_W
446 ldr r7, [r7, #CLKCTL_RCSR]
449 subne r11, r11, #0x1000 //rewind 1 page for the sdram pointer
450 subne r1, r1, #0x1000 //rewind 1 page for the flash pointer
453 subeq r11, r11, #512 //rewind 1 page for the sdram pointer
454 subeq r1, r1, #512 //rewind 1 page for the flash pointer
457 subne r11, r11, #0x800 //rewind 1 page for the sdram pointer
458 subne r1, r1, #0x800 //rewind 1 page for the flash pointer
461 // Check if x16/2kb page
462 ldr r7, CCM_BASE_ADDR_W
463 ldr r7, [r7, #CLKCTL_RCSR]
465 addne r1, r1, #(128*4096)
466 bne Skip_bad_block_done
468 addeq r1, r1, #(32*512)
469 addne r1, r1, #(64*2048)
474 1: ldmia r0!, {r3-r10}
479 bge NAND_Copy_Main_done
480 // Check if x16/2kb page
481 ldr r7, CCM_BASE_ADDR_W
482 ldr r7, [r7, #CLKCTL_RCSR]
484 addne r1, r1, #0x1000
495 Normal_Boot_Continue:
497 #ifdef CYG_HAL_STARTUP_ROMRAM /* enable running from RAM */
498 /* Copy image from flash to SDRAM first */
501 ldr r1, MXC_REDBOOT_ROM_START
503 beq HWInitialise_skip_SDRAM_copy
505 add r2, r0, #REDBOOT_IMAGE_SIZE
507 1: ldmia r0!, {r3-r10}
513 and r0, pc, r1 /* offset of pc */
514 ldr r1, =(SDRAM_BASE_ADDR + SDRAM_SIZE - 0x100000 + 0x8)
520 #endif /* CYG_HAL_STARTUP_ROMRAM */
522 HWInitialise_skip_SDRAM_copy:
527 * IOMUX/PBC setup is done in C function plf_hardware_init() for simplicity
531 // Set up a stack [for calling C code]
532 ldr r1, =__startup_stack
533 ldr r2, =SDRAM_BASE_ADDR
541 mrc MMU_CP, 0, r1, MMU_Control, c0 // get c1 value to r1 first
542 orr r1, r1, #7 // enable MMU bit
543 orr r1, r1, #0x800 // enable z bit
544 mcr MMU_CP, 0, r1, MMU_Control, c0
545 mov pc,r2 /* Change address spaces */
551 // Save shadow copy of BCR, also hardware configuration
555 str r9, [r1] // Saved far above...
557 .endm // _platform_setup1
561 ldrh r3, [r12, #NAND_FLASH_CONFIG2_REG_OFF]
562 ands r3, r3, #NAND_FLASH_CONFIG2_INT_DONE
564 bx lr // do_wait_op_done
567 mov r3, #(NAND_FLASH_CONFIG1_INT_MSK | NAND_FLASH_CONFIG1_ECC_EN)
568 strh r3, [r12, #NAND_FLASH_CONFIG1_REG_OFF]
570 // writew(buf_no, RAM_BUFFER_ADDRESS_REG);
571 strh r8, [r12, #RAM_BUFFER_ADDRESS_REG_OFF]
572 // writew(FDO_PAGE_SPARE_VAL & 0xFF, NAND_FLASH_CONFIG2_REG);
573 mov r3, #FDO_PAGE_SPARE_VAL
574 strh r3, [r12, #NAND_FLASH_CONFIG2_REG_OFF]
577 #else // defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
578 #define PLATFORM_SETUP1
583 .endm /* init_spba */
585 /* AIPS setup - Only setup MPROTx registers. The PACR default values are good.*/
588 * Set all MPROTx to be non-bufferable, trusted for R/W,
589 * not forced to user-mode.
591 ldr r0, AIPS1_CTRL_BASE_ADDR_W
592 ldr r1, AIPS1_PARAM_W
595 ldr r0, AIPS2_CTRL_BASE_ADDR_W
600 * Clear the on and off peripheral modules Supervisor Protect bit
601 * for SDMA to access them. Did not change the AIPS control registers
602 * (offset 0x20) access type
604 ldr r0, AIPS1_CTRL_BASE_ADDR_W
611 and r1, r1, #0x00FFFFFF
614 ldr r0, AIPS2_CTRL_BASE_ADDR_W
621 and r1, r1, #0x00FFFFFF
623 .endm /* init_aips */
625 /* MAX (Multi-Layer AHB Crossbar Switch) setup */
627 ldr r0, MAX_BASE_ADDR_W
628 /* MPR - priority is M4 > M2 > M3 > M5 > M0 > M1 */
630 str r1, [r0, #0x000] /* for S0 */
631 str r1, [r0, #0x100] /* for S1 */
632 str r1, [r0, #0x200] /* for S2 */
633 str r1, [r0, #0x300] /* for S3 */
634 str r1, [r0, #0x400] /* for S4 */
635 /* SGPCR - always park on last master */
637 str r1, [r0, #0x010] /* for S0 */
638 str r1, [r0, #0x110] /* for S1 */
639 str r1, [r0, #0x210] /* for S2 */
640 str r1, [r0, #0x310] /* for S3 */
641 str r1, [r0, #0x410] /* for S4 */
642 /* MGPCR - restore default values */
644 str r1, [r0, #0x800] /* for M0 */
645 str r1, [r0, #0x900] /* for M1 */
646 str r1, [r0, #0xA00] /* for M2 */
647 str r1, [r0, #0xB00] /* for M3 */
648 str r1, [r0, #0xC00] /* for M4 */
649 str r1, [r0, #0xD00] /* for M5 */
654 ldr r0, CCM_BASE_ADDR_W
656 /* default CLKO to 1/32 of the ARM core*/
657 ldr r1, [r0, #CLKCTL_COSR]
658 bic r1, r1, #0x00000FF00
659 bic r1, r1, #0x0000000FF
663 str r1, [r0, #CLKCTL_COSR]
666 str r2, [r0, #CLKCTL_CCMR]
669 ldr r2, [r0, #CLKCTL_PDR0]
671 ldrne r3, MPCTL_PARAM_532_W /* consumer path*/
672 ldreq r3, MPCTL_PARAM_399_W /* auto path*/
674 /*Set MPLL , arm clock and ahb clock*/
675 str r3, [r0, #CLKCTL_MPCTL]
677 ldr r1, PPCTL_PARAM_W
678 str r1, [r0, #CLKCTL_PPCTL]
680 ldr r1, [r0, #CLKCTL_PDR0]
681 orr r1, r1, #0x800000
682 str r1, [r0, #CLKCTL_PDR0]
685 str r1, [r0, #CLKCTL_PDR0]
686 .endm /* init_clock */
690 /* Configure M3IF registers */
693 * M3IF Control Register (M3IFCTL)
694 * MRRP[0] = L2CC0 not on priority list (0 << 0) = 0x00000000
695 * MRRP[1] = L2CC1 not on priority list (0 << 0) = 0x00000000
696 * MRRP[2] = MBX not on priority list (0 << 0) = 0x00000000
697 * MRRP[3] = MAX1 not on priority list (0 << 0) = 0x00000000
698 * MRRP[4] = SDMA not on priority list (0 << 0) = 0x00000000
699 * MRRP[5] = MPEG4 not on priority list (0 << 0) = 0x00000000
700 * MRRP[6] = IPU1 on priority list (1 << 6) = 0x00000040
701 * MRRP[7] = IPU2 not on priority list (0 << 0) = 0x00000000
706 str r0, [r1] /* M3IF control reg */
707 .endm /* init_m3if */
710 ldr r0, WEIM_CTRL_CS0_W
711 ldr r1, CS0_CSCRU_0x0000CC03
713 ldr r1, CS0_CSCRL_0xA0330D01
715 ldr r1, CS0_CSCRA_0x00220800
719 /* CPLD on CS5 setup */
721 ldr r0, WEIM_CTRL_CS4_W
722 ldr r1, CS4_CSCRU_0x0000DCF6
724 ldr r1, CS4_CSCRL_0x444A4541
726 ldr r1, CS4_CSCRA_0x44443302
730 /* CPLD on CS5 setup */
732 ldr r0, WEIM_CTRL_CS5_W
733 ldr r1, CS5_CSCRU_0x0000DCF6
735 ldr r1, CS5_CSCRL_0x444A4541
737 ldr r1, CS5_CSCRA_0x44443302
742 ldr r0, ESDCTL_BASE_W
746 // mov r2, #RAM_BANK0_BASE
747 // bl setup_sdram_bank
749 mov r2, #RAM_BANK1_BASE
754 strh r3, [r12, #NAND_FLASH_CMD_REG_OFF]
755 mov r3, #NAND_FLASH_CONFIG2_FCMD_EN;
756 strh r3, [r12, #NAND_FLASH_CONFIG2_REG_OFF]
758 .endm // nfc_cmd_input
762 strh r3, [r12, #NAND_FLASH_ADD_REG_OFF]
763 mov r3, #NAND_FLASH_CONFIG2_FADD_EN
764 strh r3, [r12, #NAND_FLASH_CONFIG2_REG_OFF]
766 .endm // do_addr_input
768 /* To support 133MHz DDR */
771 ldr r1, IOMUXC_BASE_ADDR_W
773 add r2, r1, #0x4C8 -0x368
778 .endm /* init_iomuxc */
781 * r0: control base, r1: working, r2: sdram bank base
784 ldr r1, SDRAM_0x00795429
786 ldr r1, SDRAM_0x92220000
789 ldr r12, SDRAM_PARAM1_MDDR
792 ldr r1, SDRAM_0xA2220000
795 ldr r12, SDRAM_PARAM1_MDDR
799 ldr r1, SDRAM_0xB2220000
802 ldr r12, SDRAM_PARAM2_MDDR
805 ldr r12, SDRAM_PARAM3_MDDR
808 ldr r1, SDRAM_0x82228C80
812 #define PLATFORM_VECTORS _platform_vectors
813 .macro _platform_vectors
814 .globl _board_BCR, _board_CFG
815 _board_BCR: .long 0 // Board Control register shadow
816 _board_CFG: .long 0 // Board Configuration (read at RESET)
819 ARM_PPMRR: .word 0x40000015
820 L2CACHE_PARAM: .word 0x00030024
821 IIM_SREV_REG_VAL: .word IIM_BASE_ADDR + IIM_SREV_OFF
822 AIPS1_CTRL_BASE_ADDR_W: .word AIPS1_CTRL_BASE_ADDR
823 AIPS2_CTRL_BASE_ADDR_W: .word AIPS2_CTRL_BASE_ADDR
824 AIPS1_PARAM_W: .word 0x77777777
825 MAX_BASE_ADDR_W: .word MAX_BASE_ADDR
826 MAX_PARAM1: .word 0x00302154
827 CLKCTL_BASE_ADDR_W: .word CLKCTL_BASE_ADDR
828 ESDCTL_BASE_W: .word ESDCTL_BASE
829 M3IF_BASE_W: .word M3IF_BASE
830 SDRAM_PARAM1_MDDR: .word 0x00000400
831 SDRAM_PARAM2_MDDR: .word 0x00000033
832 SDRAM_PARAM3_MDDR: .word 0x01000000
833 SDRAM_0x92220000: .word 0x92200000
834 SDRAM_0xA2220000: .word 0xA2200000
835 SDRAM_0xB2220000: .word 0xB2200000
836 SDRAM_0x82228C80: .word 0x82228C80
837 SDRAM_0x00795429: .word 0x00795429
838 IOMUXC_BASE_ADDR_W: .word IOMUXC_BASE_ADDR
839 CCM_CCMR_W: .word 0x003F4208
840 CCM_PDR0_W: .word 0x00881800
841 //MPCTL_PARAM_399_W: .word MPCTL_PARAM_399
842 MPCTL_PARAM_399_W: .word 0x000F2005
843 MPCTL_PARAM_532_W: .word MPCTL_PARAM_532
844 //PPCTL_PARAM_W: .word PPCTL_PARAM_300
845 PPCTL_PARAM_W: .word 0x00031801
846 AVIC_VECTOR0_ADDR_W: .word MXCBOOT_FLAG_REG
847 AVIC_VECTOR1_ADDR_W: .word MXCFIS_FLAG_REG
848 MXC_REDBOOT_ROM_START: .word SDRAM_BASE_ADDR + SDRAM_SIZE - 0x100000
849 CONST_0x0FFF: .word 0x0FFF
850 CCM_BASE_ADDR_W: .word CCM_BASE_ADDR
851 IPU_CTRL_BASE_ADDR_W: .word IPU_CTRL_BASE_ADDR
852 WEIM_CTRL_CS4_W: .word WEIM_CTRL_CS4
853 WEIM_CTRL_CS5_W: .word WEIM_CTRL_CS5
854 WEIM_CTRL_CS0_W: .word WEIM_CTRL_CS0
855 CS0_CSCRU_0x0000CC03: .word 0x0000CC03
856 CS0_CSCRL_0xA0330D01: .word 0xA0330D01
857 CS0_CSCRA_0x00220800: .word 0x00220800
859 CS5_CSCRU_0x0000DCF6: .word 0x0000DCF6
860 CS5_CSCRL_0x444A4541: .word 0x444A4541
861 CS5_CSCRA_0x44443302: .word 0x44443302
863 CS4_CSCRU_0x0000DCF6: .word 0x0000DCF6
864 CS4_CSCRL_0x444A4541: .word 0x444A4541
865 CS4_CSCRA_0x44443302: .word 0x44443302
866 CS5_CSCRU_0x0000DCF6: .word 0x0000DCF6
867 CS5_CSCRL_0x444A4541: .word 0x444A4541
868 CS5_CSCRA_0x44443302: .word 0x44443302
870 /*---------------------------------------------------------------------------*/
871 /* end of hal_platform_setup.h */
872 #endif /* CYGONCE_HAL_PLATFORM_SETUP_H */