Re: Arm semihosting v2 implementation isn't complete

Alexander Fedotov <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <CAN8C2CpxAe7j4mJApkw-5yEgFVk3ff=H3qiRwvZeyC=zqThrBw@mail.gmail.com>
Ok, I see now.
Thank you so much Tamar !

Alex

On Wed, Dec 19, 2018 at 3:15 PM Tamar Christina <[email protected]> wrote:
>
> Hi Alex,
>
> The 12/18/2018 21:08, Alexander Fedotov wrote:
> > Disassembling rdimon-v2m libraries for armv8 I see following:
> >     svc 0x0000f000
> >
> > while that document states immediate 0xf000 must be used with HLT only.
> >
>
> Yes, that's what your patch fixes, the change I mentioned was because it only needs to
> use hlt 0xf000 for the -v2m and not the non -v2m versions which are also version 2.
>
> newlib no longer builds v1 by default so your original patch with just #defined (SEMIHOST_V2)
> is always true and semihosting v2 requires support for hlt on earlier architectures than Armv8 as well.
>
> However I'd like to put this on hold till January as there is something I need to check with
> a colleague whom has already gone on leave for the holidays.
>
> Kind Regards,
> Tamar
>
> > 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 <[email protected]<mailto:[email protected]>> 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 <[email protected]<mailto:[email protected]>> 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 <[email protected]<mailto:[email protected]>> wrote:
> > > > >
> > > > > Hi Alex
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: [email protected]<mailto:[email protected]> <[email protected]<mailto:[email protected]>> On
> > > > > > Behalf Of Alexander Fedotov
> > > > > > Sent: Tuesday, December 18, 2018 13:08
> > > > > > To: Newlib <[email protected]<mailto:[email protected]>>
> > > > > > 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
>
> --



-- 
Best regards,
AF
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.