st_smi: Removed no needed dependency on ST_M25Pxx_ID
Since the smi erase code is very generic and works for any kind of flash, there is no need to test for ST_M25Pxx_ID flash types like m25p40 flashes). Signed-off-by: Armando Visconti <armando.visconti@st.com> Signed-off-by: Amit Virdi <amit.virdi@st.com> Signed-off-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
a5ad7ccd74
commit
ae3e0cc924
@ -37,8 +37,6 @@ static ulong bank_base[CONFIG_SYS_MAX_FLASH_BANKS] =
|
||||
CONFIG_SYS_FLASH_ADDR_BASE;
|
||||
flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS];
|
||||
|
||||
#define ST_M25Pxx_ID 0x00002020
|
||||
|
||||
static struct flash_dev flash_ids[] = {
|
||||
{0x10, 0x10000, 2}, /* 64K Byte */
|
||||
{0x11, 0x20000, 4}, /* 128K Byte */
|
||||
@ -287,39 +285,32 @@ static int smi_sector_erase(flash_info_t *info, unsigned int sector)
|
||||
|
||||
writel(readl(&smicntl->smi_sr) & ~(ERF1 | ERF2), &smicntl->smi_sr);
|
||||
|
||||
if (info->flash_id == ST_M25Pxx_ID) {
|
||||
/* Wait until finished previous write command. */
|
||||
if (smi_wait_till_ready(bank, CONFIG_SYS_FLASH_ERASE_TOUT))
|
||||
return -EBUSY;
|
||||
/* Wait until finished previous write command. */
|
||||
if (smi_wait_till_ready(bank, CONFIG_SYS_FLASH_ERASE_TOUT))
|
||||
return -EBUSY;
|
||||
|
||||
/* Send write enable, before erase commands. */
|
||||
if (smi_write_enable(bank))
|
||||
return -EIO;
|
||||
/* Send write enable, before erase commands. */
|
||||
if (smi_write_enable(bank))
|
||||
return -EIO;
|
||||
|
||||
/* Put SMI in SW mode */
|
||||
writel(readl(&smicntl->smi_cr1) | SW_MODE, &smicntl->smi_cr1);
|
||||
/* Put SMI in SW mode */
|
||||
writel(readl(&smicntl->smi_cr1) | SW_MODE, &smicntl->smi_cr1);
|
||||
|
||||
/* Send Sector Erase command in SW Mode */
|
||||
writel(instruction, &smicntl->smi_tr);
|
||||
writel((bank << BANKSEL_SHIFT) | SEND | TX_LEN_4,
|
||||
/* Send Sector Erase command in SW Mode */
|
||||
writel(instruction, &smicntl->smi_tr);
|
||||
writel((bank << BANKSEL_SHIFT) | SEND | TX_LEN_4,
|
||||
&smicntl->smi_cr2);
|
||||
if (smi_wait_xfer_finish(XFER_FINISH_TOUT))
|
||||
return -EIO;
|
||||
if (smi_wait_xfer_finish(XFER_FINISH_TOUT))
|
||||
return -EIO;
|
||||
|
||||
if (smi_wait_till_ready(bank, CONFIG_SYS_FLASH_ERASE_TOUT))
|
||||
return -EBUSY;
|
||||
if (smi_wait_till_ready(bank, CONFIG_SYS_FLASH_ERASE_TOUT))
|
||||
return -EBUSY;
|
||||
|
||||
/* Put SMI in HW mode */
|
||||
writel(readl(&smicntl->smi_cr1) & ~SW_MODE,
|
||||
/* Put SMI in HW mode */
|
||||
writel(readl(&smicntl->smi_cr1) & ~SW_MODE,
|
||||
&smicntl->smi_cr1);
|
||||
|
||||
return 0;
|
||||
} else {
|
||||
/* Put SMI in HW mode */
|
||||
writel(readl(&smicntl->smi_cr1) & ~SW_MODE,
|
||||
&smicntl->smi_cr1);
|
||||
return -EINVAL;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -496,11 +487,6 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
|
||||
int prot = 0;
|
||||
flash_sect_t sect;
|
||||
|
||||
if (info->flash_id != ST_M25Pxx_ID) {
|
||||
puts("Can't erase unknown flash type - aborted\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ((s_first < 0) || (s_first > s_last)) {
|
||||
puts("- no sectors to erase\n");
|
||||
return 1;
|
||||
|
Loading…
Reference in New Issue
Block a user