FreeCalypso > hg > freecalypso-sw
diff gsm-fw/L1/include/l1_confg.h @ 714:58bbee73c4b7
gsm-fw/L1/include/l1_confg.h: SEND_FN_TO_L2_IN_DCCH fix
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Fri, 03 Oct 2014 06:49:23 +0000 |
parents | eb3fb4d0dcf0 |
children | cc9d97d0e911 |
line wrap: on
line diff
--- a/gsm-fw/L1/include/l1_confg.h Fri Oct 03 05:05:03 2014 +0000 +++ b/gsm-fw/L1/include/l1_confg.h Fri Oct 03 06:49:23 2014 +0000 @@ -1129,8 +1129,30 @@ // MAC-S status reporting to Layer 1 #define MACS_STATUS 0 // MAC-S STATUS activated if set to 1 -// Possible choice for dll_dcch_downlink interface (with FN or without FN) -#define SEND_FN_TO_L2_IN_DCCH 0 +/* + * Possible choice for dll_dcch_downlink interface (with FN or without FN) + * 0=without, 1=with FN parameter + * + * FreeCalypso note: the Leonardo version had this setting set to 1, i.e., + * 3 arguments to dll_dcch_downlink(). We don't have any source or even + * header files for the Leonardo version of DL, but disassembly shows + * that dll_dcch_downlink() does expect the FN parameter. The source for + * DL from LoCosto also has a SEND_FN_TO_L2_IN_DCCH configurable setting, + * and it is set to 1 in the dl.h local header. But here is the kicker: + * the LoCosto version of this l1_confg.h header has the setting set to 0! + * + * I couldn't believe my eyes, so I disassembled the binary objects present + * in the copy of the LoCosto source from scottn.us: yes, indeed that + * code version contains an outright bug in that L1 does not pass the + * 3rd argument (in ARM register r2), but DL expects it to be there. + * (Thus DL is getting whatever "garbage" happens to be in r2 as the FN + * parameter. I did not take the time to investigate what the downstream + * effects are.) + * + * For FreeCalypso I'm setting SEND_FN_TO_L2_IN_DCCH to 1, both here + * in L1 and in DL, where it was already set. + */ +#define SEND_FN_TO_L2_IN_DCCH 1 /* * FreeCalypso change: I'm disabling L1_CHECK_COMPATIBLE (a new "feature"