summaryrefslogtreecommitdiff
path: root/cesar/hal/phy/inc
diff options
context:
space:
mode:
authorNicolas Schodet2011-05-12 14:23:18 +0200
committerNicolas Schodet2011-09-08 16:22:54 +0200
commit312e093208777de66cbc084c3bfc3dd710cfcd61 (patch)
tree9a58929ef68bd976259b8699580a914441aa23af /cesar/hal/phy/inc
parentc33847d8de066d8e2ac34594b4ff72d3f9f92593 (diff)
cesar/cp, cesar/hal/phy, cesar/mac/pbproc: use delta external, refs #572
When frequency error is known, use external delta. This means: - RESYS program must be patched, - change delta accumulation coefficients register, - store computed delta in hardware register.
Diffstat (limited to 'cesar/hal/phy/inc')
-rw-r--r--cesar/hal/phy/inc/context.h2
-rw-r--r--cesar/hal/phy/inc/phy_params.txt3
-rw-r--r--cesar/hal/phy/inc/regs.h1
-rw-r--r--cesar/hal/phy/inc/resys.h8
4 files changed, 13 insertions, 1 deletions
diff --git a/cesar/hal/phy/inc/context.h b/cesar/hal/phy/inc/context.h
index ee999c7f54..0a21e76b77 100644
--- a/cesar/hal/phy/inc/context.h
+++ b/cesar/hal/phy/inc/context.h
@@ -70,6 +70,8 @@ struct phy_t
uint resys_gil_table[PHY_GIL_NB];
/** Start PBDMA on RESYS interrupt. */
bool pbdma_start_on_resys_it;
+ /** Whether frequency error is synchronised. */
+ bool freq_error_sync;
/** CAP activation mask. */
u8 cap_mask;
/** Phy stats. */
diff --git a/cesar/hal/phy/inc/phy_params.txt b/cesar/hal/phy/inc/phy_params.txt
index a82fd6a67d..81b7e02324 100644
--- a/cesar/hal/phy/inc/phy_params.txt
+++ b/cesar/hal/phy/inc/phy_params.txt
@@ -10,7 +10,8 @@ rx_fec_param__tcc_dyn_stop = 1
rx_fec_param__tcc_ber_period = 1
rx_fec_param__tcc_threshold = 0
channel_estim_coef__coef_preamble = 0
-channel_estim_coef__coef_res_delta = 32
+channel_estim_coef__coef_res_delta_internal = 32
+channel_estim_coef__coef_res_delta_external = 26
resys_threshold__nb_syncp_1 = 1995
resys_threshold__nb_syncp_2 = 2379
detect_param_1__lambda = 49152
diff --git a/cesar/hal/phy/inc/regs.h b/cesar/hal/phy/inc/regs.h
index 8d5934a609..fb38df84ae 100644
--- a/cesar/hal/phy/inc/regs.h
+++ b/cesar/hal/phy/inc/regs.h
@@ -272,6 +272,7 @@ typedef u32 uint32_t;
/* PHY_DSPSS_MACACKE_DELTA_USED */
#define PHY_DSPSS_MACACKE_DELTA_USED__VALUE 16, 0
#define PHY_DSPSS_MACACKE_DELTA_USED__INTERNAL 24, 24
+# define PHY_DSPSS_MACACKE_DELTA_USED__VALUE__RHO_Q 27
/* TX_GUARD_LENGTH */
# define PHY_DSPSS_TX_GUARD_LENGTH__VALUE_FC_10 192
diff --git a/cesar/hal/phy/inc/resys.h b/cesar/hal/phy/inc/resys.h
index f40037accc..dc29b21228 100644
--- a/cesar/hal/phy/inc/resys.h
+++ b/cesar/hal/phy/inc/resys.h
@@ -20,4 +20,12 @@
void
phy_resys_load (phy_t *ctx);
+/**
+ * Patch RESYS program to switch between internal or external program.
+ * \param ctx phy context
+ * \param external true for external program
+ */
+void
+phy_resys_patch (phy_t *ctx, bool external);
+
#endif /* hal_phy_inc_resys_h */