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.