1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-28 15:33:42 +02:00

932 Commits

Author SHA1 Message Date
Michael Karcher
01f6d7d15d Fix PIIX4 GPO set
Intel datasheet says "byte accesses only". Looks like they mean it.
Also fix use of or instead of and for lowering GPOs.

Corresponding to flashrom svn r910.

Signed-off-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
Acked-by: Luc Verhaegen <libv@skynet.be>
2010-02-24 00:00:21 +00:00
Sean Nelson
c351992895 Patch to remove all references to dead chipdrivers
We also need to 'svn rm' the following files:
  am29f040b.c
  en29f002a.c
  m29f002.c
  mx29f002.c
  pm29f002.c
  sst49lf040.c
  w49f002u.c

Corresponding to flashrom svn r909.

Signed-off-by: Sean Nelson <audiohacked@gmail.com>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-02-22 15:52:57 +00:00
Uwe Hermann
ddd5c9e147 Add initial (non-working) code for Highpoint ATA/RAID controllers
It's disabled by default. The current status is detailed at:
http://www.flashrom.org/pipermail/flashrom/2010-January/001828.html

Corresponding to flashrom svn r908.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-02-21 21:17:00 +00:00
Sean Nelson
6e0b912f46 Here's a very quick patch to fix the missing unlock code
Fixes missing unlock for certain chips:
 * unlock_49lf00x
    * Pm49fl002
    * Pm49fl004

 * unlock_49flxxxc
    * SST49LF160C

 * unlock_winbond_fwhub
    * W39V080FA
    * W39V080FA (dual mode)

Fixes missing printlock for certain chip:
 * printlock_w39v040c
    * W39V040C

Corresponding to flashrom svn r907.

Signed-off-by: Sean Nelson <audiohacked@gmail.com>
Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
2010-02-19 00:52:10 +00:00
Carl-Daniel Hailfinger
ce5fad038d Refactor MCP SPI detection
- Set supported buses based on ISA bridge reg 0x8a
- Use MCP55 chipset enable only if LPC is detected
- Allow LPC on MCP61
- Eliminate duplicated code where possible

Corresponding to flashrom svn r906.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
2010-02-18 12:24:38 +00:00
Jonathan A. Kollasch
d8dfc441ed More NetBSD fixes (w/ patch)
Cast input to tolower() to unsigned char to work around how tolower() is
implemented on NetBSD.

Also, use CPPFLAGS (rather than overriding CFLAGS) for the
NetBSD/DragonFly build example.

Corresponding to flashrom svn r905.

Signed-off-by: Jonathan A. Kollasch <jakllsch@kollasch.net>
Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
2010-02-16 00:49:50 +00:00
Carl-Daniel Hailfinger
cc389fc6b1 Allow the registration of functions to be called at programmer shutdown
Some programmers want to run certain functions during programmer
shutdown, but the function choice depends on the code path taken
during programmer init. Rather than rebuilding the whole init logic in
the shutdown function, it is now possible to register functions for
execution on programmer shutdown. The behaviour is similar to atexit(),
but the registered functions will be run on programmer shutdown instead
of on exit and the functions will be called with a void * argument
that is specified on registration. Registered functions must have
the prototype void function(void *); and will be executed in reverse
registration order directly before calling the programmer-specific
shutdown() function. It is recommended to have shutdown() only disable
programmer/hardware access and leave all code path sensitive shutdown to
functions registered with register_shutdown().

The most prominent use case is resetting the EC after flashing on
laptops.

Note: There are quite a few code paths in flashrom which proceed to
terminate flashrom without any programmer shutdown. Those code paths
will not get the benefit of register_shutdown() and they should be
changed wherever possible.

Corresponding to flashrom svn r904.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
2010-02-14 01:20:28 +00:00
Jonathan A. Kollasch
879b351bfe Use uname -p instead of -m on NetBSD so we get the right architecture library name
Corresponding to flashrom svn r903.

Signed-off-by: Jonathan A. Kollasch <jakllsch@kollasch.net>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-02-14 01:00:36 +00:00
Carl-Daniel Hailfinger
ea3b1b4db2 Add SPI mode diagnostics for all post-MCP55 (nForce 5) chipsets from Nvidia
Huge thanks to Michael Karcher for reverse engineering the MCP67 chipset
and writing a spec. Due to this, we were able to use the chinese wall
technique for 100% clean room reverse engineering.

