コード例 #1
0
ファイル: nand_simple_w.c プロジェクト: Aorjoa/bootloader
__s32 PHY_SimpleErase_2CH (struct boot_physical_param *eraseop )
{
	__s32 status;
	__s32 ret = 0;
	__u32 rb;

	for(NandIndex = 0; NandIndex<CHANNEL_CNT;NandIndex++)
	{
		ret = _erase_single_block(eraseop);
		if (ret)
			return -1;
		rb = _cal_real_rb(eraseop->chip);
		NFC_SelectChip(eraseop->chip);
		NFC_SelectRb(rb);
		/*get status*/
		while(1){
			status = _read_status(0x70,eraseop->chip);
			if (status & NAND_STATUS_READY)
				break;
		}
		if (status & NAND_OPERATE_FAIL)
			ret = -2;

		NFC_DeSelectChip(eraseop->chip);
		NFC_DeSelectRb(rb);

		if(NandIndex == (CHANNEL_CNT-1))
			break;
	}

	NandIndex = 0;
	return ret;

}
コード例 #2
0
ファイル: nand_simple_w.c プロジェクト: Aorjoa/bootloader
__s32 PHY_SimpleWrite_CurCH(struct boot_physical_param * writeop)
{
	__s32 status;
	__u32 rb;

	__s32 ret;
	
	//NandIndex = 0;

	ret = _write_single_page(writeop,0x80,0x10,0,0);
	if (ret)
		return -1;
	rb = _cal_real_rb(writeop->chip);
	NFC_SelectChip(writeop->chip);
	NFC_SelectRb(rb);
	/*get status*/
	while(1){
		status = _read_status(0x70,writeop->chip);
		if (status < 0)
			return status;

		if (status & NAND_STATUS_READY)
			break;
	}
	if (status & NAND_OPERATE_FAIL)
		ret = -2;
	NFC_DeSelectChip(writeop->chip);
	NFC_DeSelectRb(rb);

	return ret;
}