mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xen/arm: ffa: enforce dependency on 4k pages
Adds a BUILD_BUG_ON() to assert the dependency on 4k pages in the FF-A mediator since the current implementation only works if Xen page size is the same as the FFA page size. Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com> Reviewed-by: Henry Wang <Henry.Wang@arm.com>
This commit is contained in:
1 parent
246fdc288e
commit
0dacee5cfb
1 file changed
+21
@@ -57,6 +57,16 @@
|
||||
#define FFA_MY_VERSION MAKE_FFA_VERSION(FFA_MY_VERSION_MAJOR, \
|
||||
FFA_MY_VERSION_MINOR)
|
||||
|
||||
/*
|
||||
* The FF-A specification explicitly works with 4K pages as a measure of
|
||||
* memory size, for example, FFA_RXTX_MAP takes one parameter "RX/TX page
|
||||
* count" which is the number of contiguous 4K pages allocated. Xen may use
|
||||
* a different page size depending on the configuration to avoid confusion
|
||||
* with PAGE_SIZE use a special define when it's a page size as in the FF-A
|
||||
* specification.
|
||||
*/
|
||||
#define FFA_PAGE_SIZE SZ_4K
|
||||
|
||||
/*
|
||||
* Flags and field values used for the MSG_SEND_DIRECT_REQ/RESP:
|
||||
* BIT(31): Framework or partition message
|
||||
@@ -261,6 +271,17 @@ static bool ffa_probe(void)
|
||||
unsigned int major_vers;
|
||||
unsigned int minor_vers;
|
||||
|
||||
/*
|
||||
* FF-A often works in units of 4K pages and currently it's assumed
|
||||
* that we can map memory using that granularity. See also the comment
|
||||
* above the FFA_PAGE_SIZE define.
|
||||
*
|
||||
* It is possible to support a PAGE_SIZE larger than 4K in Xen, but
|
||||
* until that is fully handled in this code make sure that we only use
|
||||
* 4K page sizes.
|
||||
*/
|
||||
BUILD_BUG_ON(PAGE_SIZE != FFA_PAGE_SIZE);
|
||||
|
||||
/*
|
||||
* psci_init_smccc() updates this value with what's reported by EL-3
|
||||
* or secure world.
|
||||
|
||||