Michael Brown
92a9978b44
[spi] Add address-length autodetection to the SPI bit-bashing code
Several SPI chips will respond to an SPI read command with a dummy
zero bit immediately prior to the first real data bit. This can be
used to autodetect the address length, provided that the command
length and data length are already known, and that the MISO data line
is tied high.
Tested-by: Thomas Miletich <thomas.miletich@gmail.com >
Debugged-by: Thomas Miletich <thomas.miletich@gmail.com >
15 gadus atpakaļ
Michael Brown
c44a193d0d
[legal] Add a selection of FILE_LICENCE declarations
Add FILE_LICENCE declarations to almost all files that make up the
various standard builds of gPXE.
15 gadus atpakaļ
Alexey Zaytsev
a1572e0ab0
Modify gPXE core and drivers to work with the new timer subsystem
Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com >
16 gadus atpakaļ
Michael Brown
1949641d10
Fix compiler warnings that appear only on OpenBSD.
17 gadus atpakaļ
Michael Brown
df868476e7
Various warnings fixups for OpenBSD with gcc-3.3.5.
17 gadus atpakaļ
Michael Brown
64787bad29
Fix prototype mismatch.
17 gadus atpakaļ
Michael Brown
6ceaa158da
Return -EIO when verification fails, instead of -EINVAL.
18 gadus atpakaļ
Michael Brown
d2bf7abe75
Added write support for three-wire devices (e.g. the RTL8139 EEPROM)
18 gadus atpakaļ
Michael Brown
ac401f481d
Verify data after writing
18 gadus atpakaļ
Michael Brown
6b45947a59
Added debug statements
18 gadus atpakaļ
Michael Brown
052ef6dc5a
Added nvs_write(). This shares a lot of code in common with nvs_read();
this can probably be optimised down quite a lot.
18 gadus atpakaļ
Michael Brown
2d8d21fe74
Added the generic block-splitting code to nvs.c
18 gadus atpakaļ
Michael Brown
1961ba44e1
Added generic SPI protocol handler with read and write support.
18 gadus atpakaļ
Michael Brown
946967f09c
Abstracted out part of the concept of an SPI device to a generalised NVS
device.
Separated the mechanisms of non-volatile storage access and non-volatile
stored options.
18 gadus atpakaļ
Michael Brown
dc06c895fc
Changed length parameter in SPI methods to be a byte length, rather than
a word length.
18 gadus atpakaļ
Michael Brown
931f94dca3
Generalised the SPI abstraction layer to also be able to handle interfaces
that don't provide the full flexibility of a bit-bashing interface.
Temporarily hacked rtl8139.c to use the new interface.
18 gadus atpakaļ
Michael Brown
3b51c719d3
Generalise three-wire interface to generic SPI interface.
Update rtl8139 driver to instantiate an SPI interface with a three-wire
device attached.
18 gadus atpakaļ
Michael Brown
aa2468babe
Added abstraction layer for a three-wire serial device (e.g. the EEPROM
used on RTL8139 cards).
18 gadus atpakaļ