1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-06-30 21:52:36 +02:00
Carl-Daniel Hailfinger 78185dcb3c Use accessor functions for MMIO
Some MMIO accesses used volatile, others didn't (and risked
non-execution of side effects) and even with volatile, some accesses
looked dubious.

Since the MMIO accessor functions and the onboard flash accessor
functions are functionally identical (but have different signatures),
make the flash accessors wrappers for the MMIO accessors.

For some of the conversions, I used Coccinelle. Semantic patch follows:

@@ typedef uint8_t; expression a; volatile uint8_t *b; @@ - b[a] + *(b
+ a) @@ expression a; volatile uint8_t *b; @@ - *(b) |= (a); + *(b) =
*(b) | (a); @@ expression a; volatile uint8_t *b; @@ - *(b) = (a); +
mmio_writeb(a, b); @@ volatile uint8_t *b; @@ - *(b) + mmio_readb(b) @@
type T; T b; @@ ( mmio_readb | mmio_writeb ) (..., - (T) - (b) + b )

Corresponding to flashrom svn r524.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>

Uwe tested read, write, erase with this patch on a random board to make
sure nothing breaks.

Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-05-17 15:49:24 +00:00
2009-05-16 23:42:17 +00:00
2007-09-08 14:36:01 +00:00
2009-05-17 15:49:24 +00:00
2009-05-16 23:42:17 +00:00
2009-05-17 15:49:24 +00:00
2009-05-17 15:49:24 +00:00
2009-05-15 17:02:34 +00:00
2009-05-05 16:15:46 +00:00
2009-05-17 15:49:24 +00:00

-------------------------------------------------------------------------------
flashrom README
-------------------------------------------------------------------------------

flashrom is a utility for reading, writing, verifying and erasing flash ROM
chips. It's often used to flash BIOS/coreboot/firmware images.

It supports a wide range of DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32, and
TSOP40 chips, which use various protocols such as LPC, FWH, parallel flash,
or SPI.

(see http://coreboot.org for details on coreboot)


Build Requirements
------------------

To build flashrom you need to install the following packages or ports:

Linux et al:

 * pciutils
 * pciutils-devel / pciutils-dev / libpci-dev
 * zlib-devel / zlib1g-dev

On FreeBSD, you need the following ports:

 * devel/gmake
 * devel/libpci

To compile on Linux, use:

 make

To compile on FreeBSD, use:

 gmake

To compile on Solaris, use:

 gmake LDFLAGS="-L$pathtolibpci -lpci -lz" CC="gcc -I$pathtopciheaders" \
       CFLAGS=-O2

To compile on DragonFly BSD, use:

 ln -s /usr/pkg/include/pciutils pci
 gmake CFLAGS=-I. LDFLAGS="-L/usr/pkg/lib -lpci -lz"

To compile and run on Darwin/Mac OS X:

 Install DirectIO from coresystems GmbH.
 DirectIO is available at http://www.coresystems.de/en/directio.


Usage / Options
---------------

Please see the flashrom(8) manpage.


Exit status
-----------

Please see the flashrom(8) manpage.


coreboot Table and Mainboard Identification
--------------------------------------------

Please see the flashrom(8) manpage.


ROM Layout Support
------------------

Please see the flashrom(8) manpage.


Supported Flash Chips / Chipsets / Mainboards
---------------------------------------------

Please check the output of 'flashrom -L' for the list of supported
flash chips, chipsets/southbridges, and mainboards.

See also http://coreboot.org/Flashrom for more details.

Description
No description provided
Readme 67 MiB
Languages
C 90.2%
Rust 5%
Shell 2%
Makefile 1.6%
Meson 1.2%