mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-26 22:52:34 +02:00
Make delay values unsigned
There is no reason for negative delays in our use cases: - We don't need it (to work around any quirks). - sleep() (POSIX) uses an unsigned argument. - usleep() (POSIX) uses an unsigned argument. - Sleep() (Windows) uses an unsigned argument. Change all callees as well (without any complications). Corresponding to flashrom svn r1782. Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
This commit is contained in:
parent
b66ed84d19
commit
f80419c75a
2
flash.h
2
flash.h
@ -56,7 +56,7 @@ typedef uint32_t chipsize_t; /* Able to store the number of bytes of any support
|
|||||||
int register_shutdown(int (*function) (void *data), void *data);
|
int register_shutdown(int (*function) (void *data), void *data);
|
||||||
void *programmer_map_flash_region(const char *descr, uintptr_t phys_addr, size_t len);
|
void *programmer_map_flash_region(const char *descr, uintptr_t phys_addr, size_t len);
|
||||||
void programmer_unmap_flash_region(void *virt_addr, size_t len);
|
void programmer_unmap_flash_region(void *virt_addr, size_t len);
|
||||||
void programmer_delay(int usecs);
|
void programmer_delay(unsigned int usecs);
|
||||||
|
|
||||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
||||||
|
|
||||||
|
@ -485,7 +485,7 @@ void chip_readn(const struct flashctx *flash, uint8_t *buf, chipaddr addr,
|
|||||||
flash->pgm->par.chip_readn(flash, buf, addr, len);
|
flash->pgm->par.chip_readn(flash, buf, addr, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
void programmer_delay(int usecs)
|
void programmer_delay(unsigned int usecs)
|
||||||
{
|
{
|
||||||
if (usecs > 0)
|
if (usecs > 0)
|
||||||
programmer_table[programmer].delay(usecs);
|
programmer_table[programmer].delay(usecs);
|
||||||
|
17
jedec.c
17
jedec.c
@ -37,8 +37,7 @@ uint8_t oddparity(uint8_t val)
|
|||||||
return (val ^ (val >> 1)) & 0x1;
|
return (val ^ (val >> 1)) & 0x1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void toggle_ready_jedec_common(const struct flashctx *flash,
|
static void toggle_ready_jedec_common(const struct flashctx *flash, chipaddr dst, unsigned int delay)
|
||||||
chipaddr dst, int delay)
|
|
||||||
{
|
{
|
||||||
unsigned int i = 0;
|
unsigned int i = 0;
|
||||||
uint8_t tmp1, tmp2;
|
uint8_t tmp1, tmp2;
|
||||||
@ -128,7 +127,7 @@ static int probe_jedec_common(struct flashctx *flash, unsigned int mask)
|
|||||||
uint8_t id1, id2;
|
uint8_t id1, id2;
|
||||||
uint32_t largeid1, largeid2;
|
uint32_t largeid1, largeid2;
|
||||||
uint32_t flashcontent1, flashcontent2;
|
uint32_t flashcontent1, flashcontent2;
|
||||||
int probe_timing_enter, probe_timing_exit;
|
unsigned int probe_timing_enter, probe_timing_exit;
|
||||||
|
|
||||||
if (chip->probe_timing > 0)
|
if (chip->probe_timing > 0)
|
||||||
probe_timing_enter = probe_timing_exit = chip->probe_timing;
|
probe_timing_enter = probe_timing_exit = chip->probe_timing;
|
||||||
@ -245,9 +244,9 @@ static int erase_sector_jedec_common(struct flashctx *flash, unsigned int page,
|
|||||||
unsigned int pagesize, unsigned int mask)
|
unsigned int pagesize, unsigned int mask)
|
||||||
{
|
{
|
||||||
chipaddr bios = flash->virtual_memory;
|
chipaddr bios = flash->virtual_memory;
|
||||||
int delay_us = 0;
|
unsigned int delay_us = 0;
|
||||||
if(flash->chip->probe_timing != TIMING_ZERO)
|
if(flash->chip->probe_timing != TIMING_ZERO)
|
||||||
delay_us = 10;
|
delay_us = 10;
|
||||||
|
|
||||||
/* Issue the Sector Erase command */
|
/* Issue the Sector Erase command */
|
||||||
chip_writeb(flash, 0xAA, bios + (0x5555 & mask));
|
chip_writeb(flash, 0xAA, bios + (0x5555 & mask));
|
||||||
@ -275,9 +274,9 @@ static int erase_block_jedec_common(struct flashctx *flash, unsigned int block,
|
|||||||
unsigned int blocksize, unsigned int mask)
|
unsigned int blocksize, unsigned int mask)
|
||||||
{
|
{
|
||||||
chipaddr bios = flash->virtual_memory;
|
chipaddr bios = flash->virtual_memory;
|
||||||
int delay_us = 0;
|
unsigned int delay_us = 0;
|
||||||
if(flash->chip->probe_timing != TIMING_ZERO)
|
if(flash->chip->probe_timing != TIMING_ZERO)
|
||||||
delay_us = 10;
|
delay_us = 10;
|
||||||
|
|
||||||
/* Issue the Sector Erase command */
|
/* Issue the Sector Erase command */
|
||||||
chip_writeb(flash, 0xAA, bios + (0x5555 & mask));
|
chip_writeb(flash, 0xAA, bios + (0x5555 & mask));
|
||||||
@ -304,9 +303,9 @@ static int erase_block_jedec_common(struct flashctx *flash, unsigned int block,
|
|||||||
static int erase_chip_jedec_common(struct flashctx *flash, unsigned int mask)
|
static int erase_chip_jedec_common(struct flashctx *flash, unsigned int mask)
|
||||||
{
|
{
|
||||||
chipaddr bios = flash->virtual_memory;
|
chipaddr bios = flash->virtual_memory;
|
||||||
int delay_us = 0;
|
unsigned int delay_us = 0;
|
||||||
if(flash->chip->probe_timing != TIMING_ZERO)
|
if(flash->chip->probe_timing != TIMING_ZERO)
|
||||||
delay_us = 10;
|
delay_us = 10;
|
||||||
|
|
||||||
/* Issue the JEDEC Chip Erase command */
|
/* Issue the JEDEC Chip Erase command */
|
||||||
chip_writeb(flash, 0xAA, bios + (0x5555 & mask));
|
chip_writeb(flash, 0xAA, bios + (0x5555 & mask));
|
||||||
|
10
programmer.h
10
programmer.h
@ -120,7 +120,7 @@ struct programmer_entry {
|
|||||||
void *(*map_flash_region) (const char *descr, uintptr_t phys_addr, size_t len);
|
void *(*map_flash_region) (const char *descr, uintptr_t phys_addr, size_t len);
|
||||||
void (*unmap_flash_region) (void *virt_addr, size_t len);
|
void (*unmap_flash_region) (void *virt_addr, size_t len);
|
||||||
|
|
||||||
void (*delay) (int usecs);
|
void (*delay) (unsigned int usecs);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const struct programmer_entry programmer_table[];
|
extern const struct programmer_entry programmer_table[];
|
||||||
@ -248,10 +248,10 @@ extern const struct board_info laptops_known[];
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* udelay.c */
|
/* udelay.c */
|
||||||
void myusec_delay(int usecs);
|
void myusec_delay(unsigned int usecs);
|
||||||
void myusec_calibrate_delay(void);
|
void myusec_calibrate_delay(void);
|
||||||
void internal_sleep(int usecs);
|
void internal_sleep(unsigned int usecs);
|
||||||
void internal_delay(int usecs);
|
void internal_delay(unsigned int usecs);
|
||||||
|
|
||||||
#if CONFIG_INTERNAL == 1
|
#if CONFIG_INTERNAL == 1
|
||||||
/* board_enable.c */
|
/* board_enable.c */
|
||||||
@ -655,7 +655,7 @@ int register_programmer(struct registered_programmer *pgm);
|
|||||||
/* serprog.c */
|
/* serprog.c */
|
||||||
#if CONFIG_SERPROG == 1
|
#if CONFIG_SERPROG == 1
|
||||||
int serprog_init(void);
|
int serprog_init(void);
|
||||||
void serprog_delay(int usecs);
|
void serprog_delay(unsigned int usecs);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* serial.c */
|
/* serial.c */
|
||||||
|
@ -870,7 +870,7 @@ static void serprog_chip_readn(const struct flashctx *flash, uint8_t * buf,
|
|||||||
sp_do_read_n(&(buf[addrm-addr]), addrm, lenm); // FIXME: return error
|
sp_do_read_n(&(buf[addrm-addr]), addrm, lenm); // FIXME: return error
|
||||||
}
|
}
|
||||||
|
|
||||||
void serprog_delay(int usecs)
|
void serprog_delay(unsigned int usecs)
|
||||||
{
|
{
|
||||||
unsigned char buf[4];
|
unsigned char buf[4];
|
||||||
msg_pspew("%s usecs=%d\n", __func__, usecs);
|
msg_pspew("%s usecs=%d\n", __func__, usecs);
|
||||||
|
10
udelay.c
10
udelay.c
@ -30,7 +30,7 @@
|
|||||||
/* loops per microsecond */
|
/* loops per microsecond */
|
||||||
static unsigned long micro = 1;
|
static unsigned long micro = 1;
|
||||||
|
|
||||||
__attribute__ ((noinline)) void myusec_delay(int usecs)
|
__attribute__ ((noinline)) void myusec_delay(unsigned int usecs)
|
||||||
{
|
{
|
||||||
unsigned long i;
|
unsigned long i;
|
||||||
for (i = 0; i < usecs * micro; i++) {
|
for (i = 0; i < usecs * micro; i++) {
|
||||||
@ -63,7 +63,7 @@ static unsigned long measure_os_delay_resolution(void)
|
|||||||
return timeusec;
|
return timeusec;
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned long measure_delay(int usecs)
|
static unsigned long measure_delay(unsigned int usecs)
|
||||||
{
|
{
|
||||||
unsigned long timeusec;
|
unsigned long timeusec;
|
||||||
struct timeval start, end;
|
struct timeval start, end;
|
||||||
@ -170,7 +170,7 @@ recalibrate:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Not very precise sleep. */
|
/* Not very precise sleep. */
|
||||||
void internal_sleep(int usecs)
|
void internal_sleep(unsigned int usecs)
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
Sleep((usecs + 999) / 1000);
|
Sleep((usecs + 999) / 1000);
|
||||||
@ -181,7 +181,7 @@ void internal_sleep(int usecs)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Precise delay. */
|
/* Precise delay. */
|
||||||
void internal_delay(int usecs)
|
void internal_delay(unsigned int usecs)
|
||||||
{
|
{
|
||||||
/* If the delay is >1 s, use internal_sleep because timing does not need to be so precise. */
|
/* If the delay is >1 s, use internal_sleep because timing does not need to be so precise. */
|
||||||
if (usecs > 1000000) {
|
if (usecs > 1000000) {
|
||||||
@ -199,7 +199,7 @@ void myusec_calibrate_delay(void)
|
|||||||
get_cpu_speed();
|
get_cpu_speed();
|
||||||
}
|
}
|
||||||
|
|
||||||
void internal_delay(int usecs)
|
void internal_delay(unsigned int usecs)
|
||||||
{
|
{
|
||||||
udelay(usecs);
|
udelay(usecs);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user