diff mbox series

[v2] docs: fusa: Add Assumption of Use (AoU)

Message ID 20240911094456.2156647-1-ayan.kumar.halder@amd.com (mailing list archive)
State Superseded
Headers show
Series [v2] docs: fusa: Add Assumption of Use (AoU) | expand

Commit Message

Ayan Kumar Halder Sept. 11, 2024, 9:44 a.m. UTC
From: Michal Orzel <michal.orzel@amd.com>

AoU are the assumptions Xen relies on other components (eg platform, domains)
to fulfill its requirements. In our case, platform means a combination of
hardware, firmware and bootloader.

We have defined AoU in the intro.rst and added AoU for the generic timer.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from :-

v1 - 1. Removed the part of requirement which states that Xen exposes the
frequency of the system timer by reading the "clock-frequency" property.

2. Added a rationale for AoU.

3. Reworded the AoU.

 .../reqs/design-reqs/arm64/generic-timer.rst  | 24 ++++++++++++++++++-
 docs/fusa/reqs/intro.rst                      | 10 ++++++++
 2 files changed, 33 insertions(+), 1 deletion(-)

Comments

Julien Grall Sept. 11, 2024, 9:55 a.m. UTC | #1
Hi,

On 11/09/2024 10:44, Ayan Kumar Halder wrote:
> From: Michal Orzel <michal.orzel@amd.com>
> 
> AoU are the assumptions Xen relies on other components (eg platform, domains)
> to fulfill its requirements. In our case, platform means a combination of
> hardware, firmware and bootloader.
> 
> We have defined AoU in the intro.rst and added AoU for the generic timer.
> 
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
> Changes from :-
> 
> v1 - 1. Removed the part of requirement which states that Xen exposes the
> frequency of the system timer by reading the "clock-frequency" property.
> 
> 2. Added a rationale for AoU.
> 
> 3. Reworded the AoU.
> 
>   .../reqs/design-reqs/arm64/generic-timer.rst  | 24 ++++++++++++++++++-
>   docs/fusa/reqs/intro.rst                      | 10 ++++++++
>   2 files changed, 33 insertions(+), 1 deletion(-)
> 
> diff --git a/docs/fusa/reqs/design-reqs/arm64/generic-timer.rst b/docs/fusa/reqs/design-reqs/arm64/generic-timer.rst
> index f2a0cd7fb8..86d84a3c40 100644
> --- a/docs/fusa/reqs/design-reqs/arm64/generic-timer.rst
> +++ b/docs/fusa/reqs/design-reqs/arm64/generic-timer.rst
> @@ -30,7 +30,7 @@ Read system counter frequency
>   
>   Description:
>   Xen shall expose the frequency of the system counter to the domains in
> -CNTFRQ_EL0 register and/or domain device tree's "clock-frequency" property.
> +CNTFRQ_EL0 register.

This either wants to be split or explained in the commit message.

>   
>   Rationale:
>   
> @@ -116,6 +116,28 @@ Rationale:
>   
>   Comments:
>   
> +Covers:
> + - `XenProd~emulated_timer~1`
> +
> +Assumption of Use on the Platform
> +=================================
> +
> +Expose system timer frequency via register
> +------------------------------------------
> +
> +`XenSwdgn~arm64_generic_timer_plat_program_cntfrq_el0~1`
> +
> +Description:
> +Underlying platform shall program CNTFRQ_EL0 register with the value of system
> +timer frequency.
> +
> +Rationale:
> +Xen reads the CNTFRQ_EL0 register to get the value of system timer frequency.
> +While there is a provision to get this value by reading the "clock-frequency"
> +dt property [2], the use of this property is strongly discouraged.
> +
> +Comments:
> +
>   Covers:
>    - `XenProd~emulated_timer~1`
>   
> diff --git a/docs/fusa/reqs/intro.rst b/docs/fusa/reqs/intro.rst
> index 245a219ff2..aa85ff821c 100644
> --- a/docs/fusa/reqs/intro.rst
> +++ b/docs/fusa/reqs/intro.rst
> @@ -38,6 +38,16 @@ The requirements are linked using OpenFastTrace
>   OpenFastTrace parses through the requirements and generates a traceability
>   report.
>   
> +Assumption of Use
> +=================
> +
> +To fulfill one or more design requirements, there may be underlying assumptions
> +on one or more components that Xen interacts with directly or indirectly. For
> +eg, there may be assumptions on the underlying platform (hardware + firmware +
> +bootloader) to set certain registers, etc. The important thing here is that
> +anyone who validates these requirements, need to consider the assumption on the
> +other components.
> +
>   The following is the skeleton for a requirement.
>   
>   Title of the requirement