This patch doesn't touch any of the new registers, it only reads them.
Assuming that read has no side effects, this patch is a no-op and safe.

We need "flashrom -V" output from all post-MCP55 (nForce 5) chipset
boards. Please indicate if your board uses SPI flash or LPC flash (if
you know it). Note: That output is only helpful if it is created with
patched flashrom and if is from the first run of flashrom after a cold
boot (reset or Ctrl-Alt-Del is not sufficient). There is a pattern based
on which we can probably detect which flash type is present on the
board.

Thanks to Alessandro Polverini for testing earlier iterations of this
patch.

Note: The MCP67 should work. I guessed that the other recent Nvidia
chipsets would work in a similar way, and created a simplified
do-nothing catchall chipset enable function which dumps some info and
instructs the user to send more info.

Corresponding to flashrom svn r902.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
2010-02-13 23:41:01 +00:00
Carl-Daniel Hailfinger
cd446f4b93 Kill an erroneous .erase introduced in r900
Corresponding to flashrom svn r901.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-02-13 19:22:11 +00:00
Sean Nelson
f5ae4d4a35 Adds support for the Intel E28F004S5 flash chip
Corresponding to flashrom svn r900.

Signed-off-by: Sean Nelson <audiohacked@gmail.com>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-02-13 18:41:53 +00:00
Carl-Daniel Hailfinger
e4edb067a6 Ignore RES (1 byte) if chip replied to REMS (2 bytes)
SPI RES is the most unreliable way to identify chips because it only
returns a 1-byte ID for most chips.

For every given ID out there, probably a dozen incompatible flash
chips match it. We already refuse to identify a chip with RES if that
chip responds to RDID (3 bytes, good match), and with this patch we
additionally refuse RES if the chip responds to REMS (2 bytes, still a
good match). This increases matching accuracy a lot.

Besides that, the RDID/REMS response checking has been cleaned up for
better readability.

Corresponding to flashrom svn r899.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Sean Nelson <audiohacked@gmail.com>
2010-02-12 19:37:25 +00:00
Carl-Daniel Hailfinger
fb0828f3db Split internal.c into internal.c and hwaccess.c
Linking in support for the internal programmer doesn't make sense if you
only need hardware (ioport, memory) access.

Note: This patch was created by "svn cp internal.c hwaccess.c" and then
removing stuff from both files. That's why you can't apply the patch
as-is before running the svn cp.

Corresponding to flashrom svn r898.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Sean Nelson <audiohacked@gmail.com>
2010-02-12 19:35:25 +00:00
Sean Nelson
ca33140ebf Fix erase blocks for Winbond W25X{10,20,40,80} SPI chips
The Winbond W25X10 and related chips only have 4k and 64k blocks and
only accept erase commands: 20h, d8h, and c7h.

Corresponding to flashrom svn r897.

Signed-off-by: Sean Nelson <audiohacked@gmail.com>
Acked-by: David Hendricks <dhendrix@google.com>
2010-02-12 18:40:27 +00:00
Michael Karcher
4dfa093bd5 Fix DMI match logic
This bug slipped in on changing back match-specific to match-any

Corresponding to flashrom svn r896.

Signed-off-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-02-12 05:44:18 +00:00
Carl-Daniel Hailfinger
48f1d73b5f At long last, the day has come, and we can bury full-chip erase once and for all
Back in November 2008(!) I proposed the first version of the flexible
sector-based erase structure, and now we can finally rip out the old
full-chip erase code without ill effects. Rejoice and party!

Thanks to everyone who made this possible, especially to Sean Nelson who
converted the majority of flash chips to sector erase.

Corresponding to flashrom svn r895.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Sean Nelson <audiohacked@gmail.com>
2010-02-11 23:03:53 +00:00
Carl-Daniel Hailfinger
f15e1abbaa Rewrite substantial parts of the ICH SPI support
This megapatch rewrites substantial parts of ICH SPI to actually do
what the SPI layer wants instead of its own weird idea about commands
(running unrequested commands, running modified commands). Besides that,
there is a fair share of cleanups as well.

