FreeCalypso > hg > fc-magnetite
view src/cs/layer1/gtt_include/ctm/conv_poly.h @ 624:012028896cfb
FFS dev.c, Leonardo target: Fujitsu MB84VF5F5F4J2 #if 0'ed out
The FFS code we got from TI/Openmoko had a stanza for "Fujitsu MB84VF5F5F4J2
stacked device", using a fake device ID code that would need to be patched
manually into cfgffs.c (suppressing and overriding autodetection) and using
an FFS base address in the nCS2 bank, indicating that this FFS config was
probably meant for the MCP version of Leonardo which allows for 16 MiB flash
with a second bank on nCS2.
We previously had this FFS config stanza conditionalized under
CONFIG_TARGET_LEONARDO because the base address contained therein is invalid
for other targets, but now that we actually have a Leonardo build target in
FC Magnetite, I realize that the better approach is to #if 0 out this stanza
altogether: it is already non-functional because it uses a fake device ID
code, thus it is does not add support for more Leonardo board variants,
instead it is just noise.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 22 Dec 2019 21:24:29 +0000 |
parents | 945cf7f506b2 |
children |
line wrap: on
line source
/* ******************************************************************************* * * COPYRIGHT (C) 2000 BY ERICSSON EUROLAB DEUTSCHLAND GmbH * * The program(s) may be used and/or copied only with the * written permission from Ericsson or in accordance * with the terms and conditions stipulated in the agreement or * contract under which the program(s) have been supplied. * ******************************************************************************* * * File : conv_poly.h * Purpose : Header file for conv_poly.c * Author : Francisco Javier Gil Gomez * ******************************************************************************* */ #ifndef conv_poly_h #define conv_poly_h #include "ctm_defines.h" /* CHC_RATE, CHC_K */ /* The constants CHC_RATE (rate of the channel codec) and */ /* CHC_K (constraint length) are defined in ctm_defines */ #define NUM_NODES (1<<(CHC_K-1)) /* MUST BE 2^(CHC_K-1) */ #define BLOCK 5 /* We perform the analysis of the */ // /* paths along BLOCK*CHC_K steps */ /* POLYXYZ = Polynomial for generating an optimum short constraint */ /* length convolutional code with rate = 1/X and constraint length = Y */ /* Polynoms for rate = 1/2 */ #define POLY23A 0x7 #define POLY23B 0x5 #define POLY24A 0XF #define POLY24B 0XB #define POLY25A 0X17 #define POLY25B 0X19 #define POLY26A 0X2F #define POLY26B 0X35 #define POLY27A 0X4F #define POLY27B 0X6D #define POLY28A 0X9F #define POLY28B 0XE5 #define POLY29A 0X1AF #define POLY29B 0X11D /* Polynoms for rate = 1/3 */ #define POLY33A 0x7 #define POLY33B 0x7 #define POLY33C 0x5 #define POLY34A 0xF #define POLY34B 0xB #define POLY34C 0xD #define POLY35A 0x1F #define POLY35B 0x1B #define POLY35C 0x15 #define POLY36A 0x2F #define POLY36B 0x2B #define POLY36C 0x3D #define POLY37A 0x4F #define POLY37B 0x57 #define POLY37C 0x6D #define POLY38A 0xEF #define POLY38B 0x9B #define POLY38C 0xA9 /* Polynoms for rate = 1/4 */ /* cf. Lin and Costello, "Error Control Coding: Fundamentals and Applications" */ #define POLY43A 0x5 #define POLY43B 0x7 #define POLY43C 0x7 #define POLY43D 0x7 #define POLY44A 0xB #define POLY44B 0xD #define POLY44C 0xD #define POLY44D 0xF #define POLY45A 0x15 #define POLY45B 0x17 #define POLY45C 0x1B #define POLY45D 0x1F #define POLY46A 0x2B #define POLY46B 0x37 #define POLY46C 0x39 #define POLY46D 0x3D #define POLY47A 0x5D #define POLY47B 0x5D #define POLY47C 0x67 #define POLY47D 0x73 #define POLY48A 0x9D #define POLY48B 0xBD #define POLY48C 0xCB #define POLY48D 0xEF #define POLY49A 0x133 #define POLY49B 0x15D #define POLY49C 0x1DB #define POLY49D 0x1E5 typedef struct { WORD16 impulse_response[CHC_RATE*CHC_K]; WORD16 temp[CHC_RATE*CHC_K]; } conv_encoder_t; typedef struct { WORD32 metric; /* Metric of the node after updating */ WORD32 oldmetric; /* Metric of the node before updating */ WORD16 base_output; /* Output of the node when the input is 0 */ WORD16 continue_path_from; /* Last node from which the actual node will continue the path */ WORD16 new_entry; /* Value to be added to the path (0 or 1) */ WORD16 path[BLOCK*CHC_K]; /* Path ending in the node */ WORD16 temppath[BLOCK*CHC_K]; /* Temp path used for the updating */ } node_t; typedef struct { node_t nodes[NUM_NODES]; WORD16 number_of_steps; } viterbi_t; void polynomials(WORD16 rate, WORD16 k, WORD16* polya, WORD16* polyb, WORD16* polyc, WORD16* polyd); #endif