/*验证irmbbpmem空间*/
void irmbbp_memrepair_test(void)
{
    int iret = 0;
    u32 addr = 0xe1c10000;
    u32 value= 0;
    u32 len = 0x8000;

    /*bbp irm memory*/
    /*先检测是否有坏点*/
    iret = bad_mem_check(addr,value,len);
    if(!iret)
    {
        mr_print_error("bbp irm memory have no bad mem.\n");
    }
    else
    {
        /*执行memrepair*/
        iret = bsp_modem_memrepair(MODEM_MEMREPAIR_IRM);
        if(iret)
        {
            mr_print_error("repair error!\n");
        }
        /*重新检测坏点*/
        iret = bad_mem_check(addr,value,len);
        if(iret)
        {
            mr_print_error("repair failed!\n");
        }
        else
        {
            mr_print_error("repair ok!\n");
        }
    }
}
/*****************************************************************************
* 函 数 : module_memrepair_test
* 功 能 : 坏块检测
* 输 入 : void
* 输 出 : void
* 返 回 :
* 说 明 :
*****************************************************************************/
void module_memrepair_test(modem_memrepair_ip module,u32 addr, u32 value, u32 len)
{
    int iret = 0;

    /*先检测是否有坏点*/
    iret = bad_mem_check(addr,value,len);
    if(!iret)
    {
        mr_print_dbg("bbp irm memory have no bad mem.\n");
    }
    else
    {
        /*执行memrepair*/
        iret = bsp_modem_memrepair(module);
        if(iret)
        {
            mr_print_dbg("repair error!\n");
        }
        /*重新检测坏点*/
        iret = bad_mem_check(addr,value,len);
        if(iret)
        {
            mr_print_dbg("repair failed,mem still bad!\n");
        }
        else
        {
            mr_print_dbg("repair ok!\n");
        }
    }
}
/*验证bbemem空间*/
void bbe_memrepair_test(void)
{
    int iret = 0;
    u32 value= 0x0;
    u32 addr1 = 0xe2840000;
    u32 addr2 = 0xe2740000;
    u32 len1 = 0xc0000;
    u32 len2 = 0xc0000;

    /*bbp irm memory*/
    /*先检测是否有坏点*/
    iret = bad_mem_check(addr1,value,len1);
    iret |= bad_mem_check(addr2,value,len2);
    if(!iret)
    {
        mr_print_error("bbe memory have no bad mem.\n");
    }
    else
    {
        /*执行memrepair*/
        iret = bsp_modem_memrepair(MODEM_MEMREPAIR_DSP);
        if(iret)
        {
            mr_print_error("repair error!\n");
        }
        /*重新检测坏点*/
        iret = bad_mem_check(addr1,value,len1);
        iret |= bad_mem_check(addr2,value,len2);
        if(iret)
        {
            mr_print_error("repair failed!\n");
        }
        else
        {
            mr_print_error("repair ok!\n");
        }
    }
}