Drop duplicated code (copies of plain JEDEC functions).
Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2747 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
2fe239134c
commit
0a6bb91062
|
@ -27,46 +27,6 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include "flash.h"
|
#include "flash.h"
|
||||||
|
|
||||||
void toggle_ready_82802ab(volatile uint8_t *dst)
|
|
||||||
{
|
|
||||||
unsigned int i = 0;
|
|
||||||
uint8_t tmp1, tmp2;
|
|
||||||
|
|
||||||
tmp1 = *dst & 0x40;
|
|
||||||
|
|
||||||
while (i++ < 0xFFFFFF) {
|
|
||||||
tmp2 = *dst & 0x40;
|
|
||||||
if (tmp1 == tmp2) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
tmp1 = tmp2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void data_polling_82802ab(volatile uint8_t *dst, uint8_t data)
|
|
||||||
{
|
|
||||||
unsigned int i = 0;
|
|
||||||
uint8_t tmp;
|
|
||||||
|
|
||||||
data &= 0x80;
|
|
||||||
|
|
||||||
while (i++ < 0xFFFFFF) {
|
|
||||||
tmp = *dst & 0x80;
|
|
||||||
if (tmp == data) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void protect_82802ab(volatile uint8_t *bios)
|
|
||||||
{
|
|
||||||
*(volatile uint8_t *)(bios + 0x5555) = 0xAA;
|
|
||||||
*(volatile uint8_t *)(bios + 0x2AAA) = 0x55;
|
|
||||||
*(volatile uint8_t *)(bios + 0x5555) = 0xA0;
|
|
||||||
|
|
||||||
usleep(200);
|
|
||||||
}
|
|
||||||
|
|
||||||
// I need that Berkeley bit-map printer
|
// I need that Berkeley bit-map printer
|
||||||
void print_82802ab_status(uint8_t status)
|
void print_82802ab_status(uint8_t status)
|
||||||
{
|
{
|
||||||
|
@ -215,6 +175,6 @@ int write_82802ab(struct flashchip *flash, uint8_t *buf)
|
||||||
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
|
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
|
||||||
}
|
}
|
||||||
printf("\n");
|
printf("\n");
|
||||||
protect_82802ab(bios);
|
protect_jedec(bios);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,37 +25,6 @@
|
||||||
|
|
||||||
#include "flash.h"
|
#include "flash.h"
|
||||||
|
|
||||||
void toggle_ready_m29f400bt(volatile uint8_t *dst)
|
|
||||||
{
|
|
||||||
unsigned int i = 0;
|
|
||||||
uint8_t tmp1, tmp2;
|
|
||||||
|
|
||||||
tmp1 = *dst & 0x40;
|
|
||||||
|
|
||||||
while (i++ < 0xFFFFFF) {
|
|
||||||
tmp2 = *dst & 0x40;
|
|
||||||
if (tmp1 == tmp2) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
tmp1 = tmp2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void data_polling_m29f400bt(volatile uint8_t *dst, uint8_t data)
|
|
||||||
{
|
|
||||||
unsigned int i = 0;
|
|
||||||
uint8_t tmp;
|
|
||||||
|
|
||||||
data &= 0x80;
|
|
||||||
|
|
||||||
while (i++ < 0xFFFFFF) {
|
|
||||||
tmp = *dst & 0x80;
|
|
||||||
if (tmp == data) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void protect_m29f400bt(volatile uint8_t *bios)
|
void protect_m29f400bt(volatile uint8_t *bios)
|
||||||
{
|
{
|
||||||
*(volatile uint8_t *)(bios + 0xAAA) = 0xAA;
|
*(volatile uint8_t *)(bios + 0xAAA) = 0xAA;
|
||||||
|
@ -79,7 +48,7 @@ void write_page_m29f400bt(volatile uint8_t *bios, uint8_t *src,
|
||||||
*dst = *src;
|
*dst = *src;
|
||||||
//*(volatile char *) (bios) = 0xF0;
|
//*(volatile char *) (bios) = 0xF0;
|
||||||
//usleep(5);
|
//usleep(5);
|
||||||
toggle_ready_m29f400bt(dst);
|
toggle_ready_jedec(dst);
|
||||||
printf
|
printf
|
||||||
("Value in the flash at address %p = %#x, want %#x\n",
|
("Value in the flash at address %p = %#x, want %#x\n",
|
||||||
(uint8_t *) (dst - bios), *dst, *src);
|
(uint8_t *) (dst - bios), *dst, *src);
|
||||||
|
@ -129,7 +98,7 @@ int erase_m29f400bt(struct flashchip *flash)
|
||||||
*(volatile uint8_t *)(bios + 0xAAA) = 0x10;
|
*(volatile uint8_t *)(bios + 0xAAA) = 0x10;
|
||||||
|
|
||||||
myusec_delay(10);
|
myusec_delay(10);
|
||||||
toggle_ready_m29f400bt(bios);
|
toggle_ready_jedec(bios);
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
@ -147,7 +116,7 @@ int block_erase_m29f400bt(volatile uint8_t *bios, volatile uint8_t *dst)
|
||||||
*dst = 0x30;
|
*dst = 0x30;
|
||||||
|
|
||||||
myusec_delay(10);
|
myusec_delay(10);
|
||||||
toggle_ready_m29f400bt(bios);
|
toggle_ready_jedec(bios);
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,46 +26,6 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "flash.h"
|
#include "flash.h"
|
||||||
|
|
||||||
void toggle_ready_lhf00l04(volatile uint8_t *dst)
|
|
||||||
{
|
|
||||||
unsigned int i = 0;
|
|
||||||
uint8_t tmp1, tmp2;
|
|
||||||
|
|
||||||
tmp1 = *dst & 0x40;
|
|
||||||
|
|
||||||
while (i++ < 0xFFFFFF) {
|
|
||||||
tmp2 = *dst & 0x40;
|
|
||||||
if (tmp1 == tmp2) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
tmp1 = tmp2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void data_polling_lhf00l04(volatile uint8_t *dst, uint8_t data)
|
|
||||||
{
|
|
||||||
unsigned int i = 0;
|
|
||||||
uint8_t tmp;
|
|
||||||
|
|
||||||
data &= 0x80;
|
|
||||||
|
|
||||||
while (i++ < 0xFFFFFF) {
|
|
||||||
tmp = *dst & 0x80;
|
|
||||||
if (tmp == data) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void protect_lhf00l04(volatile uint8_t *bios)
|
|
||||||
{
|
|
||||||
*(volatile uint8_t *)(bios + 0x5555) = 0xAA;
|
|
||||||
*(volatile uint8_t *)(bios + 0x2AAA) = 0x55;
|
|
||||||
*(volatile uint8_t *)(bios + 0x5555) = 0xA0;
|
|
||||||
|
|
||||||
usleep(200);
|
|
||||||
}
|
|
||||||
|
|
||||||
// I need that Berkeley bit-map printer
|
// I need that Berkeley bit-map printer
|
||||||
void print_lhf00l04_status(uint8_t status)
|
void print_lhf00l04_status(uint8_t status)
|
||||||
{
|
{
|
||||||
|
@ -217,6 +177,6 @@ int write_lhf00l04(struct flashchip *flash, uint8_t *buf)
|
||||||
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
|
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
|
||||||
}
|
}
|
||||||
printf("\n");
|
printf("\n");
|
||||||
protect_lhf00l04(bios);
|
protect_jedec(bios);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue