This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: Arm semihosting v2 implementation isn't complete
Disassembling rdimon-v2m libraries for armv8 I see following:
svc 0x0000f000
while that document states immediate 0xf000 must be used with HLT only.
If this v2m implementation assumes to use SVC and BKPT instructions with
new immed values - should I create "pure" rdimon-v2 version then with HLT
only ?
Alex
On Tue, 18 Dec 2018 at 19:54, Tamar Christina <Tamar.Christina@arm.com>
wrote:
> Hi Alexander,
>
> #ifdef THUMB_VXM
> #define AngelSWIInsn "bkpt"
> #define AngelSWIAsm bkpt
> +#elif defined (SEMIHOST_V2) && (__ARM_ARCH == 8)
>
> You'll want to use the same condition as the reason number setting code
> above,
>
> #if defined (SEMIHOST_V2) && defined (SEMIHOST_V2_MIXED_MODE)
>
> As we only want to use hlt in the mixed mode and not always.
> The Armv8 check isn't needed due to the note in the specification
> "Note: This requirement includes supporting the HLT encodings on ARMv7 and
> earlier processors, even though HLT
> is only defined as an instruction in ARMv8."
>
> So we just generate all the multilibs and leave it up to the
> implementations to support it or not.
>
> Thanks,
> Tamar
>
> + #define AngelSWIInsn "hlt"
> + #define AngelSWIAsm hlt
> #else
> #define AngelSWIInsn "swi"
> #define AngelSWIAsm swi
> --
>
>
> The 12/18/2018 15:09, Alexander Fedotov wrote:
> > I suggest following patch:
> >
> > On Tue, Dec 18, 2018 at 5:12 PM Alexander Fedotov <alfedotov@gmail.com>
> wrote:
> > >
> > > Hi Tamar
> > >
> > > I see HLT only in comments, not in defines:
> > >
> > > #ifdef THUMB_VXM
> > > #define AngelSWIInsn "bkpt"
> > > #define AngelSWIAsm bkpt
> > > #else
> > > #define AngelSWIInsn "swi"
> > > #define AngelSWIAsm swi
> > > #endif
> > >
> > >
> > > On Tue, Dec 18, 2018 at 4:50 PM Tamar Christina <
> Tamar.Christina@arm.com> wrote:
> > > >
> > > > Hi Alex
> > > >
> > > > > -----Original Message-----
> > > > > From: newlib-owner@sourceware.org <newlib-owner@sourceware.org> On
> > > > > Behalf Of Alexander Fedotov
> > > > > Sent: Tuesday, December 18, 2018 13:08
> > > > > To: Newlib <newlib@sourceware.org>
> > > > > Subject: Arm semihosting v2 implementation isn't complete
> > > > >
> > > > > Hi all
> > > > >
> > > > > I see that number of commits were dedicated to changes for Arm
> > > > > Semihosting v2 specification that states:
> > > > > ARM encourages semihosting callers to implement support for
> trapping using
> > > > > HLT on A32 and T32 as a configurable option. ARM strongly
> discourages
> > > > > semihosting callers from mixing the HLT and SVC mechanisms within
> the
> > > > > same executable.
> > > > >
> > > > > At the moment there is no HLT instruction used in libgloss/arm.
> > > >
> > > > There is, see swi.h, we don't support mixing of HLT and SVC (as
> mentioned in the specification bit you quoted) so they are in different
> libraries.
> > > > HLT is used when you used the MIXED_MODE spec files. E.g.
> aprofile-validation-v2m.specs will use HLT and aprofile-validation.specs
> uses SVC.
> > > >
> > > > Regards,
> > > > Tamar
> > > >
> > > > >
> > > > > So the question is: is there any reason to not have HLT right now ?
> > > > >
> > > > > Alex
> > >
> > >
> > >
> > > --
> > > Best regards,
> > > AF
> >
> >
> >
> > --
> > Best regards,
> > AF
>
>
>
> --
>
--
Best regards,
AF