Subject: Re: What's difference between ARM_VECTORS_LOW and ARM_VECTORS_HIGH?
To: Toru Nishimura <locore64@alkyltechnology.com>
From: Steve Woodford <scw@netbsd.org>
List: port-arm
Date: 04/13/2007 08:53:28
On Friday 13 April 2007 05:39, Toru Nishimura wrote:
> Doug Brewer asks;
>
> > Would you tell me what's diffrenece between ARM_VECTORS_LOW and
> > ARM_VECTORS_HIGH?
> The reason why ARM designer offers this capability is unclear to me.

The vector table on older ARM CPUs was hard-wired to 0x0. This requires 
some additional work on the part of the OS to ensure there is always a 
valid kernel mapping at that address in every process, and to deal with 
page faults if userland touches the vector page.

Most newer ARM CPUs give the option of relocating the vector table into 
what is traditionally the kernel's VM region, thus simplifying things 
for the OS.

NetBSD/arm32's pmap supports either vector table location, at the expense 
of a little bit more complexity to deal with ARM_VECTORS_LOW.

Cheers, Steve