samples: tests: mbox: Add lpcpresso55s69 support
This commit adds support for NXP board LPCXpresso55S69 for mbox. - samples/drivers/mbox/ - mbox signaling mode - samples/drivers/mbox_data/ - mbox data transfer mode - tests/drivers/mbox/mbox_data/ - mbox test to verify functionality. Signed-off-by: Tomas Galbicka <tomas.galbicka@nxp.com>
This commit is contained in:
parent
069bcbcb7f
commit
73d6c336ca
31 changed files with 292 additions and 18 deletions
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Copyright (c) 2021 Carlo Caione <ccaione@baylibre.com>
|
||||
# Copyright 2023 NXP
|
||||
# Copyright 2023-2024 NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
@ -17,7 +17,8 @@ if(("${BOARD}" STREQUAL "nrf5340dk_nrf5340_cpuapp") OR
|
|||
("${BOARD}" STREQUAL "mimxrt1170_evkb_cm7") OR
|
||||
("${BOARD}" STREQUAL "mimxrt1170_evk_cm7") OR
|
||||
("${BOARD}" STREQUAL "mimxrt1160_evk_cm7") OR
|
||||
("${BOARD}" STREQUAL "mimxrt595_evk_cm33"))
|
||||
("${BOARD}" STREQUAL "mimxrt595_evk_cm33") OR
|
||||
("${BOARD}" STREQUAL "lpcxpresso55s69_cpu0"))
|
||||
message(STATUS "${BOARD} compile as Main in this sample")
|
||||
else()
|
||||
message(FATAL_ERROR "${BOARD} is not supported for this sample")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Copyright 2023 Nordic Semiconductor ASA
|
||||
# Copyright 2023 NXP
|
||||
# Copyright 2023-2024 NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
|
@ -14,3 +14,4 @@ string
|
|||
default "mimxrt1170_evkb_cm4" if $(BOARD) = "mimxrt1170_evkb_cm7"
|
||||
default "mimxrt1170_evk_cm4" if $(BOARD) = "mimxrt1170_evk_cm7"
|
||||
default "mimxrt1160_evk_cm4" if $(BOARD) = "mimxrt1160_evk_cm7"
|
||||
default "lpcxpresso55s69_cpu1" if $(BOARD) = "lpcxpresso55s69_cpu0"
|
||||
|
|
3
samples/drivers/mbox/boards/lpcxpresso55s69_cpu0.conf
Normal file
3
samples/drivers/mbox/boards/lpcxpresso55s69_cpu0.conf
Normal file
|
@ -0,0 +1,3 @@
|
|||
CONFIG_SECOND_CORE_MCUX=y
|
||||
CONFIG_MBOX_NXP_MAILBOX=y
|
||||
CONFIG_BUILD_OUTPUT_HEX=y
|
29
samples/drivers/mbox/boards/lpcxpresso55s69_cpu0.overlay
Normal file
29
samples/drivers/mbox/boards/lpcxpresso55s69_cpu0.overlay
Normal file
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Copyright 2024 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
/* Delete ipc chosen property where old IPM mailbox driver bellow is
|
||||
* configured.
|
||||
*/
|
||||
/delete-property/ zephyr,ipc;
|
||||
};
|
||||
|
||||
soc {
|
||||
/* Delete IPM Driver node nxp,lpc-mailbox */
|
||||
/delete-node/ mailbox@8b000;
|
||||
|
||||
/* Attach MBOX driver to Mailbox Unit */
|
||||
mbox:mailbox0@5008b000 {
|
||||
compatible = "nxp,mbox-mailbox";
|
||||
reg = <0x5008b000 0xEC>;
|
||||
interrupts = <31 0>;
|
||||
rx-channels = <4>;
|
||||
#mbox-cells = <1>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Copyright (c) 2021 Carlo Caione <ccaione@baylibre.com>
|
||||
# Copyright 2023 NXP
|
||||
# Copyright 2023-2024 NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
@ -14,6 +14,7 @@ if(("${BOARD}" STREQUAL "nrf5340dk_nrf5340_cpunet") OR
|
|||
("${BOARD}" STREQUAL "mimxrt1170_evkb_cm4") OR
|
||||
("${BOARD}" STREQUAL "mimxrt1170_evk_cm4") OR
|
||||
("${BOARD}" STREQUAL "mimxrt1160_evk_cm4") OR
|
||||
("${BOARD}" STREQUAL "lpcxpresso55s69_cpu1") OR
|
||||
("${BOARD}" STREQUAL "adp_xc7k_ae350"))
|
||||
message(STATUS "${BOARD} compile as remote in this sample")
|
||||
else()
|
||||
|
|
10
samples/drivers/mbox/remote/boards/lpcxpresso55s69_cpu1.conf
Normal file
10
samples/drivers/mbox/remote/boards/lpcxpresso55s69_cpu1.conf
Normal file
|
@ -0,0 +1,10 @@
|
|||
CONFIG_SECOND_CORE_MCUX=y
|
||||
CONFIG_BUILD_OUTPUT_HEX=y
|
||||
CONFIG_MBOX_NXP_MAILBOX=y
|
||||
|
||||
# For purpose of sample enable UART Console on CPU1
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
CONFIG_SERIAL=y
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=y
|
||||
CONFIG_CLOCK_CONTROL=y
|
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
* Copyright 2024 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
/* Delete ipc chosen property where old IPM mailbox driver bellow is
|
||||
* configured.
|
||||
*/
|
||||
/delete-property/ zephyr,ipc;
|
||||
zephyr,console = &flexcomm0;
|
||||
zephyr,shell-uart = &flexcomm0;
|
||||
};
|
||||
|
||||
soc {
|
||||
/* Delete IPM Driver node nxp,lpc-mailbox */
|
||||
/delete-node/ mailbox@8b000;
|
||||
|
||||
/* Attach MBOX driver to Mailbox Unit */
|
||||
mbox:mbox@5008b000 {
|
||||
compatible = "nxp,mbox-mailbox";
|
||||
reg = <0x5008b000 0xEC>;
|
||||
interrupts = <31 0>;
|
||||
rx-channels = <4>;
|
||||
#mbox-cells = <1>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&flexcomm0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dma0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&syscon {
|
||||
status = "okay";
|
||||
};
|
|
@ -12,6 +12,7 @@ tests:
|
|||
- mimxrt1170_evkb_cm7
|
||||
- mimxrt1170_evk_cm7
|
||||
- mimxrt1160_evk_cm7
|
||||
- lpcxpresso55s69_cpu0
|
||||
integration_platforms:
|
||||
- nrf5340dk_nrf5340_cpuapp
|
||||
harness: console
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Copyright (c) 2023 Nordic Semiconductor ASA
|
||||
# Copyright 2023 NXP
|
||||
# Copyright 2023-2024 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if("${SB_CONFIG_REMOTE_BOARD}" STREQUAL "")
|
||||
|
@ -22,7 +22,8 @@ native_simulator_set_final_executable(${DEFAULT_IMAGE})
|
|||
|
||||
if ("${BOARD}" STREQUAL "mimxrt1170_evkb_cm7" OR
|
||||
"${BOARD}" STREQUAL "mimxrt1170_evk_cm7" OR
|
||||
"${BOARD}" STREQUAL "mimxrt1160_evk_cm7"
|
||||
"${BOARD}" STREQUAL "mimxrt1160_evk_cm7" OR
|
||||
"${BOARD}" STREQUAL "lpcxpresso55s69_cpu0"
|
||||
)
|
||||
# For these NXP boards the main core application is dependent on
|
||||
# 'zephyr_image_info.h' generated by remote application.
|
||||
|
|
|
@ -11,7 +11,8 @@ set(REMOTE_ZEPHYR_DIR ${CMAKE_CURRENT_BINARY_DIR}/../remote/zephyr)
|
|||
|
||||
if(("${BOARD}" STREQUAL "mimxrt1170_evkb_cm7") OR
|
||||
("${BOARD}" STREQUAL "mimxrt1170_evk_cm7") OR
|
||||
("${BOARD}" STREQUAL "mimxrt1160_evk_cm7"))
|
||||
("${BOARD}" STREQUAL "mimxrt1160_evk_cm7") OR
|
||||
("${BOARD}" STREQUAL "lpcxpresso55s69_cpu0"))
|
||||
message(STATUS "${BOARD} compile as Main in this sample")
|
||||
else()
|
||||
message(FATAL_ERROR "${BOARD} is not supported for this sample")
|
||||
|
|
|
@ -9,3 +9,4 @@ string
|
|||
default "mimxrt1170_evkb_cm4" if $(BOARD) = "mimxrt1170_evkb_cm7"
|
||||
default "mimxrt1170_evk_cm4" if $(BOARD) = "mimxrt1170_evk_cm7"
|
||||
default "mimxrt1160_evk_cm4" if $(BOARD) = "mimxrt1160_evk_cm7"
|
||||
default "lpcxpresso55s69_cpu1" if $(BOARD) = "lpcxpresso55s69_cpu0"
|
||||
|
|
|
@ -10,7 +10,7 @@ Overview
|
|||
This sample demonstrates how to use the :ref:`MBOX API <mbox_api>` in data transfer mode.
|
||||
It can be used only with mbox driver which supports data transfer mode.
|
||||
|
||||
Sample will ping-pong 4 bytes of data between two cores via two mbox channels.
|
||||
Sample will ping-pong up to 4 bytes of data between two cores via two mbox channels.
|
||||
After each core receives data, it increments it by one and sends it back to other core.
|
||||
|
||||
Building and Running
|
||||
|
@ -45,6 +45,15 @@ Building the application for mimxrt1170_evkb_cm7
|
|||
:goals: debug
|
||||
:west-args: --sysbuild
|
||||
|
||||
Building the application for lpcxpresso55s69_cpu1
|
||||
=================================================
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/drivers/mbox_data/
|
||||
:board: lpcxpresso55s69_cpu1
|
||||
:goals: debug
|
||||
:west-args: --sysbuild
|
||||
|
||||
Sample Output
|
||||
=============
|
||||
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
CONFIG_SECOND_CORE_MCUX=y
|
||||
CONFIG_MBOX_NXP_MAILBOX=y
|
||||
CONFIG_BUILD_OUTPUT_HEX=y
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Copyright 2024 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
/* Delete ipc chosen property where old IPM mailbox driver bellow is
|
||||
* configured.
|
||||
*/
|
||||
/delete-property/ zephyr,ipc;
|
||||
};
|
||||
|
||||
soc {
|
||||
/* Delete IPM Driver node nxp,lpc-mailbox */
|
||||
/delete-node/ mailbox@8b000;
|
||||
|
||||
/* Attach MBOX driver to Mailbox Unit */
|
||||
mbox:mailbox0@5008b000 {
|
||||
compatible = "nxp,mbox-mailbox";
|
||||
reg = <0x5008b000 0xEC>;
|
||||
interrupts = <31 0>;
|
||||
rx-channels = <4>;
|
||||
#mbox-cells = <1>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
|
@ -9,7 +9,8 @@ find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
|
|||
|
||||
if(("${BOARD}" STREQUAL "mimxrt1170_evkb_cm4") OR
|
||||
("${BOARD}" STREQUAL "mimxrt1170_evk_cm4") OR
|
||||
("${BOARD}" STREQUAL "mimxrt1160_evk_cm4"))
|
||||
("${BOARD}" STREQUAL "mimxrt1160_evk_cm4") OR
|
||||
("${BOARD}" STREQUAL "lpcxpresso55s69_cpu1"))
|
||||
message(STATUS "${BOARD} compile as remote in this sample")
|
||||
else()
|
||||
message(FATAL_ERROR "${BOARD} is not supported for this sample")
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
CONFIG_SECOND_CORE_MCUX=y
|
||||
CONFIG_BUILD_OUTPUT_HEX=y
|
||||
CONFIG_MBOX_NXP_MAILBOX=y
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Copyright 2024 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
/* Delete ipc chosen property where old IPM mailbox driver bellow is
|
||||
* configured.
|
||||
*/
|
||||
/delete-property/ zephyr,ipc;
|
||||
};
|
||||
|
||||
soc {
|
||||
/* Delete IPM Driver node nxp,lpc-mailbox */
|
||||
/delete-node/ mailbox@8b000;
|
||||
|
||||
/* Attach MBOX driver to Mailbox Unit */
|
||||
mbox:mbox@5008b000 {
|
||||
compatible = "nxp,mbox-mailbox";
|
||||
reg = <0x5008b000 0xEC>;
|
||||
interrupts = <31 0>;
|
||||
rx-channels = <4>;
|
||||
#mbox-cells = <1>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <zephyr/kernel.h>
|
||||
#include <zephyr/drivers/mbox.h>
|
||||
|
||||
|
@ -41,6 +42,13 @@ int main(void)
|
|||
mbox_init_channel(&tx_channel, dev, TX_ID);
|
||||
mbox_init_channel(&rx_channel, dev, RX_ID);
|
||||
|
||||
const int max_transfer_size_bytes = mbox_mtu_get(dev);
|
||||
/* Sample currently supports only transfer size up to 4 bytes */
|
||||
if ((max_transfer_size_bytes <= 0) || (max_transfer_size_bytes > 4)) {
|
||||
printk("mbox_mtu_get() error\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (mbox_register_callback(&rx_channel, callback, NULL)) {
|
||||
printk("mbox_register_callback() error\n");
|
||||
return 0;
|
||||
|
@ -61,7 +69,7 @@ int main(void)
|
|||
message++;
|
||||
|
||||
msg.data = &message;
|
||||
msg.size = 4;
|
||||
msg.size = max_transfer_size_bytes;
|
||||
|
||||
printk("Server send (on channel %d) value: %d\n", tx_channel.id, message);
|
||||
if (mbox_send(&tx_channel, &msg) < 0) {
|
||||
|
|
|
@ -9,8 +9,10 @@ tests:
|
|||
- mimxrt1170_evkb_cm7
|
||||
- mimxrt1170_evk_cm7
|
||||
- mimxrt1160_evk_cm7
|
||||
- lpcxpresso55s69_cpu0
|
||||
integration_platforms:
|
||||
- mimxrt1160_evk_cm7
|
||||
- lpcxpresso55s69_cpu0
|
||||
harness: console
|
||||
harness_config:
|
||||
type: multi_line
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <zephyr/kernel.h>
|
||||
#include <zephyr/drivers/mbox.h>
|
||||
|
||||
|
@ -41,6 +42,13 @@ int main(void)
|
|||
mbox_init_channel(&tx_channel, dev, TX_ID);
|
||||
mbox_init_channel(&rx_channel, dev, RX_ID);
|
||||
|
||||
const int max_transfer_size_bytes = mbox_mtu_get(dev);
|
||||
/* Sample currently supports only transfer size up to 4 bytes */
|
||||
if ((max_transfer_size_bytes < 0) || (max_transfer_size_bytes > 4)) {
|
||||
printk("mbox_mtu_get() error\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (mbox_register_callback(&rx_channel, callback, NULL)) {
|
||||
printk("mbox_register_callback() error\n");
|
||||
return 0;
|
||||
|
@ -53,7 +61,7 @@ int main(void)
|
|||
|
||||
while (message < 100) {
|
||||
msg.data = &message;
|
||||
msg.size = 4;
|
||||
msg.size = max_transfer_size_bytes;
|
||||
|
||||
printk("Client send (on channel %d) value: %d\n", tx_channel.id, message);
|
||||
if (mbox_send(&tx_channel, &msg) < 0) {
|
||||
|
|
|
@ -11,7 +11,8 @@ set(REMOTE_ZEPHYR_DIR ${CMAKE_CURRENT_BINARY_DIR}/../remote/zephyr)
|
|||
|
||||
if(("${BOARD}" STREQUAL "mimxrt1170_evkb_cm7") OR
|
||||
("${BOARD}" STREQUAL "mimxrt1170_evk_cm7") OR
|
||||
("${BOARD}" STREQUAL "mimxrt1160_evk_cm7"))
|
||||
("${BOARD}" STREQUAL "mimxrt1160_evk_cm7") OR
|
||||
("${BOARD}" STREQUAL "lpcxpresso55s69_cpu0"))
|
||||
message(STATUS "${BOARD} compile as Main in this sample")
|
||||
else()
|
||||
message(FATAL_ERROR "${BOARD} is not supported for this sample")
|
||||
|
|
|
@ -9,3 +9,4 @@ string
|
|||
default "mimxrt1170_evkb_cm4" if $(BOARD) = "mimxrt1170_evkb_cm7"
|
||||
default "mimxrt1170_evk_cm4" if $(BOARD) = "mimxrt1170_evk_cm7"
|
||||
default "mimxrt1160_evk_cm4" if $(BOARD) = "mimxrt1160_evk_cm7"
|
||||
default "lpcxpresso55s69_cpu1" if $(BOARD) = "lpcxpresso55s69_cpu0"
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
CONFIG_SECOND_CORE_MCUX=y
|
||||
CONFIG_MBOX_NXP_MAILBOX=y
|
||||
CONFIG_BUILD_OUTPUT_HEX=y
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Copyright 2024 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
/* Delete ipc chosen property where old IPM mailbox driver bellow is
|
||||
* configured.
|
||||
*/
|
||||
/delete-property/ zephyr,ipc;
|
||||
};
|
||||
|
||||
soc {
|
||||
/* Delete IPM Driver node nxp,lpc-mailbox */
|
||||
/delete-node/ mailbox@8b000;
|
||||
|
||||
/* Attach MBOX driver to Mailbox Unit */
|
||||
mbox:mailbox0@5008b000 {
|
||||
compatible = "nxp,mbox-mailbox";
|
||||
reg = <0x5008b000 0xEC>;
|
||||
interrupts = <31 0>;
|
||||
rx-channels = <4>;
|
||||
#mbox-cells = <1>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
|
@ -9,7 +9,8 @@ find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
|
|||
|
||||
if(("${BOARD}" STREQUAL "mimxrt1170_evkb_cm4") OR
|
||||
("${BOARD}" STREQUAL "mimxrt1170_evk_cm4") OR
|
||||
("${BOARD}" STREQUAL "mimxrt1160_evk_cm4"))
|
||||
("${BOARD}" STREQUAL "mimxrt1160_evk_cm4") OR
|
||||
("${BOARD}" STREQUAL "lpcxpresso55s69_cpu1"))
|
||||
message(STATUS "${BOARD} compile as remote in this sample")
|
||||
else()
|
||||
message(FATAL_ERROR "${BOARD} is not supported for this sample")
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
CONFIG_SECOND_CORE_MCUX=y
|
||||
CONFIG_BUILD_OUTPUT_HEX=y
|
||||
CONFIG_MBOX_NXP_MAILBOX=y
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Copyright 2024 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
/* Delete ipc chosen property where old IPM mailbox driver bellow is
|
||||
* configured.
|
||||
*/
|
||||
/delete-property/ zephyr,ipc;
|
||||
};
|
||||
|
||||
soc {
|
||||
/* Delete IPM Driver node nxp,lpc-mailbox */
|
||||
/delete-node/ mailbox@8b000;
|
||||
|
||||
/* Attach MBOX driver to Mailbox Unit */
|
||||
mbox:mbox@5008b000 {
|
||||
compatible = "nxp,mbox-mailbox";
|
||||
reg = <0x5008b000 0xEC>;
|
||||
interrupts = <31 0>;
|
||||
rx-channels = <4>;
|
||||
#mbox-cells = <1>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <zephyr/kernel.h>
|
||||
#include <zephyr/drivers/mbox.h>
|
||||
|
||||
|
@ -50,6 +51,13 @@ int main(void)
|
|||
|
||||
dev = DEVICE_DT_GET(DT_NODELABEL(mbox));
|
||||
|
||||
const int max_transfer_size_bytes = mbox_mtu_get(dev);
|
||||
/* Sample currently supports only transfer size up to 4 bytes */
|
||||
if ((max_transfer_size_bytes <= 0) || (max_transfer_size_bytes > 4)) {
|
||||
printk("mbox_mtu_get() error\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (int i_test_channel = 0; i_test_channel < CHANNELS_TO_TEST; i_test_channel++) {
|
||||
mbox_init_channel(&tx_channel, dev,
|
||||
TEST_CHANNELS[i_test_channel][TX_CHANNEL_INDEX]);
|
||||
|
@ -77,7 +85,7 @@ int main(void)
|
|||
message++;
|
||||
|
||||
msg.data = &message;
|
||||
msg.size = 4;
|
||||
msg.size = max_transfer_size_bytes;
|
||||
|
||||
if (mbox_send(&tx_channel, &msg) < 0) {
|
||||
printk("mbox_send() error\n");
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <zephyr/kernel.h>
|
||||
#include <zephyr/drivers/mbox.h>
|
||||
|
||||
|
@ -20,6 +21,7 @@ static uint32_t g_mbox_expected_channel;
|
|||
|
||||
static bool g_received_size_error;
|
||||
static size_t g_received_size;
|
||||
static int g_max_transfer_size_bytes;
|
||||
|
||||
static struct mbox_channel g_tx_channel;
|
||||
static struct mbox_channel g_rx_channel;
|
||||
|
@ -65,6 +67,14 @@ static void mbox_data_tests_before(void *f)
|
|||
|
||||
dev = DEVICE_DT_GET(DT_NODELABEL(mbox));
|
||||
|
||||
g_max_transfer_size_bytes = mbox_mtu_get(dev);
|
||||
/* Test currently supports only transfer size up to 4 bytes */
|
||||
if ((g_max_transfer_size_bytes < 0) || (g_max_transfer_size_bytes > 4)) {
|
||||
printk("mbox_mtu_get() error\n");
|
||||
zassert_false(1, "mbox invalid maximum transfer unit: %d",
|
||||
g_max_transfer_size_bytes);
|
||||
}
|
||||
|
||||
mbox_init_channel(&g_tx_channel, dev,
|
||||
TEST_CHANNELS[current_channel_index][TX_CHANNEL_INDEX]);
|
||||
mbox_init_channel(&g_rx_channel, dev,
|
||||
|
@ -98,14 +108,17 @@ static void mbox_test(const uint32_t data)
|
|||
while (test_count < 100) {
|
||||
/* Main core prepare test data */
|
||||
msg.data = &test_data;
|
||||
msg.size = 4;
|
||||
msg.size = g_max_transfer_size_bytes;
|
||||
|
||||
/* Main core send test data */
|
||||
ret_val = mbox_send(&g_tx_channel, &msg);
|
||||
zassert_false(ret_val < 0, "mbox failed to send. ret_val: %d", ret_val);
|
||||
|
||||
/* Expect next received data will be incremented by one */
|
||||
g_mbox_expected_data = test_data;
|
||||
/* Expect next received data will be incremented by one.
|
||||
* And based on Maximum Transfer Unit determine expected data.
|
||||
* Currently supported MTU's are 1, 2, 3, and 4 bytes.
|
||||
*/
|
||||
g_mbox_expected_data = test_data & ~(0xFFFFFFFF << (g_max_transfer_size_bytes * 8));
|
||||
g_mbox_expected_data++;
|
||||
|
||||
k_sem_take(&g_mbox_data_rx_sem, K_FOREVER);
|
||||
|
|
|
@ -8,5 +8,7 @@ tests:
|
|||
- mimxrt1170_evkb_cm7
|
||||
- mimxrt1170_evk_cm7
|
||||
- mimxrt1160_evk_cm7
|
||||
- lpcxpresso55s69_cpu0
|
||||
integration_platforms:
|
||||
- mimxrt1170_evkb_cm7
|
||||
- lpcxpresso55s69_cpu0
|
||||
|
|
2
west.yml
2
west.yml
|
@ -193,7 +193,7 @@ manifest:
|
|||
groups:
|
||||
- hal
|
||||
- name: hal_nxp
|
||||
revision: ae438701d6029f4f989fe036abe4b91be51e6258
|
||||
revision: 0463d6aa0de62761fb9ae56e3521c61b0e490374
|
||||
path: modules/hal/nxp
|
||||
groups:
|
||||
- hal
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue