EurAsia Pro Generic Flash Disc v1.3
===================================


Brief description:
A flash disc tool based on Linux and custom raincoat 0.5+ for xbox. The disc 
requires a xbox with hacked bios or Cromwell to boot, it will not load on a
"virgin" xbox with original m$ flash. 


Internally supported flash types:
---------------------------------------
AMD - Am29F040B, Am29F080B, Am29LV800B
Fujitsu - MBM29F080A, MBM29F040C
Hynix - HY29F080, HY29F002TT-90
MACRONIX - MX29F022NTPC
Sharp - LHF08CH1
SST - 49LF020, 49LF020A, 49LF020B
ST - M29F080A, M29f002BT
Winbond - W49F020, W49F002U, W49V002A
---------------------------------------


How to burn:
You need at least two discs (dvdr/cdrw) total to use this tool, the 
"flash disc" and the "bios disc". Here is info regarding each disc: 

"flash disc"
The zip file includes eurasia_pro_generic_flash_disc_1_2.iso located in the
flash_disc dir which is the ready to burn "flash disc". Use Nero (win) or
cdrecord (unix) to burn and make sure the disc is finalized (fixated/session
closed). Infact any burn software can probably be used as long as you close
the disc session. The iso image is created in UDF format already, so you don't
need any xbox specific tool or other strange settings, just burn the damned
iso. ;)

"bios disc"
The zip file includes a directory called bios_disc where you can find some
sample files. After extracting the zip, edit these files as needed and add the
bios file you want to flash to this dir and make sure file is named bios.bin
(lower case). When finished you should have these files in the bios_disc dir:

bios.bin      ;bios of your choice
dummy50mb     ;to make xbox happy
bios.txt      ;optional
raincoat.cfg  ;optional
flash.sh      ;optional

Now burn the files in this dir to disc (dvdr/cdrw) using any software you
fancy, like Nero or cdrecord. Most windows burn software have function where
you can simply choose the files you want to burn directly, no need to make iso
as a separate step. 

For those who want to know, the format should be the standard ISO 9660 which is
the most common and widely used pc (yellow book) format. The "clean/strict"
ISO 9660 format is preferred and what the "flash disc" expect to mount, but
common extensions like Joliet or Rockridge can be used also, though it will
result in insmod/modprobe messages during mount. Many xbox users seem to think
all xbox discs has to be in UDF format, this is not true. The disc you boot
in xbox should be UDF, yes, but with Linux loaded you can mount any supported
filesystems.


Usage:
Boot the "flash disc" in your xbox and when prompted, insert the "bios disc"
with your preferred xbox bios named bios.bin (lower case). Flash progress is 
displayed on screen.

If raincoat.cfg (lower case) is found on the "bios disc" it will be used
instead of the internally supported flash types. Note that using untested flash
types can be risky. There is no guarantee raincoat supports the correct command
sequence to program the flash. A sample raincoat.cfg file is included in the
zip. The file structure is flash type in hex, "flash description", flash byte
size in hex. 

Here is a sample of the raincoat.cfg syntax:
---snip---
flash = 0x89a6,"Sharp - LHF08CH1",0x100000;
flash = 0xda8c,"Winbond - W49F020",0x40000;
---snip--

Note that max 31 flash types can be read by raincoat, the rest ignored. If you
successfully flash new types (not internally supported), please email the 
raincoat.cfg file used to modrobert@gmail.com so it can be added to the 
internal list of flash types eventually.

If bios.txt (lower case) is found on the "bios disc" it will be displayed for
30 seconds prior to flash procedure. Developers might find this function useful
to give general version information about the bios or "bail out" warnings. Also
helps to keep track of all your bios discs floating around. :)

If flash.sh (lower case) Bourne shell script is found on the "bios disc" it
will be executed instead of the internal flash procedure. The hdd drive E:
is mounted during this procedure and the temp directory eur_flash_tmp is
created. More info can be found in the sample flash.sh provided in the 
bios_disc_sh directory within zip archive.


WARNING:
If you are flashing a xbox v1.4 or v1.5 you need to make sure the bios you
flash has support for the 'Focus' TV chip. Currently Evox M7, X2 4979 and
Cromwell 2.27 have support for this. Later versions of these bios'es should
be ok also. For xbox v1.6, use Evox M8+ or other compatible BIOS. 


