Implement SPCI_RXTX_MAP to replace hf_vm_configure.
Bug: 132421502
Change-Id: I699f412f5090dead6a4c0dbfdc12f40b5aa8fe20
diff --git a/test/hftest/service.c b/test/hftest/service.c
index e0ce071..94adea8 100644
--- a/test/hftest/service.c
+++ b/test/hftest/service.c
@@ -98,7 +98,7 @@
/* Prepare the context. */
/* Set up the mailbox. */
- hf_vm_configure(send_addr, recv_addr);
+ spci_rxtx_map(send_addr, recv_addr);
/* Receive the name of the service to run. */
ret = spci_msg_wait();
diff --git a/test/linux/hftest_socket.c b/test/linux/hftest_socket.c
index 2e89d2b..1e55551 100644
--- a/test/linux/hftest_socket.c
+++ b/test/linux/hftest_socket.c
@@ -66,7 +66,7 @@
/* Prepare the context. */
/* Set up the mailbox. */
- hf_vm_configure(send_addr, recv_addr);
+ spci_rxtx_map(send_addr, recv_addr);
spci_rx_release();
diff --git a/test/vmapi/arch/aarch64/gicv3/busy_secondary.c b/test/vmapi/arch/aarch64/gicv3/busy_secondary.c
index 3bf660b..e04905a 100644
--- a/test/vmapi/arch/aarch64/gicv3/busy_secondary.c
+++ b/test/vmapi/arch/aarch64/gicv3/busy_secondary.c
@@ -38,7 +38,8 @@
SET_UP(busy_secondary)
{
system_setup();
- EXPECT_EQ(hf_vm_configure(send_page_addr, recv_page_addr), 0);
+ EXPECT_EQ(spci_rxtx_map(send_page_addr, recv_page_addr).func,
+ SPCI_SUCCESS_32);
SERVICE_SELECT(SERVICE_VM0, "busy", send_buffer);
}
diff --git a/test/vmapi/arch/aarch64/gicv3/gicv3.c b/test/vmapi/arch/aarch64/gicv3/gicv3.c
index a96f55a..e2cc67e 100644
--- a/test/vmapi/arch/aarch64/gicv3/gicv3.c
+++ b/test/vmapi/arch/aarch64/gicv3/gicv3.c
@@ -89,7 +89,8 @@
{
struct spci_value run_res;
- EXPECT_EQ(hf_vm_configure(send_page_addr, recv_page_addr), 0);
+ EXPECT_EQ(spci_rxtx_map(send_page_addr, recv_page_addr).func,
+ SPCI_SUCCESS_32);
SERVICE_SELECT(SERVICE_VM0, "read_systemreg_ctlr", send_buffer);
run_res = spci_run(SERVICE_VM0, 0);
@@ -105,7 +106,8 @@
{
struct spci_value run_res;
- EXPECT_EQ(hf_vm_configure(send_page_addr, recv_page_addr), 0);
+ EXPECT_EQ(spci_rxtx_map(send_page_addr, recv_page_addr).func,
+ SPCI_SUCCESS_32);
SERVICE_SELECT(SERVICE_VM0, "write_systemreg_ctlr", send_buffer);
run_res = spci_run(SERVICE_VM0, 0);
@@ -121,7 +123,8 @@
{
struct spci_value run_res;
- EXPECT_EQ(hf_vm_configure(send_page_addr, recv_page_addr), 0);
+ EXPECT_EQ(spci_rxtx_map(send_page_addr, recv_page_addr).func,
+ SPCI_SUCCESS_32);
SERVICE_SELECT(SERVICE_VM0, "write_systemreg_sre", send_buffer);
run_res = spci_run(SERVICE_VM0, 0);
diff --git a/test/vmapi/arch/aarch64/gicv3/timer_secondary.c b/test/vmapi/arch/aarch64/gicv3/timer_secondary.c
index b339987..9996a2d 100644
--- a/test/vmapi/arch/aarch64/gicv3/timer_secondary.c
+++ b/test/vmapi/arch/aarch64/gicv3/timer_secondary.c
@@ -28,7 +28,8 @@
{
system_setup();
- EXPECT_EQ(hf_vm_configure(send_page_addr, recv_page_addr), 0);
+ EXPECT_EQ(spci_rxtx_map(send_page_addr, recv_page_addr).func,
+ SPCI_SUCCESS_32);
SERVICE_SELECT(SERVICE_VM0, "timer", send_buffer);
interrupt_enable(VIRTUAL_TIMER_IRQ, true);
diff --git a/test/vmapi/primary_only/faults.c b/test/vmapi/primary_only/faults.c
index bf56b15..c56d314 100644
--- a/test/vmapi/primary_only/faults.c
+++ b/test/vmapi/primary_only/faults.c
@@ -70,7 +70,8 @@
sl_lock(&s.lock);
/* Configure the VM's buffers. */
- EXPECT_EQ(hf_vm_configure((hf_ipaddr_t)&tx[0], (hf_ipaddr_t)&rx[0]), 0);
+ EXPECT_EQ(spci_rxtx_map((hf_ipaddr_t)&tx[0], (hf_ipaddr_t)&rx[0]).func,
+ SPCI_SUCCESS_32);
/* Tell other CPU to stop and wait for it. */
s.done = true;
diff --git a/test/vmapi/primary_with_secondaries/no_services.c b/test/vmapi/primary_with_secondaries/no_services.c
index 9d43cd7..33b83e0 100644
--- a/test/vmapi/primary_with_secondaries/no_services.c
+++ b/test/vmapi/primary_with_secondaries/no_services.c
@@ -110,15 +110,15 @@
/**
* The configured send/receive addresses can't be device memory.
*/
-TEST(hf_vm_configure, fails_with_device_memory)
+TEST(spci_rxtx_map, fails_with_device_memory)
{
- EXPECT_EQ(hf_vm_configure(PAGE_SIZE, PAGE_SIZE * 2), -1);
+ EXPECT_SPCI_ERROR(spci_rxtx_map(PAGE_SIZE, PAGE_SIZE * 2), SPCI_DENIED);
}
/**
* The configured send/receive addresses can't be unaligned.
*/
-TEST(hf_vm_configure, fails_with_unaligned_pointer)
+TEST(spci_rxtx_map, fails_with_unaligned_pointer)
{
uint8_t maybe_aligned[2];
hf_ipaddr_t unaligned_addr = (hf_ipaddr_t)&maybe_aligned[1];
@@ -127,36 +127,44 @@
/* Check the the address is unaligned. */
ASSERT_EQ(unaligned_addr & 1, 1);
- EXPECT_EQ(hf_vm_configure(aligned_addr, unaligned_addr), -1);
- EXPECT_EQ(hf_vm_configure(unaligned_addr, aligned_addr), -1);
- EXPECT_EQ(hf_vm_configure(unaligned_addr, unaligned_addr), -1);
+ EXPECT_SPCI_ERROR(spci_rxtx_map(aligned_addr, unaligned_addr),
+ SPCI_INVALID_PARAMETERS);
+ EXPECT_SPCI_ERROR(spci_rxtx_map(unaligned_addr, aligned_addr),
+ SPCI_INVALID_PARAMETERS);
+ EXPECT_SPCI_ERROR(spci_rxtx_map(unaligned_addr, unaligned_addr),
+ SPCI_INVALID_PARAMETERS);
}
/**
* The configured send/receive addresses can't be the same page.
*/
-TEST(hf_vm_configure, fails_with_same_page)
+TEST(spci_rxtx_map, fails_with_same_page)
{
- EXPECT_EQ(hf_vm_configure(send_page_addr, send_page_addr), -1);
- EXPECT_EQ(hf_vm_configure(recv_page_addr, recv_page_addr), -1);
+ EXPECT_SPCI_ERROR(spci_rxtx_map(send_page_addr, send_page_addr),
+ SPCI_INVALID_PARAMETERS);
+ EXPECT_SPCI_ERROR(spci_rxtx_map(recv_page_addr, recv_page_addr),
+ SPCI_INVALID_PARAMETERS);
}
/**
* The configuration of the send/receive addresses can only happen once.
*/
-TEST(hf_vm_configure, fails_if_already_succeeded)
+TEST(spci_rxtx_map, fails_if_already_succeeded)
{
- EXPECT_EQ(hf_vm_configure(send_page_addr, recv_page_addr), 0);
- EXPECT_EQ(hf_vm_configure(send_page_addr, recv_page_addr), -1);
+ EXPECT_EQ(spci_rxtx_map(send_page_addr, recv_page_addr).func,
+ SPCI_SUCCESS_32);
+ EXPECT_SPCI_ERROR(spci_rxtx_map(send_page_addr, recv_page_addr),
+ SPCI_DENIED);
}
/**
* The configuration of the send/receive address is successful with valid
* arguments.
*/
-TEST(hf_vm_configure, succeeds)
+TEST(spci_rxtx_map, succeeds)
{
- EXPECT_EQ(hf_vm_configure(send_page_addr, recv_page_addr), 0);
+ EXPECT_EQ(spci_rxtx_map(send_page_addr, recv_page_addr).func,
+ SPCI_SUCCESS_32);
}
/**
diff --git a/test/vmapi/primary_with_secondaries/util.c b/test/vmapi/primary_with_secondaries/util.c
index 419ec6c..eaa2dd1 100644
--- a/test/vmapi/primary_with_secondaries/util.c
+++ b/test/vmapi/primary_with_secondaries/util.c
@@ -34,7 +34,8 @@
struct mailbox_buffers set_up_mailbox(void)
{
- ASSERT_EQ(hf_vm_configure(send_page_addr, recv_page_addr), 0);
+ ASSERT_EQ(spci_rxtx_map(send_page_addr, recv_page_addr).func,
+ SPCI_SUCCESS_32);
return (struct mailbox_buffers){
.send = send_page,
.recv = recv_page,