summaryrefslogtreecommitdiff
path: root/cleopatre
diff options
context:
space:
mode:
authorJean-Philippe SAVE2012-10-19 14:05:08 +0200
committerJean-Philippe SAVE2012-10-19 16:06:31 +0200
commit031cbd2b327daff7ada4dfd7b719482a66c8c1dc (patch)
treeef564fbadb9d0f2d875ff35a089ee0cd62ac8d38 /cleopatre
parent2509bd5b6092da5f34e8f67960cacf8220f8f7bb (diff)
{cesar, cleo}/ipmbox: adapt init after moving DATA on RAM, closes #3441
- Change queues initialisation: now, all queues head and tail pointers are respectively set by plcdrv at the begining and end of there areas. Cesar just have, for all queues, to set the tail pointer at head pointer. - Unitary tests have also been updating.
Diffstat (limited to 'cleopatre')
-rw-r--r--cleopatre/devkit/plcdrv/src/ipmbox.c4
-rw-r--r--cleopatre/devkit/tests/plcdrv/utests/ipmbox/src/ipmbox_queue_test.c14
-rw-r--r--cleopatre/devkit/tests/plcdrv/utests/ipmbox/src/ipmbox_test.c14
3 files changed, 16 insertions, 16 deletions
diff --git a/cleopatre/devkit/plcdrv/src/ipmbox.c b/cleopatre/devkit/plcdrv/src/ipmbox.c
index f2cf7786a2..15885e7add 100644
--- a/cleopatre/devkit/plcdrv/src/ipmbox.c
+++ b/cleopatre/devkit/plcdrv/src/ipmbox.c
@@ -238,7 +238,7 @@ ipmbox_init (ipmbox_ctx_t *ctx, struct net_device *dev,
virt_to_phys_offset = ctx->shared_mem_phy_base_addr
- (uint32_t) ctx->shared_mem_virt_base_ptr;
- /* Map queues pointers (but not for data, already done in register). */
+ /* Map queues pointers. */
shared_mem_base_ptr = ctx->shared_mem_virt_base_ptr;
for (i = 0; i < IPMBOX_QUEUE_TYPE_NB; i++)
{
@@ -340,7 +340,7 @@ ipmbox_is_synchronized (ipmbox_ctx_t *ctx)
for (j = 0; j < IPMBOX_QUEUE_DIRECTION_NB; j++)
{
if (ipmbox_queue_get_used_space (
- &ctx->queue[IPMBOX_QUEUE_DATA][IPMBOX_A2L]))
+ &ctx->queue[i][j]))
return false;
}
}
diff --git a/cleopatre/devkit/tests/plcdrv/utests/ipmbox/src/ipmbox_queue_test.c b/cleopatre/devkit/tests/plcdrv/utests/ipmbox/src/ipmbox_queue_test.c
index 63b763dbec..b93b5f8658 100644
--- a/cleopatre/devkit/tests/plcdrv/utests/ipmbox/src/ipmbox_queue_test.c
+++ b/cleopatre/devkit/tests/plcdrv/utests/ipmbox/src/ipmbox_queue_test.c
@@ -70,12 +70,6 @@ START_TEST (ipmbox_test_init)
fail_if (netdev.base_addr != (uint32_t) &reg);
i = 0;
fail_if (ipmbox.regs != &reg);
- fail_if (ipmbox.queue[IPMBOX_QUEUE_DATA][IPMBOX_A2L].ptr->tail
- != ipmbox.regs->a2l_tail);
- fail_if (ipmbox.queue[IPMBOX_QUEUE_DATA][IPMBOX_A2L].ptr->head
- != ipmbox.regs->a2l_head);
- fail_if (ipmbox.queue[IPMBOX_QUEUE_DATA][IPMBOX_L2A].ptr->tail
- != ipmbox.regs->l2a_tail);
fail_if (ipmbox.queue[IPMBOX_QUEUE_DATA][IPMBOX_L2A].ptr->head
!= ipmbox.regs->l2a_head);
/* Check registers initialisation. */
@@ -93,15 +87,15 @@ START_TEST (ipmbox_test_init)
}
total_shared_mem_size *= sizeof (uint32_t);
total_shared_mem_size += sizeof (ipmbox_queue_ptr_t)
- * (IPMBOX_QUEUE_TYPE_NB - 1) * IPMBOX_QUEUE_DIRECTION_NB;
+ * IPMBOX_QUEUE_TYPE_NB * IPMBOX_QUEUE_DIRECTION_NB;
fail_if (ipmbox.shared_mem_size != total_shared_mem_size);
/* Check shared memory mapping and initialisation. */
fail_if (ipmbox.shared_mem_virt_base_ptr != shared_mem);
i = 0;
shared_mem_ptr_zone_size = sizeof (ipmbox_queue_ptr_t) / sizeof (uint32_t)
- * (IPMBOX_QUEUE_TYPE_NB - 1) * IPMBOX_QUEUE_DIRECTION_NB;
- for (j = 0; j < IPMBOX_QUEUE_DATA; j++)
+ * IPMBOX_QUEUE_TYPE_NB * IPMBOX_QUEUE_DIRECTION_NB;
+ for (j = 0; j < IPMBOX_QUEUE_TYPE_NB; j++)
{
for (k = 0; k < IPMBOX_QUEUE_DIRECTION_NB; k++)
{
@@ -117,7 +111,7 @@ START_TEST (ipmbox_test_init)
}
/* Check base pointers initialisation. */
- i = sizeof (ipmbox_queue_ptr_t) * (IPMBOX_QUEUE_TYPE_NB - 1)
+ i = sizeof (ipmbox_queue_ptr_t) * IPMBOX_QUEUE_TYPE_NB
* IPMBOX_QUEUE_DIRECTION_NB / sizeof (uint32_t);
for (j = 0; j < IPMBOX_QUEUE_TYPE_NB; j++)
{
diff --git a/cleopatre/devkit/tests/plcdrv/utests/ipmbox/src/ipmbox_test.c b/cleopatre/devkit/tests/plcdrv/utests/ipmbox/src/ipmbox_test.c
index 5de637e5a8..9ce2eb0551 100644
--- a/cleopatre/devkit/tests/plcdrv/utests/ipmbox/src/ipmbox_test.c
+++ b/cleopatre/devkit/tests/plcdrv/utests/ipmbox/src/ipmbox_test.c
@@ -27,6 +27,8 @@
#include "stub.h"
+#define SHARED_MEM_PTR_RESERVED 12
+
#define test_phys_to_virt_u32(x) ((uint32_t *) test_phys_to_virt (x))
irqreturn_t
@@ -106,7 +108,8 @@ START_TEST (ipmbox_test_send_mbx)
ipmbox_init (&ctx, &netdev, it_mbx_handler, it_wd_handler);
/* Empty all queues. */
- memset (shared_mem + 8, 0, (SHARED_MEM_SIZE - 8) * sizeof (uint32_t));
+ memset (shared_mem + SHARED_MEM_PTR_RESERVED, 0, (SHARED_MEM_SIZE -
+ SHARED_MEM_PTR_RESERVED) * sizeof (uint32_t));
for (i = 0; i < IPMBOX_QUEUE_TYPE_NB; i++)
for (j = 0; j < IPMBOX_QUEUE_DIRECTION_NB; j++)
ctx.queue[i][j].ptr->tail = ctx.queue[i][j].ptr->head;
@@ -153,7 +156,8 @@ START_TEST (ipmbox_test_send_empty_buf)
ipmbox_init (&ctx, &netdev, it_mbx_handler, it_wd_handler);
/* Empty all queues. */
- memset (shared_mem + 8, 0, (SHARED_MEM_SIZE - 8) * sizeof (uint32_t));
+ memset (shared_mem + SHARED_MEM_PTR_RESERVED, 0, (SHARED_MEM_SIZE -
+ SHARED_MEM_PTR_RESERVED) * sizeof (uint32_t));
for (i = 0; i < IPMBOX_QUEUE_TYPE_NB; i++)
for (j = 0; j < IPMBOX_QUEUE_DIRECTION_NB; j++)
ctx.queue[i][j].ptr->tail = ctx.queue[i][j].ptr->head;
@@ -204,7 +208,8 @@ START_TEST (ipmbox_test_send_data)
ipmbox_init (&ctx, &netdev, it_mbx_handler, it_wd_handler);
/* Empty all queues. */
- memset (shared_mem + 8, 0, (SHARED_MEM_SIZE - 8) * sizeof (uint32_t));
+ memset (shared_mem + SHARED_MEM_PTR_RESERVED, 0, (SHARED_MEM_SIZE -
+ SHARED_MEM_PTR_RESERVED) * sizeof (uint32_t));
for (i = 0; i < IPMBOX_QUEUE_TYPE_NB; i++)
for (j = 0; j < IPMBOX_QUEUE_DIRECTION_NB; j++)
ctx.queue[i][j].ptr->tail = ctx.queue[i][j].ptr->head;
@@ -265,7 +270,8 @@ START_TEST (ipmbox_test_receive)
ipmbox_init (ipmbox, &netdev, it_mbx_handler, it_wd_handler);
/* Empty all queues. */
- memset (shared_mem + 8, 0, (SHARED_MEM_SIZE - 8) * sizeof (uint32_t));
+ memset (shared_mem + SHARED_MEM_PTR_RESERVED, 0, (SHARED_MEM_SIZE -
+ SHARED_MEM_PTR_RESERVED) * sizeof (uint32_t));
for (i = 0; i < IPMBOX_QUEUE_TYPE_NB; i++)
for (j = 0; j < IPMBOX_QUEUE_DIRECTION_NB; j++)
ipmbox->queue[i][j].ptr->tail = ipmbox->queue[i][j].ptr->head;