In the future we may want to branch somewhere other than zero when

reseting the CPU. Rename the boot0() function to cpu_reset() and
provide a variable to hold the cpu reset address.
This commit is contained in:
mark 1998-02-22 00:05:00 +00:00
parent 78b939d4b5
commit dc37a51773
1 changed files with 14 additions and 3 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: locore.S,v 1.21 1997/10/14 09:54:36 mark Exp $ */
/* $NetBSD: locore.S,v 1.22 1998/02/22 00:05:00 mark Exp $ */
/*
* Copyright (C) 1994-1997 Mark Brinicombe
@ -213,13 +213,16 @@ Wfiq:
Lcpufuncs:
.word _cpufuncs
ENTRY(boot0)
ENTRY(cpu_reset)
mrs r2, cpsr_all
bic r2, r2, #(PSR_MODE)
orr r2, r2, #(PSR_SVC32_MODE)
orr r2, r2, #(I32_bit | F32_bit)
msr cpsr_all, r2
ldr r4, Lcpu_reset_address
ldr r4, [r4]
ldr r0, Lcpufuncs
add lr, pc, #Lboot_cache_purged - . - 8
ldr pc, [r0, #CF_CACHE_PURGE_ID]
@ -232,8 +235,16 @@ Lboot_cache_purged:
*/
mov r0, #(CPU_CONTROL_32BP_ENABLE | CPU_CONTROL_32BD_ENABLE)
mcr 15, 0, r0, c1, c0, 0
mov pc, #0
mov pc, r4
/*
* _cpu_reset_address contains the address to branch to, to complete
* the cpu reset after turning the MMU off
* This variable is provided by the hardware specific code
*/
Lcpu_reset_address:
.word _cpu_reset_address
/* Debug routine to print trace back information from stack */