my blob page

First I would like to acknowledge the work of those people who made the original blob a reality...

What have I changed in blob?

1. flash
Well, firstly, the flash memory handling has been updated to allow for Atmel flash.
This means that a different command set is used for erasing and programming the flash.

Here is the Atmel flash command set for AT40BV004, AT40BV004A, AT40BV4096, AT40BV4096A;
 
Word Program
Address
Data
0x5555
0xAAAAAAAA
0x2AAA
0x55555555
0x5555
0xA0A0A0A0
location
data to store

 
Sector Erase
Address
Data
0x5555
0xAAAAAAAA
0x2AAA
0x55555555
0x5555
0x80808080
0x5555
0xAAAAAAAA
0x2AAA
0x55555555
code
0x30303030
The erase codes are 0x1000 for the boot block, 0x2000 for param block 1, 0x3000 for param block 2 and 0x3ffff for the main memory block.
 
 
Product ID cycle
Address
Data
0x5555
0xAAAAAAAA
0x2AAA
0x55555555
0x5555
0x90909090
code
read
0x5555
0xf0f0f0f0
The product ID address codes are 0x0 for manufacturer code (0x161F for Atmel) and 0x1 for the device codes (0x1692 for the AT49BV4096A)
 
 

Also, my system does not automatically erase before programming (since my kernel and ramdisk must live in the same flash sector).  Erase is accomplished through a separate menu choice.

There are also 3 new subroutines in flash.c.  These are as follows;

void flashwrite(const  u32  address, u32  data)
This just writes the passed data to the passed address (to save time worrying about casts and pointers)

const  u32  flashread(const  u32  address)
Reads and returns the content of the passed address

void  IdentifyFlash(int type)
Returns the manufacturer code (type=0) and device code (type=1) of the flash memory (but assumes it is Atmel flash all the same...).

2. Menu

This now has a few extra entries to;
- read the device and manufacturer code of the flash memory
- erase the entire flash memory device (apart from the boot block)

All in all, this probably won't work on a LART anymore due to my hacking, but it is concevable that it is useful to
somebody else who's using Atmel flash.

For what it's worth, a zipfile is here which contains those few files I've altered over and above the original blob2.02