FreeCalypso > hg > fc-magnetite
comparison src/cs/system/bootloader/src/bootloader.s @ 605:07d0dc4431f4
bootloader.s: same MEMIF fix as in int.s plus DPLL BYPASS fix
Both MEMIF and DPLL settings are now the same between int.s and bootloader.s
assembly code paths. Previously bootloader.s was setting DPLL BYPASS /2 mode,
which persisted until _INT_Initialize code with the bootloader body omitted,
or was changed to /1 in the hardware init function in the
bootloader.lib:start.obj module.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 17 Jun 2019 18:40:32 +0000 |
parents | 945cf7f506b2 |
children |
comparison
equal
deleted
inserted
replaced
604:a7ed7d4483b0 | 605:07d0dc4431f4 |
---|---|
159 CS6_MEM_REG .short 0x0c0 ; 0 Dummy Cycle 32 bit 0 WS SW BP enable | 159 CS6_MEM_REG .short 0x0c0 ; 0 Dummy Cycle 32 bit 0 WS SW BP enable |
160 CS7_MEM_REG .short 0x040 ; Internal BOOT ROM init : 0 WS, 32 bits, little, write disable | 160 CS7_MEM_REG .short 0x040 ; Internal BOOT ROM init : 0 WS, 32 bits, little, write disable |
161 .endif | 161 .endif |
162 | 162 |
163 .elseif BOARD = 41 ; D-Sample FLASH CS0 | 163 .elseif BOARD = 41 ; D-Sample FLASH CS0 |
164 | |
165 ; FreeCalypso change, please see MEMIF-wait-states document | |
166 ; in the freecalypso-docs repository for the explanation. | |
167 | |
168 .if VCXO_26MHZ = 1 | |
169 CS0_MEM_REG .short 0x2a2 ; 1 Dummy Cycle 16 bit 2 WS SW BP enable | |
170 CS1_MEM_REG .short 0x2a2 ; 1 Dummy Cycle 16 bit 2 WS SW BP enable | |
171 CS2_MEM_REG .short 0x2a2 ; 1 Dummy Cycle 16 bit 2 WS SW BP enable | |
172 .else | |
164 CS0_MEM_REG .short 0x2a1 ; 1 Dummy Cycle 16 bit 1 WS SW BP enable | 173 CS0_MEM_REG .short 0x2a1 ; 1 Dummy Cycle 16 bit 1 WS SW BP enable |
165 CS1_MEM_REG .short 0x2a1 ; 1 Dummy Cycle 16 bit 1 WS SW BP enable | 174 CS1_MEM_REG .short 0x2a1 ; 1 Dummy Cycle 16 bit 1 WS SW BP enable |
166 CS2_MEM_REG .short 0x2a1 ; 1 Dummy Cycle 16 bit 1 WS SW BP enable | 175 CS2_MEM_REG .short 0x2a1 ; 1 Dummy Cycle 16 bit 1 WS SW BP enable |
176 .endif | |
167 CS3_MEM_REG .short 0x283 ; 1 Dummy Cycle 8 bit 3 WS SW BP enable | 177 CS3_MEM_REG .short 0x283 ; 1 Dummy Cycle 8 bit 3 WS SW BP enable |
168 CS4_MEM_REG .short 0x281 ; 1 Dummy Cycle 8 bit 1 WS SW BP enable | 178 CS4_MEM_REG .short 0x281 ; 1 Dummy Cycle 8 bit 1 WS SW BP enable |
169 | 179 |
170 .if CHIPSET = 8 | 180 .if CHIPSET = 8 |
171 CS6_MEM_REG .short 0x0c0 ; 0 Dummy Cycle 32 bit 0 WS SW BP enable | 181 CS6_MEM_REG .short 0x0c0 ; 0 Dummy Cycle 32 bit 0 WS SW BP enable |
250 EXTRA_CONTROL_REG .word 0xFFFFFB10 ; Extra Control register CONF address | 260 EXTRA_CONTROL_REG .word 0xFFFFFB10 ; Extra Control register CONF address |
251 MPU_CTL_REG .word 0xFFFFFF08 ; MPU_CTL register address | 261 MPU_CTL_REG .word 0xFFFFFF08 ; MPU_CTL register address |
252 | 262 |
253 CNTL_ARM_CLK_RST .short 0x1081 ; Initialization of CNTL_ARM_CLK register | 263 CNTL_ARM_CLK_RST .short 0x1081 ; Initialization of CNTL_ARM_CLK register |
254 ; Use DPLL, Divide by 1 | 264 ; Use DPLL, Divide by 1 |
255 DPLL_CONTROL_RST .short 0x2006 ; Configure DPLL in default state | 265 DPLL_CONTROL_RST .short 0x2002 ; Configure DPLL in BYPASS mode, /1 |
256 DISABLE_DU_MASK .short 0x0800 ; Mask to Disable the DU module | 266 DISABLE_DU_MASK .short 0x0800 ; Mask to Disable the DU module |
257 MPU_CTL_RST .short 0x0000 ; Reset value of MPU_CTL register - All protections disabled | 267 MPU_CTL_RST .short 0x0000 ; Reset value of MPU_CTL register - All protections disabled |
258 | 268 |
259 .elseif CHIPSET = 10 | 269 .elseif CHIPSET = 10 |
260 CNTL_ARM_CLK_REG .word 0xFFFFFD00 ; CNTL_ARM_CLK register address | 270 CNTL_ARM_CLK_REG .word 0xFFFFFD00 ; CNTL_ARM_CLK register address |
262 EXTRA_CONTROL_REG .word 0xFFFFFB10 ; Extra Control register CONF address | 272 EXTRA_CONTROL_REG .word 0xFFFFFB10 ; Extra Control register CONF address |
263 MPU_CTL_REG .word 0xFFFFFF08 ; MPU_CTL register address | 273 MPU_CTL_REG .word 0xFFFFFF08 ; MPU_CTL register address |
264 | 274 |
265 CNTL_ARM_CLK_RST .short 0x1081 ; Initialization of CNTL_ARM_CLK register | 275 CNTL_ARM_CLK_RST .short 0x1081 ; Initialization of CNTL_ARM_CLK register |
266 ; Use DPLL, Divide by 1 | 276 ; Use DPLL, Divide by 1 |
267 DPLL_CONTROL_RST .short 0x2006 ; Configure DPLL in default state | 277 DPLL_CONTROL_RST .short 0x2002 ; Configure DPLL in BYPASS mode, /1 |
268 DISABLE_DU_MASK .short 0x0800 ; Mask to Disable the DU module | 278 DISABLE_DU_MASK .short 0x0800 ; Mask to Disable the DU module |
269 MPU_CTL_RST .short 0x0000 ; Reset value of MPU_CTL register - All protections disabled | 279 MPU_CTL_RST .short 0x0000 ; Reset value of MPU_CTL register - All protections disabled |
270 | 280 |
271 .elseif CHIPSET = 11 | 281 .elseif CHIPSET = 11 |
272 CNTL_ARM_CLK_REG .word 0xFFFFFD00 ; CNTL_ARM_CLK register address | 282 CNTL_ARM_CLK_REG .word 0xFFFFFD00 ; CNTL_ARM_CLK register address |
274 EXTRA_CONTROL_REG .word 0xFFFFFB10 ; Extra Control register CONF address | 284 EXTRA_CONTROL_REG .word 0xFFFFFB10 ; Extra Control register CONF address |
275 MPU_CTL_REG .word 0xFFFFFF08 ; MPU_CTL register address | 285 MPU_CTL_REG .word 0xFFFFFF08 ; MPU_CTL register address |
276 | 286 |
277 CNTL_ARM_CLK_RST .short 0x1081 ; Initialization of CNTL_ARM_CLK register | 287 CNTL_ARM_CLK_RST .short 0x1081 ; Initialization of CNTL_ARM_CLK register |
278 ; Use DPLL, Divide by 1 | 288 ; Use DPLL, Divide by 1 |
279 DPLL_CONTROL_RST .short 0x2006 ; Configure DPLL in default state | 289 DPLL_CONTROL_RST .short 0x2002 ; Configure DPLL in BYPASS mode, /1 |
280 DISABLE_DU_MASK .short 0x0800 ; Mask to Disable the DU module | 290 DISABLE_DU_MASK .short 0x0800 ; Mask to Disable the DU module |
281 MPU_CTL_RST .short 0x0000 ; Reset value of MPU_CTL register - All protections disabled | 291 MPU_CTL_RST .short 0x0000 ; Reset value of MPU_CTL register - All protections disabled |
282 | 292 |
283 .elseif CHIPSET = 12 | 293 .elseif CHIPSET = 12 |
284 DBG_DMA_P2 .word 0xFFFEF02C ; DBG_DMA_P2 register address | 294 DBG_DMA_P2 .word 0xFFFEF02C ; DBG_DMA_P2 register address |