mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 23:22:37 +02:00
Use the max_rom_decode infrastructure for wbsio_spi
Use this instead of the open-coding variant that only aborts after it is too late. Corresponding to flashrom svn r1081. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
This commit is contained in:
parent
9a795d83fb
commit
ca812d40d4
1
flash.h
1
flash.h
@ -716,7 +716,6 @@ int wbsio_check_for_spi(void);
|
|||||||
int wbsio_spi_send_command(unsigned int writecnt, unsigned int readcnt,
|
int wbsio_spi_send_command(unsigned int writecnt, unsigned int readcnt,
|
||||||
const unsigned char *writearr, unsigned char *readarr);
|
const unsigned char *writearr, unsigned char *readarr);
|
||||||
int wbsio_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len);
|
int wbsio_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len);
|
||||||
int wbsio_spi_write_1(struct flashchip *flash, uint8_t *buf, int start, int len);
|
|
||||||
|
|
||||||
/* serprog.c */
|
/* serprog.c */
|
||||||
int serprog_init(void);
|
int serprog_init(void);
|
||||||
|
2
spi.c
2
spi.c
@ -80,7 +80,7 @@ const struct spi_programmer spi_programmer[] = {
|
|||||||
.command = wbsio_spi_send_command,
|
.command = wbsio_spi_send_command,
|
||||||
.multicommand = default_spi_send_multicommand,
|
.multicommand = default_spi_send_multicommand,
|
||||||
.read = wbsio_spi_read,
|
.read = wbsio_spi_read,
|
||||||
.write_256 = wbsio_spi_write_1,
|
.write_256 = spi_chip_write_1_new,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
20
wbsio_spi.c
20
wbsio_spi.c
@ -69,6 +69,9 @@ int wbsio_check_for_spi(void)
|
|||||||
|
|
||||||
buses_supported |= CHIP_BUSTYPE_SPI;
|
buses_supported |= CHIP_BUSTYPE_SPI;
|
||||||
spi_controller = SPI_CONTROLLER_WBSIO;
|
spi_controller = SPI_CONTROLLER_WBSIO;
|
||||||
|
msg_pdbg("%s: Winbond saved on 4 register bits so max chip size is "
|
||||||
|
"1024 KB!\n", __func__);
|
||||||
|
max_rom_decode.spi = 1024 * 1024;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -179,24 +182,7 @@ int wbsio_spi_send_command(unsigned int writecnt, unsigned int readcnt,
|
|||||||
|
|
||||||
int wbsio_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len)
|
int wbsio_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len)
|
||||||
{
|
{
|
||||||
int size = flash->total_size * 1024;
|
|
||||||
|
|
||||||
if (size > 1024 * 1024) {
|
|
||||||
msg_perr("%s: Winbond saved on 4 register bits so max chip size is 1024 KB!\n", __func__);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return read_memmapped(flash, buf, start, len);
|
return read_memmapped(flash, buf, start, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
int wbsio_spi_write_1(struct flashchip *flash, uint8_t *buf, int start, int len)
|
|
||||||
{
|
|
||||||
if (flash->total_size * 1024 > 1024 * 1024) {
|
|
||||||
msg_perr("%s: Winbond saved on 4 register bits so max chip size is 1024 KB!\n", __func__);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return spi_chip_write_1_new(flash, buf, start, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user