Subject: CVS commit: src/sys/arch/arm/arm32
To: None <source-changes@netbsd.org>
From: Jason R Thorpe <thorpej@netbsd.org>
List: source-changes
Date: 04/20/2003 15:42:51
Module Name: src
Committed By: thorpej
Date: Sun Apr 20 15:42:51 UTC 2003
Modified Files:
src/sys/arch/arm/arm32: locore.S
Log Message:
Back out previous. There were several problems with the patch that
was checked in:
* It was not actually disabling the MMU, and so jumping to the
reset vector would happily cause a panic(), since it would be
the kernel's reset vector, not the ROM's.
* In the event the system was using high vectors, VECRELOC was not
getting cleared, which has the potential to wreak havoc when re-entering
the ROM.
* It was totally broken for CPUs < ARMv4; you still need to disable
the MMU on those, just need to skip the ARMv4 TLB flush.
* The code that was checked in would only work if the kernel is mapped
VA==PA. For systems where the kernel is NOT mapped VA==PA, you only
get the prefetch depth # of insns (2) after the MMU is turned off before
you have fix the PC.
Backing out the change fixes rebooting on several evbarm platforms.
To generate a diff of this commit:
cvs rdiff -r1.12 -r1.13 src/sys/arch/arm/arm32/locore.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.