summaryrefslogtreecommitdiff
path: root/cesar
diff options
context:
space:
mode:
authormercadie2010-05-17 09:14:51 +0000
committermercadie2010-05-17 09:14:51 +0000
commitd861f4338f507bb3471ed881f42d00763f893ab3 (patch)
treec844eba954d8103b4e3726bf1afbe4b51527a232 /cesar
parenta3c99f51aa76db8873cc6e52485afa648e4fc11d (diff)
cesar: first integration step
- remove beacon/pwl calls/uses, - remove beacon/ntb calls/uses, - uniformize timers setting, - fix some warning on the way, - build with bsu. achieved: - beacon tests ok, - station builds ok. still needs: - init bsu, - fully integrate aclf, - secure share memory updating, - secure countdowns, - testing. git-svn-id: svn+ssh://pessac/svn/cesar/trunk@7030 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'cesar')
-rw-r--r--cesar/ce/tx/src/mme.c2
-rw-r--r--cesar/cp/Module2
-rw-r--r--cesar/cp/beacon/beacon.h3
-rw-r--r--cesar/cp/beacon/ntb/Module1
-rw-r--r--cesar/cp/beacon/src/beacon.c67
-rw-r--r--cesar/cp/beacon/stub/src/beacon.c2
-rwxr-xr-xcesar/cp/beacon/test/Makefile18
-rw-r--r--cesar/cp/beacon/test/src/beacon.c17
-rw-r--r--cesar/cp/beacon/test/src/ntb_stub.c27
-rw-r--r--cesar/cp/cco/action/src/cco_action.c2
-rw-r--r--cesar/cp/defs.h5
-rw-r--r--cesar/cp/inc/context.h3
-rw-r--r--cesar/cp/msg/src/msg_cm.c3
-rw-r--r--cesar/cp/src/cp.c4
-rw-r--r--cesar/cp/sta/action/src/assoc.c2
-rw-r--r--cesar/cp/sta/action/src/handover.c2
-rw-r--r--cesar/cp/sta/action/src/misc.c4
-rw-r--r--cesar/cp/sta/action/src/poweron.c2
-rw-r--r--cesar/cp/sta/action/src/sc.c2
-rw-r--r--cesar/cp/sta/core/src/core.c3
-rw-r--r--cesar/projects/plc/Makefile2
21 files changed, 64 insertions, 109 deletions
diff --git a/cesar/ce/tx/src/mme.c b/cesar/ce/tx/src/mme.c
index 67dd25e966..3319ba3252 100644
--- a/cesar/ce/tx/src/mme.c
+++ b/cesar/ce/tx/src/mme.c
@@ -198,7 +198,7 @@ ce_tx_mme_read_interval_list (cp_t *ctx, bitstream_t *mme_bitstream,
/* Compute the beacon period in Allocation Time Unit. */
uint beacon_period_length_atu
- = MAC_TCK_TO_ATU (cp_pwl_get_beacon_period_ntb (ctx));
+ = 0; // TODO use aclf instead MAC_TCK_TO_ATU (cp_pwl_get_beacon_period_ntb (ctx));
/* Read the list of intervals. */
u8 index, last_index = 0;
u16 offset_atu = 0;
diff --git a/cesar/cp/Module b/cesar/cp/Module
index 82b96a9da4..2e716ded54 100644
--- a/cesar/cp/Module
+++ b/cesar/cp/Module
@@ -4,4 +4,4 @@ SOURCES += trace.c
endif
MODULES := cp/beacon cp/cco/action cp/cco/bw cp/cco/region cp/cl_interf \
cp/fsm cp/msg cp/secu cp/sta/action cp/sta/core \
- cp/sta/mgr cp/beacon/ntb
+ cp/sta/mgr
diff --git a/cesar/cp/beacon/beacon.h b/cesar/cp/beacon/beacon.h
index 3dccd47b04..ce3ac40aeb 100644
--- a/cesar/cp/beacon/beacon.h
+++ b/cesar/cp/beacon/beacon.h
@@ -165,12 +165,13 @@ cp_beacon_discover_compute_interval (cp_t *ctx);
/**
* Compute the new date for the beacon timer.
* \param ctx the module context.
+ * \param cco the cco status of the station.
*
* This function adjust the beacon timer for the station concerned by the
* handover or when the CCo stops it activity of CCo for others reasons.
*/
void
-cp_beacon_reconfigure_timer (cp_t *ctx);
+cp_beacon_reconfigure_timer (cp_t *ctx, bool cco);
/**
* Check if another countdown is currently active.
diff --git a/cesar/cp/beacon/ntb/Module b/cesar/cp/beacon/ntb/Module
index 330e1813c7..e69de29bb2 100644
--- a/cesar/cp/beacon/ntb/Module
+++ b/cesar/cp/beacon/ntb/Module
@@ -1 +0,0 @@
-SOURCES:=ntb.c
diff --git a/cesar/cp/beacon/src/beacon.c b/cesar/cp/beacon/src/beacon.c
index 4c0c7f13f8..f1534c526b 100644
--- a/cesar/cp/beacon/src/beacon.c
+++ b/cesar/cp/beacon/src/beacon.c
@@ -40,6 +40,7 @@
#include "bsu/beacon/beacon.h"
#include "cp/beacon/ntb/ntb.h"
#include "cp/pwl/pwl.h"
+#include "bsu/bsu.h"
/** Timer expires.
* \param ctx the CP context.
@@ -67,6 +68,21 @@ cp_get_next_beacon_shared_memory (cp_t *ctx)
return &ctx->beacon.shared_mem[ctx->beacon.shared_mem_slot_id];
}
+static
+void
+cp_beacon_clk_sync_call_spoc (cp_t *ctx, u32 fe)
+{
+ dbg_assert (ctx);
+ phy_spoc_coeff_t *coeff = blk_alloc ();
+ coeff->part2 = blk_alloc();
+ /* reset the spoc interval call counter.*/
+// TODO add in beacon context if necessay ctx->ntb.counter_spoc_interval = 0;
+
+ phy_spoc_compute_all (FIXED(fe, 30), coeff);
+ pbproc_spoc_coeff_set (ctx->pbproc, coeff);
+// ctx->ntb.counter_spoc_interval ++;
+}
+
bsu_beacon_t *
cp_beacon_fill_share_memory (cp_t *ctx)
{
@@ -291,7 +307,7 @@ cp_beacon_sta_compute_schedules (cp_t *ctx, bsu_beacon_t *beacon_data)
uint i, j;
- cp_pwl_update (ctx, beacon_data->bsu_params.bpsd_date, 4);
+// TODO remove if we really drop this solution cp_pwl_update (ctx, beacon_data->bsu_params.bpsd_date, 4);
/** Organize the schedules contained in beacon_data as a set. */
set_t set_schedules;
@@ -573,11 +589,7 @@ cp_beacon_update_beacon_data (cp_t *ctx)
cp_beacon_countdowns (ctx);
// Program the timer to awake and send another central beacon.
- hal_timer_instance_cancel (ctx->hal_timer, &ctx->beacon.leon_timer);
- hal_timer_instance_program (ctx->hal_timer, &ctx->beacon.leon_timer,
- cp_pwl_get_next_timer_date (ctx, true));
- CP_TRACE_VERBOSE (BEACON_TIMER_PRGM, phy_date (),
- cp_pwl_get_next_timer_date (ctx, true));
+ cp_beacon_reconfigure_timer (ctx, true);
/* Generate the beacon and send. */
bsu_beacon_t *beacon = cp_beacon_fill_share_memory (ctx);
@@ -700,19 +712,14 @@ cp_beacon_get_and_process_beacon (cp_t *ctx)
/** Update the u32 "ntb_offset_tck" field (NTB offset). */
ctx->mac_config->ntb_offset_tck = beacon_data.bsu_params.tick_offset;
- /** Call Spoc : TODO make it look better when removing ntb*/
- cp_beacon_ntb_clk_sync_call_spoc (
+ cp_beacon_clk_sync_call_spoc (
ctx, beacon_data.bsu_params.frequency_error);
/** Update the schedules. */
cp_beacon_sta_compute_schedules (ctx, &beacon_data);
/** Program the timer. */
- hal_timer_instance_cancel (ctx->hal_timer, &ctx->beacon.leon_timer);
- hal_timer_instance_program (ctx->hal_timer, &ctx->beacon.leon_timer,
- cp_pwl_get_next_timer_date (ctx, false));
- CP_TRACE_VERBOSE (BEACON_TIMER_PRGM, phy_date (),
- cp_pwl_get_next_timer_date(ctx, false));
+ cp_beacon_reconfigure_timer (ctx, false);
}
/** Raise the event in the FSM for station action. */
@@ -751,8 +758,7 @@ cp_beacon_process_tracked_avln (cp_t *ctx, cp_beacon_desc_t *beacon_desc,
/* Update the u32 "ntb_offset_tck" field (NTB offset). */
ctx->mac_config->ntb_offset_tck = beacon_data.bsu_params.tick_offset;
- /* Call Spoc : TODO make it look better when removing ntb*/
- cp_beacon_ntb_clk_sync_call_spoc (
+ cp_beacon_clk_sync_call_spoc (
ctx, beacon_data.bsu_params.frequency_error);
cp_beacon_sta_compute_schedules (ctx, &beacon_data);
@@ -761,11 +767,7 @@ cp_beacon_process_tracked_avln (cp_t *ctx, cp_beacon_desc_t *beacon_desc,
own->hybrid_mode = beacon_data.vf.hm;
// Program the timer.
- hal_timer_instance_cancel (ctx->hal_timer, &ctx->beacon.leon_timer);
- hal_timer_instance_program (ctx->hal_timer, &ctx->beacon.leon_timer,
- cp_pwl_get_next_timer_date (ctx, false));
- CP_TRACE_VERBOSE (BEACON_TIMER_PRGM, phy_date (),
- cp_pwl_get_next_timer_date(ctx, false));
+ cp_beacon_reconfigure_timer (ctx, false);
}
/**
@@ -783,12 +785,7 @@ cp_beacon_beacon_not_received (cp_t *ctx)
cp_fsm_post_new_event (ctx, bare, BEACON_NOT_RECEIVED);
// Program the timer.
- hal_timer_instance_cancel (ctx->hal_timer, &ctx->beacon.leon_timer);
- hal_timer_instance_program (ctx->hal_timer, &ctx->beacon.leon_timer,
- cp_pwl_get_next_timer_date (ctx, false));
-
- CP_TRACE_VERBOSE (BEACON_TIMER_PRGM, phy_date (),
- mac_ntb() + cp_pwl_get_beacon_period_ntb (ctx));
+ cp_beacon_reconfigure_timer (ctx, false);
}
/**
@@ -899,18 +896,24 @@ cp_beacon_handover_hoipflag (cp_t *ctx, enum cp_beacon_hoip_e flag)
}
void
-cp_beacon_reconfigure_timer (cp_t *ctx)
+cp_beacon_reconfigure_timer (cp_t *ctx, bool cco)
{
- bool cco;
dbg_assert (ctx);
+ u32 date;
+
+ if (cco)
+ date = 0 - CP_TIMER_OFFSET_CCO -
+ ctx->mac_config->ntb_offset_tck;
+ else
+ date = 0 + CP_TIMER_OFFSET_STA -
+ ctx->mac_config->ntb_offset_tck;
+
// Program the timer.
- cco = cp_sta_own_data_get_cco_status (ctx);
hal_timer_instance_cancel (ctx->hal_timer, &ctx->beacon.leon_timer);
hal_timer_instance_program (ctx->hal_timer, &ctx->beacon.leon_timer,
- cp_pwl_get_next_timer_date (ctx, cco));
- CP_TRACE_VERBOSE (BEACON_TIMER_PRGM, phy_date (),
- cp_pwl_get_next_timer_date (ctx, cco));
+ date);
+ CP_TRACE_VERBOSE (BEACON_TIMER_PRGM, phy_date (), date);
}
/**
diff --git a/cesar/cp/beacon/stub/src/beacon.c b/cesar/cp/beacon/stub/src/beacon.c
index 9d0c1fbe02..0d83f546c2 100644
--- a/cesar/cp/beacon/stub/src/beacon.c
+++ b/cesar/cp/beacon/stub/src/beacon.c
@@ -97,7 +97,7 @@ void
cp_beacon_handover (cp_t *ctx, cp_tei_t tei) {}
void
-cp_beacon_reconfigure_timer (cp_t *ctx) __attribute__((weak));
+cp_beacon_reconfigure_timer (cp_t *ctx, bool cco) __attribute__((weak));
void
cp_beacon_reconfigure_timer (cp_t *ctx) {}
diff --git a/cesar/cp/beacon/test/Makefile b/cesar/cp/beacon/test/Makefile
index 54a5d9acd3..162d294523 100755
--- a/cesar/cp/beacon/test/Makefile
+++ b/cesar/cp/beacon/test/Makefile
@@ -7,27 +7,13 @@ ECOS = y
TARGET_PROGRAMS = beacon
beacon_SOURCES = beacon.c \
- ca_stub.c ntb_stub.c secu_stub.c bsu_stub.c
+ ca_stub.c secu_stub.c bsu_stub.c
beacon_MODULES = bsu/beacon lib cp/beacon cp/sta/mgr mac/common cp/cco/bw \
- cp/pwl cp/cco/region \
+ cp/cco/region \
cp/fsm/stub cp/cco/action/stub hal/timer/stub \
cp/sta/core/stub mac/sar/stub cl/stub \
interface/stub
-bentry_SOURCES = bentry.c ntb_stub.c \
- interface_stub.c ca_stub.c
-bentry_MODULES = lib cp/beacon cp/sta/mgr mac/common cp/cco/bw \
- cp/cco/region \
- cp/pwl/stub cp/cco/action/stub hal/timer/stub \
- cp/sta/core/stub mac/sar/stub cl/stub cp/fsm/stub
-
-discover_process_SOURCES = discover.c ntb_stub.c \
- interface_stub.c ca_stub.c secu_stub.c bsu_stub.c
-discover_process_MODULES = lib cp/beacon mac/common cp/sta/mgr cp/pwl \
- cp/cco/region \
- cp/fsm/stub cp/cco/action/stub hal/timer/stub \
- cp/sta/core/stub mac/sar/stub cl/stub cp/cco/bw
-
mac_common_MODULE_SOURCES = config.c mfs.c store.c tonemap.c tonemask.c sta.c
include $(BASE)/common/make/top.mk
diff --git a/cesar/cp/beacon/test/src/beacon.c b/cesar/cp/beacon/test/src/beacon.c
index 84aec4b0aa..5cb4301f68 100644
--- a/cesar/cp/beacon/test/src/beacon.c
+++ b/cesar/cp/beacon/test/src/beacon.c
@@ -33,21 +33,18 @@
void
cp_beacon_receive (cp_t *ctx, pb_beacon_t *beacon);
-cp_beacon_desc_t *
-cp_beacon_generate_beacon (cp_t *ctx, cp_beacon_unpack_t *unpack);
-
void
-cp_beacon_compute_ca_schedules (cp_t *ctx);
-
-struct interface_t
+pbproc_spoc_coeff_set (pbproc_t *pbproc, phy_spoc_coeff_t *coeff)
{
- bool hello;
-};
+ dbg_assert (coeff);
+
+ blk_release (coeff->part2);
+ blk_release (coeff);
+}
void
-cp_pwl_update (cp_t *ctx, const u32 *bpsd, const uint bpsd_nb)
+phy_spoc_compute_all (s32 rho_q30, phy_spoc_coeff_t *coeff)
{
-
}
static cp_t cp;
diff --git a/cesar/cp/beacon/test/src/ntb_stub.c b/cesar/cp/beacon/test/src/ntb_stub.c
deleted file mode 100644
index 13a282ef07..0000000000
--- a/cesar/cp/beacon/test/src/ntb_stub.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Cesar project {{{
- *
- * Copyright (C) 2008 Spidcom
- *
- * <<<Licence>>>
- *
- * }}} */
-/**
- * \file src/ntb_stuc.c
- * \brief « brief description »
- * \ingroup « module »
- *
- * « long description »
- */
-#include "common/std.h"
-
-#include "cp/beacon/ntb/ntb.h"
-
-void
-cp_beacon_ntb_clk_sync_call_spoc (cp_t *ctx, u32 fe)
-{
-}
-
-void
-cp_beacon_ntb_clear (cp_t *ctx)
-{
-}
diff --git a/cesar/cp/cco/action/src/cco_action.c b/cesar/cp/cco/action/src/cco_action.c
index 6fcd89d484..19e55688e5 100644
--- a/cesar/cp/cco/action/src/cco_action.c
+++ b/cesar/cp/cco/action/src/cco_action.c
@@ -935,7 +935,7 @@ cp_cco_action__cco__assoc_stop (cp_t *ctx)
/* clear the TEI list. */
cp_cco_action_tei_clear (ctx);
cp_cco_action_cco_selection__clear (ctx);
- cp_beacon_reconfigure_timer (ctx);
+ cp_beacon_reconfigure_timer (ctx, false);
}
/**
diff --git a/cesar/cp/defs.h b/cesar/cp/defs.h
index 7fbcc42c52..ff3f9aac79 100644
--- a/cesar/cp/defs.h
+++ b/cesar/cp/defs.h
@@ -169,4 +169,9 @@
#define CP_HOMEPLUG_AV101_MAX 1
#define CP_HOMEPLUG_AV101 0
+/** Timer offset for beacon data update. */
+#define CP_TIMER_OFFSET_CCO 500000
+#define CP_TIMER_OFFSET_STA 250000
+
+
#endif /* cp_defs_h */
diff --git a/cesar/cp/inc/context.h b/cesar/cp/inc/context.h
index 5455895606..20db5b4b86 100644
--- a/cesar/cp/inc/context.h
+++ b/cesar/cp/inc/context.h
@@ -114,9 +114,6 @@ struct cp_t
/** Beacon module. */
cp_beacon_t beacon;
- /** NTB module. */
- cp_beacon_ntb_t ntb;
-
/** Region manager context. */
cp_cco_region_t region;
diff --git a/cesar/cp/msg/src/msg_cm.c b/cesar/cp/msg/src/msg_cm.c
index ad22a84e93..bf234b3719 100644
--- a/cesar/cp/msg/src/msg_cm.c
+++ b/cesar/cp/msg/src/msg_cm.c
@@ -25,6 +25,7 @@
#include "mac/common/timings.h"
#include "lib/utils.h"
#include "cp/sta/core/core.h"
+#include "bsu/aclf/aclf.h"
#include <cyg/kernel/kapi.h>
@@ -48,7 +49,7 @@ get_beacon_count_since_start (cp_t *ctx, u32 start_rtc_date)
dbg_assert (ctx);
new_time_rtc_date = cyg_current_time ();
- beacon_period_ntb = cp_pwl_get_beacon_period_ntb (ctx);
+ beacon_period_ntb = BSU_ACLF_BP_50HZ_TCK;// TODO replace with aclf cp_pwl_get_beacon_period_ntb (ctx);
dbg_assert (beacon_period_ntb);
delta_time_rtc = (u32)(new_time_rtc_date - start_rtc_date);
diff --git a/cesar/cp/src/cp.c b/cesar/cp/src/cp.c
index cceec10c47..e9851018af 100644
--- a/cesar/cp/src/cp.c
+++ b/cesar/cp/src/cp.c
@@ -80,9 +80,6 @@ cp_init (mac_config_t * mac_config, interface_t * interface,
/* Initialise the MSG module. */
cp_msg_init (&cp_global);
- /* Initialise the PWL module. */
- cp_pwl_init (&cp_global);
-
/* Initialise the Station. */
cp_sta_action_init (&cp_global);
@@ -121,7 +118,6 @@ cp_uninit (cp_t *ctx)
cp_cco_region_uninit (ctx);
cp_cl_interf_uninit (ctx);
cp_msg_uninit (ctx);
- cp_pwl_uninit (ctx);
cp_trace_uninit (ctx);
}
diff --git a/cesar/cp/sta/action/src/assoc.c b/cesar/cp/sta/action/src/assoc.c
index 13d31c7c6e..c56a60744e 100644
--- a/cesar/cp/sta/action/src/assoc.c
+++ b/cesar/cp/sta/action/src/assoc.c
@@ -124,7 +124,7 @@ cp_sta_action_assoc__unassociated__enter (cp_t *ctx)
cp_sta_own_data_set_authenticated_status (ctx, false);
cp_sta_mgr_set_our_avln (ctx, NULL);
cp_sta_own_data_set_tei (ctx, 0);
- cp_beacon_ntb_clear (ctx);
+// TODO cp_beacon_ntb_clear (ctx);
cp_fsm_trigger_new_event (ctx, bare, left);
}
diff --git a/cesar/cp/sta/action/src/handover.c b/cesar/cp/sta/action/src/handover.c
index 68dd1f50fb..86c68dce64 100644
--- a/cesar/cp/sta/action/src/handover.c
+++ b/cesar/cp/sta/action/src/handover.c
@@ -183,7 +183,7 @@ cp_sta_action_handover__handover_ended (cp_t *ctx)
/* Stop the lease timer. */
cp_sta_core_stop_timed_or_cyclic_event (ctx,
&ctx->sta_action.assoc.lease_timer);
- cp_beacon_reconfigure_timer (ctx);
+ cp_beacon_reconfigure_timer (ctx, false);
if (ctx->handover.reason == CP_HANDOVER_REASON_CCO_LEAVING)
{
cp_cco_action__cco__sta_leave_send_tei_map (ctx, old_cco);
diff --git a/cesar/cp/sta/action/src/misc.c b/cesar/cp/sta/action/src/misc.c
index 5318cb5b53..706cfe12ca 100644
--- a/cesar/cp/sta/action/src/misc.c
+++ b/cesar/cp/sta/action/src/misc.c
@@ -275,11 +275,11 @@ cp_sta_action_process_cm_nw_stats_req (cp_t *ctx, cp_mme_rx_t *rx_mme)
if (cp_msg_cm_nw_stats_req_receive (ctx, rx_mme))
{
+ our_avln = cp_sta_mgr_get_our_avln (ctx);
+
/* Make sure we have an avln */
if (MAC_TEI_IS_STA (cp_sta_own_data_get_tei (ctx)))
{
- our_avln = cp_sta_mgr_get_our_avln (ctx);
-
/* Get authenticated stas */
sta_list = cp_net_sta_get_first (ctx, our_avln, CP_NET_STA_ASSOC);
while (sta_list)
diff --git a/cesar/cp/sta/action/src/poweron.c b/cesar/cp/sta/action/src/poweron.c
index 82903da6a3..d8eb89f655 100644
--- a/cesar/cp/sta/action/src/poweron.c
+++ b/cesar/cp/sta/action/src/poweron.c
@@ -355,7 +355,7 @@ cp_sta_action_poweron__ucco__beacon (cp_t *ctx, cp_beacon_desc_t *beacon,
dbg_assert (net);
dbg_assert (sta);
/* Change to STA behaviour. */
- cp_beacon_reconfigure_timer (ctx);
+ cp_beacon_reconfigure_timer (ctx, false);
/* Handle incoming beacon. */
cp_sta_action_poweron_beacon_match_and_join (
ctx, beacon, net, sta,
diff --git a/cesar/cp/sta/action/src/sc.c b/cesar/cp/sta/action/src/sc.c
index d0c8bcdc69..024ab4fe4e 100644
--- a/cesar/cp/sta/action/src/sc.c
+++ b/cesar/cp/sta/action/src/sc.c
@@ -594,7 +594,7 @@ cp_sta_action_sc__sc_ucco_track_beacon (cp_t *ctx, cp_beacon_desc_t *beacon,
dbg_assert (net);
dbg_assert (sta);
/* Change to STA behaviour. */
- cp_beacon_reconfigure_timer (ctx);
+ cp_beacon_reconfigure_timer (ctx, false);
/* Handle incoming beacon. */
cp_sta_action_sc__sc_usta_track_beacon (ctx, beacon, net, sta);
}
diff --git a/cesar/cp/sta/core/src/core.c b/cesar/cp/sta/core/src/core.c
index d878032cb2..d9a8e74597 100644
--- a/cesar/cp/sta/core/src/core.c
+++ b/cesar/cp/sta/core/src/core.c
@@ -676,9 +676,6 @@ void cp_sta_core_cp_thread(cyg_addrword_t data)
dbg_assert(data);
- // Power-Line frequency detection (50Hz or 60Hz)
- cp_pwl_acl_frequency_detection(cp_ctx);
-
// run the wait-event loop of the thread...
cp_sta_core_wait_event_loop(cp_ctx);
}
diff --git a/cesar/projects/plc/Makefile b/cesar/projects/plc/Makefile
index 25ef73ccfb..efa5eed86a 100644
--- a/cesar/projects/plc/Makefile
+++ b/cesar/projects/plc/Makefile
@@ -7,7 +7,7 @@ TARGET_OPTIMIZE = -Os
TARGET_PROGRAMS = plc
plc_SOURCES = plc.c
-plc_MODULES = lib hal mac cl hle interface cp cp/av ce station
+plc_MODULES = lib hal mac cl hle interface cp cp/av ce station bsu
# Add support for Fcalls.
plc_MODULES += host ce/fcall