Cheers,
Ayan Kumar Halder Sept. 11, 2024, 11:24 a.m. UTC | #2
On 11/09/2024 10:55, Julien Grall wrote:
> Hi,
Hi,
>
> On 11/09/2024 10:44, Ayan Kumar Halder wrote:
>> From: Michal Orzel <michal.orzel@amd.com>
>>
>> AoU are the assumptions Xen relies on other components (eg platform, 
>> domains)
>> to fulfill its requirements. In our case, platform means a 
>> combination of
>> hardware, firmware and bootloader.
>>
>> We have defined AoU in the intro.rst and added AoU for the generic 
>> timer.
>>
>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> ---
>> Changes from :-
>>
>> v1 - 1. Removed the part of requirement which states that Xen exposes 
>> the
>> frequency of the system timer by reading the "clock-frequency" property.
>>
>> 2. Added a rationale for AoU.
>>
>> 3. Reworded the AoU.
>>
>>   .../reqs/design-reqs/arm64/generic-timer.rst  | 24 ++++++++++++++++++-
>>   docs/fusa/reqs/intro.rst                      | 10 ++++++++
>>   2 files changed, 33 insertions(+), 1 deletion(-)
>>
>> diff --git a/docs/fusa/reqs/design-reqs/arm64/generic-timer.rst 
>> b/docs/fusa/reqs/design-reqs/arm64/generic-timer.rst
>> index f2a0cd7fb8..86d84a3c40 100644
>> --- a/docs/fusa/reqs/design-reqs/arm64/generic-timer.rst
>> +++ b/docs/fusa/reqs/design-reqs/arm64/generic-timer.rst
>> @@ -30,7 +30,7 @@ Read system counter frequency
>>     Description:
>>   Xen shall expose the frequency of the system counter to the domains in
>> -CNTFRQ_EL0 register and/or domain device tree's "clock-frequency" 
>> property.
>> +CNTFRQ_EL0 register.
>
> This either wants to be split or explained in the commit message.

Yes, I will explain this in the commit message. Does the following sound 
fine ?

```

docs: fusa: Add Assumption of Use (AoU)

AoU are the assumptions that Xen relies on other components (eg 
platform, domains)
to fulfill its requirements. In our case, platform means a combination of
hardware, firmware and bootloader.

We have defined AoU in the intro.rst and added AoU for the generic timer.

Also, fixed a requirement to denote that Xen shall **not** expose the 
system counter frequency via the "clock-frequency" device tree property. 
The reason being the device tree documentation strongly discourages the 
use of this peoperty. Further if the "clock-frequency" is exposed, then 
it overrides the value programmed in the CNTFRQ_EL0 register.

So, the frequency shall be exposed via the CNTFRQ_EL0 register only and 
consequently there is an assumption on the platform to program the 
register correctly.

```

