.../design-reqs/arm64/domain_buffer_copy.rst | 172 ++++++++++++++++++ docs/fusa/reqs/market-reqs/reqs.rst | 30 +++ docs/fusa/reqs/product-reqs/arm64/reqs.rst | 40 +++- 3 files changed, 240 insertions(+), 2 deletions(-) create mode 100644 docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst
The following are the requirements written mapping :-
domain virtual address to machine address
intermediate physical address to machine address
Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
.../design-reqs/arm64/domain_buffer_copy.rst | 172 ++++++++++++++++++
docs/fusa/reqs/market-reqs/reqs.rst | 30 +++
docs/fusa/reqs/product-reqs/arm64/reqs.rst | 40 +++-
3 files changed, 240 insertions(+), 2 deletions(-)
create mode 100644 docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst
diff --git a/docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst b/docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst
new file mode 100644
index 0000000000..67a70a35c4
--- /dev/null
+++ b/docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst
@@ -0,0 +1,172 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Translate domain address to machine address
+-------------------------------------------
+
+`XenSwdgn~arm64_translate_domain_addr_to_machine_addr~1`
+
+Description:
+Xen shall translate a domain address to machine address using Address
+Translation Stage 1+2 Non-Secure Kernel Read/Write registers.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~translate_domain_va_to_ma~1`
+
+Get machine address
+-------------------
+
+`XenSwdgn~arm64_get_machine_addr~1`
+
+Description:
+Xen shall be able to get the machine address for a domain by reading
+the physical address register.
+
+Rationale:
+
+Comments:
+It should return the fault information if the translation has failed.
+
+Covers:
+ - `XenProd~translate_domain_va_to_ma~1`
+ - `XenProd~access_check_fetch_page~1`
+
+Translate domain address to intermediate physical address
+---------------------------------------------------------
+
+`XenSwdgn~arm64_translate_domain_addr_to_ipa~1`
+
+Description:
+Xen shall translate a domain address to intermediate physical address using
+Address Translation Stage 1 Non-Secure Kernel Read/Write registers.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
+Set domain address as intermediate physical address
+---------------------------------------------------
+
+`XenSwdgn~arm64_set_ipa_eq_gva~1`
+
+Description:
+Xen shall set domain virtual address as intermediate physical address when EL1
+MMU is disabled.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
+Walk the domain's stage 1 page tables to translate 4KB domain address to IPA
+----------------------------------------------------------------------------
+
+`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr0~1`
+
+Description:
+Xen shall walk the stage 1 page tables to translate domain address to
+intermediate physical address for 4KB page granularity using TTBR0
+for intermediate physical address size = 48 bits.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
+Walk the domain's stage 1 page tables to translate 16KB domain address to IPA
+-----------------------------------------------------------------------------
+
+`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbbr0~1`
+
+Description:
+Xen shall walk the stage 1 page tables to translate domain address to
+intermediate physical address for 16KB page granularity using TTBR0 for
+intermediate physical address size = 48 bits.
+
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
+Walk the domain's stage 1 page tables to translate 64KB domain address to IPA
+-----------------------------------------------------------------------------
+
+`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr0~1`
+
+Description:
+Xen shall walk the stage 1 page tables to translate domain address to
+intermediate physical address for 64KB page granularity using TTBR0 for
+intermediate physical address size = 48 bits.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
+Walk the domain's stage 1 page tables to translate 4KB domain address to IPA
+----------------------------------------------------------------------------
+
+`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr1~1`
+
+Description:
+Xen shall walk the stage 1 page tables to translate domain address to
+intermediate physical address for 4KB page granularity using TTBR1 for
+intermediate physical address size = 48 bits.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
+Walk the domain's stage 1 page tables to translate 16KB domain address to IPA
+-----------------------------------------------------------------------------
+
+`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbbr1~1`
+
+Description:
+Xen shall walk the stage 1 page tables to translate domain address to
+intermediate physical address for 16KB page granularity using TTBR1 for
+intermediate physical address size = 48 bits.
+
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
+Walk the domain's stage 1 page tables to translate 64KB domain address to IPA
+-----------------------------------------------------------------------------
+
+`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr1~1`
+
+Description:
+Xen shall walk the stage 1 page tables to translate domain address to
+intermediate physical address for 64KB page granularity using TTBR1 for
+intermediate physical address size = 48 bits.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~access_check_fetch_page~1`
+
diff --git a/docs/fusa/reqs/market-reqs/reqs.rst b/docs/fusa/reqs/market-reqs/reqs.rst
index ca020f9a33..9b6852d746 100644
--- a/docs/fusa/reqs/market-reqs/reqs.rst
+++ b/docs/fusa/reqs/market-reqs/reqs.rst
@@ -60,5 +60,35 @@ Rationale:
Comments:
+Needs:
+ - XenProd
+
+Copy buffer to domain
+---------------------
+
+`XenMkt~copy_buffer_to_domain~1`
+
+Description:
+Xen shall support copying a buffer to a domain.
+
+Rationale:
+
+Comments:
+
+Needs:
+ - XenProd
+
+Copy buffer from domain
+-----------------------
+
+`XenMkt~copy_buffer_from_domain~1`
+
+Description:
+Xen shall support copying a buffer from a domain.
+
+Rationale:
+
+Comments:
+
Needs:
- XenProd
\ No newline at end of file
diff --git a/docs/fusa/reqs/product-reqs/arm64/reqs.rst b/docs/fusa/reqs/product-reqs/arm64/reqs.rst
index 0453dbb862..e2ab5ea43e 100644
--- a/docs/fusa/reqs/product-reqs/arm64/reqs.rst
+++ b/docs/fusa/reqs/product-reqs/arm64/reqs.rst
@@ -53,10 +53,46 @@ Rationale:
Comments:
+Covers:
+ - `XenMkt~static_vm_definition~1`
+
+Needs:
+ - XenSwdgn
+
+Translate domain virtual address to machine address
+---------------------------------------------------
+
+`XenProd~translate_domain_va_to_ma~1`
+
+Description:
+Xen shall support translating domain's virtual address to machine address.
+
Rationale:
+Comments:
+
Covers:
- - `XenMkt~static_vm_definition~1`
+ - `XenMkt~copy_buffer_from_domain~1`
+ - `XenMkt~copy_buffer_to_domain~1`
Needs:
- - XenSwdgn
\ No newline at end of file
+ - XenSwdgn
+
+Access check and fetch page from domain
+---------------------------------------
+
+`XenProd~access_check_fetch_page~1`
+
+Description:
+Xen shall support access check and fetching page from a domain.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenMkt~copy_buffer_from_domain~1`
+ - `XenMkt~copy_buffer_to_domain~1`
+
+Needs:
+ - XenSwdgn
--
2.25.1
Hi Ayan, First a general comment: you use some terms such as machine address or domain address which are a bit undefined to me. This needs some definition first for those to be clear. Maybe use Virtual, IPA and PA instead all the time. > On 4 Nov 2024, at 20:06, Ayan Kumar Halder <ayan.kumar.halder@amd.com> wrote: > > The following are the requirements written mapping :- > domain virtual address to machine address > intermediate physical address to machine address > > Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com> > --- > .../design-reqs/arm64/domain_buffer_copy.rst | 172 ++++++++++++++++++ > docs/fusa/reqs/market-reqs/reqs.rst | 30 +++ > docs/fusa/reqs/product-reqs/arm64/reqs.rst | 40 +++- > 3 files changed, 240 insertions(+), 2 deletions(-) > create mode 100644 docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst > > diff --git a/docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst b/docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst > new file mode 100644 > index 0000000000..67a70a35c4 > --- /dev/null > +++ b/docs/fusa/reqs/design-reqs/arm64/domain_buffer_copy.rst > @@ -0,0 +1,172 @@ > +.. SPDX-License-Identifier: CC-BY-4.0 > + > +Translate domain address to machine address > +------------------------------------------- > + > +`XenSwdgn~arm64_translate_domain_addr_to_machine_addr~1` > + > +Description: > +Xen shall translate a domain address to machine address using Address > +Translation Stage 1+2 Non-Secure Kernel Read/Write registers. domain address here is a bit unprecise. Do you mean VA or IPA ? Also is this only in the MPU case ? > + > +Rationale: > + > +Comments: > + > +Covers: > + - `XenProd~translate_domain_va_to_ma~1` > + > +Get machine address > +------------------- > + > +`XenSwdgn~arm64_get_machine_addr~1` > + > +Description: > +Xen shall be able to get the machine address for a domain by reading > +the physical address register. This needs rephrasing to remove the "be able to": Xen shall use the physical address register to retrieve the machine address. Also what you mean by "machine address" needs to be defined here. > + > +Rationale: > + > +Comments: > +It should return the fault information if the translation has failed. I do not understand this one. Maybe this requirement needs more context to be understood. > + > +Covers: > + - `XenProd~translate_domain_va_to_ma~1` > + - `XenProd~access_check_fetch_page~1` > + > +Translate domain address to intermediate physical address > +--------------------------------------------------------- > + > +`XenSwdgn~arm64_translate_domain_addr_to_ipa~1` > + > +Description: > +Xen shall translate a domain address to intermediate physical address using > +Address Translation Stage 1 Non-Secure Kernel Read/Write registers. > + > +Rationale: > + > +Comments: > + > +Covers: > + - `XenProd~access_check_fetch_page~1` > + > +Set domain address as intermediate physical address > +--------------------------------------------------- > + > +`XenSwdgn~arm64_set_ipa_eq_gva~1` > + > +Description: > +Xen shall set domain virtual address as intermediate physical address when EL1 > +MMU is disabled. Here you start using virtual address. I also do not get what is to be set here. Do you mean that Xen shall consider VA=IPA when EL1 MMU is disabled ? > + > +Rationale: > + > +Comments: > + > +Covers: > + - `XenProd~access_check_fetch_page~1` > + > +Walk the domain's stage 1 page tables to translate 4KB domain address to IPA > +---------------------------------------------------------------------------- > + > +`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr0~1` > + > +Description: > +Xen shall walk the stage 1 page tables to translate domain address to > +intermediate physical address for 4KB page granularity using TTBR0 > +for intermediate physical address size = 48 bits. Is this always the case ? aren't there cases where we should not do that ? Do we really want in the certified case to accept to have to walk stage 1 page tables instead of using the hardware way ? > + > +Rationale: > + > +Comments: > + > +Covers: > + - `XenProd~access_check_fetch_page~1` > + > +Walk the domain's stage 1 page tables to translate 16KB domain address to IPA > +----------------------------------------------------------------------------- > + > +`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbbr0~1` Req is name 4KB for 16KB > + > +Description: > +Xen shall walk the stage 1 page tables to translate domain address to > +intermediate physical address for 16KB page granularity using TTBR0 for > +intermediate physical address size = 48 bits. I am not quite sure that it is a good solution to duplicate for each page table size here. Do you want to support all possibilities ? > + > + > +Rationale: > + > +Comments: > + > +Covers: > + - `XenProd~access_check_fetch_page~1` > + > +Walk the domain's stage 1 page tables to translate 64KB domain address to IPA > +----------------------------------------------------------------------------- > + > +`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr0~1` Same here > + > +Description: > +Xen shall walk the stage 1 page tables to translate domain address to > +intermediate physical address for 64KB page granularity using TTBR0 for > +intermediate physical address size = 48 bits. Ditto > + > +Rationale: > + > +Comments: > + > +Covers: > + - `XenProd~access_check_fetch_page~1` > + > +Walk the domain's stage 1 page tables to translate 4KB domain address to IPA > +---------------------------------------------------------------------------- > + > +`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr1~1` > + > +Description: > +Xen shall walk the stage 1 page tables to translate domain address to > +intermediate physical address for 4KB page granularity using TTBR1 for > +intermediate physical address size = 48 bits. > + You duplicate the requirement for TTBR1 but do not say when TTBR0 or TTBR1 shall be used. > +Rationale: > + > +Comments: > + > +Covers: > + - `XenProd~access_check_fetch_page~1` > + > +Walk the domain's stage 1 page tables to translate 16KB domain address to IPA > +----------------------------------------------------------------------------- > + > +`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbbr1~1` > + > +Description: > +Xen shall walk the stage 1 page tables to translate domain address to > +intermediate physical address for 16KB page granularity using TTBR1 for > +intermediate physical address size = 48 bits. > + > + > +Rationale: > + > +Comments: > + > +Covers: > + - `XenProd~access_check_fetch_page~1` > + > +Walk the domain's stage 1 page tables to translate 64KB domain address to IPA > +----------------------------------------------------------------------------- > + > +`XenSwdgn~arm64_walk_stage1_page_table_4KB_gva_ipa_ttbr1~1` > + > +Description: > +Xen shall walk the stage 1 page tables to translate domain address to > +intermediate physical address for 64KB page granularity using TTBR1 for > +intermediate physical address size = 48 bits. > + > +Rationale: > + > +Comments: > + > +Covers: > + - `XenProd~access_check_fetch_page~1` > + > diff --git a/docs/fusa/reqs/market-reqs/reqs.rst b/docs/fusa/reqs/market-reqs/reqs.rst > index ca020f9a33..9b6852d746 100644 > --- a/docs/fusa/reqs/market-reqs/reqs.rst > +++ b/docs/fusa/reqs/market-reqs/reqs.rst > @@ -60,5 +60,35 @@ Rationale: > > Comments: > > +Needs: > + - XenProd > + > +Copy buffer to domain > +--------------------- > + > +`XenMkt~copy_buffer_to_domain~1` > + > +Description: > +Xen shall support copying a buffer to a domain. What kind of buffer ? This requirement is very generic and not that precise. At the end this is just saying that Xen shall be able to copy memory. > + > +Rationale: > + > +Comments: > + > +Needs: > + - XenProd > + > +Copy buffer from domain > +----------------------- > + > +`XenMkt~copy_buffer_from_domain~1` > + > +Description: > +Xen shall support copying a buffer from a domain. > + > +Rationale: > + > +Comments: > + > Needs: > - XenProd > \ No newline at end of file > diff --git a/docs/fusa/reqs/product-reqs/arm64/reqs.rst b/docs/fusa/reqs/product-reqs/arm64/reqs.rst > index 0453dbb862..e2ab5ea43e 100644 > --- a/docs/fusa/reqs/product-reqs/arm64/reqs.rst > +++ b/docs/fusa/reqs/product-reqs/arm64/reqs.rst > @@ -53,10 +53,46 @@ Rationale: > > Comments: > > +Covers: > + - `XenMkt~static_vm_definition~1` > + > +Needs: > + - XenSwdgn > + > +Translate domain virtual address to machine address > +--------------------------------------------------- > + > +`XenProd~translate_domain_va_to_ma~1` > + > +Description: > +Xen shall support translating domain's virtual address to machine address. I find the "support" here a bit strange. Maybe it would be simpler to define that Xen shall have a function named xxx to do this ? I am not quite convince this is not only a design req. > + > Rationale: > > +Comments: > + > Covers: > - - `XenMkt~static_vm_definition~1` > + - `XenMkt~copy_buffer_from_domain~1` > + - `XenMkt~copy_buffer_to_domain~1` > > Needs: > - - XenSwdgn > \ No newline at end of file > + - XenSwdgn > + > +Access check and fetch page from domain > +--------------------------------------- > + > +`XenProd~access_check_fetch_page~1` > + > +Description: > +Xen shall support access check and fetching page from a domain. This should be split in 2 reqs. > + > +Rationale: > + > +Comments: > + > +Covers: > + - `XenMkt~copy_buffer_from_domain~1` > + - `XenMkt~copy_buffer_to_domain~1` > + > +Needs: > + - XenSwdgn > -- > 2.25.1 >
© 2016 - 2024 Red Hat, Inc.