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

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

?? startup.s

?? 飛思卡爾imx27 wince5.0 bootloader源代碼
?? S
?? 第 1 頁 / 共 2 頁
字號:
    ;
    ; Enable ICache (TODO: Could we turn on it here??)
    ;
    ; mrc     p15, 0, r0, c1, c0, 0               ; r0 = system control reg
    ; orr     r0, r0, #ARM_CTRL_ICACHE            ; enable ICache
    ; mcr     p15, 0, r0, c1, c0, 0               ; update system control reg
    ; CPWAIT                                      ; wait cp15 ready

    ;
    ; Set up temporary stack to VRAM (45KB on MX27: 0xFFFF4C00 - 0xFFFFFFFF)
    ; (TODO: Is it need? If no more params to pass.)
    ;
    ldr     sp, =0xFFFFFFFC

    ;
    ; Call OEM-specific system control initialization
    ;
    bl      OALSetUpSystemControl

    ;
    ; Call OEM-specific clock initialization
    ;
    bl      OALSetUpFrequencies
    
    ;
    ; Call OEM-specific GPIO initialization
    ;
    bl      OALSetUpGpio

    ;
    ; Initialize Wireless External Interface Module (WEIM)
    ;
    bl      WeimInit
    
    ;
    ; Only configure ESDRAMC if running from SDRAM
    ;
    ldr     r1, =CSP_BASE_MEM_PA_CS0
    cmp     pc, r1
    blt     skip_esdramc_init

    bl      EsdramcInit
    
