Hi all,
i fiddled around with the flashrom util, and I managed to rewrite the original compaq-bios, which I saved before. I modified the flashrom-utily to enable writing the flashrom. The 29F002BT works with 29f002-funktions and *not* with jedec.... The only problem that remains, is that it is not possible to unprotect the 20f002bt (ST). with the flashrom utily. So I can not upgrade the flash! I will go and code some improvement to that.
A suggestion regarding architecture:
struct flashchip flashchips[] = {
/**********************************************************************************************************************************************************************************************************************/ /* Vendor Chip Vendor ID Chip ID TODO TODO Test status Probe function Erase function Write function Read function */
/**********************************************************************************************************************************************************************************************************************/ {"AMD", "Am29F016D", AMD_ID, AM_29F016D, 2048, 64 * 1024, TEST_UNTESTED, probe_29f040b, erase_29f040b, write_29f040b}, {"AMD", "Am29F040B", AMD_ID, AM_29F040B, 512, 64 * 1024, TEST_OK_PREW, probe_29f040b, erase_29f040b, write_29f040b}, {"AMD", "Am29LV040B", AMD_ID, AM_29LV040B, 512, 64 * 1024, TEST_UNTESTED, probe_29f040b, erase_29f040b, write_29f040b}, {"ASD", "AE49F2008", ASD_ID, ASD_AE49F2008, 256, 128, TEST_UNTESTED, probe_jedec, erase_chip_jedec, write_jedec}, {"Atmel", "AT29C020", ATMEL_ID, AT_29C020, 256, 256, TEST_UNTESTED, probe_jedec, erase_chip_jedec, write_jedec}, {"Atmel", "AT29C040A", ATMEL_ID, AT_29C040A, 512, 256, TEST_UNTESTED, probe_jedec, erase_chip_jedec, write_jedec}, {"Atmel", "AT49F002(N)", ATMEL_ID, AT_49F002N, 256, 256, TEST_UNTESTED, probe_jedec, erase_chip_jedec, write_jedec}, {"Atmel", "AT49F002(N)T", ATMEL_ID, AT_49F002NT, 256, 256, TEST_UNTESTED, probe_jedec, erase_chip_jedec, write_jedec}, {"Atmel", "AT25DF321", ATMEL_ID, AT_25DF321, 4096, 256, TEST_OK_PREW, probe_spi_rdid, spi_chip_erase_c7, spi_chip_write, spi_chip_read}, {"Amic Technology","A25L40P", AMIC_ID, AMIC_A25L40P, 512, 256, TEST_UNTESTED, probe_spi_rdid, spi_chip_erase_c7, spi_chip_write, spi_chip_read}, {"EMST", "F49B002UA", EMST_ID, EMST_F49B002UA, 256, 4096, TEST_UNTESTED, probe_jedec, erase_chip_jedec, write_49f002}, {"EON", "EN29F002(A)(N)B", EON_ID, EN_29F002B, 256, 256, TEST_UNTESTED, probe_jedec, erase_chip_jedec, write_jedec}, {"EON", "EN29F002(A)(N)T", EON_ID, EN_29F002T, 256, 256, TEST_UNTESTED, probe_jedec, erase_chip_jedec, write_jedec},
{"ST", "M29F002BB/BNB", ST_ID, ST_M29F002BB, 256, 64 * 1024, TEST_UNTESTED, probe_29f002, erase_29f002, write_29f002}, {"ST", "M29F002BT/BNT", ST_ID, ST_M29F002BT, 256, 64 * 1024, TEST_OK_PR|TEST_BAD_ERASE, probe_29f002, erase_29f002, write_29f002},
We should add a function-pointer for protect and unprotect, because this is sometimes special. e.g. 29f002bt (st). We should provide an extra funktion to protect/unprotect the bios to the user, so that reweiting the eeprom will be read() -> save old unprotect() test_if_unprotected() if not die erase() test_if_empty() if not, try to rewrite saved_old! else die. write verify
So the methods protect/unprotect have to be seperate and not be hidden in erase or write functions. And they should be accessible via the punction-pointer-table.
My patch contains my little modifications and da doxygen file to ease understanding the code.
Please help me to improve the architecture of flashrom.
Greetings
LuJa
Carl-Daniel Hailfinger schrieb:
Hi all,
[Ludwig: can you please subscribe to the coreboot list? We can continue working on your problem there.]
IIRC Uwe has been working with the mainboard mentioned below. Could you please take a look?
Regards, Carl-Daniel
On 01.06.2008 00:24, Ludwig Jaffe wrote:
Hi Having the Deskpro EN SFF P600. abused as poor mans webservers, I was anoyed by the compaq-bios requiring a kbd to boot. even in "server-mode" Now having build a rom, I am little bit frustrated on programming the flash. Because if one has a programmer one has to de-solder the flash, because there is *no* socket. If one desolders one can also use a bigger flash, not having to fiddle around with filo-features just to get it fit (usb has to stay out)
Now my machine is doomed to be bricked as soon as power fails :-((( Would be nice if you can resolve the problem.
Here is the program output:
./flashrom -w coreboot.rom Calibrating delay loop... OK. No coreboot table found. Found chipset "Intel PIIX4/4E/4M", enabling flash write... OK. Found chip "ST M29F002T/NT" (256 KB) at physical address 0xfffc0000. === This flash part has status UNTESTED for operations: PROBE READ ERASE WRITE Please email a report to flashrom@coreboot.org if any of the above operations work correctly for you with this flash part. Please include the full output from the program, including chipset found. Thank you for your help! === Note: If the following flash access fails, you might need to specify -m <vendor>:<mainboard>. ERASE FAILED @237568, val 60!
-- ./flashrom -V -w coreboot.rom >flash.txt
Calibrating delay loop... 165M loops per second. OK. No coreboot table found. Found chipset "Intel PIIX4/4E/4M", enabling flash write... OK. Probing for AMD Am29F016D, 2048 KB: probe_29f040b: id1 0xff, id2 0xff Probing for AMD Am29F040B, 512 KB: probe_29f040b: id1 0x20, id2 0xb0 Probing for AMD Am29LV040B, 512 KB: probe_29f040b: id1 0x20, id2 0xb0 Probing for ASD AE49F2008, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Atmel AT29C020, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Atmel AT29C040A, 512 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Atmel AT49F002(N), 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Atmel AT49F002(N)T, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Atmel AT25DF321, 4096 KB: spi_command called, but no SPI chipset detected Probing for Amic Technology A25L40P, 512 KB: spi_command called, but no SPI chipset detected Probing for EMST F49B002UA, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for EON EN29F002(A)(N)B, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for EON EN29F002(A)(N)T, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Fujitsu MBM29F400TC, 512 KB: probe_m29f400bt: id1 0xff, id2 0xff Probing for Intel 82802AB, 512 KB: probe_82802ab: id1 0xff, id2 0xff Probing for Intel 82802AC, 1024 KB: probe_82802ab: id1 0xff, id2 0xff Probing for Macronix MX25L4005, 512 KB: spi_command called, but no SPI chipset detected Probing for Macronix MX25L8005, 1024 KB: spi_command called, but no SPI chipset detected Probing for Macronix MX25L1605, 2048 KB: spi_command called, but no SPI chipset detected Probing for Macronix MX25L3205, 4096 KB: spi_command called, but no SPI chipset detected Probing for Macronix MX29F002, 256 KB: probe_29f002: id1 0x20, id2 0xb0 Probing for PMC Pm25LV010, 128 KB: spi_command called, but no SPI chipset detected Probing for PMC Pm25LV016B, 2048 KB: spi_command called, but no SPI chipset detected Probing for PMC Pm25LV020, 256 KB: spi_command called, but no SPI chipset detected Probing for PMC Pm25LV040, 512 KB: spi_command called, but no SPI chipset detected Probing for PMC Pm25LV080B, 1024 KB: spi_command called, but no SPI chipset detected Probing for PMC Pm25LV512, 64 KB: spi_command called, but no SPI chipset detected Probing for PMC Pm49FL002, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for PMC Pm49FL004, 512 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Sharp LHF00L04, 1024 KB: probe_lhf00l04: id1 0xff, id2 0xff Probing for Spansion S25FL016A, 2048 KB: spi_command called, but no SPI chipset detected Probing for SST SST25VF016B, 2048 KB: spi_command called, but no SPI chipset detected Probing for SST SST25VF040B, 512 KB: spi_command called, but no SPI chipset detected Probing for SST SST28SF040A, 512 KB: probe_28sf040: id1 0xff, id2 0xff Probing for SST SST29EE010, 128 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST29LE010, 128 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST29EE020A, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST29LE020, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST39SF010A, 128 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST39SF020A, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST39SF040, 512 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST39VF512, 64 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST39VF010, 128 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST39VF020, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST39VF040, 512 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST49LF002A/B, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST49LF003A/B, 384 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST49LF004A/B, 512 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST49LF004C, 512 KB: probe_49lfxxxc: id1 0xff, id2 0xff Probing for SST SST49LF008A, 1024 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST49LF008C, 1024 KB: probe_49lfxxxc: id1 0xff, id2 0xff Probing for SST SST49LF016C, 2048 KB: probe_49lfxxxc: id1 0xff, id2 0xff Probing for SST SST49LF020A, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST49LF040, 512 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST49LF040B, 512 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST49LF080A, 1024 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SST SST49LF160C, 2048 KB: probe_49lfxxxc: id1 0xff, id2 0xff Probing for ST M25P05-A, 64 KB: spi_command called, but no SPI chipset detected Probing for ST M25P10-A, 128 KB: spi_command called, but no SPI chipset detected Probing for ST M25P20, 256 KB: spi_command called, but no SPI chipset detected Probing for ST M25P40, 512 KB: spi_command called, but no SPI chipset detected Probing for ST M25P40-old, 512 KB: spi_command called, but no SPI chipset detected Probing for ST M25P80, 1024 KB: spi_command called, but no SPI chipset detected Probing for ST M25P16, 2048 KB: spi_command called, but no SPI chipset detected Probing for ST M25P32, 4096 KB: spi_command called, but no SPI chipset detected Probing for ST M25P64, 8192 KB: spi_command called, but no SPI chipset detected Probing for ST M25P128, 16384 KB: spi_command called, but no SPI chipset detected Probing for ST M29F002B, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for ST M29F002T/NT, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Found chip "ST M29F002T/NT" (256 KB) at physical address 0xfffc0000. Probing for ST M29F040B, 512 KB: probe_29f040b: id1 0x20, id2 0xb0 Probing for ST M29F400BT, 512 KB: probe_m29f400bt: id1 0xff, id2 0xff Probing for ST M29W010B, 128 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for ST M29W040B, 512 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for ST M50FLW040A, 512 KB: probe_stm50flw0x0x: id1 0x20, id2 0xb0 Probing for ST M50FLW040B, 512 KB: probe_stm50flw0x0x: id1 0x20, id2 0xb0 Probing for ST M50FLW080A, 1024 KB: probe_stm50flw0x0x: id1 0x20, id2 0xb0 Probing for ST M50FLW080B, 1024 KB: probe_stm50flw0x0x: id1 0x20, id2 0xb0 Probing for ST M50FW016, 2048 KB: probe_82802ab: id1 0xff, id2 0xff Probing for ST M50FW040, 512 KB: probe_82802ab: id1 0xff, id2 0xff Probing for ST M50FW080, 1024 KB: probe_82802ab: id1 0xff, id2 0xff Probing for ST M50LPW116, 2048 KB: probe_jedec: id1 0xff, id2 0xff, id1 parity violation Probing for SyncMOS S29C31004T, 512 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SyncMOS S29C51001T, 128 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SyncMOS S29C51002T, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for SyncMOS S29C51004T, 512 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Winbond W25x10, 128 KB: spi_command called, but no SPI chipset detected Probing for Winbond W25x20, 256 KB: spi_command called, but no SPI chipset detected Probing for Winbond W25x40, 512 KB: spi_command called, but no SPI chipset detected Probing for Winbond W25x80, 1024 KB: spi_command called, but no SPI chipset detected Probing for Winbond W29C011, 128 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Winbond W29C020C, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Winbond W29C040P, 512 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Winbond W29EE011, 128 KB: probe_w29ee011: id1 0xff, id2 0xff Probing for Winbond W39V040A, 512 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Winbond W39V040B, 512 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Winbond W39V040FA, 512 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Winbond W39V080A, 1024 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Winbond W49F002U, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Winbond W49V002A, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Winbond W49V002FA, 256 KB: probe_jedec: id1 0x20, id2 0xb0 Probing for Winbond W39V080FA, 1024 KB: probe_winbond_fwhub: vid 0x20, did 0xb0 Probing for Winbond W39V080FA (dual mode), 512 KB: probe_winbond_fwhub: vid 0x20, did 0xb0 Probing for EON unknown EON SPI chip, 0 KB: spi_command called, but no SPI chipset detected Probing for Macronix unknown Macronix SPI chip, 0 KB: spi_command called, but no SPI chipset detected Probing for PMC unknown PMC SPI chip, 0 KB: spi_command called, but no SPI chipset detected Probing for SST unknown SST SPI chip, 0 KB: spi_command called, but no SPI chipset detected Probing for ST unknown ST SPI chip, 0 KB: spi_command called, but no SPI chipset detected === This flash part has status UNTESTED for operations: PROBE READ ERASE WRITE Please email a report to flashrom@coreboot.org if any of the above operations work correctly for you with this flash part. Please include the full output from the program, including chipset found. Thank you for your help! === coreboot last image size (not ROM size) is 131072 bytes. Manufacturer: Compaq Mainboard ID: Deskpro EN SFF P600 Note: If the following flash access fails, you might need to specify -m <vendor>:<mainboard>. ERASE FAILED @237568, val 60!
Why should I give the vendor and board if it was detected correctly?
Thanks for your help
LuJa
diff -Nur flashrom_orig/Doxyfile flashrom/Doxyfile --- flashrom_orig/Doxyfile 2008-06-01 10:57:45.000000000 +0200 +++ flashrom/Doxyfile 1970-01-01 01:00:00.000000000 +0100 @@ -1,281 +0,0 @@ -# Doxyfile 1.5.3 - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -DOXYFILE_ENCODING = UTF-8 -PROJECT_NAME = flashrom -PROJECT_NUMBER = v2-3359 -OUTPUT_DIRECTORY = /exports/3/laj/ingbuero/edv/webserver/hw/compaq-dpens-p600/bios/coreboot/coreboot-v2-3359/util/flashrom/doc/ -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = YES -STRIP_FROM_PATH = /exports/3/laj/ingbuero/edv/webserver/hw/compaq-dpens-p600/bios/coreboot/coreboot-v2-3359/util/flashrom/ -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = NO -QT_AUTOBRIEF = NO -MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = NO -INHERIT_DOCS = YES -SEPARATE_MEMBER_PAGES = NO -TAB_SIZE = 8 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = YES -OPTIMIZE_OUTPUT_JAVA = NO -BUILTIN_STL_SUPPORT = NO -CPP_CLI_SUPPORT = NO -DISTRIBUTE_GROUP_DOC = NO -SUBGROUPING = YES -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = YES -EXTRACT_STATIC = YES -EXTRACT_LOCAL_CLASSES = YES -EXTRACT_LOCAL_METHODS = NO -EXTRACT_ANON_NSPACES = NO -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = NO -CASE_SENSE_NAMES = YES -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -SORT_BRIEF_DOCS = NO -SORT_BY_SCOPE_NAME = NO -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -SHOW_USED_FILES = YES -SHOW_DIRECTORIES = NO -FILE_VERSION_FILTER = -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = NO -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = /exports/3/laj/ingbuero/edv/webserver/hw/compaq-dpens-p600/bios/coreboot/coreboot-v2-3359/util/flashrom -INPUT_ENCODING = UTF-8 -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.d \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.idl \ - *.odl \ - *.cs \ - *.php \ - *.php3 \ - *.inc \ - *.m \ - *.mm \ - *.dox \ - *.py \ - *.C \ - *.CC \ - *.C++ \ - *.II \ - *.I++ \ - *.H \ - *.HH \ - *.H++ \ - *.CS \ - *.PHP \ - *.PHP3 \ - *.M \ - *.MM \ - *.PY -RECURSIVE = YES -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXCLUDE_SYMBOLS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = * -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = YES -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = YES -REFERENCES_RELATION = YES -REFERENCES_LINK_SOURCE = YES -USE_HTAGS = NO -VERBATIM_HEADERS = YES -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = NO -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = html -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = NO -HTML_DYNAMIC_SECTIONS = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = NO -TOC_EXPAND = NO -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = NO -TREEVIEW_WIDTH = 250 -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = YES -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = -PDF_HYPERLINKS = YES -USE_PDFLATEX = YES -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = rtf -COMPACT_RTF = NO -RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = -XML_PROGRAMLISTING = YES -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = NO -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = NO -MSCGEN_PATH = -HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = YES -CLASS_GRAPH = YES -COLLABORATION_GRAPH = YES -GROUP_GRAPHS = YES -UML_LOOK = NO -TEMPLATE_RELATIONS = NO -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = YES -CALL_GRAPH = YES -CALLER_GRAPH = NO -GRAPHICAL_HIERARCHY = YES -DIRECTORY_GRAPH = YES -DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = -DOT_GRAPH_MAX_NODES = 50 -MAX_DOT_GRAPH_DEPTH = 1000 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = NO -GENERATE_LEGEND = YES -DOT_CLEANUP = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = NO diff -Nur flashrom_orig/Makefile flashrom/Makefile --- flashrom_orig/Makefile 2008-05-22 15:22:45.000000000 +0200 +++ flashrom/Makefile 2008-06-01 15:22:02.000000000 +0200 @@ -10,8 +10,9 @@ STRIP = strip INSTALL = /usr/bin/install PREFIX = /usr/local -#CFLAGS = -O2 -g -Wall -Werror -CFLAGS = -Os -Wall -Werror -DDISABLE_DOC # -DTS5300 +CFLAGS = -O2 -g -Wall -Werror +#CFLAGS = -O2 -g -Wall -Werror +#CFLAGS = -Os -Wall -Werror -DDISABLE_DOC # -DTS5300 OS_ARCH = $(shell uname) ifeq ($(OS_ARCH), SunOS) LDFLAGS = -lpci -lz diff -Nur flashrom_orig/flash.h flashrom/flash.h --- flashrom_orig/flash.h 2008-05-28 01:51:55.000000000 +0200 +++ flashrom/flash.h 2008-06-01 15:38:34.000000000 +0200 @@ -4,6 +4,7 @@ * Copyright (C) 2000 Silicon Integrated System Corporation * Copyright (C) 2000 Ronald G. Minnich rminnich@gmail.com * Copyright (C) 2005-2007 coresystems GmbH stepan@coresystems.de + * Copyright (C) 2008 Ludwig Jaffe luja@openhardware.de * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -316,8 +317,8 @@ #define ST_M50FW080 0x2D #define ST_M50FW016 0x2E #define ST_M50LPW116 0x30 -#define ST_M29F002B 0x34 -#define ST_M29F002T 0xB0 /* M29F002T / M29F002NT */ +#define ST_M29F002BB 0x34 /* M29F002BB / M29F002BNB (bottom N=no unprotect-pin) [datasheet:apr2002]*/ +#define ST_M29F002BT 0xB0 /* M29F002BT / M29F002BNT (top N=no unprotect-pin) [datasheet:apr2002]*/ #define ST_M29F400BT 0xD5 #define ST_M29F040B 0xE2 #define ST_M29W010B 0x23 diff -Nur flashrom_orig/flashchips.c flashrom/flashchips.c --- flashrom_orig/flashchips.c 2008-05-28 01:51:55.000000000 +0200 +++ flashrom/flashchips.c 2008-06-01 15:44:03.000000000 +0200 @@ -4,6 +4,7 @@ * Copyright (C) 2000 Silicon Integrated System Corporation * Copyright (C) 2004 Tyan Corp * Copyright (C) 2005-2007 coresystems GmbH stepan@openbios.org + * Copyright (C) 2008 Ludwig Jaffe luja@openhardware.de * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -106,8 +107,8 @@ {"ST", "M25P32", ST_ID, ST_M25P32, 4096, 256, TEST_OK_PREW, probe_spi_rdid, spi_chip_erase_c7, spi_chip_write, spi_chip_read}, {"ST", "M25P64", ST_ID, ST_M25P64, 8192, 256, TEST_UNTESTED, probe_spi_rdid, spi_chip_erase_c7, spi_chip_write, spi_chip_read}, {"ST", "M25P128", ST_ID, ST_M25P128, 16384, 256, TEST_UNTESTED, probe_spi_rdid, spi_chip_erase_c7, spi_chip_write, spi_chip_read}, - {"ST", "M29F002B", ST_ID, ST_M29F002B, 256, 64 * 1024, TEST_UNTESTED, probe_jedec, erase_chip_jedec, write_jedec}, - {"ST", "M29F002T/NT", ST_ID, ST_M29F002T, 256, 64 * 1024, TEST_UNTESTED, probe_jedec, erase_chip_jedec, write_jedec}, + {"ST", "M29F002BB/BNB", ST_ID, ST_M29F002BB, 256, 64 * 1024, TEST_UNTESTED, probe_29f002, erase_29f002, write_29f002}, + {"ST", "M29F002BT/BNT", ST_ID, ST_M29F002BT, 256, 64 * 1024, TEST_OK_PR|TEST_BAD_ERASE, probe_29f002, erase_29f002, write_29f002}, {"ST", "M29F040B", ST_ID, ST_M29F040B, 512, 64 * 1024, TEST_UNTESTED, probe_29f040b, erase_29f040b, write_29f040b}, {"ST", "M29F400BT", ST_ID, ST_M29F400BT, 512, 64 * 1024, TEST_UNTESTED, probe_m29f400bt, erase_m29f400bt, write_coreboot_m29f400bt}, {"ST", "M29W010B", ST_ID, ST_M29W010B, 128, 16 * 1024, TEST_UNTESTED, probe_jedec, erase_chip_jedec, write_jedec},