- Add JEDEC_EWSR (Enable Write Status Register) to default commands. -
Mark a no longer used opcode/preopcode table as unused. - Declare all
commands as non-atomic/standalone by default. The ICH SPI driver has
no business executing commands (preopcodes) automatically if they were
not requested. - Automatically adjust preopcode/opcode pairings (like
WREN+ERASE) based on what the SPI layer requested. The ICH SPI driver
has no business executing altered opcode pairs as it sees fit. - Fix
incomplete initialization in the case of a locked down chipset. Leaving
the first 4 opcodes with uninitialized pairings had unpredictable
results. - switch() exists for a reason. Nested if() checking on the
same variable is an interesting style. - Actually check if the requested
readcnt/writecnt for a command is supported by the hardware instead
of delivering corrupt/incomplete commands and data. - If a command
has unsupported readlen/writelen, complain loudly to the user. - Use
find_opcode instead of open-coding the same stuff in a dozen variations.
- Introduce infrastructure for updating the command set of unlocked
chipsets on the fly.

Corresponding to flashrom svn r894.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: David Hendricks <dhendrix@google.com>
2010-02-11 11:28:37 +00:00
Carl-Daniel Hailfinger
7a788f567d Document the rules for DMI matching with PCI subsystem IDs
The rules may change in the future, but right now it is important that
the comments match the code.

Corresponding to flashrom svn r893.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-02-04 11:12:04 +00:00
Michael Karcher
2eab70da70 Allow DMI supported board enables with subsystem ID zero
This is needed for the Intel SE440BX-2 as well as the Asus P5A.

Corresponding to flashrom svn r892.

Signed-off-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-02-04 10:58:50 +00:00
Patrick Georgi
975aa7e2c6 Properly initialize USB device in dediprog driver
That's necessary to use bulk transfers, and just the
right thing in any case.

Corresponding to flashrom svn r891.

Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2010-02-04 08:29:18 +00:00
Uwe Hermann
873599d8a9 Add a second set of PCI IDs for the Tekram P6Pro-A5
(Re-)tested on hardware, detection works OK.

Corresponding to flashrom svn r890.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2010-02-04 02:40:16 +00:00
Carl-Daniel Hailfinger
baaffe0831 Create a physical memory mapping function which requests cached readonly memory
This should take care of picky Linux kernels which do not allow uncached
mappings to cached areas. Handle mapping failure gracefully (no forced
exit()) if the caller specifies it.

Such cached areas which can handle mapping failure are DMI tables and
coreboot tables. On failure we just ignore those tables. That is not
perfect, but a lot better than aborting flashrom due to an error in
nonessential functionality.

This should fix flashrom on a sizable number of machines where it
currently aborts early.

Yes, I could have exploited a Linux kernel bug to "solve" this, but
relying on such bugs is not exactly the best idea.

Corresponding to flashrom svn r889.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Vincent Pelletier <plr.vincent@gmail.com>
2010-02-02 11:09:03 +00:00
Jeffrey A. Kent
ba7c9228d3 Adds support for ST M29W512B
Tested and works for me.

Corresponding to flashrom svn r888.

Signed-off-by: Jeffrey A. Kent <jakent@gmail.com>
Acked-by: Sean Nelson <audiohacked@gmail.com>
2010-02-01 05:49:46 +00:00
Uwe Hermann
012b3a1024 Add the Tekram P6Pro-A5 board as supported
The board doesn't need a board-enable, writing works out of the box.

Also, the board can only decode 256KB. I verified this by writing a 512KB
image of random bytes (which fails), whereas 256KB of random bytes can be
written correctly.

Corresponding to flashrom svn r887.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2010-01-31 20:13:06 +00:00
Sean Nelson
35727f7618 Complete the addition of Feature Bits for all Jedec based chips
Add FEATURE_SHORT_RESET, FEATURE_LONG_RESET, and FEATURE_EITHER_RESET
rewrite jedec functions to use getaddrmask

convert write_49f002 to write_jedec_1
convert write_w39v040c to write_jedec_1
convert probe_w39v040c to probe_jedec
convert write_49lf040 to write_jedec_1
convert write_pm29f002 to write_jedec
convert write_29f040b to write_jedec_1
convert probe_29f040b to probe_jedec
convert erase_chip_29f040b to erase_chip_block_jedec
convert erase_sector_29f040b to erase_sector_jedec
convert write_m29f002b to write_jedec
convert write_m29f002t to write_jedec
convert *_29f002 to *_jedec

