⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xlli_lowlev_init.s

📁 pxa27x下rtc程序
💻 S
📖 第 1 页 / 共 5 页
字号:
;
        mrc     p14, 0, r1, c6, c0, 0             ; Get data in CP14, Register 6
        and     r1,  r1,  #0x8                    ; Grab just the "B" bit
        mov     r1,  r1,  LSR #0x2                ; move it to bit position 1
        orr     r9, r3, r1                        ; At this point r9 contains the A-bit at pos. 0 & B-bit at pos. 1

        ldr     r1,  =xlli_MEMORY_CONFIG_BASE     ; Load r1 with memory controller base address
;
;       The MemClk speed is determined by the L, A and B values.
;       Unfortunaly, the only practical way to do this is to rip through all the legal
;       values and load a register when there is a match. Illegal values result in no change
;
        ldr     r3,  =0x7FF07FF0                ; Bit mask for RDF, RDN and RRR (MSC0)
        ldr     r4,  [r1, #xlli_MSC0_offset]    ; Get present MSC0 value
        bic     r4,  r4,  r3                    ; Clear the RDF, RDN and RRR bits

        ldr     r5,  =0x03000300                ; DTC0, DTC2 bit mask (MDCNFG)
        ldr     r6,  [r1, #xlli_MDCNFG_offset]  ; Get present MDCNFG value
        bic     r6,  r6,  r5                    ; Clear DTC0, DTC2

        ldr     r7,  =0xC0200FFF                ; DRI and RESERVED bit mask (MDREFR)
        ldr     r8,  [r1, #xlli_MDREFR_offset]  ; Get present MDREFR value
        bic     r8,  r8,  r7                    ; Clear DRI and RESERVED bits
        ldr     r7,  = 0xFFF                    ; Reload r7 with worst-case DRI value for safety
;
;       r9 =  0x0:  A=0, B=0
;             0x1:  A=1, B=0
;             0x2:  A=0, B=1
;             0x3:  A=1, B=1
;
        cmp     r9, #0x1                         ; A == 1, B == 0 ?
        beq     xlli_A1B0_Table

        cmp     r9, #0x3                         ; A == 1, B == 1 ?
        beq     xlli_A1B1_Table

;
;       Else drop through to A=0, B=x table
;
xlli_A0Bx_Table
        cmp     r2,  #2              ; Is L=2?
        ldreq   r3,  =xlli_MSC0_26   ; Yes - load values
        ldreq   r5,  =xlli_DTC_26
        ldreq   r7,  =xlli_DRI_26
        cmp     r2,  #3              ; Is L=3?
        ldreq   r3,  =xlli_MSC0_39   ; Yes - load values
        ldreq   r5,  =xlli_DTC_39
        ldreq   r7,  =xlli_DRI_39
        cmp     r2,  #4              ; Is L=4?
        ldreq   r3,  =xlli_MSC0_52   ; Yes - load values
        ldreq   r5,  =xlli_DTC_52
        ldreq   r7,  =xlli_DRI_52
        cmp     r2,  #5              ; Is L=5?
        ldreq   r3,  =xlli_MSC0_65   ; Yes - load values
        ldreq   r5,  =xlli_DTC_65
        ldreq   r7,  =xlli_DRI_65
        cmp     r2,  #6              ; Is L=6?
        ldreq   r3,  =xlli_MSC0_78   ; Yes - load values
        ldreq   r5,  =xlli_DTC_78
        ldreq   r7,  =xlli_DRI_78
        cmp     r2,  #7              ; Is L=7?
        ldreq   r3,  =xlli_MSC0_91   ; Yes - load values
        ldreq   r5,  =xlli_DTC_91
        ldreq   r7,  =xlli_DRI_91
        cmp     r2,  #8              ; Is L=8?
        ldreq   r3,  =xlli_MSC0_104  ; Yes - load values
        ldreq   r5,  =xlli_DTC_104
        ldreq   r7,  =xlli_DRI_104
        cmp     r2,  #9              ; Is L=9?
        ldreq   r3,  =xlli_MSC0_117  ; Yes - load values
        ldreq   r5,  =xlli_DTC_117
        ldreq   r7,  =xlli_DRI_117

        cmp     r2,  #10             ; Is L=10?
        ldreq   r3,  =xlli_MSC0_130  ; Yes - load values
        ldreq   r5,  =xlli_DTC_130
        ldreq   r7,  =xlli_DRI_130
        cmp     r2,  #11             ; Is L=11?
        ldreq   r3,  =xlli_MSC0_71   ; Yes - load values
        ldreq   r5,  =xlli_DTC_71
        ldreq   r7,  =xlli_DRI_71
        cmp     r2,  #12             ; Is L=12?
        ldreq   r3,  =xlli_MSC0_78   ; Yes - load values
        ldreq   r5,  =xlli_DTC_78
        ldreq   r7,  =xlli_DRI_78
        cmp     r2,  #13             ; Is L=13?
        ldreq   r3,  =xlli_MSC0_84   ; Yes - load value
        ldreq   r5,  =xlli_DTC_84
        ldreq   r7,  =xlli_DRI_84
        cmp     r2,  #14             ; Is L=14?
        ldreq   r3,  =xlli_MSC0_91   ; Yes - load values
        ldreq   r5,  =xlli_DTC_91
        ldreq   r7,  =xlli_DRI_91
        cmp     r2,  #15             ; Is L=15?
        ldreq   r3,  =xlli_MSC0_97   ; Yes - load values
        ldreq   r5,  =xlli_DTC_97
        ldreq   r7,  =xlli_DRI_97

        cmp     r2,  #16             ; Is L=16?
        ldreq   r3,  =xlli_MSC0_104  ; Yes - load values
        ldreq   r5,  =xlli_DTC_104
        ldreq   r7,  =xlli_DRI_104
        cmp     r2,  #17             ; Is L=17?
        ldreq   r3,  =xlli_MSC0_110  ; Yes - load values
        ldreq   r5,  =xlli_DTC_110
        ldreq   r7,  =xlli_DRI_110
        cmp     r2,  #18             ; Is L=18?
        ldreq   r3,  =xlli_MSC0_117  ; Yes - load values
        ldreq   r5,  =xlli_DTC_117
        ldreq   r7,  =xlli_DRI_117
        cmp     r2,  #19             ; Is L=19?
        ldreq   r3,  =xlli_MSC0_124  ; Yes - load values
        ldreq   r5,  =xlli_DTC_124
        ldreq   r7,  =xlli_DRI_124
        cmp     r2,  #20             ; Is L=20?
        ldreq   r3,  =xlli_MSC0_130  ; Yes - load values
        ldreq   r5,  =xlli_DTC_130
        ldreq   r7,  =xlli_DRI_130

        cmp     r2,  #21             ; Is L=21?
        ldreq   r3,  =xlli_MSC0_68  ; Yes - load values
        ldreq   r5,  =xlli_DTC_68
        ldreq   r7,  =xlli_DRI_68
        cmp     r2,  #22             ; Is L=22?
        ldreq   r3,  =xlli_MSC0_71  ; Yes - load values
        ldreq   r5,  =xlli_DTC_71
        ldreq   r7,  =xlli_DRI_71
        cmp     r2,  #23             ; Is L=23?
        ldreq   r3,  =xlli_MSC0_74  ; Yes - load values
        ldreq   r5,  =xlli_DTC_74
        ldreq   r7,  =xlli_DRI_74
        cmp     r2,  #24             ; Is L=24?
        ldreq   r3,  =xlli_MSC0_78  ; Yes - load values
        ldreq   r5,  =xlli_DTC_78
        ldreq   r7,  =xlli_DRI_78
        cmp     r2,  #25             ; Is L=25?
        ldreq   r3,  =xlli_MSC0_81  ; Yes - load values
        ldreq   r5,  =xlli_DTC_81
        ldreq   r7,  =xlli_DRI_81

        cmp     r2,  #26             ; Is L=26?
        ldreq   r3,  =xlli_MSC0_84  ; Yes - load values
        ldreq   r5,  =xlli_DTC_84
        ldreq   r7,  =xlli_DRI_84
        cmp     r2,  #27             ; Is L=27?
        ldreq   r3,  =xlli_MSC0_87  ; Yes - load values
        ldreq   r5,  =xlli_DTC_87
        ldreq   r7,  =xlli_DRI_87
        cmp     r2,  #28             ; Is L=28?
        ldreq   r3,  =xlli_MSC0_91  ; Yes - load values
        ldreq   r5,  =xlli_DTC_91
        ldreq   r7,  =xlli_DRI_91
        cmp     r2,  #29             ; Is L=29?
        ldreq   r3,  =xlli_MSC0_94   ; Yes - load values
        ldreq   r5,  =xlli_DTC_94
        ldreq   r7,  =xlli_DRI_94
        cmp     r2,  #30             ; Is L=30?
        ldreq   r3,  =xlli_MSC0_97   ; Yes - load values
        ldreq   r5,  =xlli_DTC_97
        ldreq   r7,  =xlli_DRI_97
        cmp     r2,  #31             ; Is L=31?
        ldreq   r3,  =xlli_MSC0_100  ; Yes - load values
        ldreq   r5,  =xlli_DTC_100
        ldreq   r7,  =xlli_DRI_100

        b XLLI_Done_MSC0_Opt_Update

xlli_A1B0_Table

        cmp     r2,  #2              ; Is L=2?
        ldreq   r3,  =xlli_MSC0_13   ; Yes - load values
        ldreq   r5,  =xlli_DTC_13
        ldreq   r7,  =xlli_DRI_13
        cmp     r2,  #3              ; Is L=3?
        ldreq   r3,  =xlli_MSC0_19   ; Yes - load values
        ldreq   r5,  =xlli_DTC_19
        ldreq   r7,  =xlli_DRI_19
        cmp     r2,  #4              ; Is L=4?
        ldreq   r3,  =xlli_MSC0_26   ; Yes - load values
        ldreq   r5,  =xlli_DTC_26
        ldreq   r7,  =xlli_DRI_26
        cmp     r2,  #5              ; Is L=5?
        ldreq   r3,  =xlli_MSC0_32   ; Yes - load values
        ldreq   r5,  =xlli_DTC_32
        ldreq   r7,  =xlli_DRI_32
        cmp     r2,  #6              ; Is L=6?
        ldreq   r3,  =xlli_MSC0_39   ; Yes - load values
        ldreq   r5,  =xlli_DTC_39
        ldreq   r7,  =xlli_DRI_39
        cmp     r2,  #7              ; Is L=7?
        ldreq   r3,  =xlli_MSC0_45   ; Yes - load values
        ldreq   r5,  =xlli_DTC_45
        ldreq   r7,  =xlli_DRI_45

        cmp     r2,  #8              ; Is L=8?
        ldreq   r3,  =xlli_MSC0_52  ; Yes - load values
        ldreq   r5,  =xlli_DTC_52
        ldreq   r7,  =xlli_DRI_52
        cmp     r2,  #9              ; Is L=9?
        ldreq   r3,  =xlli_MSC0_58  ; Yes - load values
        ldreq   r5,  =xlli_DTC_58
        ldreq   r7,  =xlli_DRI_58

        cmp     r2,  #10             ; Is L=10?
        ldreq   r3,  =xlli_MSC0_65  ; Yes - load values
        ldreq   r5,  =xlli_DTC_65
        ldreq   r7,  =xlli_DRI_65
;
;       L11 - L20 ARE THE SAME for A0Bx
;
        cmp     r2,  #11             ; Is L=11?
        ldreq   r3,  =xlli_MSC0_71   ; Yes - load values
        ldreq   r5,  =xlli_DTC_71
        ldreq   r7,  =xlli_DRI_71
        cmp     r2,  #12             ; Is L=12?
        ldreq   r3,  =xlli_MSC0_78   ; Yes - load values
        ldreq   r5,  =xlli_DTC_78
        ldreq   r7,  =xlli_DRI_78
        cmp     r2,  #13             ; Is L=13?
        ldreq   r3,  =xlli_MSC0_84   ; Yes - load values
        ldreq   r5,  =xlli_DTC_84
        ldreq   r7,  =xlli_DRI_84
        cmp     r2,  #14             ; Is L=14?
        ldreq   r3,  =xlli_MSC0_91   ; Yes - load values
        ldreq   r5,  =xlli_DTC_91
        ldreq   r7,  =xlli_DRI_91
        cmp     r2,  #15             ; Is L=15?
        ldreq   r3,  =xlli_MSC0_97   ; Yes - load values
        ldreq   r5,  =xlli_DTC_97
        ldreq   r7,  =xlli_DRI_97
        cmp     r2,  #16             ; Is L=16?
        ldreq   r3,  =xlli_MSC0_104  ; Yes - load values
        ldreq   r5,  =xlli_DTC_104
        ldreq   r7,  =xlli_DRI_104
        cmp     r2,  #17             ; Is L=17?
        ldreq   r3,  =xlli_MSC0_110  ; Yes - load values
        ldreq   r5,  =xlli_DTC_110
        ldreq   r7,  =xlli_DRI_110
        cmp     r2,  #18             ; Is L=18?
        ldreq   r3,  =xlli_MSC0_117  ; Yes - load values
        ldreq   r5,  =xlli_DTC_117
        ldreq   r7,  =xlli_DRI_117
        cmp     r2,  #19             ; Is L=19?
        ldreq   r3,  =xlli_MSC0_124  ; Yes - load values
        ldreq   r5,  =xlli_DTC_124
        ldreq   r7,  =xlli_DRI_124
        cmp     r2,  #20             ; Is L=20?
        ldreq   r3,  =xlli_MSC0_130  ; Yes - load values
        ldreq   r5,  =xlli_DTC_130
        ldreq   r7,  =xlli_DRI_130

        cmp     r2,  #21             ; Is L=21?
        ldreq   r3,  =xlli_MSC0_136  ; Yes - load values
        ldreq   r5,  =xlli_DTC_136
        ldreq   r7,  =xlli_DRI_136
        cmp     r2,  #22             ; Is L=22?
        ldreq   r3,  =xlli_MSC0_143  ; Yes - load values
        ldreq   r5,  =xlli_DTC_143
        ldreq   r7,  =xlli_DRI_143
        cmp     r2,  #23             ; Is L=23?
        ldreq   r3,  =xlli_MSC0_149  ; Yes - load values
        ldreq   r5,  =xlli_DTC_149
        ldreq   r7,  =xlli_DRI_149
        cmp     r2,  #24             ; Is L=24?
        ldreq   r3,  =xlli_MSC0_156  ; Yes - load values
        ldreq   r5,  =xlli_DTC_156
        ldreq   r7,  =xlli_DRI_156
        cmp     r2,  #25             ; Is L=25?
        ldreq   r3,  =xlli_MSC0_162  ; Yes - load values

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -