FreeBSD definitions of (read|write)[bwl] collide with our own. Before we
attempt trickery, we can simply rename the accessor functions. Patch created with the help of Coccinelle. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Idwer Vollering <idwer_v@hotmail.com> Acked-by: Patrick Georgi <patrick@georgi-clan.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3984 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
@@ -49,23 +49,23 @@ int probe_82802ab(struct flashchip *flash)
|
||||
uint8_t id1, id2;
|
||||
|
||||
#if 0
|
||||
writeb(0xAA, bios + 0x5555);
|
||||
writeb(0x55, bios + 0x2AAA);
|
||||
writeb(0x90, bios + 0x5555);
|
||||
chip_writeb(0xAA, bios + 0x5555);
|
||||
chip_writeb(0x55, bios + 0x2AAA);
|
||||
chip_writeb(0x90, bios + 0x5555);
|
||||
#endif
|
||||
|
||||
writeb(0xff, bios);
|
||||
chip_writeb(0xff, bios);
|
||||
myusec_delay(10);
|
||||
writeb(0x90, bios);
|
||||
chip_writeb(0x90, bios);
|
||||
myusec_delay(10);
|
||||
|
||||
id1 = readb(bios);
|
||||
id2 = readb(bios + 0x01);
|
||||
id1 = chip_readb(bios);
|
||||
id2 = chip_readb(bios + 0x01);
|
||||
|
||||
/* Leave ID mode */
|
||||
writeb(0xAA, bios + 0x5555);
|
||||
writeb(0x55, bios + 0x2AAA);
|
||||
writeb(0xF0, bios + 0x5555);
|
||||
chip_writeb(0xAA, bios + 0x5555);
|
||||
chip_writeb(0x55, bios + 0x2AAA);
|
||||
chip_writeb(0xF0, bios + 0x5555);
|
||||
|
||||
myusec_delay(10);
|
||||
|
||||
@@ -84,25 +84,25 @@ uint8_t wait_82802ab(volatile uint8_t *bios)
|
||||
uint8_t status;
|
||||
uint8_t id1, id2;
|
||||
|
||||
writeb(0x70, bios);
|
||||
if ((readb(bios) & 0x80) == 0) { // it's busy
|
||||
while ((readb(bios) & 0x80) == 0) ;
|
||||
chip_writeb(0x70, bios);
|
||||
if ((chip_readb(bios) & 0x80) == 0) { // it's busy
|
||||
while ((chip_readb(bios) & 0x80) == 0) ;
|
||||
}
|
||||
|
||||
status = readb(bios);
|
||||
status = chip_readb(bios);
|
||||
|
||||
// put another command to get out of status register mode
|
||||
|
||||
writeb(0x90, bios);
|
||||
chip_writeb(0x90, bios);
|
||||
myusec_delay(10);
|
||||
|
||||
id1 = readb(bios);
|
||||
id2 = readb(bios + 0x01);
|
||||
id1 = chip_readb(bios);
|
||||
id2 = chip_readb(bios + 0x01);
|
||||
|
||||
// this is needed to jam it out of "read id" mode
|
||||
writeb(0xAA, bios + 0x5555);
|
||||
writeb(0x55, bios + 0x2AAA);
|
||||
writeb(0xF0, bios + 0x5555);
|
||||
chip_writeb(0xAA, bios + 0x5555);
|
||||
chip_writeb(0x55, bios + 0x2AAA);
|
||||
chip_writeb(0xF0, bios + 0x5555);
|
||||
|
||||
return status;
|
||||
}
|
||||
@@ -115,23 +115,23 @@ int erase_82802ab_block(struct flashchip *flash, int offset)
|
||||
uint8_t status;
|
||||
|
||||
// clear status register
|
||||
writeb(0x50, bios);
|
||||
chip_writeb(0x50, bios);
|
||||
//printf("Erase at %p\n", bios);
|
||||
// clear write protect
|
||||
//printf("write protect is at %p\n", (wrprotect));
|
||||
//printf("write protect is 0x%x\n", *(wrprotect));
|
||||
writeb(0, wrprotect);
|
||||
chip_writeb(0, wrprotect);
|
||||
//printf("write protect is 0x%x\n", *(wrprotect));
|
||||
|
||||
// now start it
|
||||
writeb(0x20, bios);
|
||||
writeb(0xd0, bios);
|
||||
chip_writeb(0x20, bios);
|
||||
chip_writeb(0xd0, bios);
|
||||
myusec_delay(10);
|
||||
// now let's see what the register is
|
||||
status = wait_82802ab(flash->virtual_memory);
|
||||
//print_82802ab_status(status);
|
||||
for (j = 0; j < flash->page_size; j++) {
|
||||
if (readb(bios + j) != 0xFF) {
|
||||
if (chip_readb(bios + j) != 0xFF) {
|
||||
printf("BLOCK ERASE failed at 0x%x\n", offset);
|
||||
return -1;
|
||||
}
|
||||
@@ -162,8 +162,8 @@ void write_page_82802ab(volatile uint8_t *bios, uint8_t *src,
|
||||
|
||||
for (i = 0; i < page_size; i++) {
|
||||
/* transfer data from source to destination */
|
||||
writeb(0x40, dst);
|
||||
writeb(*src++, dst++);
|
||||
chip_writeb(0x40, dst);
|
||||
chip_writeb(*src++, dst++);
|
||||
wait_82802ab(bios);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user