__s32 _erase_single_block(struct boot_physical_param *eraseop) { __s32 ret; __u32 rb; __u8 addr[5]; NFC_CMD_LIST cmd_list[4]; __u32 list_len,i; /*create cmd list*/ /*the cammand have no corresponding feature if IGNORE was set, */ list_len = 2; _cal_addr_in_chip(eraseop->block,0,0,addr,3); _add_cmd_list(cmd_list,0x60,3,addr,NFC_IGNORE,NFC_IGNORE,NFC_IGNORE,NFC_IGNORE); _add_cmd_list(cmd_list + 1,0xd0,NFC_IGNORE,NFC_IGNORE,NFC_IGNORE,NFC_IGNORE,NFC_IGNORE,NFC_IGNORE); for(i = 0; i < list_len - 1; i++){ cmd_list[i].next = &(cmd_list[i+1]); } rb = _cal_real_rb(eraseop->chip); NFC_SelectChip(eraseop->chip); NFC_SelectRb(rb); ret = NFC_Erase(cmd_list, 0); NFC_DeSelectChip(eraseop->chip); NFC_DeSelectRb(rb); return ret; }