decouple unused files from Makefile:
am29f040b.c
en29f002a.c
m29f002.c
mx29f002.c
pm29f002.c
sst49lf040.c
w39v040c.c
w49f002u.c

Corresponding to flashrom svn r886.

Signed-off-by: Sean Nelson <audiohacked@gmail.com>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Anders Juel Jensen <andersjjensen@gmail.com>
2010-01-28 23:55:12 +00:00
Uwe Hermann
b1bd3e85ba The GIGABYTE GA-7ZM has a maximum decode size (parallel chips) of 512 KB
Add this information to the new field in the board-enable table. We match the
board via two sets of PCI IDs. However, as we don't need a board-enable
function for this board (it works out of the box; well, at least if you remove
the JP9 jumper on the board), change the code to allow NULL as value for
the board-enable function. There will likely be more boards in the future where
we want to record a maximum decode size but which don't need a board-enable.

This is hardware-tested on the GIGABYTE GA-7ZM by successfully writing a 512KB
image of random bytes to a chip in this board.

Corresponding to flashrom svn r885.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Sean Nelson <audiohacked@gmail.com>
2010-01-28 19:02:36 +00:00
Michael Karcher
823dc9d9bc Avoid bogus gcc warning
Recent gcc/glibc combinations warn about ignoring the fgets() result.
The problem exists on Ubuntu 9.10 with current updates. This "fix" of
the non-problem (as I check ferror() afterwards) should even be a
(negligible) performance optimization.

Corresponding to flashrom svn r884.

Signed-off-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
Acked-by: Andrew Morgan <ziltro@ziltro.com>
2010-01-27 10:08:33 +00:00
Patrick Georgi
06602c239c Windows wants UNC names for COM ports >9 (legacy COM ports only work with one digit)
As UNC also works for smaller names, just retarget all requests for
dev=COMx on win32 to \\.\COMx. Tested with large and small COM port
numbers on XP.

Corresponding to flashrom svn r883.

Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-01-26 20:58:40 +00:00
Patrick Georgi
0bf842d0ca Open binary files in binary mode
No change on UNIX (or Mac OS, according to its documentation), but fixes
operation on Windows.

Corresponding to flashrom svn r882.

Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2010-01-25 22:55:33 +00:00
Uwe Hermann
48da3f9f99 Add support for the SST39SF512 chip
All operations tested by me, works fine.

Corresponding to flashrom svn r881.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Sean Nelson <audiohacked@gmail.com>
2010-01-23 15:15:19 +00:00
Stefan Reinauer
e8683b6fc1 Backout unintentional chunk
Corresponding to flashrom svn r880.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2010-01-22 10:49:33 +00:00
Carl-Daniel Hailfinger
eac6579090 Add write support
Speed up reads by a factor of 4 by switching block size from 4 to 16.
Add support for 4 byte RDID.
Add USB error decoding via usb_strerror.

Corresponding to flashrom svn r879.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2010-01-22 02:53:30 +00:00
Stefan Reinauer
2fea3f3197 This patch fixes the use of CFLAGS and CPPFLAGS in the flashrom makefile
Corresponding to flashrom svn r878.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Sean Nelson <audiohacked@gmail.com>
2010-01-21 20:26:30 +00:00
Sean Nelson
51c83fb2b2 Convert various SST chips to use block_erasers
Convert the following chips to block_erasers: SST28SF040A SST29EE010
SST29LE010 SST29EE020A SST29LE020 SST39SF010A SST39SF020A SST39SF040
SST39VF512 SST39VF010 SST39VF020 SST39VF040 SST39VF080 SST49LF002A/B
SST49LF003A/B SST49LF004C SST49LF008A SST49LF008C SST49LF016C SST49LF020
SST49LF020A SST49LF040 SST49LF040B SST49LF080A SST49LF160C .

Extend sst28sf040 to include chip and sector functions for block_eraser.
Extend sst49lfxxxc to include chip, sector, block erasers functions for
block_erasers. Extend sst_fwhub to include chip and sector functions for
block_erasers. Add copyrights to changed files. Killed erase_sst_fwhub.
Killed erase_49lfxxxc. NULL A/A mux mode full chip erasers. Ignore block
locks in erase/write. Change comments from "PP mode" to "A/A mux mode"

Corresponding to flashrom svn r877.

