亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xldr.s

?? i.Mx31 bootloader(for WinCE6.0)
?? S
?? 第 1 頁 / 共 2 頁
字號:
;------------------------------------------------------------------------------
;
;   Copyright (C) 2006, 2007 Freescale Semiconductor, Inc. All Rights Reserved.
;   THIS SOURCE CODE, AND ITS USE AND DISTRIBUTION, IS SUBJECT TO THE TERMS
;   AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT
;
;------------------------------------------------------------------------------
;
;   FILE:   xldr.s
;   
;   Provides support for booting from a NAND device connected to the 
;   NAND flash controller.
;
;------------------------------------------------------------------------------
    INCLUDE armmacros.s
    INCLUDE mxarm11_base_regs.inc
    INCLUDE mxarm11_base_mem.inc
    INCLUDE mx31_base_regs.inc
    INCLUDE mx31_base_mem.inc
    INCLUDE image_cfg.inc
    INCLUDE nandchip.inc

;
; ARM constants
;
ARM_CPSR_PRECISE            EQU     (1 << 8)
ARM_CPSR_IRQDISABLE         EQU     (1 << 7)
ARM_CPSR_FIQDISABLE         EQU     (1 << 6)
ARM_CPSR_MODE_SVC           EQU     0x13
ARM_CTRL_ICACHE             EQU     (1 << 12)
ARM_CTRL_DCACHE             EQU     (1 << 2)
ARM_CTRL_MMU                EQU     (1 << 0)
ARM_CTRL_FLOW               EQU     (1 << 11)
ARM_CTRL_VECTORS            EQU     (1 << 13)
ARM_CTRL_FI                 EQU     (1 << 21)
ARM_CTRL_U                  EQU     (1 << 22)
ARM_CACR_FULL               EQU     0x3
ARM_AUXCR_SB                EQU     (1 << 2)
ARM_AUXCR_DB                EQU     (1 << 1)
ARM_AUXCR_HUM               EQU     (1 << 31)


; Peripheral Port Memory Remap Register (PPMRR)
ARM_PPMRR_SIZE_LSH          EQU     0
ARM_PPMRR_SIZE_WID          EQU     5
ARM_PPMRR_SIZE_256MB        EQU     0x13
ARM_PPMRR_SIZE_512MB        EQU     0x14
ARM_PPMRR_SIZE_1GB          EQU     0x15
ARM_PPMRR_BASEADDR_LSH      EQU     12
ARM_PPMRR_BASEADDR_WID      EQU     20

ARM_PPMRR_SIZE              EQU     (ARM_PPMRR_SIZE_1GB << ARM_PPMRR_SIZE_LSH)
ARM_PPMRR_BASEADDR          EQU     (CSP_BASE_MEM_PA_AIPSA)

ARM_PPMRR_CONFIG            EQU     (ARM_PPMRR_BASEADDR | ARM_PPMRR_SIZE)

;
; L2CC constants
;
L2CC_CR_OFFSET              EQU     0x100

;
; ESDCTL constants
;
ESDCTL_ESDCTL0_OFFSET       EQU     0x0000
ESDCTL_ESDCFG0_OFFSET       EQU     0x0004
ESDCTL_ESDCTL1_OFFSET       EQU     0x0008
ESDCTL_ESDCFG1_OFFSET       EQU     0x000C
ESDCTL_ESDMISC_OFFSET       EQU     0x0010
ESDCTL_ESDDLY5_OFFSET       EQU     0x0030