- Ayan
Julien Grall Sept. 13, 2024, 7:45 a.m. UTC | #3
On 11/09/2024 12:24, Ayan Kumar Halder wrote:
> 
> On 11/09/2024 10:55, Julien Grall wrote:
>> Hi,
> Hi,
>>
>> On 11/09/2024 10:44, Ayan Kumar Halder wrote:
>>> From: Michal Orzel <michal.orzel@amd.com>
>>>
>>> AoU are the assumptions Xen relies on other components (eg platform, 
>>> domains)
>>> to fulfill its requirements. In our case, platform means a 
>>> combination of
>>> hardware, firmware and bootloader.
>>>
>>> We have defined AoU in the intro.rst and added AoU for the generic 
>>> timer.
>>>
>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>>> ---
>>> Changes from :-
>>>
>>> v1 - 1. Removed the part of requirement which states that Xen exposes 
>>> the
>>> frequency of the system timer by reading the "clock-frequency" property.
>>>
>>> 2. Added a rationale for AoU.
>>>
>>> 3. Reworded the AoU.
>>>
>>>   .../reqs/design-reqs/arm64/generic-timer.rst  | 24 ++++++++++++++++++-
>>>   docs/fusa/reqs/intro.rst                      | 10 ++++++++
>>>   2 files changed, 33 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/docs/fusa/reqs/design-reqs/arm64/generic-timer.rst b/ 
>>> docs/fusa/reqs/design-reqs/arm64/generic-timer.rst
>>> index f2a0cd7fb8..86d84a3c40 100644
>>> --- a/docs/fusa/reqs/design-reqs/arm64/generic-timer.rst
>>> +++ b/docs/fusa/reqs/design-reqs/arm64/generic-timer.rst
>>> @@ -30,7 +30,7 @@ Read system counter frequency
>>>     Description:
>>>   Xen shall expose the frequency of the system counter to the domains in
>>> -CNTFRQ_EL0 register and/or domain device tree's "clock-frequency" 
>>> property.
>>> +CNTFRQ_EL0 register.
>>
>> This either wants to be split or explained in the commit message.
> 
> Yes, I will explain this in the commit message. Does the following sound 
> fine ?
> 
> ```
> 
> docs: fusa: Add Assumption of Use (AoU)
> 
> AoU are the assumptions that Xen relies on other components (eg 
> platform, domains)
> to fulfill its requirements. In our case, platform means a combination of
> hardware, firmware and bootloader.
> 
> We have defined AoU in the intro.rst and added AoU for the generic timer.
> 
> Also, fixed a requirement to denote that Xen shall **not** expose the 
> system counter frequency via the "clock-frequency" device tree property. 
> The reason being the device tree documentation strongly discourages the 
> use of this peoperty. Further if the "clock-frequency" is exposed, then 
> it overrides the value programmed in the CNTFRQ_EL0 register.
> 
> So, the frequency shall be exposed via the CNTFRQ_EL0 register only and 
> consequently there is an assumption on the platform to program the 
> register correctly.
> 
> ```

LGTM

Reviewed-by: Julien Grall <jgrall@amazon.com>

Cheers,
diff mbox series

Patch

diff --git a/docs/fusa/reqs/design-reqs/arm64/generic-timer.rst b/docs/fusa/reqs/design-reqs/arm64/generic-timer.rst
index f2a0cd7fb8..86d84a3c40 100644
--- a/docs/fusa/reqs/design-reqs/arm64/generic-timer.rst
+++ b/docs/fusa/reqs/design-reqs/arm64/generic-timer.rst
@@ -30,7 +30,7 @@  Read system counter frequency
 
 Description:
 Xen shall expose the frequency of the system counter to the domains in
-CNTFRQ_EL0 register and/or domain device tree's "clock-frequency" property.
+CNTFRQ_EL0 register.
 
 Rationale:
 
@@ -116,6 +116,28 @@  Rationale:
 
 Comments:
 
+Covers:
+ - `XenProd~emulated_timer~1`
+
+Assumption of Use on the Platform
+=================================
+
+Expose system timer frequency via register
+------------------------------------------
+
+`XenSwdgn~arm64_generic_timer_plat_program_cntfrq_el0~1`
+
+Description:
+Underlying platform shall program CNTFRQ_EL0 register with the value of system
+timer frequency.
+
+Rationale:
+Xen reads the CNTFRQ_EL0 register to get the value of system timer frequency.
+While there is a provision to get this value by reading the "clock-frequency"
+dt property [2], the use of this property is strongly discouraged.
+
+Comments:
+
 Covers:
  - `XenProd~emulated_timer~1`
 
diff --git a/docs/fusa/reqs/intro.rst b/docs/fusa/reqs/intro.rst
index 245a219ff2..aa85ff821c 100644
--- a/docs/fusa/reqs/intro.rst
+++ b/docs/fusa/reqs/intro.rst
@@ -38,6 +38,16 @@  The requirements are linked using OpenFastTrace
 OpenFastTrace parses through the requirements and generates a traceability
 report.
 
+Assumption of Use
+=================
+
+To fulfill one or more design requirements, there may be underlying assumptions
+on one or more components that Xen interacts with directly or indirectly. For
+eg, there may be assumptions on the underlying platform (hardware + firmware +
+bootloader) to set certain registers, etc. The important thing here is that
+anyone who validates these requirements, need to consider the assumption on the
+other components.
+
 The following is the skeleton for a requirement.
 
 Title of the requirement