Skip to content

Commit dca8824

Browse files
committed
Add RPMSG_VRING_PAYLOAD_SIZE for correct payload size
1 parent 92e3512 commit dca8824

File tree

3 files changed

+6
-5
lines changed

3 files changed

+6
-5
lines changed

cores/arduino/VirtIOSerial.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@ size_t VirtIOSerial::readBytes(char *buffer, size_t length)
122122
uint16_t prev_write_available = virtio_buffer_write_available(&_VirtIOSerialObj.ring);
123123
const size_t size = virtio_buffer_read(&_VirtIOSerialObj.ring, reinterpret_cast<uint8_t *>(buffer), length);
124124

125-
if (prev_write_available < RPMSG_BUFFER_SIZE
126-
&& virtio_buffer_write_available(&_VirtIOSerialObj.ring) >= RPMSG_BUFFER_SIZE) {
125+
if (prev_write_available < RPMSG_VRING_PAYLOAD_SIZE
126+
&& virtio_buffer_write_available(&_VirtIOSerialObj.ring) >= RPMSG_VRING_PAYLOAD_SIZE) {
127127
MAILBOX_Notify_Rx_Buf_Free();
128128
}
129129

@@ -180,7 +180,7 @@ void VirtIOSerial::rxCallback(VIRT_UART_HandleTypeDef *huart)
180180
while (size > 0) {
181181
size -= virtio_buffer_write(&_VirtIOSerialObj.ring, huart->pRxBuffPtr, size);
182182
}
183-
if (virtio_buffer_write_available(&_VirtIOSerialObj.ring) >= RPMSG_BUFFER_SIZE) {
183+
if (virtio_buffer_write_available(&_VirtIOSerialObj.ring) >= RPMSG_VRING_PAYLOAD_SIZE) {
184184
MAILBOX_Notify_Rx_Buf_Free();
185185
}
186186
}

cores/arduino/stm32/OpenAMP/virtio_buffer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
extern "C" {
3131
#endif
3232

33-
#define VIRTIO_BUFFER_SIZE (RPMSG_BUFFER_SIZE * 2)
33+
#define VIRTIO_BUFFER_SIZE (RPMSG_VRING_PAYLOAD_SIZE * 2)
3434

3535
typedef struct {
3636
uint8_t buffer[VIRTIO_BUFFER_SIZE];

cores/arduino/stm32/OpenAMP/virtio_config.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
#endif
1111

1212
// Size of the vqueue message in the buffer
13-
#define RPMSG_VRING_HEADER_SIZE 16
13+
#define RPMSG_VRING_HEADER_SIZE (16)
14+
#define RPMSG_VRING_PAYLOAD_SIZE (RPMSG_BUFFER_SIZE - RPMSG_VRING_HEADER_SIZE)
1415

1516
#if defined (__LOG_TRACE_IO_)
1617
// OpenAMP trace (log) buffer configuration. See rsc_table.c and Print.cpp

0 commit comments

Comments
 (0)