;
; NANDFC constants
;
NANDFC_MAIN_BUFF0_OFFSET            EQU     (0x0)
NANDFC_MAIN_BUFF1_OFFSET            EQU     (0x200)
NANDFC_MAIN_BUFF2_OFFSET            EQU     (0x400)
NANDFC_MAIN_BUFF3_OFFSET            EQU     (0x600)
NANDFC_SPARE_BUFF0_OFFSET           EQU     (0x800)
NANDFC_SPARE_BUFF1_OFFSET           EQU     (0x810)
NANDFC_SPARE_BUFF2_OFFSET           EQU     (0x820)
NANDFC_SPARE_BUFF3_OFFSET           EQU     (0x830)
NANDFC_NFC_BUFSIZE_OFFSET           EQU     (0xE00)
NANDFC_RAM_BUFF_ADDRESS_OFFSET      EQU     (0xE04)
NANDFC_NAND_FLASH_ADD_OFFSET        EQU     (0xE06)
NANDFC_NAND_FLASH_CMD_OFFSET        EQU     (0xE08)
NANDFC_NFC_CONFIGURATION_OFFSET     EQU     (0xE0A)
NANDFC_ECC_STATUS_RESULT_OFFSET     EQU     (0xE0C)
NANDFC_ECC_RSLT_MAIN_AREA_OFFSET    EQU     (0xE0E)
NANDFC_ECC_RSLT_SPARE_AREA_OFFSET   EQU     (0xE10)
NANDFC_NF_WR_PROT_OFFSET            EQU     (0xE12)
NANDFC_UNLOCK_START_BLK_ADD_OFFSET  EQU     (0xE14)
NANDFC_UNLOCK_END_BLK_ADD_OFFSET    EQU     (0xE16)
NANDFC_FLASH_WR_PR_ST_OFFSET        EQU     (0xE18)
NANDFC_NAND_FLASH_CONFIG1_OFFSET    EQU     (0xE1A)
NANDFC_NAND_FLASH_CONFIG2_OFFSET    EQU     (0xE1C)

NANDFC_CONFIG1_SP_EN                EQU     (1 << 2)
NANDFC_CONFIG1_NF_CE                EQU     (1 << 7)


NANDFC_CONFIG2_FCMD                 EQU     (1 << 0)
NANDFC_CONFIG2_FADD                 EQU     (1 << 1)
NANDFC_CONFIG2_FDI                  EQU     (1 << 2)
NANDFC_CONFIG2_FDO_PAGE             EQU     (1 << 3)
NANDFC_CONFIG2_FDO_ID               EQU     (1 << 4)
NANDFC_CONFIG2_FDO_STATUS           EQU     (1 << 5)
NANDFC_CONFIG2_INT                  EQU     (1 << 15)


    OPT 2                                       ; disable listing
    INCLUDE kxarm.h
    OPT 1                                       ; reenable listing
   
    TEXTAREA

    ; romimage needs pTOC. give it one.
pTOC    DCD -1
    EXPORT pTOC