skip_esdramc_init
    
    ;--------------------------------------------------------------------------
    ; MS RECOMMENDATION:
    ; Flush or invalidate the instruction and data caches and the translation 
    ; look-aside buffer (TLB) and empty the write buffers
    ;--------------------------------------------------------------------------
    ; TODO: Need on MX27??
    ; bl      OALClearUTLB
    ; mov     r0, #0
    ; mcr     p15, 0, r0, c7, c7, 0               ; flush the unified cache

    ;--------------------------------------------------------------------------
    ; MS RECOMMENDATION:
    ; Configure the interrupt controller. Mask and clear any pending 
    ; interrupts.
    ;--------------------------------------------------------------------------
    mov     r0, #0
    ldr     r1, =CSP_BASE_REG_PA_AITC
    str     r0, [r1, #AITC_INTENABLEH_OFFSET]   ; disable all interrupt sources
    str     r0, [r1, #AITC_INTENABLEL_OFFSET]
    str     r0, [r1, #AITC_INTTYPEH_OFFSET]     ; all sources generate normal IRQ
    str     r0, [r1, #AITC_INTTYPEL_OFFSET]
    str     r0, [r1, #AITC_INTFRCH_OFFSET]      ; no sources forced
    str     r0, [r1, #AITC_INTFRCL_OFFSET]
    str     r0, [r1, #AITC_NIPRIORITY7_OFFSET]  ; all sources lowest priority
    str     r0, [r1, #AITC_NIPRIORITY6_OFFSET]
    str     r0, [r1, #AITC_NIPRIORITY5_OFFSET]
    str     r0, [r1, #AITC_NIPRIORITY4_OFFSET]
    str     r0, [r1, #AITC_NIPRIORITY3_OFFSET]
    str     r0, [r1, #AITC_NIPRIORITY2_OFFSET]
    str     r0, [r1, #AITC_NIPRIORITY1_OFFSET]
    str     r0, [r1, #AITC_NIPRIORITY0_OFFSET]
    
    ;--------------------------------------------------------------------------
    ; MS RECOMMENDATION:
    ; Get the physical base address of the OEMAddressTable and store in r0. 
    ;--------------------------------------------------------------------------
    adr     r0, g_oalAddressTable

    ;--------------------------------------------------------------------------
    ; MS RECOMMENDATION:
    ; Jump to KernelStart to boot WindowsCE or BootloaderMain for bootloader
    ;--------------------------------------------------------------------------
    b       KernelStart

spin
    b       spin

    ;
    ; Include memory configuration file with g_oalAddressTable
    ;
    INCLUDE oemaddrtab_cfg.inc

    ENTRY_END StartUp    

    LTORG                           ; insert a literal pool here.

;------------------------------------------------------------------------------
;
; Function: WeimInit
;
; This function initializes Wireless External Interface Module (WEIM).
; Phyiscal address is used only.
;
; Parameters:
;       None.
;
; Retruns:
;       None.
;
;------------------------------------------------------------------------------
    LEAF_ENTRY WeimInit

    ;
    ; Sync mode (AHB Clk = 133MHz ; BCLK = 44.3MHz):
    ;        
    ldr     r1, =CSP_BASE_MEM_PA_CS0
    ldr     r0, =0xF0F0
    strh    r0, [r1]

    ; 1st command
    ldr     r2, =0xAAA
    add     r2, r2, r1
    ldr     r0, =0xAAAA
    strh    r0, [r2]

    ; 2nd command
    ldr     r2, =0x554
    add     r2, r2, r1
    ldr     r0, =0x5555
    strh    r0, [r2]
    
    ; 3rd command
    ldr     r2, =0xAAA
    add     r2, r2, r1
    ldr     r0, =0xD0D0
    strh    r0, [r2]

    ; Write flash config register
    ldr     r0, =0x56CA
    strh    r0, [r2]

    ; Flash reset command
    ldr     r0, =0xF0F0
    strh    r0, [r1]

    ;
    ; Configure WEIM registers
    ;
    ldr     r1, =CSP_BASE_REG_PA_WEIM
    
    ; CS0 control (upper)
    ;   EDC - 3 extra dead cycles (3 << 0)          = 0x00000003
    ;   WWS - 0 extra write wait states (0 << 4)    = 0x00000000
    ;   EW - Posedge DTACK (0 << 7)                 = 0x00000000
    ;   WSC - 12 wait states (12 << 8)              = 0x00000C00        
    ;   CNC - 3 CS negation cycles (3 << 14)        = 0x0000C000
    ;   DOL - 0 clock burst latency (0 << 16)       = 0x00000000
    ;   SYNC - Disable sync burst (0 << 20)         = 0x00000000
    ;   PME - Disable page mode (0 << 21)           = 0x00000000
    ;   PSZ - 4 word burst/page (0 << 22)           = 0x00000000
    ;   BCS - 1 BCLK delay (0 << 24)                = 0x00000000
    ;   BCD - /1 burst clock (0 << 28)              = 0x00000000
    ;   WP - No write protect (0 << 30)             = 0x00000000
    ;   SP - All user mode access (0 << 31)         = 0x00000000
    ;                                               ------------
    ;                                                 0x0000CC03
    ;ldr     r0, =0x0000CC03
    ldr     r0, =0x23524E80
    str     r0, [r1, #WEIM_CSCR0U_OFFSET]

    ; CS0 control (lower)
    ;   CSEN - Enable chip select (1 << 0)          = 0x00000001
    ;   WRAP - No wrap (0 << 1)                     = 0x00000000
    ;   CRE -  CRE pin 0 (0 << 2)                   = 0x00000000
    ;   PSR - PSRAM mode disabled (0 << 3)          = 0x00000000
    ;   CSN -  2 AHB clocks (2 << 4)                = 0x00000000
    ;   DSZ - 16-bit DATA[15:0] (5 << 8)            = 0x00000500
    ;   EBC - Only write asserts EB (1 << 11)       = 0x00000800
    ;   CSA - 2 half AHB clocks (0 << 12)           = 0x00000000
    ;   EBWN - 3 half AHB clocks (3 << 16)          = 0x00030000
    ;   EBWA - 3 half AHB clocks (3 << 20)          = 0x00300000
    ;   OEN - 2 half AHB clocks (0 << 24)           = 0x00000000
    ;   OEA - 10 half AHB clocks (10 << 28)         = 0xA0000000
    ;                                               ------------
    ;                                                 0xA0330D01
    ;ldr     r0, =0xA0330D01
    ldr     r0, =0x10000D03
    str     r0, [r1, #WEIM_CSCR0L_OFFSET]

    ; CS0 control (additional)
    ;   FCE - Data capture by AHB clk (0 << 0)      = 0x00000000
    ;   CNC2 - No CNC increase (0 << 1)             = 0x00000000
    ;   AGE - Disable ack glue logic (0 << 2)       = 0x00000000
    ;   WWU - Forbit wrap on write (0 << 3)         = 0x00000000
    ;   DCT - 2 AHB clocks (0 << 4)                 = 0x00000000
    ;   DWW - wait states same as read (0 << 6)     = 0x00000000
    ;   LBA - 0 half AHB clock (0 << 8)             = 0x00000000
    ;   LBN - 2 half AHB clocks (2 << 10)           = 0x00000800
    ;   LAH - 3 half AHB clocks (2 << 13)           = 0x00000000
    ;   MUM - Non-muxed mode (0 << 14)              = 0x00000000
    ;   RWN - 2 half AHB clocks (2 << 16)           = 0x00020000
    ;   RWA - 2 half AHB clocks (2 << 20)           = 0x00200000
    ;   EBRN - 0 half AHB clocks (0 << 24)          = 0x00000000
    ;   EBRA - 0 half AHB clocks (0 << 28)          = 0x00000000
    ;                                               ------------
    ;                                                 0x00220800
    ;ldr     r0, =0x00220800
    ldr     r0, =0x00720900
    str     r0, [r1, #WEIM_CSCR0A_OFFSET]

    IF Interworking :LOR: Thumbing
        bx      lr
    ELSE
        mov     pc, lr              ; return to caller.
    ENDIF

    ENTRY_END WeimInit

    LTORG                           ; insert a literal pool here.

;------------------------------------------------------------------------------
;
; Function: EsdramcInit
;
; This function initializes Enhanced SDRAM Controller. Phyiscal address is 
; used only.
;
; Parameters:
;       None.
;
; Retruns:
;       None.
;
;------------------------------------------------------------------------------
    LEAF_ENTRY EsdramcInit

    ;
    ; Configure enhanced SDRAM/DDR contoller (ESDRAMC)
    ;
    ldr     r1, =CSP_BASE_REG_PA_ESDRAMC
    ldr     r2, =CSP_BASE_MEM_PA_CSD0

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

    ; Reset 
    ldr     r0, =0x2
    str     r0, [r1, #ESDRAMC_ESDMISC_OFFSET]

    ; Configure for DDR
    ldr     r0, =0x4
    str     r0, [r1, #ESDRAMC_ESDMISC_OFFSET]

    ; Hold for more than 200us
    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, #ESDRAMC_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, #ESDRAMC_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, #ESDRAMC_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 normal 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, #ESDRAMC_ESDCTL0_OFFSET]

    ; Configure misc SDRAM parameters
    ldr     r0, =0xC
    str     r0, [r1, #ESDRAMC_ESDMISC_OFFSET]
    
    ; Increase hold time on DDR write delay lines 
    ; ldr     r0, =0x60000
    ; str     r0, [r1, #ESDRAMC_ESDDLY5_OFFSET]

    IF Interworking :LOR: Thumbing
        bx      lr
    ELSE
        mov     pc, lr              ; return to caller.
    ENDIF

    ENTRY_END EsdramcInit

    LTORG                           ; insert a literal pool here.

    END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美综合欧美视频| 丰满放荡岳乱妇91ww| 国产精品久久一卡二卡| 亚洲欧美经典视频| 欧美性猛交xxxx黑人交| 久久亚洲影视婷婷| 色综合久久久久网| 久久精品国产亚洲aⅴ| 成人激情开心网| 午夜精品爽啪视频| 欧美精品777| 91麻豆精品国产综合久久久久久| 欧美电影免费观看高清完整版在线观看 | 国产精品沙发午睡系列990531| 亚洲国产精品人人做人人爽| 久久久五月婷婷| 精品区一区二区| 久久久久久久免费视频了| 欧美日韩国产综合视频在线观看| 成人免费看的视频| 99re这里只有精品首页| 欧美在线你懂的| 欧美大片在线观看一区二区| 精品福利av导航| 国产精品萝li| 国产精品国产三级国产三级人妇| 久久久久久久久岛国免费| 国产三级精品三级| 伊人色综合久久天天| 奇米色777欧美一区二区| 色av综合在线| 久久精品水蜜桃av综合天堂| 色婷婷综合中文久久一本| 国产精品一二三区在线| 国产精品18久久久久久久网站| 午夜电影一区二区| 免费在线观看视频一区| 日本亚洲视频在线| 国产精品小仙女| 欧美日本精品一区二区三区| 一本色道综合亚洲| 日韩av电影免费观看高清完整版在线观看| 精品日韩在线观看| 日精品一区二区三区| 国产精品天美传媒沈樵| 欧美日韩国产综合一区二区| 成人免费视频国产在线观看| 成人性生交大片免费| av日韩在线网站| 欧美在线观看视频一区二区| 欧美专区在线观看一区| 欧美日韩dvd在线观看| 日韩三级免费观看| 亚洲精品一区二区精华| 国产精品你懂的| 亚洲国产va精品久久久不卡综合| 全部av―极品视觉盛宴亚洲| 国产一区二区成人久久免费影院| 在线中文字幕一区| 欧美日韩一区精品| 日本一区二区三区电影| 日韩精品欧美精品| 91麻豆免费看片| 国产欧美日产一区| 五月激情六月综合| 色天天综合久久久久综合片| 欧美视频在线不卡| 日本久久电影网| 在线观看免费成人| 在线观看www91| 国产乱妇无码大片在线观看| 国产精品一区一区三区| 国产精品一区二区男女羞羞无遮挡| 成人av先锋影音| 日韩欧美久久久| 日本一区二区三区电影| 国产91精品在线观看| 成人免费毛片app| 国产成人午夜片在线观看高清观看| 国内久久精品视频| 国产91富婆露脸刺激对白| 成人激情免费视频| 欧美日韩高清一区二区| 欧美日韩精品一区二区三区四区| 中文成人av在线| 福利一区二区在线| 国产精品国产三级国产| 色综合久久九月婷婷色综合| 一区二区三区电影在线播| 欧美久久一二区| 精品亚洲porn| 亚洲欧美日韩中文播放| 欧美顶级少妇做爰| 懂色中文一区二区在线播放| 亚洲精品乱码久久久久| 日韩欧美国产高清| 欧美三级日本三级少妇99| 亚洲国产成人tv| wwwwww.欧美系列| 在线观看免费一区| 国产剧情av麻豆香蕉精品| 国产精品国产三级国产aⅴ原创| 制服.丝袜.亚洲.中文.综合| 黑人精品欧美一区二区蜜桃| 亚洲欧美另类久久久精品| 精品美女在线观看| 欧美制服丝袜第一页| 国产成人免费高清| 日韩精品乱码免费| 国产日本欧美一区二区| 91美女在线看| 国产综合色在线视频区| 视频一区在线播放| 成人欧美一区二区三区1314| 欧美丰满少妇xxxbbb| www.欧美色图| 亚洲欧美aⅴ...| 国产精品乱码久久久久久| 日韩欧美综合在线| 色综合天天综合在线视频| 狠狠色综合色综合网络| 亚洲欧美日韩中文播放 | 国产精品午夜在线观看| 69成人精品免费视频| av毛片久久久久**hd| 国产suv精品一区二区6| 狠狠久久亚洲欧美| 青草av.久久免费一区| 亚洲综合色网站| 亚洲成a人片在线不卡一二三区| |精品福利一区二区三区| 久久综合久久综合久久综合| 91精品国产综合久久久久久久久久 | 91丨porny丨在线| 91美女福利视频| 91麻豆高清视频| 国产黄色成人av| 成人午夜视频福利| 99久久免费视频.com| 成人免费看的视频| 91麻豆福利精品推荐| 欧美日韩国产一二三| 91精品国模一区二区三区| 7777精品伊人久久久大香线蕉 | 在线亚洲高清视频| 欧洲在线/亚洲| 日韩欧美国产午夜精品| 日韩视频永久免费| 国产日韩欧美精品一区| 久久精品综合网| 香蕉加勒比综合久久| 日本美女一区二区三区| 国产麻豆欧美日韩一区| 日本韩国视频一区二区| 欧美性高清videossexo| 精品国产91久久久久久久妲己| 久久久久久久久99精品| 亚洲mv在线观看| 国产乱子伦视频一区二区三区| 91麻豆福利精品推荐| 日韩精品一区二区三区在线播放 | 国产精品久久久久久久久快鸭| 午夜精品久久久久久| 国产成人啪免费观看软件| 欧美色爱综合网| 国产亚洲成av人在线观看导航| 亚洲男人的天堂在线观看| 日本欧美大码aⅴ在线播放| 成人午夜av电影| 欧美电视剧在线看免费| 日韩美女在线视频| 亚洲一区日韩精品中文字幕| 国产精品一线二线三线精华| 在线免费av一区| 久久精品一区二区三区av| 成人黄色国产精品网站大全在线免费观看 | 亚洲欧美日韩在线播放| 国产精品一区二区在线看| 7777精品伊人久久久大香线蕉| 国产亚洲精品资源在线26u| 国产视频一区在线播放| 免费观看在线综合| 欧美日本韩国一区| 天天做天天摸天天爽国产一区| 中文字幕一区二区在线播放| 激情小说欧美图片| 日韩欧美亚洲一区二区| 美女视频一区在线观看| 日韩欧美国产午夜精品| 精品亚洲成av人在线观看| 这里只有精品视频在线观看| 中文字幕一区二区三区在线观看| 成人在线一区二区三区| 久久久午夜精品理论片中文字幕| 极品销魂美女一区二区三区| 欧美天天综合网| 国产成人在线免费观看| 亚洲色图制服丝袜| 在线免费精品视频| 日韩国产精品久久久久久亚洲|