123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /*
- * Copyright (c) 2020 STMicroelectronics
- *
- * SPDX-License-Identifier: Apache-2.0
- */
- #ifndef RESOURCE_TABLE_H__
- #define RESOURCE_TABLE_H__
- #include <openamp/remoteproc.h>
- #include <openamp/virtio.h>
- #if (CONFIG_OPENAMP_RSC_TABLE_NUM_RPMSG_BUFF > 0)
- #define VDEV_ID 0xFF
- #define VRING0_ID 0 /* (master to remote) fixed to 0 for Linux compatibility */
- #define VRING1_ID 1 /* (remote to master) fixed to 1 for Linux compatibility */
- #define VRING_COUNT 2
- #define RPMSG_IPU_C0_FEATURES 1
- #define VRING_RX_ADDRESS -1 /* allocated by Master processor */
- #define VRING_TX_ADDRESS -1 /* allocated by Master processor */
- #define VRING_BUFF_ADDRESS -1 /* allocated by Master processor */
- #define VRING_ALIGNMENT 16 /* fixed to match with Linux constraint */
- #endif
- enum rsc_table_entries {
- #if (CONFIG_OPENAMP_RSC_TABLE_NUM_RPMSG_BUFF > 0)
- RSC_TABLE_VDEV_ENTRY,
- #endif
- #if defined(CONFIG_RAM_CONSOLE)
- RSC_TABLE_TRACE_ENTRY,
- #endif
- RSC_TABLE_NUM_ENTRY
- };
- struct fw_resource_table {
- unsigned int ver;
- unsigned int num;
- unsigned int reserved[2];
- unsigned int offset[RSC_TABLE_NUM_ENTRY];
- struct fw_rsc_vdev vdev;
- struct fw_rsc_vdev_vring vring0;
- struct fw_rsc_vdev_vring vring1;
- #if defined(CONFIG_RAM_CONSOLE)
- /* rpmsg trace entry */
- struct fw_rsc_trace cm_trace;
- #endif
- } METAL_PACKED_END;
- void rsc_table_get(void **table_ptr, int *length);
- inline struct fw_rsc_vdev *rsc_table_to_vdev(void *rsc_table)
- {
- return &((struct fw_resource_table *)rsc_table)->vdev;
- }
- inline struct fw_rsc_vdev_vring *rsc_table_get_vring0(void *rsc_table)
- {
- return &((struct fw_resource_table *)rsc_table)->vring0;
- }
- inline struct fw_rsc_vdev_vring *rsc_table_get_vring1(void *rsc_table)
- {
- return &((struct fw_resource_table *)rsc_table)->vring1;
- }
- #endif
|