From 95cb7aaacf734cff2bd8580475732de80d52d327 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Sun, 1 Jul 2007 15:22:12 +0100 Subject: Support cards such as natsemi which treat the data as little-endian (i.e. LSB transmitted first on the wire), even though SPI commands and addresses always have to be big-endian. --- src/include/gpxe/spi_bit.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/include') diff --git a/src/include/gpxe/spi_bit.h b/src/include/gpxe/spi_bit.h index 04af9136c..ced85ceba 100644 --- a/src/include/gpxe/spi_bit.h +++ b/src/include/gpxe/spi_bit.h @@ -16,6 +16,15 @@ struct spi_bit_basher { struct spi_bus bus; /** Bit-bashing interface */ struct bit_basher basher; + /** Endianness of data + * + * SPI commands and addresses are always big-endian (i.e. MSB + * transmitted first on the wire), but some cards + * (e.g. natsemi) choose to regard the data stored in the + * EEPROM as little-endian (i.e. LSB transmitted first on the + * wire). + */ + int endianness; }; /** Bit indices used for SPI bit-bashing interface */ @@ -41,6 +50,12 @@ enum { /** Delay between SCLK transitions */ #define SPI_BIT_UDELAY 1 +/** SPI bit basher treats data as big-endian */ +#define SPI_BIT_BIG_ENDIAN 0 + +/** SPI bit basher treats data as little-endian */ +#define SPI_BIT_LITTLE_ENDIAN 1 + extern void init_spi_bit_basher ( struct spi_bit_basher *spibit ); #endif /* _GPXE_SPI_BIT_H */ -- cgit v1.2.3-55-g7522