Skip site navigation (1)Skip section navigation (2)
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>