Beispiel #1
0
static int read_nogui_flag(void)
{
    int ret;
    struct nve_info_user user_info;
    int nogui_flag = 0;

    user_info.nv_operation = 1;
    user_info.nv_number = 206;
    user_info.valid_size = 1;
    strcpy(user_info.nv_name, "NOGUI");
    ret = nve_direct_access(&user_info);
    if (ret)
    {
        printk(KERN_ERR "nve_direct_access read error(%d)\n", ret);
        return -1;
    }
    nogui_flag = user_info.nv_data[0];
    printk("[read_nogui_flag]: nogui_flag = %d.\n", nogui_flag);
    if (nogui_flag == 1)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
Beispiel #2
0
int  ddr_protect_nv_read()
{
    int ret=0;
    struct nve_info_user nvinfo;
    nvinfo.nv_operation = NV_READ;
    nvinfo.nv_number=NVE_HIMNTN_NUM;
    nvinfo.valid_size=HIMNTN_VALID_SIZE;
    strcpy(nvinfo.nv_name,"HIMNTN");

    ret=nve_direct_access(&nvinfo);
    if (1)
    {
        if(nvinfo.nv_data[HTMNTN_DDR_PROTECT]  == '0')
        {
            pr_info("[bsp_config_ddr_protect_mntn] nve access failed!\n");
            return 0;
        }
        else if (nvinfo.nv_data[HTMNTN_DDR_PROTECT] == '1')
        {
            pr_info("[bsp_config_ddr_protect_mntn] nve access success!\n");
            return 1;
        }
    }

}
Beispiel #3
0
BSP_S32 DRV_NVE_ACCESS(NVE_INFO_S *nve)
{
#ifdef CONFIG_K3V2_NVE
    int ret;	
    struct nve_info_user  info;	

    if (!nve) {
    	printk(KERN_ERR "BSP_NVE_DirectAccess input is null!");
    	return BSP_ERROR;
    }    
    
    info.nv_operation = nve->nv_operation;
    info.nv_number = nve->nv_number;
    info.valid_size = nve->valid_size;
    memcpy(info.nv_name,nve->nv_name,BSP_NVE_NAME_LENGTH);
    
    /*write operation*/
    if (!nve->nv_operation)
        memcpy(info.nv_data,nve->nv_data,nve->valid_size);
        
    ret = nve_direct_access((struct nve_info_user *)&info);	        
    
    if (!ret) {
    	/*read operation*/
        if (nve->nv_operation)
            memcpy(nve->nv_data,info.nv_data,nve->valid_size);
            
        return BSP_OK;
    }
    else
        return BSP_ERROR;
#else
    return BSP_ERROR;
#endif
}
int k3v2_wifi_get_mac_addr(unsigned char *buf)
{
    struct nve_info_user  info;
    int ret = -1;
    int sum = 0;

    if (NULL == buf) {
        pr_err("%s: k3v2_wifi_get_mac_addr failed\n", __func__);
        return -1;
    }

    memset(buf, 0, WLAN_MAC_LEN );

    memset(&info, 0, sizeof(info));
    info.nv_number  = NV_WLAN_NUM;   //nve item
    strcpy( info.nv_name, "MACWLAN" );
    info.valid_size = NV_WLAN_VALID_SIZE;
    info.nv_operation = NV_READ;

    if (0 != g_wifimac[0] || 0 != g_wifimac[1] || 0 != g_wifimac[2] || 0 != g_wifimac[3]
       || 0 != g_wifimac[4] || 0 != g_wifimac[5])
    {
        read_from_global_buf(buf);
        return 0;
    }

    ret = nve_direct_access( &info );

    if (!ret)
    {
        sum = char2byte(info.nv_data, buf );
        if (0 != sum)
        {
            printk("get MAC from NV: mac=%02x:%02x:%02x:%02x:%02x:%02x\n",buf[0],buf[1],buf[2],buf[3],buf[4],buf[5]);
            memcpy(g_wifimac,buf,WLAN_MAC_LEN);
            return 0;
        }
    }
    //read buf from mac-file or random mac
    return read_from_file(buf);
}