Commit bb5dd4b6 authored by Raymond Knopp's avatar Raymond Knopp Committed by Robert Schmidt

LDPC interface: init: provide number of PxSCH

Provide the memory buffer size for storing LLRs across HARQ rounds. then
we don't need to check for this in the API users.
parent 3a5df627
......@@ -286,7 +286,7 @@ int main(int argc, char **argv)
init_opt();
int ret_loader = load_nrLDPC_coding_interface(NULL, &nrLDPC_coding_interface);
int ret_loader = load_nrLDPC_coding_interface(NULL, &nrLDPC_coding_interface, 32);
AssertFatal(ret_loader == 0, "error loading LDPC library\n");
// strdup to put the sring in the core file for post mortem identification
......
......@@ -1055,7 +1055,7 @@ static int normalize_dpdk_dev(const char *input, char *output, size_t out_len)
}
// OAI CODE
int32_t nrLDPC_coding_init()
int32_t nrLDPC_coding_init(int max_num_pxsch)
{
pthread_mutex_init(&encode_mutex, NULL);
pthread_mutex_init(&decode_mutex, NULL);
......
......@@ -218,7 +218,7 @@ typedef struct nrLDPC_slot_encoding_parameters_s{
nrLDPC_TB_encoding_parameters_t *TBs;
} nrLDPC_slot_encoding_parameters_t;
typedef int32_t(nrLDPC_coding_init_t)(void);
typedef int32_t(nrLDPC_coding_init_t)(int);
typedef int32_t(nrLDPC_coding_shutdown_t)(void);
/**
......@@ -240,7 +240,7 @@ typedef struct nrLDPC_coding_interface_s {
nrLDPC_coding_encoder_t *nrLDPC_coding_encoder;
} nrLDPC_coding_interface_t;
int load_nrLDPC_coding_interface(char *version, nrLDPC_coding_interface_t *interface);
int load_nrLDPC_coding_interface(char *version, nrLDPC_coding_interface_t *interface, int);
int free_nrLDPC_coding_interface(nrLDPC_coding_interface_t *interface);
#endif
......@@ -38,7 +38,7 @@
/* arg is used to initialize the config module so that the loader works as expected */
char *arguments_phy_simulators[64]={"ldpctest",NULL};
int load_nrLDPC_coding_interface(char *version, nrLDPC_coding_interface_t *itf)
int load_nrLDPC_coding_interface(char *version, nrLDPC_coding_interface_t *itf,int max_num_pxsch)
{
char *ptr = (char *)config_get_if();
char libname[64] = "ldpc";
......@@ -63,7 +63,7 @@ int load_nrLDPC_coding_interface(char *version, nrLDPC_coding_interface_t *itf)
itf->nrLDPC_coding_decoder = (nrLDPC_coding_decoder_t *)shlib_fdesc[2].fptr;
itf->nrLDPC_coding_encoder = (nrLDPC_coding_encoder_t *)shlib_fdesc[3].fptr;
AssertFatal(itf->nrLDPC_coding_init() == 0, "error starting LDPC library %s %s\n", libname, version);
AssertFatal(itf->nrLDPC_coding_init(max_num_pxsch) == 0, "error starting LDPC library %s %s\n", libname, version);
return 0;
}
......
......@@ -77,14 +77,14 @@ typedef struct args_fpga_decode_prepare_s {
task_ans_t *ans; /*!< pointer to the answer that is used by thread pool to detect job completion */
} args_fpga_decode_prepare_t;
int32_t nrLDPC_coding_init(void);
int32_t nrLDPC_coding_init(int);
int32_t nrLDPC_coding_shutdown(void);
int32_t nrLDPC_coding_decoder(nrLDPC_slot_decoding_parameters_t *slot_params, int frame_rx, int slot_rx);
// int32_t nrLDPC_coding_encoder(void);
int decoder_xdma(nrLDPC_TB_decoding_parameters_t *TB_params, int frame_rx, int slot_rx, tpool_t *ldpc_threadPool);
void nr_ulsch_FPGA_decoding_prepare_blocks(void *args);
int32_t nrLDPC_coding_init(void)
int32_t nrLDPC_coding_init(int max_num_pxsch)
{
paramdef_t LoaderParams[] = {
{"num_threads_prepare", NULL, 0, .iptr = &num_threads_prepare_max, .defintval = 0, TYPE_INT, 0, NULL},
......
......@@ -134,8 +134,6 @@ void phy_init_nr_gNB(PHY_VARS_gNB *gNB)
nr_init_fde(); // Init array for frequency equalization of transform precoding of PUSCH
int ret_loader = load_nrLDPC_coding_interface(NULL, &gNB->nrLDPC_coding_interface);
AssertFatal(ret_loader == 0, "error loading LDPC library\n");
gNB->max_nb_pdsch = MAX_MOBILES_PER_GNB;
init_delay_table(fp->ofdm_symbol_size, MAX_DELAY_COMP, NR_MAX_OFDM_SYMBOL_SIZE, fp->delay_table);
......@@ -156,6 +154,9 @@ void phy_init_nr_gNB(PHY_VARS_gNB *gNB)
/// Transport init necessary for NR synchro
init_nr_transport(gNB);
int ret_loader = load_nrLDPC_coding_interface(NULL, &gNB->nrLDPC_coding_interface,16*gNB->max_nb_pusch);
AssertFatal(ret_loader == 0, "error loading LDPC library\n");
init_DLSCH_struct(gNB);
gNB->nr_srs_info = (nr_srs_info_t **)malloc16_clear(gNB->max_nb_srs * sizeof(nr_srs_info_t*));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment