Hi Jose Did you had time to investigate since we last talk ?
Cheers FF Le mer. 13 mai 2020 à 19:55, Achin Gupta <[email protected]> a écrit : > +Jose (SMCCC maintainer) > > ------------------------------ > *From:* boot-architecture <[email protected]> on > behalf of François Ozog <[email protected]> > *Sent:* Wednesday, May 13, 2020, 6:51 PM > *To:* Boot Architecture Mailman List > *Subject:* [RFC] SMC yielding Trusted OS call discrepancies > > Hi, > > Trusted OSes such as OP-TEE or QSEE are using SMC yielding function > numbers in the 0x32000000-0x3200006F range. The SMC calling > conventions are specified in DEN0028 which has currently three > versions (see below). > > To the best of my understanding, the use of this range is: > - compliant with version a > - acceptable with version b > - somewhat contradicting with version c > > version a analysis: > table 6.1 states that the trusted OS standard calls should be in the > range "0x02000000-0x7FFFFFFF", so the selected range is good. Section > 2.1 that defines a bit structure for function numbers for both > yielding and fast calls and the range is compatible. The range covered > by table 6.1 for Trusted OS calls is however much bigger that the bit > structure definition. As a result a 0x02000000 call is a yielding > Trusted OS call as per table 6.1 but a Yielding SiP call as per > section 2.1. > > version b analysis: > table 6.2 states that the trusted OS yielding calls should be in the > range "0x02000000-0x1FFFFFFF" and that the range > "0x20000000-0x7FFFFFFF" is "reserved for future expansion of Trusted > OS Yielding Calls". So the range is acceptable but poorly selected. > There is the same inconsistency as version a when it comes to > qualifying a 0x02000000 call: table 6.2 says it is a Trusted OS > yielding call, section 2.5 says it is a yielding SiP call. > > version c analysis: > section 2.5.1 now clearly states that the bit structure is only for > Fast calls. and both section 2.52 and table 6.2 state that Trusted OS > calls should be in the range "0x02000000-0x1FFFFFFF". both section > 2.5.2 and 6 qualify the 0x02000000 call as a Trusted OS yielding > call. > > > I think that version a and b have inconsistent between chapter 2 and > 6. Version c brings internal consistency but seems to be not in > alignment with best practices. > > I guess there is a need to both address internal document > inconsistency and better reflect existing products. > > Any thoughts? > > -FF > > > version a: > > https://drive.google.com/file/d/1OclQZk0o28n5ZUIYeTuFICbLiGWzOvxH/view?usp=sharing > version b: > https://static.docs.arm.com/den0028/b/ARM_DEN0028B_SMC_Calling_Convention.pdf > version c: > > https://static.docs.arm.com/den0028/c/Q1-ARM-DEN-0028_SMC_Calling_Convention_v1_2_Non_Conf_EAC.pdf > _______________________________________________ > boot-architecture mailing list > [email protected] > https://lists.linaro.org/mailman/listinfo/boot-architecture > > IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, please notify the sender immediately and do not disclose the > contents to any other person, use it for any purpose, or store or copy the > information in any medium. Thank you. > -- François-Frédéric Ozog | *Director Linaro Edge & Fog Computing Group* T: +33.67221.6485 [email protected] | Skype: ffozog _______________________________________________ boot-architecture mailing list [email protected] https://lists.linaro.org/mailman/listinfo/boot-architecture
