Skip to content

Commit 910cc1a

Browse files
committed
firmware: arm_ffa: Add support for passing UUID in FFA_MSG_SEND2
FF-A v1.2 introduces UUID field in partition message header used in FFA_MSG_SEND2 to enable partitions/endpoints exposing multiple UUIDs. Add the support for passing UUID in FFA_MSG_SEND2. Tested-by: Viresh Kumar <viresh.kumar@linaro.org> Message-Id: <20250217-ffa_updates-v3-10-bd1d9de615e7@arm.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
1 parent 84968e3 commit 910cc1a

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

drivers/firmware/arm_ffa/driver.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -484,9 +484,9 @@ static int ffa_msg_send_direct_req(u16 src_id, u16 dst_id, bool mode_32bit,
484484
return -EINVAL;
485485
}
486486

487-
static int ffa_msg_send2(u16 src_id, u16 dst_id, void *buf, size_t sz)
487+
static int ffa_msg_send2(struct ffa_device *dev, u16 src_id, void *buf, size_t sz)
488488
{
489-
u32 src_dst_ids = PACK_TARGET_INFO(src_id, dst_id);
489+
u32 src_dst_ids = PACK_TARGET_INFO(src_id, dev->vm_id);
490490
struct ffa_indirect_msg_hdr *msg;
491491
ffa_value_t ret;
492492
int retval = 0;
@@ -502,6 +502,7 @@ static int ffa_msg_send2(u16 src_id, u16 dst_id, void *buf, size_t sz)
502502
msg->offset = sizeof(*msg);
503503
msg->send_recv_id = src_dst_ids;
504504
msg->size = sz;
505+
uuid_copy(&msg->uuid, &dev->uuid);
505506
memcpy((u8 *)msg + msg->offset, buf, sz);
506507

507508
/* flags = 0, sender VMID = 0 works for both physical/virtual NS */
@@ -1054,7 +1055,7 @@ static int ffa_sync_send_receive(struct ffa_device *dev,
10541055

10551056
static int ffa_indirect_msg_send(struct ffa_device *dev, void *buf, size_t sz)
10561057
{
1057-
return ffa_msg_send2(drv_info->vm_id, dev->vm_id, buf, sz);
1058+
return ffa_msg_send2(dev, drv_info->vm_id, buf, sz);
10581059
}
10591060

10601061
static int ffa_sync_send_receive2(struct ffa_device *dev,

include/linux/arm_ffa.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,7 @@ struct ffa_indirect_msg_hdr {
282282
u32 offset;
283283
u32 send_recv_id;
284284
u32 size;
285+
uuid_t uuid;
285286
};
286287

287288
/* For use with FFA_MSG_SEND_DIRECT_{REQ,RESP}2 which pass data via registers */

0 commit comments

Comments
 (0)