summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNélio Laranjeiro2012-11-02 08:01:13 +0100
committerNélio Laranjeiro2012-11-29 17:32:09 +0100
commit15f05092aa698a166cfdc6a6d433ea17ea6e082b (patch)
treef934b31a116dc35600a363f50cfe3adc5d1104b1
parent230a0a43df5a2c2616f0225247b12b12680612bc (diff)
cesar/hal/arch: add two levels for ilram, closes #3457
-rw-r--r--cesar/bufmgr/src/bufmgr.c4
-rw-r--r--cesar/cl/src/cl_mactotei.c2
-rw-r--r--cesar/cl/src/receive.c4
-rw-r--r--cesar/cl/src/send_data.c4
-rw-r--r--cesar/hal/arch/Config4
-rw-r--r--cesar/hal/arch/arch.h10
-rw-r--r--cesar/hal/arch/inc/sparc.h54
-rw-r--r--cesar/hal/ipmbox/src/ipmbox.c2
-rw-r--r--cesar/lib/src/mac_lookup_table.c4
-rw-r--r--cesar/mac/ca/src/ca.c4
-rw-r--r--cesar/mac/common/src/store.c4
-rw-r--r--cesar/mac/pbproc/src/mfs.c4
-rw-r--r--cesar/mac/pbproc/src/sacki_enc.c6
-rw-r--r--cesar/mac/pbproc/test/int/Config2
-rw-r--r--cesar/mac/sar/src/brg.c2
-rw-r--r--cesar/mac/sar/src/rx.c8
-rw-r--r--cesar/mac/sar/src/tx.c2
-rw-r--r--cesar/maximus/prototest/integration/Config2
-rw-r--r--cesar/projects/plc/Config1
-rw-r--r--cesar/projects/plc/Config.mse5003
-rw-r--r--cesar/projects/plc/Config.traces2
21 files changed, 55 insertions, 73 deletions
diff --git a/cesar/bufmgr/src/bufmgr.c b/cesar/bufmgr/src/bufmgr.c
index 08cef49a13..db6236645b 100644
--- a/cesar/bufmgr/src/bufmgr.c
+++ b/cesar/bufmgr/src/bufmgr.c
@@ -49,7 +49,7 @@ bufmgr_fill_cache (bufmgr_t *ctx)
hal_arch_sem_post (&ctx->sem);
}
-u8* ARCH_ILRAM2_PRIO(1)
+u8* ARCH_ILRAM_PRIO (4)
bufmgr_get (bufmgr_t *ctx)
{
dbg_claim (ctx);
@@ -104,7 +104,7 @@ bufmgr_get_wait (bufmgr_t *ctx, uint delay_rtc)
return buffer;
}
-void ARCH_ILRAM2_PRIO(1)
+void ARCH_ILRAM_PRIO (4)
bufmgr_give_back (bufmgr_t *ctx, u8 *buffer)
{
dbg_claim (ctx);
diff --git a/cesar/cl/src/cl_mactotei.c b/cesar/cl/src/cl_mactotei.c
index e04172e918..c30c05bd29 100644
--- a/cesar/cl/src/cl_mactotei.c
+++ b/cesar/cl/src/cl_mactotei.c
@@ -164,7 +164,7 @@ cl_mactotei_table_find_tei_from_mac (cl_t *ctx, mac_t mac)
return MAC_TEI_UNASSOCIATED;
}
-uint ARCH_ILRAM2_PRIO(1)
+uint ARCH_ILRAM_PRIO (4)
cl_mactotei_table_find_tei_and_tag_from_mac (cl_t *ctx, mac_t mac, uint *tag)
{
/* Check parameter. */
diff --git a/cesar/cl/src/receive.c b/cesar/cl/src/receive.c
index 69e493e5bc..c06f175f59 100644
--- a/cesar/cl/src/receive.c
+++ b/cesar/cl/src/receive.c
@@ -35,7 +35,7 @@
#include "cl/inc/receive.h"
#include "config/cl.h"
-void ARCH_ILRAM2_PRIO(0)
+void ARCH_ILRAM_PRIO (3)
cl_sar_data_recv (cl_t *ctx, u8 *buffer, uint length, mfs_rx_t *mfs)
{
dbg_claim (ctx);
@@ -79,7 +79,7 @@ cl_sar_mme_recv (cl_t *ctx, u8 *buffer, uint length, mfs_rx_t *mfs,
GPIO_TOGGLE (LED_CL_RX);
}
-void ARCH_ILRAM2_PRIO(0)
+void ARCH_ILRAM_PRIO (3)
cl_ipmbox_data_recv (cl_t *ctx, u32 *msg_buffer, uint nb_words)
{
/* Check parameters. */
diff --git a/cesar/cl/src/send_data.c b/cesar/cl/src/send_data.c
index 824cf3a0d5..b2d3bcbd5c 100644
--- a/cesar/cl/src/send_data.c
+++ b/cesar/cl/src/send_data.c
@@ -182,7 +182,7 @@ cl_av_data_send_multicast (cl_t *ctx, u8 *buffer, uint length, uint tag,
* \param dmac the destination mac address.
* \param smac the source mac address.
*/
-static void ARCH_ILRAM2_PRIO(0)
+static void ARCH_ILRAM_PRIO (3)
cl_data_send_prepare (cl_t *ctx, u8 *buffer, uint length, uint tag,
u32 arrival_time_ntb, mac_t dmac, mac_t smac)
{
@@ -236,7 +236,7 @@ cl_data_send_prepare (cl_t *ctx, u8 *buffer, uint length, uint tag,
bufmgr_give_back (ctx->bufmgr, buffer);
}
-void ARCH_ILRAM2_PRIO(0)
+void ARCH_ILRAM_PRIO (3)
cl_data_send (cl_t *ctx, u8 *buffer, uint length, uint tag,
u32 arrival_time_ntb)
{
diff --git a/cesar/hal/arch/Config b/cesar/hal/arch/Config
index 7d8dbbee7f..c72d0b2718 100644
--- a/cesar/hal/arch/Config
+++ b/cesar/hal/arch/Config
@@ -1,2 +1,2 @@
-CONFIG_ARCH_ILRAM_PRIO = 5
-CONFIG_ARCH_ILRAM2_PRIO = 0
+CONFIG_ARCH_ILRAM_PRIO_LOW = 5
+CONFIG_ARCH_ILRAM_PRIO_HIGH = 0
diff --git a/cesar/hal/arch/arch.h b/cesar/hal/arch/arch.h
index 19c96382d7..fe50887ba4 100644
--- a/cesar/hal/arch/arch.h
+++ b/cesar/hal/arch/arch.h
@@ -38,16 +38,6 @@
#define ARCH_ILRAM_PRIO(prio)
/**
- * Put in the instruction local ram section, with lower priority.
- * \param prio function priority
- *
- * Should be put between function return type and function name. Function
- * will be included in local ram only if priority is lower than the
- * configured limit.
- */
-#define ARCH_ILRAM2_PRIO(prio)
-
-/**
* Put in the data local ram section.
*/
#define ARCH_DLRAM_DATA
diff --git a/cesar/hal/arch/inc/sparc.h b/cesar/hal/arch/inc/sparc.h
index ab3e75a47c..6050430c2a 100644
--- a/cesar/hal/arch/inc/sparc.h
+++ b/cesar/hal/arch/inc/sparc.h
@@ -19,7 +19,6 @@
#if defined (ECOS) && ECOS
# include "config/arch/ilram.h"
-# include "config/arch/ilram2.h"
# undef ARCH_ILRAM
# define ARCH_ILRAM __attribute__ ((section (".ilram")))
@@ -30,49 +29,40 @@
# undef ARCH_ILRAM_PRIO
# define ARCH_ILRAM_PRIO(prio) PASTE (ARCH_ILRAM_PRIO_, prio)
-# undef ARCH_ILRAM2_PRIO
-# define ARCH_ILRAM2_PRIO(prio) PASTE (ARCH_ILRAM2_PRIO_, prio)
-
-# if CONFIG_ARCH_ILRAM_PRIO >= 3
+# if CONFIG_ARCH_ILRAM_PRIO_LOW >= 4
+# define ARCH_ILRAM_PRIO_4 ARCH_ILRAM
+# elif CONFIG_ARCH_ILRAM_PRIO_HIGH >= 4
+# define ARCH_ILRAM_PRIO_4 ARCH_ILRAM2
+# else
+# define ARCH_ILRAM_PRIO_4
+# endif
+# if CONFIG_ARCH_ILRAM_PRIO_LOW >= 3
# define ARCH_ILRAM_PRIO_3 ARCH_ILRAM
+# elif CONFIG_ARCH_ILRAM_PRIO_HIGH >= 3
+# define ARCH_ILRAM_PRIO_3 ARCH_ILRAM2
# else
-# define ARCH_ILRAM_PRIO_3 ARCH_ILRAM2_PRIO_3
+# define ARCH_ILRAM_PRIO_3
# endif
-# if CONFIG_ARCH_ILRAM_PRIO >= 2
+# if CONFIG_ARCH_ILRAM_PRIO_LOW >= 2
# define ARCH_ILRAM_PRIO_2 ARCH_ILRAM
+# elif CONFIG_ARCH_ILRAM_PRIO_HIGH >= 2
+# define ARCH_ILRAM_PRIO_2 ARCH_ILRAM2
# else
-# define ARCH_ILRAM_PRIO_2 ARCH_ILRAM2_PRIO_2
+# define ARCH_ILRAM_PRIO_2
# endif
-# if CONFIG_ARCH_ILRAM_PRIO >= 1
+# if CONFIG_ARCH_ILRAM_PRIO_LOW >= 1
# define ARCH_ILRAM_PRIO_1 ARCH_ILRAM
+# elif CONFIG_ARCH_ILRAM_PRIO_HIGH >= 1
+# define ARCH_ILRAM_PRIO_1 ARCH_ILRAM2
# else
-# define ARCH_ILRAM_PRIO_1 ARCH_ILRAM2_PRIO_1
+# define ARCH_ILRAM_PRIO_1
# endif
-# if CONFIG_ARCH_ILRAM_PRIO >= 0
+# if CONFIG_ARCH_ILRAM_PRIO_LOW >= 0
# define ARCH_ILRAM_PRIO_0 ARCH_ILRAM
-# else
+# elif CONFIG_ARCH_ILRAM_PRIO_HIGH >= 0
# define ARCH_ILRAM_PRIO_0 ARCH_ILRAM2
-# endif
-
-# if CONFIG_ARCH_ILRAM2_PRIO > 3
-# define ARCH_ILRAM2_PRIO_3 ARCH_ILRAM2
-# else
-# define ARCH_ILRAM2_PRIO_3
-# endif
-# if CONFIG_ARCH_ILRAM2_PRIO > 2
-# define ARCH_ILRAM2_PRIO_2 ARCH_ILRAM2
-# else
-# define ARCH_ILRAM2_PRIO_2
-# endif
-# if CONFIG_ARCH_ILRAM2_PRIO > 1
-# define ARCH_ILRAM2_PRIO_1 ARCH_ILRAM2
-# else
-# define ARCH_ILRAM2_PRIO_1
-# endif
-# if CONFIG_ARCH_ILRAM2_PRIO > 0
-# define ARCH_ILRAM2_PRIO_0 ARCH_ILRAM2
# else
-# define ARCH_ILRAM2_PRIO_0
+# define ARCH_ILRAM_PRIO_0
# endif
# undef ARCH_DLRAM_DATA
diff --git a/cesar/hal/ipmbox/src/ipmbox.c b/cesar/hal/ipmbox/src/ipmbox.c
index 3ff4db3a15..a7b695bfa6 100644
--- a/cesar/hal/ipmbox/src/ipmbox.c
+++ b/cesar/hal/ipmbox/src/ipmbox.c
@@ -52,7 +52,7 @@ ipmbox_tx (ipmbox_t *ctx, ipmbox_queue_t *queue, u32 *first_msg, uint length)
arch_dsr_unlock ();
}
-void ARCH_ILRAM2_PRIO(0)
+void ARCH_ILRAM_PRIO (3)
ipmbox_tx_data (ipmbox_t *ctx, u32 *first_msg, uint length)
{
ipmbox_tx (ctx, &ctx->queue[IPMBOX_QUEUE_DATA][IPMBOX_L2A],
diff --git a/cesar/lib/src/mac_lookup_table.c b/cesar/lib/src/mac_lookup_table.c
index bd428f9034..585436d507 100644
--- a/cesar/lib/src/mac_lookup_table.c
+++ b/cesar/lib/src/mac_lookup_table.c
@@ -227,7 +227,7 @@ mac_lookup_table_release (mac_lookup_table_t *table)
mac_lookup_table_delete (table->first);
}
-bool ARCH_ILRAM2_PRIO (1)
+bool ARCH_ILRAM_PRIO (4)
mac_lookup_table_find_entry (mac_lookup_table_t *table,
mac_t mac_address, u16 *extra_info)
{
@@ -316,7 +316,7 @@ mac_lookup_table_get_entry (mac_lookup_table_t *table, uint position,
*extra_info = r->extra_info;
}
-mac_lookup_data_entry_t * ARCH_ILRAM2_PRIO (1)
+mac_lookup_data_entry_t * ARCH_ILRAM_PRIO (4)
mac_lookup_table_find (mac_lookup_table_t *table, mac_t mac_address)
{
/* Check parameters. */
diff --git a/cesar/mac/ca/src/ca.c b/cesar/mac/ca/src/ca.c
index 71623546f8..7a8ffaad4b 100644
--- a/cesar/mac/ca/src/ca.c
+++ b/cesar/mac/ca/src/ca.c
@@ -107,7 +107,7 @@ ca_mfs_remove (ca_t *ctx, mfs_tx_t *mfs)
ca_access_update (ctx);
}
-static void ARCH_ILRAM2_PRIO (0)
+static void ARCH_ILRAM_PRIO (3)
ca_mfs_update_common (ca_t *ctx, mfs_tx_t *mfs, bool locked)
{
ca_mfs_state_t new_state;
@@ -159,7 +159,7 @@ ca_mfs_update_common (ca_t *ctx, mfs_tx_t *mfs, bool locked)
}
}
-void ARCH_ILRAM2_PRIO (0)
+void ARCH_ILRAM_PRIO (3)
ca_mfs_update (ca_t *ctx, mfs_tx_t *mfs)
{
ca_mfs_update_common (ctx, mfs, false);
diff --git a/cesar/mac/common/src/store.c b/cesar/mac/common/src/store.c
index 34d50cbb42..92b322b38a 100644
--- a/cesar/mac/common/src/store.c
+++ b/cesar/mac/common/src/store.c
@@ -205,7 +205,7 @@ mac_store_mfs_slot_get (mac_store_t *ctx, bool tx, bool bcast, bool mme,
}
}
-mfs_t * ARCH_ILRAM2_PRIO (0)
+mfs_t * ARCH_ILRAM_PRIO (3)
mac_store_mfs_get_ (mac_store_t *ctx, bool tx, bool bcast, bool mme, uint lid,
uint tei __FL)
{
@@ -223,7 +223,7 @@ mac_store_mfs_get_ (mac_store_t *ctx, bool tx, bool bcast, bool mme, uint lid,
return mfs;
}
-mfs_t * ARCH_ILRAM2_PRIO (0)
+mfs_t * ARCH_ILRAM_PRIO (3)
mac_store_mfs_add_ (mac_store_t *ctx, bool tx, bool bcast, bool mme, uint lid,
uint tei, bool *added __FL)
{
diff --git a/cesar/mac/pbproc/src/mfs.c b/cesar/mac/pbproc/src/mfs.c
index 1b345abbd3..06573cdc10 100644
--- a/cesar/mac/pbproc/src/mfs.c
+++ b/cesar/mac/pbproc/src/mfs.c
@@ -166,7 +166,7 @@ pbproc_mfs_beacon_prepare (pbproc_t *ctx, mfs_tx_t *mfs, pb_beacon_t *pb,
pbproc_mfs_provide (mfs, 1);
}
-bool ARCH_ILRAM2_PRIO (0)
+bool ARCH_ILRAM_PRIO (3)
pbproc_mfs_expire (pbproc_t *ctx, mfs_tx_t *mfs, u32 expiration_ntb,
uint *expired_nb)
{
@@ -227,7 +227,7 @@ pbproc_mfs_expire (pbproc_t *ctx, mfs_tx_t *mfs, u32 expiration_ntb,
return empty;
}
-int ARCH_ILRAM2_PRIO (0)
+int ARCH_ILRAM_PRIO (3)
pbproc_mfs_remove_expired (pbproc_t *ctx, mfs_tx_t *mfs, u32 expiration_ntb,
u32 hysteresis_offset_tck, int max_release_nb,
pb_t **release_head, pb_t **release_tail)
diff --git a/cesar/mac/pbproc/src/sacki_enc.c b/cesar/mac/pbproc/src/sacki_enc.c
index b477d308df..737c937a20 100644
--- a/cesar/mac/pbproc/src/sacki_enc.c
+++ b/cesar/mac/pbproc/src/sacki_enc.c
@@ -197,7 +197,7 @@ pbproc_sacki_enc_process (pbproc_sacki_enc_t *ctx, const volatile u32 *bmp,
}
}
-void ARCH_ILRAM2_PRIO (0)
+void ARCH_ILRAM_PRIO (3)
pbproc_sacki_enc_rewind (pbproc_sacki_enc_t *ctx)
{
uint sissw, sissb;
@@ -218,7 +218,7 @@ pbproc_sacki_enc_rewind (pbproc_sacki_enc_t *ctx)
ctx->sis = ctx->sis_save;
}
-void ARCH_ILRAM2_PRIO (0)
+void ARCH_ILRAM_PRIO (3)
pbproc_sacki_enc_copy (pbproc_sacki_enc_t *ctx, const volatile u32 *bmp,
uint bmpl)
{
@@ -281,7 +281,7 @@ pbproc_sacki_enc_copy (pbproc_sacki_enc_t *ctx, const volatile u32 *bmp,
}
}
-bool ARCH_ILRAM2_PRIO (0)
+bool ARCH_ILRAM_PRIO (3)
pbproc_sacki_enc_better (pbproc_sacki_enc_t *ctx, uint bmpl)
{
dbg_claim (ctx);
diff --git a/cesar/mac/pbproc/test/int/Config b/cesar/mac/pbproc/test/int/Config
index 071b374c9d..2fad84bb33 100644
--- a/cesar/mac/pbproc/test/int/Config
+++ b/cesar/mac/pbproc/test/int/Config
@@ -3,4 +3,4 @@ CONFIG_STATS = n
CONFIG_DEBUG_CLAIM[target] = n
CONFIG_INTERFACE_SNIFFER[target] = n
-CONFIG_ARCH_ILRAM_PRIO[target] = 0
+CONFIG_ARCH_ILRAM_PRIO_LOW[target] = 0
diff --git a/cesar/mac/sar/src/brg.c b/cesar/mac/sar/src/brg.c
index 24769cb509..097b38602b 100644
--- a/cesar/mac/sar/src/brg.c
+++ b/cesar/mac/sar/src/brg.c
@@ -155,7 +155,7 @@ sar_bridge_dma_free_header_not_activate (sar_t *ctx, sar_job_mfs_t *job)
bufmgr_keep_buffer (ctx->bufmgr, job->job.data_addr);
}
-void ARCH_ILRAM2_PRIO(0)
+void ARCH_ILRAM_PRIO (3)
sar_bridge_dma_free_head (sar_t *ctx)
{
sar_job_mfs_t *job;
diff --git a/cesar/mac/sar/src/rx.c b/cesar/mac/sar/src/rx.c
index 9fb8d16f9c..08c66a85b3 100644
--- a/cesar/mac/sar/src/rx.c
+++ b/cesar/mac/sar/src/rx.c
@@ -429,7 +429,7 @@ sar_rx_drop_and_stat (sar_t *ctx, pb_t *pb, uint *stat)
* - Verifies if the PB is in the window
* - Insert it in the right place in the corresponding MFS.
*/
-PRIVATE void ARCH_ILRAM2_PRIO(0)
+PRIVATE void ARCH_ILRAM_PRIO (3)
sar_rx_mpdu_process (sar_t *ctx, sar_mpdu_t * rx)
{
pb_t *rx_head;
@@ -909,7 +909,7 @@ sar_rx_mfs_process__queue_jobs (sar_t *ctx, sar_job_mfs_t *jobs)
* \param ctx the module context.
* \param mfs the mfs to process.
*/
-PRIVATE void ARCH_ILRAM2_PRIO(0)
+PRIVATE void ARCH_ILRAM_PRIO (3)
sar_rx_mfs_process (sar_t *ctx, mfs_rx_t * mfs)
{
sar_job_mfs_t *job;
@@ -1011,7 +1011,7 @@ sar_mac_frame_reconstitute (sar_t *ctx, mfs_rx_t *mfs)
* \param ctx the SAR context.
* \param rx the MPDU received.
*/
-PRIVATE void ARCH_ILRAM2_PRIO(0)
+PRIVATE void ARCH_ILRAM_PRIO (3)
sar_reassembly_run (sar_t *ctx, sar_mpdu_t *rx)
{
dbg_assert (ctx);
@@ -1079,7 +1079,7 @@ sar_mpdu_release_content (sar_t *ctx, sar_mpdu_t *mpdu)
mpdu->rx.chandata_nb);
}
-void ARCH_ILRAM2_PRIO(0)
+void ARCH_ILRAM_PRIO (3)
sar_mpdu_process (void *user, pbproc_rx_desc_t *rx_desc)
{
sar_t *ctx;
diff --git a/cesar/mac/sar/src/tx.c b/cesar/mac/sar/src/tx.c
index 13e80d3ecf..7570ef1db1 100644
--- a/cesar/mac/sar/src/tx.c
+++ b/cesar/mac/sar/src/tx.c
@@ -300,7 +300,7 @@ sar_msdu_process__send_frame (sar_t *ctx, u8 *buffer, u16 length,
arch_dsr_unlock ();
}
-void ARCH_ILRAM2_PRIO(0)
+void ARCH_ILRAM_PRIO (3)
sar_msdu_process (sar_t *ctx, u8 *buffer, u16 length, mfs_tx_t *mfs,
u32 arrival_time_ntb)
{
diff --git a/cesar/maximus/prototest/integration/Config b/cesar/maximus/prototest/integration/Config
index 91589a3b01..d271270b9a 100644
--- a/cesar/maximus/prototest/integration/Config
+++ b/cesar/maximus/prototest/integration/Config
@@ -1,3 +1,3 @@
CONFIG_DEBUG = y
CONFIG_DEBUG_FATAL_CATCH = y
-CONFIG_ARCH_ILRAM_PRIO = 0
+CONFIG_ARCH_ILRAM_PRIO_LOW = 0
diff --git a/cesar/projects/plc/Config b/cesar/projects/plc/Config
index f30747cbf7..d23daa7415 100644
--- a/cesar/projects/plc/Config
+++ b/cesar/projects/plc/Config
@@ -1,3 +1,4 @@
set plc
set plc-board
CONFIG_STATS_ON_FATAL = y
+CONFIG_ARCH_ILRAM_PRIO_LOW = 2
diff --git a/cesar/projects/plc/Config.mse500 b/cesar/projects/plc/Config.mse500
index 0df3482fa8..214c67961b 100644
--- a/cesar/projects/plc/Config.mse500
+++ b/cesar/projects/plc/Config.mse500
@@ -2,4 +2,5 @@ set plc
set plc-board
CONFIG_STATS_ON_FATAL = y
CONFIG_PHY_AES_ALWAYS_BYPASSED = y
-CONFIG_ARCH_ILRAM2_PRIO = 5
+CONFIG_ARCH_ILRAM_PRIO_LOW = 2
+CONFIG_ARCH_ILRAM_PRIO_HIGH = 5
diff --git a/cesar/projects/plc/Config.traces b/cesar/projects/plc/Config.traces
index 1118aa9f11..b929ef0725 100644
--- a/cesar/projects/plc/Config.traces
+++ b/cesar/projects/plc/Config.traces
@@ -1,6 +1,6 @@
set plc
set plc-board
-CONFIG_ARCH_ILRAM_PRIO = 0
+CONFIG_ARCH_ILRAM_PRIO_LOW = 0
CONFIG_STATS_ON_FATAL = y
CONFIG_TRACE_ALL_FAST = y
CONFIG_TRACE_ON_FATAL = y