1
0
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:
Stefan Tauner 2014-05-02 15:41:42 +00:00
parent b66ed84d19
commit f80419c75a
6 changed files with 21 additions and 22 deletions

View File

@ -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]))

View File

@ -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
View File

@ -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));

View File

@ -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 */

View File

@ -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);

View File

@ -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);
} }