Date: Fri, 19 May 2017 22:34:13 -0700 From: Mark Millard <markmi@dsl-only.net> To: Justin Hibbits <jhibbits@freebsd.org> Cc: FreeBSD PowerPC ML <freebsd-ppc@freebsd.org> Subject: Re: FYI: powerpc EXC_LAST==0x2f00 vs. EXC_DEBUG ==0x2f10 and such? Message-ID: <9A2218D5-4795-4A83-A257-61CA3EDBC776@dsl-only.net> In-Reply-To: <44ACFC7B-445A-4648-B387-E31021A8D363@dsl-only.net> References: <0BC58DBC-AC9B-46F8-8F3A-1AEB90622BC4@dsl-only.net> <CAHSQbTDfL89Xu1VVSxxUo=B-ubJWOsHyFMvFbsf46%2BBheMDq_Q@mail.gmail.com> <44ACFC7B-445A-4648-B387-E31021A8D363@dsl-only.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2017-May-19, at 10:30 PM, Mark Millard <markmi@dsl-only.net> wrote: > On 2017-May-19, at 10:24 PM, Justin Hibbits <jhibbits@freebsd.org> = wrote: >=20 > On Tuesday, May 16, 2017, Mark Millard <markmi@dsl-only.net> wrote: >> . . .=46rom /usr/src/sys/powerpc/include/trap.h : >>=20 >> #define EXC_DEBUG 0x2f10 /* Debug trap */ >> #define EXC_VECAST_E 0x2f20 /* Altivec Assist (Book-E) */ >>=20 >> #define EXC_LAST 0x2f00 /* Last possible exception = vector */ >>=20 >> #define EXC_AST 0x3000 /* Fake AST vector */ >>=20 >> /* Trap was in user mode */ >> #define EXC_USER 0x10000 >>=20 >> And also: >>=20 >> /usr/src/sys/powerpc/ofw/ofw_machdep.c:char = save_trap_init[0x2f00]; /* EXC_LAST */ >> /usr/src/sys/powerpc/ofw/ofw_machdep.c:char = save_trap_of[0x2f00]; /* EXC_LAST */ >>=20 >> /usr/src/sys/powerpc/include/profile.h:#define __PROFILE_VECTOR_TOP = (EXC_LAST + 0x100) >>=20 >> These makes it look like EXC_LAST and some literal >> 0x2f00's might be insufficient for some contexts. >>=20 >> Nope EXC_LAST is correct as-is. It's the last possible exception = vector for AIM, as that uses physical pages at those addresses for the = exception vectors. Anything above EXC_LAST is an artificial exception. = Now, it does look odd, so I should move the EXC_DEBUG and EXC_VECAST_E = down below the EXC_LAST for sorting purposes. >=20 > Thanks for checking. >=20 > One other point: >=20 > save_trap_init[0x2f00] does not include 0x2500 > save_trap_of[0x2f00] does not include 0x2500 I meant "does not include 0x2f00" in both places. [It is a day for taking things slowly. . .] > But. . . >=20 >> #define EXC_LAST 0x2f00 /* Last possible exception = vector */ >=20 > indicates that 0x2500 is included. Is it actually > the count/bound and not the last possible? Same here: 0x2f00, not 0x2500. =3D=3D=3D Mark Millard markmi at dsl-only.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9A2218D5-4795-4A83-A257-61CA3EDBC776>