Troubleshooting:
Some xbox DVD-Rom units seem to have a problem accessing files on cdrw media,
and most will never load cdr. In the case of cdrw you can try to blank the
disc completely (do not use fast blank) before burn, that might help. However,
using dvdr for both "flash disc" and "bios disc" is the only way to be sure
the xbox will load it. There is a good "What Drives Read What" table in this
Wiki here:

http://www.xbox-linux.org/wiki/Xbox_Linux_Boot_CD/DVD_Burning_HOWTO

Weird:
The "flash disc" iso image can't be opened with Craxtion it seems, this is a
good thing, there is no need to modify the "flash disc" iso. If you want to
hack it, use regular Linux commands, windows sucks. :O 


Tips and tricks:
The easiest way to get info on a new flashtype is to look at the TSOP/flash
label and search for it using google. Try to find the datasheet for the flash
which usually gives the info needed. 

If you take this flash type for example:

flash = 0xadb0,"Hynix - HY29F002TT-90",0x40000;

0xadb0 is the type string. The byte 'ad' is the manufacturer and the byte 'b0'
is the device. This info is usually available in the datasheet. 

Again, if you successfully flash new types (not internally supported), please
email the raincoat.cfg file used to modrobert@gmail.com so it can be added to
the internal list of flash types eventually.

The way raincoat is used in this release you need a bios.bin that have the
same size as your modchip bank/flash or onboard tsop flash. Here is a size
table of the internally supported flash types to help you choose bios of
correct size:

"AMD - Am29F040B"          = 524288  Bytes (0x80000)
"AMD - Am29F080B"          = 1048576 Bytes (0x100000)
"AMD - Am29LV800B"         = 1048576 Bytes (0x100000)
"FUJITSU - MBM29F040C"     = 524288  Bytes (0x80000)
"FUJITSU - MBM29F080A"     = 1048576 Bytes (0x100000)
"Hynix - HY29F080"         = 1048576 Bytes (0x100000)
"Hynix - HY29F002TT-90"    = 262144  Bytes (0x40000)
"MACRONIX - MX29F022NTPC"  = 262144  Bytes (0x40000)
"Sharp LHF08CH1"           = 1048576 Bytes (0x100000)
"SST SST49LF020"           = 262144  Bytes (0x40000)
"ST M29f002BT"             = 262144  Bytes (0x40000)
"ST - M29F080A"            = 1048576 Bytes (0x100000)
"Winbond - W49F002U"       = 262144  Bytes (0x40000)
"Winbond W49F020"          = 262144  Bytes (0x40000)

To make the bios larger you can use XBtool for windows or just simple DOS copy,
like this example which will convert a 256kb bios/file to 1024kb (1mb):

copy /b 256kbios.bin+256kbios.bin+256kbios.bin+256kbios.bin 1024kbios.bin

On a Unix system that would be:

cat 256kbios.bin 256kbios.bin 256kbios.bin 256kbios.bin >1024kbios.bin

If you need a tool to flash a "virgin" xbox with original bios you can try:

007 TSOP Flash Kit v1.0 alpha 6 (by modrobert and venturahighway)


Changelog:
V1.3
+ added function to call external flash.sh (Bourne shell) script
+ added hdd support for flash.sh function
+ added these flashtypes to raincoat:
  SST - 49LF020A, 49LF020B
  Winbond - W49V002A  
+ minor flash script display changes

V1.2
+ added new flashtype HY29F002TT-90 to raincoat
+ added 50mb dummy file for "flash disc"
+ increased dummy file size for "bios disc" to 50mb
+ minor flash script display changes
+ improved dox
+ sane dir structure within zip

v1.1
+ added support for custom raincoat.cfg 
+ added support for custom bios.txt
+ failed raincoat flash results in "try new disc loop"
+ reduced confusing kernel messages on console

v1.0 
+ initial release


Greetings fly to:
venturahighway, Phe0nix, riteonit, muppett and others for the
feedback and cheerful posts. CdRsKuLL for the HY29F002TT-90 flash type.


Please visit our website at http://www.eurasia.nu for news and updates.


Regards
modrobert