// +FHDR------------------------------------------------------------
//                 Copyright (c) 2022 SmartLogic.
//                       ALL RIGHTS RESERVED
// -----------------------------------------------------------------
// Filename      : main.c
// Author        : xianfeng.du
// Created On    : 2022-06-25
// Last Modified :
// -----------------------------------------------------------------
// Description:
//
//
// -FHDR------------------------------------------------------------

#include "ucp_printf.h"
#include "ecs_rfm_spu0_top.h"
#include "msg_transfer_queue.h"
#include "log_client.h"
#include "ucp_utility.h"
#include "spu_shell.h"
//#include "hwque.h"
#include "phy_para.h"
#include "ecpri_que.h"
#include "ecpri_csu.h"
#include "lib_debug_init.h"
#include "ucp_heartbeat.h"

#ifdef TEST_ENABLE
#include "fh_test.h"
#endif

int32_t main(int32_t argc, char* argv[])
{
    int32_t core_id = 0;
    int32_t ret = 0;

    UCP_PRINT_EMPTY("Hello world from ECS RFM SPU0,coreId[0x%x]", get_core_id());

    core_id = get_core_id();
    debug_write(DBG_DDR_COMMON_IDX(core_id, 0), PLATFORM_BUILD_DATA);

    ret = spu_lib_debug_init(core_id);
    debug_write(DBG_DDR_COMMON_IDX(core_id, 1), ret);

    spu_log_client_init();

    ecs_rfm_spu0_drv_init();

    ecs_rfm_spu0_msg_transfer_init();

    spu_shell_init();

    while (1)
    {
        if (PROTOCOL_ECPRI == get_protocol_sel())
        {
            /* eCPRI queue polling */
            (void)ecpri_que_polling();
        }

#ifdef TEST_ENABLE
        check_test_outcome(0);
#endif

        /* update heartbeat count */
        heart_beat_write();
    }

    return 0;
}