Signed-off-by: Sean Nelson <audiohacked@gmail.com> 
Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
2010-01-20 20:55:53 +00:00
Luc Verhaegen
21f5496361 Boards: Remove it8705_rom_write_enable
Should be functionally the same as it8705f_write_enable_2e.

Corresponding to flashrom svn r876.

Signed-off-by: Luc Verhaegen <libv@skynet.be>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2010-01-20 14:45:07 +00:00
Luc Verhaegen
93938c32f6 Boards: Add max_rom_decode_parallel entry to board enable table
This is a quick fix for board specific parallel addressing limits.

Corresponding to flashrom svn r875.

Signed-off-by: Luc Verhaegen <libv@skynet.be>
Acked-by: Sean Nelson <audiohacked@gmail.com>
2010-01-20 14:45:03 +00:00
Michael Karcher
6701ee833c Matching board via DMI
If a board is not uniquely identifiable by PCI device/subsystem IDs, a
string can be specified to be looked for (case-sensitive, substring or
anchored) for now in one of the following DMI items in addition to matching
the PCI IDs:
 - System Manufacturer
 - System Product Name
 - System Version
 - Baseboard Manufacturer
 - Baseboard Product Name
 - Baseboard Version

Strings are anchored re-like (^ at the beginning, $ at the end), but
there are no plans to support full regular expressions and matched to any
of the mentioned fields.

The match is only made if DMI info is available and the string matches.
If no DMI info is available and the PCI IDs match, a warning is printed
as the board can not be autodetected.

It's still open to discussion whether we add an DMI override switch to
specify a string that will definitely match, and whether this switch is
only used if no DMI is available or whether it overrides or augments DMI
data.

DMI data is currently read using dmidecode. This tool is available for
all major platforms except MacOS X. I heard that there also is a MacOS X
version of dmidecode, but didn't investigate that.

Corresponding to flashrom svn r874.

Signed-off-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
Acked-by: Luc Verhaegen <libv@skynet.be>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-01-20 14:14:11 +00:00
Sean Nelson
012a31e201 Fix SyncMOS S29C51004T, which has 512 uniform 1k sectors
Corresponding to flashrom svn r873.

Signed-off-by: Sean Nelson <audiohacked@gmail.com>
Acked-by: Sean Nelson <audiohacked@gmail.com>
2010-01-19 20:23:26 +00:00
Sean Nelson
329bde7725 Convert ST to block erasers
ST M25P05-A
ST M25P05.RES
ST M25P10-A
ST M25P10.RES
ST M25P20
ST M25P40
ST M25P40-old
ST M25P80
ST M25P16
ST M25P32
ST M25P64
ST M25P128
ST M29F002B
ST M29F002T/NT
ST M29F040B
ST M29F400BT
ST M29W010B
ST M29W040B
ST M50FLW040A
ST M50FLW040B
ST M50FLW080A
ST M50FLW080B
ST M50FW002
ST M50FW016
ST M50FW040
ST M50FW080
ST M50LPW116

Add erase_chip_stm50flw0x0x to stm50flw0x0x.c
Add copyright to stm50flw0x0x.c
Fix block sizes and counts
Omit M50FLW0x0x mixed sector/block eraser
Convert the used 82802ab functions to their stm50flw0x0x equivalents
Fix incorrect sizes as found by Carl-Daniel.
Add back M50FLW0x0x mixed sector/block eraser sans function pointer.

Corresponding to flashrom svn r872.

Signed-off-by: Sean Nelson <audiohacked@gmail.com>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-01-19 16:39:19 +00:00
Sean Nelson
56358aae1d Block eraser conversions and support for Eon EN25B series
Convert chips to block_erasers:

SyncMOS S29C31004T
SyncMOS S29C51001T
SyncMOS S29C51002T
SyncMOS S29C51004T
TI TMS29F002RT
TI TMS29F002RB

SyncMOS chips have Uniform sector; boot blocks on chips are made up of uniform sectors but have locking.

Corresponding to flashrom svn r871.

Signed-off-by: Sean Nelson <audiohacked@gmail.com>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-01-19 16:08:51 +00:00
Carl-Daniel Hailfinger
d38fac8c26 Dediprog SF100 support
Reverse engineered from USB logs. I never touched that programmer nor
did I ever see the associated software.
Disabled by default until it is complete. The driver needs to be hooked
up to the SPI core before it will do anything besides init and
diagnostics.

