Hi all,
Recently we had an internal discussion on the merits of introducing semantics to commit messages pushed to the main TF-A repository, the conclusion being that we would look to adopting the Conventional Commits<https://www.conventionalcommits.org/en/v1.0.0/> specification in the near future. There was one major reason for this, which was to help us in automating the changelog in future releases, but it might also help us to dramatically reduce the overall amount of work needed to make a formal release in the future.
This requires some buy-in (or buy-out, in this case) from maintainers because - even though it's to only a relatively minor extent - it does involve an adjustment to everybody's workflow. Notably, commit messages will be expected to adopt the structure defined by the specification, which will be enforced by the CI. Most commits that go upstream today adhere to "something that looks like Conventional Commits", so the change is not exactly sweeping, but any change has the potential be an inconvenience.
With that in mind, I propose the following:
* We collectively adopt the specification, enforced only for @arm.com contributors until such a time that the majority of maintainers are familiar with the new demands
* We suggest - in the prerequisites documentation - the installation of two helper tools:
* Commitizen<https://github.com/commitizen/cz-cli>
* Commitlint<https://github.com/conventional-changelog/commitlint>
Installation of these tools will be optional, but I believe they can help with the transition. In the patches currently in review, they are installed as Git hooks automatically upon execution of npm install, so it requires no manual installation or configuration (other than a relatively up-to-date Node.js installation).
You'll find the patches here<https://review.trustedfirmware.org/q/topic:%22ck%252Fconventional-commits%2…>, and specifically the changes to the prerequisites documentation here<https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/8224/1/docs/…>. Feel free to review these changes if you have comments specifically on their implementation.
Let me know if you have any questions or concerns. If everybody's on board, we can look to have this upstreamed shortly.
Chris
Hi Daniele
You can use the ‘flag’ field to mention the platform-specific data(in your case, a build number). Usage of the ‘flag’ field(64 bit) in the toc_header are as below:
1. Bits 0-31 -> reserved
2. Bits 32-47 -> platform defined data
3. Bits 48-63 -> reserved
You can make use of the flag[32:47] to put build information. I am not sure if you can accommodate epoch (converted timestamp) into this field but, you can encode any data to fit into this 16bit flag field to identify the FIP build.
You can use a build command: fiptool update/create --plat-toc-flags <platform defined data> <your fip bin path> to put the platform defined data in the FIP image.
Thanks
Manish Badarkhe
From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> on behalf of Daniele Alessandrelli via TF-A <tf-a(a)lists.trustedfirmware.org>
Date: Wednesday, 10 February 2021 at 17:04
To: tf-a(a)lists.trustedfirmware.org <tf-a(a)lists.trustedfirmware.org>
Subject: [TF-A] Getting BUILD_STRING from FIP file
Hi,
Is there a way to get BUILD_STRING (or a similar string / number that
uniquely identifies the TF-A build, e.g., BUILD_MESSAGE_TIMESTAMP) from
the FIP file?
Basically, I'm trying to find a way to know the build number of a FIP
without flashing it.
I've seen that the FIP TOC header has a 32-bit field named
'serial_number'. Can it be used to this end? I'm considering
converting BUILD_MESSAGE_TIMESTAMP into an epoch and adding it as
'serial number', but I'm worried that might be an unintended usage of
the 'serial_number' field.
Regards,
Daniele
--
TF-A mailing list
TF-A(a)lists.trustedfirmware.org
https://lists.trustedfirmware.org/mailman/listinfo/tf-a
Hi,
Is there a way to get BUILD_STRING (or a similar string / number that
uniquely identifies the TF-A build, e.g., BUILD_MESSAGE_TIMESTAMP) from
the FIP file?
Basically, I'm trying to find a way to know the build number of a FIP
without flashing it.
I've seen that the FIP TOC header has a 32-bit field named
'serial_number'. Can it be used to this end? I'm considering
converting BUILD_MESSAGE_TIMESTAMP into an epoch and adding it as
'serial number', but I'm worried that might be an unintended usage of
the 'serial_number' field.
Regards,
Daniele
Hi All,
The next TF-A Tech Forum is scheduled for Thu 11th February 2021 16:00 – 17:00 (GMT).
Agenda:
* TF-A: Open-CI Introduction & Status
* Presented by Joanna Farley with support from Linaro OpenCI Enablement Team
* Having a Public CI (Continuous Integration) extensible system has been a goal for a while and this presentation will give an introduction and a high level overview along with the current status. A brief walk through what CI jobs are available, when they are run and how results can be accessed will be shown/demoed. Deeper dives into the OpenCI results and how to analyse will be the subject of future Tech Forum sessions.
If TF-A contributors have anything they wish to present at any future TF-A tech forum please contact me to have that scheduled.
Previous sessions, both recording and presentation material can be found on the trustedfirmware.org TF-A Technical meeting webpage: https://www.trustedfirmware.org/meetings/tf-a-technical-forum/
A scheduling tracking page is also available to help track sessions suggested: https://developer.trustedfirmware.org/w/tf_a/tf-a-tech-forum-scheduling/ Final decisions on what will be presented will be shared a few days before the next meeting on the TF-A mailing list.
Join Zoom Meeting
https://zoom.us/j/9159704974<https://www.google.com/url?q=https%3A%2F%2Fzoom.us%2Fj%2F9159704974&sa=D&us…>
Meeting ID: 915 970 4974
One tap mobile
+16465588656,,9159704974# US (New York)
+16699009128,,9159704974# US (San Jose)
Dial by your location
+1 646 558 8656 US (New York)
+1 669 900 9128 US (San Jose)
877 853 5247 US Toll-free
888 788 0099 US Toll-free
Meeting ID: 915 970 4974
Find your local number: https://zoom.us/u/ad27hc6t7h<https://www.google.com/url?q=https%3A%2F%2Fzoom.us%2Fu%2Fad27hc6t7h&sa=D&us…>
Thanks
Joanna
All right. Thank you Manish and Olivier for your feedback. You can close this topic. Oliver answered the concern I had regarding implementing a vector table during boot time.
Ian Burres
Cybersecurity R&D
> On Feb 3, 2021, at 3:14 AM, tf-a-request(a)lists.trustedfirmware.org wrote:
>
> Send TF-A mailing list submissions to
> tf-a(a)lists.trustedfirmware.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.trustedfirmware.org/mailman/listinfo/tf-a
> or, via email, send a message with subject or body 'help' to
> tf-a-request(a)lists.trustedfirmware.org
>
> You can reach the person managing the list at
> tf-a-owner(a)lists.trustedfirmware.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of TF-A digest..."
>
>
> Today's Topics:
>
> 1. Re: 1023 spurious interrupt (AT&T)
> 2. Re: 1023 spurious interrupt (Olivier Deprez)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 2 Feb 2021 18:15:25 -0700
> From: AT&T <iburres(a)att.net>
> To: tf-a(a)lists.trustedfirmware.org
> Subject: Re: [TF-A] 1023 spurious interrupt
> Message-ID: <04497C24-78D2-460F-BCC0-535998937145(a)att.net>
> Content-Type: text/plain; charset=utf-8
>
> Yep, I had an O not a zero. Don’t see a difference yet, but that definitely needed to be fixed. Thank you.
>
> Ian Burres
> Cybersecurity R&D
>
>
>> On Feb 2, 2021, at 3:53 PM, tf-a-request(a)lists.trustedfirmware.org wrote:
>>
>> Send TF-A mailing list submissions to
>> tf-a(a)lists.trustedfirmware.org
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>> https://lists.trustedfirmware.org/mailman/listinfo/tf-a
>> or, via email, send a message with subject or body 'help' to
>> tf-a-request(a)lists.trustedfirmware.org
>>
>> You can reach the person managing the list at
>> tf-a-owner(a)lists.trustedfirmware.org
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of TF-A digest..."
>>
>>
>> Today's Topics:
>>
>> 1. Re: Spurious interrupt 1023 (Ian Burres)
>> 2. Re: Spurious interrupt 1023 (Manish Pandey2)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Tue, 2 Feb 2021 14:03:05 -0700
>> From: Ian Burres <iburres(a)att.net>
>> To: Olivier Deprez <Olivier.Deprez(a)arm.com>,
>> "tf-a(a)lists.trustedfirmware.org" <tf-a(a)lists.trustedfirmware.org>
>> Subject: Re: [TF-A] Spurious interrupt 1023
>> Message-ID: <20210202210320.2C48741B32(a)lists.trustedfirmware.org>
>> Content-Type: text/plain; charset="utf-8"
>>
>> UPDATE: I managed to get the Pi to complete the boot process, which is a major hurdle I have been trying to overcome.
>>
>> As for your questions Olivier:
>>
>> The vector table is loaded during bl31 (its called in the bl31_main.c main() function, right after bl31_platform_setup()). The Pi 4B uses GICv2 (your assumption was correct) and the BCM2711 chip.
>>
>> Right now both my irq and fiq handlers use: ID = gicv2_get_pending_interrupt_id(); to read the INTID.
>>
>> Neither handler does anything else other than print the ID, which returns 1023 for fiq only, using HS_DEBUG(). Nothing returns for irq.
>>
>> Build options are: PLAT=rpi4 DEBUG=1 LOG_LEVEL=50 RUNTIME_UART=2 GICV2_GO_FOR_EL3=1
>>
>> Wasn’t trying to route the UART RX interrupt to EL3, though that’s not a bad idea (FIFO, right?) . However, I have been exploring the idea of generating an ARM timer interrupt (not system timer), but I couldn’t get past the boot issue, which seems to have now been resolved.
>>
>> Questions: Do you see any reason why loading the vector table during the boot process will prevent interrupts from being routed to EL3 correctly? If you do not, then I think I can take it from here.
>>
>> Sent from Mail for Windows 10
>>
>> From: Olivier Deprez
>> Sent: Monday, February 1, 2021 2:36 AM
>> To: tf-a(a)lists.trustedfirmware.org; AT&T
>> Subject: Re: [TF-A] Spurious interrupt 1023
>>
>> Hi Ian,
>>
>> I guess we'll need a bit more details in order to help you.
>> Which platform are you using? which GIC version is it using (looks like GICv2?) ?
>> How did you built TF-A for this platform (command line arguments)?
>> What is executing on your platform (e.g. linux in the non-secure world)? Is there any component in the SWd (apart from EL3 monitor) like a TEE?
>> Are you trying to route the UART RX interrupt to EL3?
>> Is this UART instance only owned by the SWd?
>> How did you setup the interrupt handler?
>> Which function are you using to read the INTID?
>>
>> Regards,
>> Olivier.
>>
>> ________________________________________
>> From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> on behalf of AT&T via TF-A <tf-a(a)lists.trustedfirmware.org>
>> Sent: 29 January 2021 21:08
>> To: tf-a(a)lists.trustedfirmware.org
>> Subject: [TF-A] Spurious interrupt 1023
>>
>> I asked a similar question before, but I have since made some headway concerning routing fiq interrupts to EL3. I placed an HS_DEBUG command to print the ID, which returns 1023. The RX signal on one of the attached UARTs causes a solid red light and the debug message continuously loops. When I use the functions from gicv2.h, I receive an assertion error regarding MAX_SPI_ID, but the looping stops.
>>
>> I think the 1023 ID suggests non-secure is receiving a secure interrupt OR I’m dealing with a possible race condition. Any thoughts? Should I attach my code?
>>
>>
>>
>> Ian Burres
>> Cybersecurity R&D
>>
>>
>> --
>> TF-A mailing list
>> TF-A(a)lists.trustedfirmware.org
>> https://lists.trustedfirmware.org/mailman/listinfo/tf-a
>>
>>
Hi,
Stepping back to the initial thread, I now miss the rationale for routing interrupts to EL3.
"I have successfully implement a Linux driver that allows me to dump kernel page tables and memory; however, I cannot see user page tables (even after running a CPU intensive program ). I believe the only way to view user page tables is to have interrupts routed to EL3 – a Linux driver is not sufficient."
If your intent is to dump user process page tables, that's something to do using the linux kernel mm framework, and not necessarily at EL3. Not sure why a "linux driver is not sufficient". More inputs on this may be beneficial.
Nevertheless if you need a service in EL3 to do "introspection", you would rather write a form of SiP service accessed through SMC (not necessarily routing interrupts through FIQ).
As for the code snippets, replacing vbar_el3 with your own vector table looks wrong.
This will break any service call back into EL3 when linux is booted (e.g. PSCI calls....)
If you really want to route interrupts to EL3 you shall use the Interrupt Handling Framework as Manish suggested.
e.g.
uint64_t fiq_handler(uint32_t id, uint32_t flags, void *handle, void *cookie)
{
[...]
return 0;
}
void register_my_interrupt(void)
{
int32_t rc, flags = 0;
plat_ic_set_interrupt_type(intid, INTR_TYPE_EL3);
set_interrupt_rm_flag(flags, NON_SECURE);
rc = register_interrupt_type_handler(INTR_TYPE_EL3, fiq_handler, flags);
NOTICE("register_interrupt_type_handler %d\n", rc);
}
Regards,
Olivier.
________________________________________
From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> on behalf of AT&T via TF-A <tf-a(a)lists.trustedfirmware.org>
Sent: 03 February 2021 02:15
To: tf-a(a)lists.trustedfirmware.org
Subject: Re: [TF-A] 1023 spurious interrupt
Yep, I had an O not a zero. Don’t see a difference yet, but that definitely needed to be fixed. Thank you.
Ian Burres
Cybersecurity R&D
> On Feb 2, 2021, at 3:53 PM, tf-a-request(a)lists.trustedfirmware.org wrote:
>
> Send TF-A mailing list submissions to
> tf-a(a)lists.trustedfirmware.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.trustedfirmware.org/mailman/listinfo/tf-a
> or, via email, send a message with subject or body 'help' to
> tf-a-request(a)lists.trustedfirmware.org
>
> You can reach the person managing the list at
> tf-a-owner(a)lists.trustedfirmware.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of TF-A digest..."
>
>
> Today's Topics:
>
> 1. Re: Spurious interrupt 1023 (Ian Burres)
> 2. Re: Spurious interrupt 1023 (Manish Pandey2)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 2 Feb 2021 14:03:05 -0700
> From: Ian Burres <iburres(a)att.net>
> To: Olivier Deprez <Olivier.Deprez(a)arm.com>,
> "tf-a(a)lists.trustedfirmware.org" <tf-a(a)lists.trustedfirmware.org>
> Subject: Re: [TF-A] Spurious interrupt 1023
> Message-ID: <20210202210320.2C48741B32(a)lists.trustedfirmware.org>
> Content-Type: text/plain; charset="utf-8"
>
> UPDATE: I managed to get the Pi to complete the boot process, which is a major hurdle I have been trying to overcome.
>
> As for your questions Olivier:
>
> The vector table is loaded during bl31 (its called in the bl31_main.c main() function, right after bl31_platform_setup()). The Pi 4B uses GICv2 (your assumption was correct) and the BCM2711 chip.
>
> Right now both my irq and fiq handlers use: ID = gicv2_get_pending_interrupt_id(); to read the INTID.
>
> Neither handler does anything else other than print the ID, which returns 1023 for fiq only, using HS_DEBUG(). Nothing returns for irq.
>
> Build options are: PLAT=rpi4 DEBUG=1 LOG_LEVEL=50 RUNTIME_UART=2 GICV2_GO_FOR_EL3=1
>
> Wasn’t trying to route the UART RX interrupt to EL3, though that’s not a bad idea (FIFO, right?) . However, I have been exploring the idea of generating an ARM timer interrupt (not system timer), but I couldn’t get past the boot issue, which seems to have now been resolved.
>
> Questions: Do you see any reason why loading the vector table during the boot process will prevent interrupts from being routed to EL3 correctly? If you do not, then I think I can take it from here.
>
> Sent from Mail for Windows 10
>
> From: Olivier Deprez
> Sent: Monday, February 1, 2021 2:36 AM
> To: tf-a(a)lists.trustedfirmware.org; AT&T
> Subject: Re: [TF-A] Spurious interrupt 1023
>
> Hi Ian,
>
> I guess we'll need a bit more details in order to help you.
> Which platform are you using? which GIC version is it using (looks like GICv2?) ?
> How did you built TF-A for this platform (command line arguments)?
> What is executing on your platform (e.g. linux in the non-secure world)? Is there any component in the SWd (apart from EL3 monitor) like a TEE?
> Are you trying to route the UART RX interrupt to EL3?
> Is this UART instance only owned by the SWd?
> How did you setup the interrupt handler?
> Which function are you using to read the INTID?
>
> Regards,
> Olivier.
>
> ________________________________________
> From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> on behalf of AT&T via TF-A <tf-a(a)lists.trustedfirmware.org>
> Sent: 29 January 2021 21:08
> To: tf-a(a)lists.trustedfirmware.org
> Subject: [TF-A] Spurious interrupt 1023
>
> I asked a similar question before, but I have since made some headway concerning routing fiq interrupts to EL3. I placed an HS_DEBUG command to print the ID, which returns 1023. The RX signal on one of the attached UARTs causes a solid red light and the debug message continuously loops. When I use the functions from gicv2.h, I receive an assertion error regarding MAX_SPI_ID, but the looping stops.
>
> I think the 1023 ID suggests non-secure is receiving a secure interrupt OR I’m dealing with a possible race condition. Any thoughts? Should I attach my code?
>
>
>
> Ian Burres
> Cybersecurity R&D
>
>
> --
> TF-A mailing list
> TF-A(a)lists.trustedfirmware.org
> https://lists.trustedfirmware.org/mailman/listinfo/tf-a
>
>
Yep, I had an O not a zero. Don’t see a difference yet, but that definitely needed to be fixed. Thank you.
Ian Burres
Cybersecurity R&D
> On Feb 2, 2021, at 3:53 PM, tf-a-request(a)lists.trustedfirmware.org wrote:
>
> Send TF-A mailing list submissions to
> tf-a(a)lists.trustedfirmware.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.trustedfirmware.org/mailman/listinfo/tf-a
> or, via email, send a message with subject or body 'help' to
> tf-a-request(a)lists.trustedfirmware.org
>
> You can reach the person managing the list at
> tf-a-owner(a)lists.trustedfirmware.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of TF-A digest..."
>
>
> Today's Topics:
>
> 1. Re: Spurious interrupt 1023 (Ian Burres)
> 2. Re: Spurious interrupt 1023 (Manish Pandey2)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 2 Feb 2021 14:03:05 -0700
> From: Ian Burres <iburres(a)att.net>
> To: Olivier Deprez <Olivier.Deprez(a)arm.com>,
> "tf-a(a)lists.trustedfirmware.org" <tf-a(a)lists.trustedfirmware.org>
> Subject: Re: [TF-A] Spurious interrupt 1023
> Message-ID: <20210202210320.2C48741B32(a)lists.trustedfirmware.org>
> Content-Type: text/plain; charset="utf-8"
>
> UPDATE: I managed to get the Pi to complete the boot process, which is a major hurdle I have been trying to overcome.
>
> As for your questions Olivier:
>
> The vector table is loaded during bl31 (its called in the bl31_main.c main() function, right after bl31_platform_setup()). The Pi 4B uses GICv2 (your assumption was correct) and the BCM2711 chip.
>
> Right now both my irq and fiq handlers use: ID = gicv2_get_pending_interrupt_id(); to read the INTID.
>
> Neither handler does anything else other than print the ID, which returns 1023 for fiq only, using HS_DEBUG(). Nothing returns for irq.
>
> Build options are: PLAT=rpi4 DEBUG=1 LOG_LEVEL=50 RUNTIME_UART=2 GICV2_GO_FOR_EL3=1
>
> Wasn’t trying to route the UART RX interrupt to EL3, though that’s not a bad idea (FIFO, right?) . However, I have been exploring the idea of generating an ARM timer interrupt (not system timer), but I couldn’t get past the boot issue, which seems to have now been resolved.
>
> Questions: Do you see any reason why loading the vector table during the boot process will prevent interrupts from being routed to EL3 correctly? If you do not, then I think I can take it from here.
>
> Sent from Mail for Windows 10
>
> From: Olivier Deprez
> Sent: Monday, February 1, 2021 2:36 AM
> To: tf-a(a)lists.trustedfirmware.org; AT&T
> Subject: Re: [TF-A] Spurious interrupt 1023
>
> Hi Ian,
>
> I guess we'll need a bit more details in order to help you.
> Which platform are you using? which GIC version is it using (looks like GICv2?) ?
> How did you built TF-A for this platform (command line arguments)?
> What is executing on your platform (e.g. linux in the non-secure world)? Is there any component in the SWd (apart from EL3 monitor) like a TEE?
> Are you trying to route the UART RX interrupt to EL3?
> Is this UART instance only owned by the SWd?
> How did you setup the interrupt handler?
> Which function are you using to read the INTID?
>
> Regards,
> Olivier.
>
> ________________________________________
> From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> on behalf of AT&T via TF-A <tf-a(a)lists.trustedfirmware.org>
> Sent: 29 January 2021 21:08
> To: tf-a(a)lists.trustedfirmware.org
> Subject: [TF-A] Spurious interrupt 1023
>
> I asked a similar question before, but I have since made some headway concerning routing fiq interrupts to EL3. I placed an HS_DEBUG command to print the ID, which returns 1023. The RX signal on one of the attached UARTs causes a solid red light and the debug message continuously loops. When I use the functions from gicv2.h, I receive an assertion error regarding MAX_SPI_ID, but the looping stops.
>
> I think the 1023 ID suggests non-secure is receiving a secure interrupt OR I’m dealing with a possible race condition. Any thoughts? Should I attach my code?
>
>
>
> Ian Burres
> Cybersecurity R&D
>
>
> --
> TF-A mailing list
> TF-A(a)lists.trustedfirmware.org
> https://lists.trustedfirmware.org/mailman/listinfo/tf-a
>
>
I have seen same thing in your previous thread also, could you please confirm that the build option GICV2_G0_FOR_EL3 instead of GICV2_GO_FOR_EL3 (zero instead of "O").
________________________________
From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> on behalf of Ian Burres via TF-A <tf-a(a)lists.trustedfirmware.org>
Sent: 02 February 2021 21:03
To: Olivier Deprez <Olivier.Deprez(a)arm.com>; tf-a(a)lists.trustedfirmware.org <tf-a(a)lists.trustedfirmware.org>
Subject: Re: [TF-A] Spurious interrupt 1023
UPDATE: I managed to get the Pi to complete the boot process, which is a major hurdle I have been trying to overcome.
As for your questions Olivier:
The vector table is loaded during bl31 (its called in the bl31_main.c main() function, right after bl31_platform_setup()). The Pi 4B uses GICv2 (your assumption was correct) and the BCM2711 chip.
Right now both my irq and fiq handlers use: ID = gicv2_get_pending_interrupt_id(); to read the INTID.
Neither handler does anything else other than print the ID, which returns 1023 for fiq only, using HS_DEBUG(). Nothing returns for irq.
Build options are: PLAT=rpi4 DEBUG=1 LOG_LEVEL=50 RUNTIME_UART=2 GICV2_GO_FOR_EL3=1
Wasn’t trying to route the UART RX interrupt to EL3, though that’s not a bad idea (FIFO, right?) . However, I have been exploring the idea of generating an ARM timer interrupt (not system timer), but I couldn’t get past the boot issue, which seems to have now been resolved.
Questions: Do you see any reason why loading the vector table during the boot process will prevent interrupts from being routed to EL3 correctly? If you do not, then I think I can take it from here.
Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10
From: Olivier Deprez<mailto:Olivier.Deprez@arm.com>
Sent: Monday, February 1, 2021 2:36 AM
To: tf-a(a)lists.trustedfirmware.org<mailto:tf-a@lists.trustedfirmware.org>; AT&T<mailto:iburres@att.net>
Subject: Re: [TF-A] Spurious interrupt 1023
Hi Ian,
I guess we'll need a bit more details in order to help you.
Which platform are you using? which GIC version is it using (looks like GICv2?) ?
How did you built TF-A for this platform (command line arguments)?
What is executing on your platform (e.g. linux in the non-secure world)? Is there any component in the SWd (apart from EL3 monitor) like a TEE?
Are you trying to route the UART RX interrupt to EL3?
Is this UART instance only owned by the SWd?
How did you setup the interrupt handler?
Which function are you using to read the INTID?
Regards,
Olivier.
________________________________________
From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> on behalf of AT&T via TF-A <tf-a(a)lists.trustedfirmware.org>
Sent: 29 January 2021 21:08
To: tf-a(a)lists.trustedfirmware.org
Subject: [TF-A] Spurious interrupt 1023
I asked a similar question before, but I have since made some headway concerning routing fiq interrupts to EL3. I placed an HS_DEBUG command to print the ID, which returns 1023. The RX signal on one of the attached UARTs causes a solid red light and the debug message continuously loops. When I use the functions from gicv2.h, I receive an assertion error regarding MAX_SPI_ID, but the looping stops.
I think the 1023 ID suggests non-secure is receiving a secure interrupt OR I’m dealing with a possible race condition. Any thoughts? Should I attach my code?
Ian Burres
Cybersecurity R&D
--
TF-A mailing list
TF-A(a)lists.trustedfirmware.org
https://lists.trustedfirmware.org/mailman/listinfo/tf-a
Hi Ian,
I guess we'll need a bit more details in order to help you.
Which platform are you using? which GIC version is it using (looks like GICv2?) ?
How did you built TF-A for this platform (command line arguments)?
What is executing on your platform (e.g. linux in the non-secure world)? Is there any component in the SWd (apart from EL3 monitor) like a TEE?
Are you trying to route the UART RX interrupt to EL3?
Is this UART instance only owned by the SWd?
How did you setup the interrupt handler?
Which function are you using to read the INTID?
Regards,
Olivier.
________________________________________
From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> on behalf of AT&T via TF-A <tf-a(a)lists.trustedfirmware.org>
Sent: 29 January 2021 21:08
To: tf-a(a)lists.trustedfirmware.org
Subject: [TF-A] Spurious interrupt 1023
I asked a similar question before, but I have since made some headway concerning routing fiq interrupts to EL3. I placed an HS_DEBUG command to print the ID, which returns 1023. The RX signal on one of the attached UARTs causes a solid red light and the debug message continuously loops. When I use the functions from gicv2.h, I receive an assertion error regarding MAX_SPI_ID, but the looping stops.
I think the 1023 ID suggests non-secure is receiving a secure interrupt OR I’m dealing with a possible race condition. Any thoughts? Should I attach my code?
Ian Burres
Cybersecurity R&D
--
TF-A mailing list
TF-A(a)lists.trustedfirmware.org
https://lists.trustedfirmware.org/mailman/listinfo/tf-a
I asked a similar question before, but I have since made some headway concerning routing fiq interrupts to EL3. I placed an HS_DEBUG command to print the ID, which returns 1023. The RX signal on one of the attached UARTs causes a solid red light and the debug message continuously loops. When I use the functions from gicv2.h, I receive an assertion error regarding MAX_SPI_ID, but the looping stops.
I think the 1023 ID suggests non-secure is receiving a secure interrupt OR I’m dealing with a possible race condition. Any thoughts? Should I attach my code?
Ian Burres
Cybersecurity R&D
Hi Bin Wu,
Thanks for coming up with this question.
As per the below signature verification code, you raised a valid point that signature gets verified before ROTPK hash verification.
1. Get ROTPK hash from the platform (Using platform implemented method e.g., HW register).
2. Extract ROTPK from the image itself.
3. Use ROTPK to verify the image signature.
4. Calculate the hash of ROTPK and compare it against the hash received in step[1].
But we can't see any concern as the system fails to boot anyways at step [4] if the ROTPK gets corrupted.
Regards
Manish Badarkhe
From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org> on behalf of 吴斌(郅隆) via TF-A <tf-a(a)lists.trustedfirmware.org>
Date: Friday, 29 January 2021 at 07:55
To: tf-a(a)lists.trustedfirmware.org <tf-a(a)lists.trustedfirmware.org>
Subject: [TF-A] PK hash verify after signature virified
Hi All,
I am studying tbbr module in ATF recenlty. I have a little confusion about the ROTPK hash verify flow.
In ATF current implementation, we will verify the signature first, then verify the ROTPK hash.
But in my understanding, we should verify ROTPK first then verify signature.
So, what is the consideration that we use current flow in ATF?
Thanks for you patience
BRs,
Bin Wu
Hi All,
I am studying tbbr module in ATF recenlty. I have a little confusion about the ROTPK hash verify flow.
In ATF current implementation, we will verify the signature first, then verify the ROTPK hash.
But in my understanding, we should verify ROTPK first then verify signature.
So, what is the consideration that we use current flow in ATF?
Thanks for you patience
BRs,
Bin Wu
Hi All,
The next TF-A Tech Forum is scheduled for Thu 28th January 2021 16:00 – 17:00 (GMT).
Agenda:
* TF-A: Automotive Enhance (AE) Architecture Support Requirements Discussion
* Presented by Manish Pandy and Manish Badarkhe
* A discussion on the needs for the Automotive Enhance (AE) space and how TF-A can support that with CPU and GIC capabilities. The goal is to follow-up the recent email to the TF-A mailing list and try and understand project needs in this space by talking to the project community.
If TF-A contributors have anything they wish to present at any future TF-A tech forum please contact me to have that scheduled.
Previous sessions, both recording and presentation material can be found on the trustedfirmware.org TF-A Technical meeting webpage: https://www.trustedfirmware.org/meetings/tf-a-technical-forum/
A scheduling tracking page is also available to help track sessions suggested: https://developer.trustedfirmware.org/w/tf_a/tf-a-tech-forum-scheduling/ Final decisions on what will be presented will be shared a few days before the next meeting on the TF-A mailing list.
Join Zoom Meeting
https://zoom.us/j/9159704974<https://www.google.com/url?q=https%3A%2F%2Fzoom.us%2Fj%2F9159704974&sa=D&us…>
Meeting ID: 915 970 4974
One tap mobile
+16465588656,,9159704974# US (New York)
+16699009128,,9159704974# US (San Jose)
Dial by your location
+1 646 558 8656 US (New York)
+1 669 900 9128 US (San Jose)
877 853 5247 US Toll-free
888 788 0099 US Toll-free
Meeting ID: 915 970 4974
Find your local number: https://zoom.us/u/ad27hc6t7h<https://www.google.com/url?q=https%3A%2F%2Fzoom.us%2Fu%2Fad27hc6t7h&sa=D&us…>
Thanks
Joanna
<Cc alias>
I guess, something went wrong when I clicked "Reply all" the first time.
Manish, can you also talk about the tasks that Arm is willing to work on? Then we can ask for volunteers for the remaining ones. I'm sure, NVIDIA will contribute as this topic is close to our heart.
-Varun
From: Manish Pandey2 <Manish.Pandey2(a)arm.com>
Sent: Monday, January 25, 2021 8:05 AM
To: Varun Wadekar <vwadekar(a)nvidia.com>
Cc: Filipe Rinaldi <Filipe.Rinaldi(a)arm.com>; Robin Randhawa <Robin.Randhawa(a)ARM.com>; Ed Doxat <Ed.Doxat(a)arm.com>; Joanna Farley <joannafarley(a)icloud.com>; Manish Badarkhe <Manish.Badarkhe(a)arm.com>; Olivier Deprez <Olivier.Deprez(a)arm.com>; Matteo Carlini <Matteo.Carlini(a)arm.com>; Doug Richmond <Doug.Richmond(a)arm.com>
Subject: Re: Gather GIC changes required for safety critical machines
External email: Use caution opening links or attachments
++ Other Arm folks
Just realized that Varun has reduced the recipients(guess that was intentional)
________________________________
From: Manish Pandey2 <Manish.Pandey2(a)arm.com<mailto:Manish.Pandey2@arm.com>>
Sent: 25 January 2021 10:15
To: Varun Wadekar <vwadekar(a)nvidia.com<mailto:vwadekar@nvidia.com>>
Cc: Filipe Rinaldi <Filipe.Rinaldi(a)arm.com<mailto:Filipe.Rinaldi@arm.com>>; Robin Randhawa <Robin.Randhawa(a)ARM.com<mailto:Robin.Randhawa@ARM.com>>; Ed Doxat <Ed.Doxat(a)arm.com<mailto:Ed.Doxat@arm.com>>
Subject: Re: Gather GIC changes required for safety critical machines
Hi Varun,
We are trying to do both, based on interest from community we will prioritize these tasks.
The reason why we can't do all the asks (mentioned in the list) ourselves is, currently we do not have "use cases/platforms" to test all the features, so we would rely on wider community to understand the requirements and work together to develop/test those features.
Thanks
Manish
________________________________
From: Varun Wadekar <vwadekar(a)nvidia.com<mailto:vwadekar@nvidia.com>>
Sent: 22 January 2021 17:46
To: Manish Pandey2 <Manish.Pandey2(a)arm.com<mailto:Manish.Pandey2@arm.com>>
Cc: Filipe Rinaldi <Filipe.Rinaldi(a)arm.com<mailto:Filipe.Rinaldi@arm.com>>; Robin Randhawa <Robin.Randhawa(a)ARM.com<mailto:Robin.Randhawa@ARM.com>>; Ed Doxat <Ed.Doxat(a)arm.com<mailto:Ed.Doxat@arm.com>>
Subject: RE: Gather GIC changes required for safety critical machines
HI Manish,
Thanks for starting this discussion. The list captures all the functionalities that are useful and interesting to us.
Trying to understand the ask - are you trying to get feedback to allow you to prioritize the feature list? Or are you asking for the community to rate importance of these requirements?
I am afraid, if there isn't enough interest the list might be trimmed which would be an absolute shame.
-Varun
From: TF-A <tf-a-bounces(a)lists.trustedfirmware.org<mailto:tf-a-bounces@lists.trustedfirmware.org>> On Behalf Of Manish Pandey2 via TF-A
Sent: Friday, January 22, 2021 8:02 AM
To: tf-a(a)lists.trustedfirmware.org<mailto:tf-a@lists.trustedfirmware.org>
Cc: Filipe Rinaldi <Filipe.Rinaldi(a)arm.com<mailto:Filipe.Rinaldi@arm.com>>; Robin Randhawa <Robin.Randhawa(a)ARM.com<mailto:Robin.Randhawa@ARM.com>>; Ed Doxat <Ed.Doxat(a)arm.com<mailto:Ed.Doxat@arm.com>>
Subject: [TF-A] Gather GIC changes required for safety critical machines
External email: Use caution opening links or attachments
Hi,
GIC600-AE is variant of GIC for safety critical machines, though its TRM is publicly available from quite some time but currently we do not have support in TF-A.
Purpose of this email is to kick start discussions around various possible GIC requirements as far as safety critical machines are concerned.
We have created following list of requirements based on inputs we got so far, changes are either adding new AE features or enhancements to existing drivers.
GIC-600AE feature requirement:
- Inject and detect RAS errors using Fault management unit(FMU)
- Validating feature parity with GIC600
- Running GIC IP in Dual core Lock-step(DCLS) mode.
GIC/RAS driver enhancements:
- Read trace and PMU records
- Keep RAS error records alive across a reset
- Disable GICR frames of fused-off cores
- Support for message signalled interrupts
- Saving/Restoring additional GIC registers during PM events
Feel free to add any additional requirements.
If there is enough community interest during the next Tech-forum meeting(28th Jan) we would like to go through these requirements in more detail.
Thanks
Manish
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.
v9: - cosmetic changes (move if from patch2 to patch3, rename function name
and define).
v8: - use gpio 0 and 1, align dtb with kernel gpio-restart, gpio-poweroff,
change define names, trigger on upper front. (Peter Maydell).
v7: - same as v6, but resplit patches: patch 2 no function changes and refactor
gpio setup for virt platfrom and patch 3 adds secure gpio.
v6: - 64k align gpio memory region (Andrew Jones)
- adjusted memory region to map this address in the corresponding atf patch
v5: - removed vms flag, added fdt (Andrew Jones)
- added patch3 to combine secure and non secure pl061. It has to be
more easy to review if this changes are in the separate patch.
v4: rework patches accodring to Peter Maydells comments:
- split patches on gpio-pwr driver and arm-virt integration.
- start secure gpio only from virt-6.0.
- rework qemu interface for gpio-pwr to use 2 named gpio.
- put secure gpio to secure name space.
v3: added missed include qemu/log.h for qemu_log(..
v2: replace printf with qemu_log (Philippe Mathieu-Daudé)
This patch works together with ATF patch:
https://github.com/muvarov/arm-trusted-firmware/commit/886965bddb0624bdf851…
Maxim Uvarov (3):
hw: gpio: implement gpio-pwr driver for qemu reset/poweroff
arm-virt: refactor gpios creation
arm-virt: add secure pl061 for reset/power down
hw/arm/Kconfig | 1 +
hw/arm/virt.c | 111 ++++++++++++++++++++++++++++++++++--------
hw/gpio/Kconfig | 3 ++
hw/gpio/gpio_pwr.c | 70 ++++++++++++++++++++++++++
hw/gpio/meson.build | 1 +
include/hw/arm/virt.h | 2 +
6 files changed, 167 insertions(+), 21 deletions(-)
create mode 100644 hw/gpio/gpio_pwr.c
--
2.17.1
Hi,
GIC600-AE is variant of GIC for safety critical machines, though its TRM is publicly available from quite some time but currently we do not have support in TF-A.
Purpose of this email is to kick start discussions around various possible GIC requirements as far as safety critical machines are concerned.
We have created following list of requirements based on inputs we got so far, changes are either adding new AE features or enhancements to existing drivers.
GIC-600AE feature requirement:
- Inject and detect RAS errors using Fault management unit(FMU)
- Validating feature parity with GIC600
- Running GIC IP in Dual core Lock-step(DCLS) mode.
GIC/RAS driver enhancements:
- Read trace and PMU records
- Keep RAS error records alive across a reset
- Disable GICR frames of fused-off cores
- Support for message signalled interrupts
- Saving/Restoring additional GIC registers during PM events
Feel free to add any additional requirements.
If there is enough community interest during the next Tech-forum meeting(28th Jan) we would like to go through these requirements in more detail.
Thanks
Manish
v8: - use gpio 0 and 1, align dtb with kernel gpio-restart, gpio-poweroff,
change define names, trigger on upper front. (Peter Maydell).
v7: - same as v6, but resplit patches: patch 2 no function changes and refactor
gpio setup for virt platfrom and patch 3 adds secure gpio.
v6: - 64k align gpio memory region (Andrew Jones)
- adjusted memory region to map this address in the corresponding atf patch
v5: - removed vms flag, added fdt (Andrew Jones)
- added patch3 to combine secure and non secure pl061. It has to be
more easy to review if this changes are in the separate patch.
v4: rework patches accodring to Peter Maydells comments:
- split patches on gpio-pwr driver and arm-virt integration.
- start secure gpio only from virt-6.0.
- rework qemu interface for gpio-pwr to use 2 named gpio.
- put secure gpio to secure name space.
v3: added missed include qemu/log.h for qemu_log(..
v2: replace printf with qemu_log (Philippe Mathieu-Daudé)
This patch works together with ATF patch:
https://github.com/muvarov/arm-trusted-firmware/commit/886965bddb0624bdf851…
Maxim Uvarov (3):
hw: gpio: implement gpio-pwr driver for qemu reset/poweroff
arm-virt: refactor gpios creation
arm-virt: add secure pl061 for reset/power down
hw/arm/Kconfig | 1 +
hw/arm/virt.c | 111 ++++++++++++++++++++++++++++++++++--------
hw/gpio/Kconfig | 3 ++
hw/gpio/gpio_pwr.c | 70 ++++++++++++++++++++++++++
hw/gpio/meson.build | 1 +
include/hw/arm/virt.h | 2 +
6 files changed, 167 insertions(+), 21 deletions(-)
create mode 100644 hw/gpio/gpio_pwr.c
--
2.17.1
v7: - same as v6, but resplit patches: patch 2 no function changes and refactor
gpio setup for virt platfrom and patch 3 adds secure gpio.
v6: - 64k align gpio memory region (Andrew Jones)
- adjusted memory region to map this address in the corresponding atf patch
v5: - removed vms flag, added fdt (Andrew Jones)
- added patch3 to combine secure and non secure pl061. It has to be
more easy to review if this changes are in the separate patch.
v4: rework patches accodring to Peter Maydells comments:
- split patches on gpio-pwr driver and arm-virt integration.
- start secure gpio only from virt-6.0.
- rework qemu interface for gpio-pwr to use 2 named gpio.
- put secure gpio to secure name space.
v3: added missed include qemu/log.h for qemu_log(..
v2: replace printf with qemu_log (Philippe Mathieu-Daudé)
This patch works together with ATF patch:
https://github.com/muvarov/arm-trusted-firmware/commit/7556d07e87f755c602cd…
Previus discussion for reboot issue was here:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg757705.html
Maxim Uvarov (3):
hw: gpio: implement gpio-pwr driver for qemu reset/poweroff
arm-virt: refactor gpios creation
arm-virt: add secure pl061 for reset/power down
hw/arm/Kconfig | 1 +
hw/arm/virt.c | 117 ++++++++++++++++++++++++++++++++++--------
hw/gpio/Kconfig | 3 ++
hw/gpio/gpio_pwr.c | 70 +++++++++++++++++++++++++
hw/gpio/meson.build | 1 +
include/hw/arm/virt.h | 2 +
6 files changed, 174 insertions(+), 20 deletions(-)
create mode 100644 hw/gpio/gpio_pwr.c
--
2.17.1
v6: - 64k align gpio memory region (Andrew Jones)
- adjusted memory region to map this address in the corresponding atf patch
v5: - removed vms flag, added fdt (Andrew Jones)
- added patch3 to combine secure and non secure pl061. It has to be
more easy to review if this changes are in the separate patch.
v4: rework patches accodring to Peter Maydells comments:
- split patches on gpio-pwr driver and arm-virt integration.
- start secure gpio only from virt-6.0.
- rework qemu interface for gpio-pwr to use 2 named gpio.
- put secure gpio to secure name space.
v3: added missed include qemu/log.h for qemu_log(..
v2: replace printf with qemu_log (Philippe Mathieu-Daudé)
This patch works together with ATF patch:
https://github.com/muvarov/arm-trusted-firmware/commit/7556d07e87f755c602cd…
Previus discussion for reboot issue was here:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg757705.html
Maxim Uvarov (3):
hw: gpio: implement gpio-pwr driver for qemu reset/poweroff
arm-virt: add secure pl061 for reset/power down
arm-virt: combine code for secure and non secure pl061
hw/arm/Kconfig | 1 +
hw/arm/virt.c | 118 +++++++++++++++++++++++++++++++++++-------
hw/gpio/Kconfig | 3 ++
hw/gpio/gpio_pwr.c | 70 +++++++++++++++++++++++++
hw/gpio/meson.build | 1 +
include/hw/arm/virt.h | 2 +
6 files changed, 175 insertions(+), 20 deletions(-)
create mode 100644 hw/gpio/gpio_pwr.c
--
2.17.1
This event has been cancelled with this note:
"Cancelled - see the mail from Joanna for more details"
Title: TF-A Tech Forum
We run an open technical forum call for anyone to participate and it is not
restricted to Trusted Firmware project members. It will operate under the
guidance of the TF TSC. Feel free to forward this invite to
colleagues. Invites are via the TF-A mailing list and also published on the
Trusted Firmware website. Details are
here: https://www.trustedfirmware.org/meetings/tf-a-technical-forum/Tr…
Firmware is inviting you to a scheduled Zoom meeting.Join Zoom
Meetinghttps://zoom.us/j/9159704974Meeting ID: 915 970 4974One tap
mobile+16465588656,,9159704974# US (New York)+16699009128,,9159704974# US
(San Jose)Dial by your location +1 646 558
8656 US (New York) +1 669 900
9128 US (San Jose) 877 853 5247 US
Toll-free 888 788 0099 US Toll-freeMeeting ID:
915 970 4974Find your local
number: https://zoom.us/u/ad27hc6t7h
When: Thu 14 Jan 2021 16:00 – 17:00 United Kingdom Time
Calendar: tf-a(a)lists.trustedfirmware.org
Who:
* Bill Fletcher- creator
* marek.bykowski(a)gmail.com
* okash.khawaja(a)gmail.com
* tf-a(a)lists.trustedfirmware.org
Invitation from Google Calendar: https://calendar.google.com/calendar/
You are receiving this courtesy email at the account
tf-a(a)lists.trustedfirmware.org because you are an attendee of this event.
To stop receiving future updates for this event, decline this event.
Alternatively, you can sign up for a Google Account at
https://calendar.google.com/calendar/ and control your notification
settings for your entire calendar.
Forwarding this invitation could allow any recipient to send a response to
the organiser and be added to the guest list, invite others regardless of
their own invitation status or to modify your RSVP. Learn more at
https://support.google.com/calendar/answer/37135#forwarding
Apologies for the late notice I am cancelling this weeks TF-A Tech forum tomorrow as the subject I had hoped to get presented is not ready and I don’t have any alternative for this slot.
I will look to have something for the next session on 28th January.
Apologies for the late notice. Cancellations of the calendar invite will come from trustedformware.org as I don’t own the invite so it may not appear in your calendars until that is sent out.
Thanks
Joanna