Subject: Re: What's difference between ARM_VECTORS_LOW and ARM_VECTORS_HIGH?
To: None <port-arm@netbsd.org>
From: Doug Brewer <brewer.doug@gmail.com>
List: port-arm
Date: 05/18/2007 14:25:02
Toru Nishimura  wrote:
> Doug Brewer asks;
>
> > Would you tell me what's diffrenece between ARM_VECTORS_LOW and
> > ARM_VECTORS_HIGH?
>
> It directs ARM core to take exception vector from base address 0x0 or
> 0xFFFF'0000.  Take a glance at CP15 Register 1 'V' bit definition.

I see, thanks.

> > How do I know my machine use ARM_VECTORS_LOW or
> > ARM_VECTORS_HIGH?
>
> It looks, from the NetBSD stand point, arbitrary and insignificant to
> assign exception vector vaddr to LOW or HIGH.

I tried to change the word ARM_VECTORS_LOW  to ARM_VECTORS_HIGH in gumstix code,
it seems to not work. The code I changed is:

pmap_link_l2pt(l1pagetable, 0x00000000,
	    &kernel_pt_table[KERNEL_PT_SYS]);
--->
pmap_link_l2pt(l1pagetable, ARM_VECTORS_HIGH & ~(0x00400000 - 1),
	    &kernel_pt_table[KERNEL_PT_SYS]);


pmap_map_entry(l1pagetable, vector_page, systempage.pv_pa,
	    VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
-->

pmap_map_entry(l1pagetable, ARM_VECTORS_HIGH, systempage.pv_pa,
	    VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);


arm32_vector_init(ARM_VECTORS_LOW, ARM_VEC_ALL);
-->
arm32_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL);


What else part I miss? Thank you very much!

>
> The reason why ARM designer offers this capability is unclear to me.
>
> Toru Nishimura/ALKYL Technology


BR,
Doug.