I successfully reverse engineered all commands, but some are still
somewhat magic.
Logs from "flashrom -p dediprog -V" are appreciated.

Probe and read should work, erase/write is expected to explode.
The programmer will set voltage to 0 on exit.

Thanks a lot to Stefan Reinauer and Patrick Georgi for providing USB
logs and for testing the result.

Corresponding to flashrom svn r870.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2010-01-19 11:15:48 +00:00
Carl-Daniel Hailfinger
415afcffc1 Add eraseblock functions to self-check
It doesn't make sense to have different layouts for the same function
on one chip. Keep going if an error is found, we want all errors to be
reported in one fell swoop.

Corresponding to flashrom svn r869.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Sean Nelson <audiohacked@gmail.com>
2010-01-19 06:42:46 +00:00
Sean Nelson
cfc35cda57 Converted chips to block_erasers
W_25X10
W_25X20
W_25X40
W_25X80
W_25X16
W_25X32
W_25X64
W_29C011
W_29C020C
W_29C040P
W_29EE011
W_39V040A
W_39V040B
W_39V040C
W_39V040FA
W_39V080A
W_49F002U
W_49V002A
W_49V002FA
W_39V080FA
W_39V080FA_DM

Corresponding to flashrom svn r868.

Signed-off-by: Sean Nelson <audiohacked@gmail.com>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-01-19 03:24:55 +00:00
Sean Nelson
5643c0782e Block eraser conversions and support for Eon EN25B series
Convert chips to block_erasers:
ST_M25PE10
ST_M25PE20
ST_M25PE40
ST_M25PE80
ST_M25PE16
PMC_25LV010
PMC_25LV016B
PMC_25LV020
PMC_25LV040
PMC_25LV080B
PMC_25LV512
PMC_39F010
PMC_49FL002
PMC_49FL004
SANYO_LE25FW203A
SPANSION_S25FL016A

Added spi_block_erase_d7 for PMC chips.

Corresponding to flashrom svn r867.

Signed-off-by: Sean Nelson <audiohacked@gmail.com>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-01-19 03:23:07 +00:00
David Hendricks
db7c153cdd Add Intel NM10 chipset enable
Public chipset documentation available at
http://www.intel.com/Assets/PDF/datasheet/322896.pdf

Tested on NM10-based customer reference board from Intel.

Corresponding to flashrom svn r866.

Signed-off-by: David Hendricks <dhendrix@google.com>
Acked-by: Sean Nelson <audiohacked@gmail.com>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-01-19 02:19:27 +00:00
Sean Nelson
2aff7aa03f Fix A25L40PU and A2540PT due to incorrect full-chip block size is incorrect
Corresponding to flashrom svn r865.

Thanks to hailfinger's self-check-erase routine for catching this.
Signed-off-by: Sean Nelson <audiohacked@gmail.com>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-01-18 08:24:02 +00:00
Carl-Daniel Hailfinger
293adf0242 Do sanity checks of block erasers at startup and continue check on errors
Flashrom performs a self-check on every startup before it even starts to
initialize any programmer.

That way, compiler errors and code errors will be caught before they can
do any harm. This patch adds an eraseblock structure self-check. It also
modifies the self-check code to consistently run all checks even if one
check failed.

Corresponding to flashrom svn r864.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Sean Nelson <audiohacked@gmail.com>
2010-01-18 08:14:43 +00:00
Carl-Daniel Hailfinger
26f72a14f3 The write and erase column in the --list-supported-wiki output were swapped
Thanks to Michael Karcher for noticing.

Corresponding to flashrom svn r863.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2010-01-18 07:02:19 +00:00
Michael Karcher
23ff4601ac Support for Spansion S25FL008A
Tested with read/erase/write (including verify). I only wrote the image
that was read before - don't want to brick my laptop.

Corresponding to flashrom svn r862.

Signed-off-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-01-12 23:29:30 +00:00
Michael Karcher
4e2fb0ee3e Don't use "byte" as identifier
Some mingw declares a global identifier "byte", causing -Werror -Wshadow
to break compilation. This patch renames all identifiers called "byte".

Corresponding to flashrom svn r861.

Signed-off-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2010-01-12 23:29:26 +00:00