;******************************************************************************
;*
;* FUNCTION:    StartUp
;*
;* DESCRIPTION: System bootstrap function
;*
;* PARAMETERS:  None
;*
;* RETURNS:     None
;*
;******************************************************************************
 
    STARTUPTEXT
    LEAF_ENTRY StartUp

    ;--------------------------------------------------------------------------
    ; MS RECOMMENDATION:
    ; Put the processor in supervisor mode
    ; Disable the interrupt request (IRQ) and fast interrupt request (FIQ) 
    ; inputs
    ;--------------------------------------------------------------------------
    mrs     r0, cpsr                            ; r0 = CPSR
    mov     r0, #ARM_CPSR_MODE_SVC              ; enter supervisor mode
    orr     r0, r0, #ARM_CPSR_IRQDISABLE        ; disable normal IRQ
    orr     r0, r0, #ARM_CPSR_FIQDISABLE        ; disable fast IRQ
    ;orr     r0, r0, #ARM_CPSR_PRECISE           ; enable precise data aborts
    msr     cpsr_xc, r0                         ; update CPSR control bits

    ;
    ; Configure auxiliary control register 
    ;
    mrc     p15, 0, r0, c1, c0, 1               ; r0 = auxiliary control reg
    ;bic     r0, r0, #ARM_AUXCR_DB              ; disable dynamic branch pred
    ;bic     r0, r0, #ARM_AUXCR_SB              ; disable static branch pred
    orr     r0, r0, #ARM_AUXCR_HUM              ; disable hit under miss (Errata 364296)
    mcr     p15, 0, r0, c1, c0, 1               ; update auxiliary control reg
    
    ;--------------------------------------------------------------------------
    ; MS RECOMMENDATION:
    ; Disable memory management unit (MMU) and both the instruction and data 
    ; caches
    ;--------------------------------------------------------------------------
    mrc     p15, 0, r0, c1, c0, 0               ; r0 = system control reg
    bic     r0, r0, #ARM_CTRL_ICACHE            ; disable ICache
    bic     r0, r0, #ARM_CTRL_DCACHE            ; disable DCache
    bic     r0, r0, #ARM_CTRL_MMU               ; disable MMU
    bic     r0, r0, #ARM_CTRL_VECTORS           ; set vector base to 0x00000000
    orr     r0, r0, #ARM_CTRL_FLOW              ; program flow predicition enabled
    orr     r0, r0, #ARM_CTRL_FI                ; enable low interrupt latency (Errata 364296)
    orr     r0, r0, #ARM_CTRL_U                 ; allow unaligned accesses (codec optimization)
    mcr     p15, 0, r0, c1, c0, 0               ; update system control reg

    ;
    ; Configure ARM Peripheral Port Memory Remap Register (PPMRR)
    ;
    ldr     r0, =ARM_PPMRR_CONFIG               ; r0 = PPMRR configuration
    mcr     p15, 0, r0, c15, c2, 4              ; update PPMRR

    ; 
    ; Disable L2 cache
    ;
    ldr     r1, =CSP_BASE_REG_PA_L2CC
    ldr     r0, =0x0
    str     r0, [r1, #L2CC_CR_OFFSET]
    
    ;
    ; Disable maximum drive strength SDRAM/DDR lines by clearing DSE1 bits
    ; in SW_PAD_CTL registers
    ;

    ; SDCLK
    ldr     r1, =(CSP_BASE_REG_PA_IOMUXC+0x26C)
    ldr     r0, [r1]
    bic     r0, r0, #(1 << 12)
    str     r0, [r1]

    ; CAS
    ldr     r1, =(CSP_BASE_REG_PA_IOMUXC+0x270)
    ldr     r0, [r1]
    bic     r0, r0, #(1 << 22)
    str     r0, [r1]

    ; RAS
    ldr     r1, =(CSP_BASE_REG_PA_IOMUXC+0x274)
    ldr     r0, [r1]
    bic     r0, r0, #(1 << 2)
    str     r0, [r1]

    ; CS2 (CSD0)
    ldr     r1, =(CSP_BASE_REG_PA_IOMUXC+0x27C)
    ldr     r0, [r1]
    bic     r0, r0, #(1 << 22)
    str     r0, [r1]
    
    ; DQM3
    ldr     r1, =(CSP_BASE_REG_PA_IOMUXC+0x284)
    ldr     r0, [r1]
    bic     r0, r0, #(1 << 22)
    str     r0, [r1]

    ; DQM2, DQM1, DQM0, SD31-SD0, A25-A0, MA10 (0x288..0x2DC)
    ldr     r1, =(CSP_BASE_REG_PA_IOMUXC+0x288)
    ldr     r2, =22     ; (0x2E0 - 0x288) / 4 = 22
pad_loop
    ldr     r0, [r1]
    bic     r0, r0, #(1 << 22)
    bic     r0, r0, #(1 << 12)
    bic     r0, r0, #(1 << 2)
    str     r0, [r1]
    add     r1, r1, #4
    subs    r2, r2, #0x1
    bne     pad_loop

    ;
    ; Configure enhanced SDRAM/DDR contoller (ESDCTL)
    ;
    ldr     r1, =CSP_BASE_REG_PA_ESDCTL
    ldr     r2, =CSP_BASE_MEM_PA_CSD0

    ; Configure SDRAM timing parameters
    ldr     r0, =0x006AC73A
    str     r0, [r1, #ESDCTL_ESDCFG0_OFFSET]

    ; Reset 
    ldr     r0, =0x2
    str     r0, [r1, #ESDCTL_ESDMISC_OFFSET]
    
    ; Configure for DDR
    ldr     r0, =0x4
    str     r0, [r1, #ESDCTL_ESDMISC_OFFSET]

    ; Hold for more than 200ns
    ldr     r0, =0x10000
hold
    subs    r0, r0, #0x1
    bne     hold

    ; Set precharge command
    ;
    ;   COL - 9 column addresses (1 << 20)              = 0x00100000
    ;   ROW - 13 Row addresses (2 << 24)                = 0x02000000
    ;   SP - User mode access (0 << 27)                 = 0x00000000
    ;   SMODE - Precharge command (1 << 28)             = 0x10000000
    ;   SDE - Enable controller (1 << 31)               = 0x80000000
    ;                                                   ------------
    ;                                                     0x92100000
    ldr     r0, =0x92100000
    str     r0, [r1, #ESDCTL_ESDCTL0_OFFSET]

    ; Access SDRAM with A10 high to precharge all banks
    ldr     r0, =0x0
    str     r0, [r2, #0xF00]

    ; Set autorefresh command
    ;
    ;   COL - 9 column addresses (1 << 20)              = 0x00100000
    ;   ROW - 13 Row addresses (2 << 24)                = 0x02000000
    ;   SP - User mode access (0 << 27)                 = 0x00000000
    ;   SMODE - Autorefresh command (2 << 28)           = 0x20000000
    ;   SDE - Enable controller (1 << 31)               = 0x80000000
    ;                                                   ------------
    ;                                                     0xA2100000
    ldr     r0, =0xA2100000
    str     r0, [r1, #ESDCTL_ESDCTL0_OFFSET]

    ; Use writes to refresh all banks of SDRAM
    ldr     r0, =0x0
    str     r0, [r2]
    str     r0, [r2]

    ; Set load mode command
    ;
    ;   COL - 9 column addresses (1 << 20)              = 0x00100000
    ;   ROW - 13 Row addresses (2 << 24)                = 0x02000000
    ;   SP - User mode access (0 << 27)                 = 0x00000000
    ;   SMODE - Load mode command (3 << 28)             = 0x30000000
    ;   SDE - Enable controller (1 << 31)               = 0x80000000
    ;                                                   ------------
    ;                                                     0xB2100000
    ldr r0, =0xB2100000
    str r0, [r1, #ESDCTL_ESDCTL0_OFFSET]

    ; Use SDRAM write to load SDRAM mode register
    ldr     r0, =0x0
    strb    r0, [r2, #0x33]         ; address used for mode, data ignored

    ldr     r3, =(CSP_BASE_MEM_PA_CSD0+0x01000000)
    strb    r0, [r3]                ; address used for mode, data ignored
    

    ; Set load mode command
    ;
    ;   PRCT - Precharge timer disabled (0 << 0)        = 0x00000000
    ;   BL - Burst of 8 for SDR/DDR (1 << 7)            = 0x00000080
    ;   FP - No full page mode (0 << 8)                 = 0x00000000
    ;   PWDT - Power down timeout 128 clocks (3 << 10)  = 0x00000C00
    ;   SREFR - 4 rows refreshed each clock (3 << 13)   = 0x00006000
    ;   DSIZ - 32-bit memory width (2 << 16)            = 0x00020000
    ;   COL - 10 column addresses (2 << 20)             = 0x00200000
    ;   ROW - 13 Row addresses (2 << 24)                = 0x02000000
    ;   SP - User mode access (0 << 27)                 = 0x00000000
    ;   SMODE - Normal mode command (0 << 28)           = 0x00000000
    ;   SDE - Enable controller (1 << 31)               = 0x80000000
    ;                                                   ------------
    ;                                                     0x82226C80
    ldr r0, =0x82226C80
    str r0, [r1, #ESDCTL_ESDCTL0_OFFSET]

    ; Configure misc SDRAM parameters
    ldr     r0, =0xC
    str     r0, [r1, #ESDCTL_ESDMISC_OFFSET]    


    ; Configure NFC Internal Buffer Lock Control
    ;
    ;   BLS - Unlocked (2 << 0)                         = 0x0002
    ;                                                   --------
    ;                                                     0x0002
    ;
    ldr     r1, =(CSP_BASE_REG_PA_NANDFC+NANDFC_NFC_CONFIGURATION_OFFSET)
    ldr     r0, =0x0002
    strh    r0, [r1]

    ; We are executing from the NFC buffer here.  Copy 2KB of NAND FLASH data 
    ; read in by the NFC to external DRAM.  We cannot directly load the IPL 
    ; while executing from the NFC buffer since it is a single-port RAM
    ; implementation.

    ldr     r0, =IMAGE_BOOT_XLDR_RAM_START
    ldr     r1, =(CSP_BASE_REG_PA_NANDFC+NANDFC_MAIN_BUFF0_OFFSET)
    mov     r2, #IMAGE_BOOT_XLDR_RAM_SIZE

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国理伦片一区二区三区在线播放| 欧美精品亚洲二区| 激情五月婷婷综合| 热久久免费视频| 亚洲成人免费观看| 亚洲丰满少妇videoshd| 亚洲视频精选在线| 9i看片成人免费高清| 日本不卡123| 国产精品超碰97尤物18| 精品国产乱码久久久久久影片| 国产成人综合在线| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产欧美一区二区三区沐欲| 日韩久久精品一区| 在线视频观看一区| 国产91精品在线观看| 粉嫩久久99精品久久久久久夜| 国产成人午夜精品影院观看视频 | 国产精品麻豆一区二区| 国产日韩欧美高清| 国产精品久久久久久久久久免费看 | 精品在线观看免费| 国产成人免费9x9x人网站视频| fc2成人免费人成在线观看播放| 91丝袜国产在线播放| 欧美色图激情小说| 欧美xfplay| 欧美激情在线看| 亚洲黄色av一区| 免费观看一级特黄欧美大片| 国产精品资源网| 色综合中文字幕国产 | 欧美精品少妇一区二区三区| 日韩午夜在线影院| 日本一区二区三区免费乱视频| 日韩一区有码在线| 人人精品人人爱| av在线播放成人| 欧美高清www午色夜在线视频| 日韩精品中文字幕一区二区三区 | 久久久久国产精品厨房| 国产精品欧美久久久久无广告| 亚洲男女一区二区三区| 午夜精品福利久久久| 国产乱码精品一品二品| 在线免费视频一区二区| 欧美草草影院在线视频| 亚洲欧洲国产专区| 午夜精品爽啪视频| 国产高清不卡一区二区| 欧美性做爰猛烈叫床潮| 久久新电视剧免费观看| 一区二区三区免费| 韩国精品一区二区| 欧美在线免费播放| 国产三级一区二区| 日精品一区二区| 99久久精品免费观看| 精品噜噜噜噜久久久久久久久试看| 亚洲精品欧美在线| 国产精品资源网站| 日韩一区二区三区观看| 亚洲人123区| 国产一区二区三区精品视频| 欧美伊人久久久久久午夜久久久久| 国产午夜一区二区三区| 天堂va蜜桃一区二区三区| 成人美女视频在线观看| 精品成人私密视频| 亚洲va韩国va欧美va| 成人午夜av电影| 欧美一级二级三级蜜桃| 一区二区久久久| 99视频超级精品| 国产欧美综合在线观看第十页| 奇米一区二区三区av| 在线亚洲欧美专区二区| 中文字幕久久午夜不卡| 国内精品写真在线观看| 538prom精品视频线放| 又紧又大又爽精品一区二区| 成人激情免费视频| 国产亚洲女人久久久久毛片| 久久99久久久久久久久久久| 欧美日韩在线直播| 一区二区三区在线免费视频| 成人av在线影院| 日本一区二区高清| 国产精品一区免费视频| 欧美mv和日韩mv的网站| 免费一区二区视频| 欧美久久久久免费| 亚洲chinese男男1069| 欧美午夜宅男影院| 亚洲欧美电影院| 91毛片在线观看| 亚洲精品视频免费观看| 色综合欧美在线视频区| 视频一区二区国产| 在线综合+亚洲+欧美中文字幕| 亚洲国产精品久久人人爱蜜臀 | 国产精品欧美一区二区三区| 成人一道本在线| 亚洲国产精品精华液ab| 99久久免费精品| 一区二区三区欧美视频| 91久久精品网| 亚洲成人777| 在线不卡一区二区| 日本伊人精品一区二区三区观看方式| 欧美日本一区二区| 青娱乐精品在线视频| 欧美刺激脚交jootjob| 狠狠色伊人亚洲综合成人| 国产色爱av资源综合区| 懂色av一区二区三区蜜臀| 中文字幕欧美激情| 91在线视频官网| 亚洲成av人影院| 日韩欧美一级精品久久| 国内精品伊人久久久久av影院| 国产日韩av一区二区| 不卡的电视剧免费网站有什么| 亚洲激情av在线| 欧美一级片免费看| 国产毛片一区二区| 亚洲人妖av一区二区| 欧美日韩免费观看一区三区| 奇米一区二区三区av| 中文字幕第一页久久| 色美美综合视频| 天天色综合天天| 国产日韩精品一区二区三区| 一本久道久久综合中文字幕| 天天色综合天天| 国产午夜精品美女毛片视频| 91福利在线观看| 精品中文字幕一区二区小辣椒| 中文字幕精品一区二区精品绿巨人 | 亚洲图片欧美视频| 日韩精品一区二区三区视频播放 | wwwwww.欧美系列| 91亚洲国产成人精品一区二三| 五月婷婷综合激情| 欧美国产在线观看| 欧美日韩视频一区二区| 黄色精品一二区| 亚洲欧美欧美一区二区三区| 3d动漫精品啪啪一区二区竹菊 | 日韩欧美国产不卡| 91美女片黄在线观看91美女| 久久精品免费观看| 亚洲欧美视频在线观看视频| 精品国精品国产| 色婷婷狠狠综合| 国产伦精品一区二区三区免费迷 | 99久久er热在这里只有精品66| 天天av天天翘天天综合网| 国产日韩欧美一区二区三区综合| 欧美三级电影在线观看| 国产麻豆欧美日韩一区| 亚洲成人自拍网| 国产精品入口麻豆原神| 日韩一区二区三区在线视频| 91亚洲精品久久久蜜桃网站| 国产一区二区视频在线播放| 亚洲成人av福利| 一色屋精品亚洲香蕉网站| 精品国产一区二区三区不卡 | 中文字幕精品三区| 欧美电影免费观看高清完整版| 欧美伊人久久久久久久久影院| 国产成人免费av在线| 久久99在线观看| 亚洲va欧美va人人爽午夜| 亚洲日本在线看| 中文字幕一区视频| 久久久国产精品不卡| 欧美一区二区三区视频| 日本丶国产丶欧美色综合| 成人一道本在线| 国产高清精品在线| 国产主播一区二区| 青青草国产成人av片免费| 五月天一区二区三区| 亚洲精品视频一区| 亚洲天堂网中文字| 欧美激情一区二区三区蜜桃视频| 日韩三级中文字幕| 7777精品伊人久久久大香线蕉经典版下载 | 韩国理伦片一区二区三区在线播放 | 亚洲黄色av一区| 一色桃子久久精品亚洲| 国产精品毛片久久久久久| 国产视频911| 国产亚洲精品精华液| 久久婷婷国产综合国色天香 | 日本一不卡视频| 日韩激情一区二区|