coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
w25q64.c File Reference
#include <string.h>
#include <soc/spi.h>
Include dependency graph for w25q64.c:

Go to the source code of this file.

Macros

#define SPI_OPMENU_0   0x01 /* WRSR: Write Status Register */
 
#define SPI_OPTYPE_0   0x01 /* Write, no address */
 
#define SPI_OPMENU_1   0x02 /* BYPR: Byte Program */
 
#define SPI_OPTYPE_1   0x03 /* Write, address required */
 
#define SPI_OPMENU_2   0x03 /* READ: Read Data */
 
#define SPI_OPTYPE_2   0x02 /* Read, address required */
 
#define SPI_OPMENU_3   0x05 /* RDSR: Read Status Register */
 
#define SPI_OPTYPE_3   0x00 /* Read, no address */
 
#define SPI_OPMENU_4   0x20 /* SE20: Sector Erase 0x20 */
 
#define SPI_OPTYPE_4   0x03 /* Write, address required */
 
#define SPI_OPMENU_5   0x9f /* RDID: Read ID */
 
#define SPI_OPTYPE_5   0x00 /* Read, no address */
 
#define SPI_OPMENU_6   0xd8 /* BED8: Block Erase 0xd8 */
 
#define SPI_OPTYPE_6   0x03 /* Write, address required */
 
#define SPI_OPMENU_7   0x0b /* FAST: Fast Read */
 
#define SPI_OPTYPE_7   0x02 /* Read, address required */
 
#define SPI_OPPREFIX   ((0x50 << 8) | 0x06) /* EWSR and WREN */
 
#define SPI_OPTYPE
 
#define SPI_OPMENU_UPPER
 
#define SPI_OPMENU_LOWER
 
#define SPI_VSCC   (WG_64_BYTE | EO(0x20) | BES_4_KB)
 

Functions

int mainboard_get_spi_config (struct spi_config *cfg)
 

Variables

static const struct spi_config spi_config
 

Macro Definition Documentation

◆ SPI_OPMENU_0

#define SPI_OPMENU_0   0x01 /* WRSR: Write Status Register */

Definition at line 9 of file w25q64.c.

◆ SPI_OPMENU_1

#define SPI_OPMENU_1   0x02 /* BYPR: Byte Program */

Definition at line 12 of file w25q64.c.

◆ SPI_OPMENU_2

#define SPI_OPMENU_2   0x03 /* READ: Read Data */

Definition at line 15 of file w25q64.c.

◆ SPI_OPMENU_3

#define SPI_OPMENU_3   0x05 /* RDSR: Read Status Register */

Definition at line 18 of file w25q64.c.

◆ SPI_OPMENU_4

#define SPI_OPMENU_4   0x20 /* SE20: Sector Erase 0x20 */

Definition at line 21 of file w25q64.c.

◆ SPI_OPMENU_5

#define SPI_OPMENU_5   0x9f /* RDID: Read ID */

Definition at line 24 of file w25q64.c.

◆ SPI_OPMENU_6

#define SPI_OPMENU_6   0xd8 /* BED8: Block Erase 0xd8 */

Definition at line 27 of file w25q64.c.

◆ SPI_OPMENU_7

#define SPI_OPMENU_7   0x0b /* FAST: Fast Read */

Definition at line 30 of file w25q64.c.

◆ SPI_OPMENU_LOWER

#define SPI_OPMENU_LOWER
Value:
((SPI_OPMENU_3 << 24) | (SPI_OPMENU_2 << 16) | \
(SPI_OPMENU_1 << 8) | (SPI_OPMENU_0 << 0))
#define SPI_OPMENU_1
Definition: w25q64.c:12
#define SPI_OPMENU_2
Definition: w25q64.c:15
#define SPI_OPMENU_3
Definition: w25q64.c:18
#define SPI_OPMENU_0
Definition: w25q64.c:9

Definition at line 40 of file w25q64.c.

◆ SPI_OPMENU_UPPER

#define SPI_OPMENU_UPPER
Value:
((SPI_OPMENU_7 << 24) | (SPI_OPMENU_6 << 16) | \
(SPI_OPMENU_5 << 8) | (SPI_OPMENU_4 << 0))
#define SPI_OPMENU_7
Definition: w25q64.c:30
#define SPI_OPMENU_5
Definition: w25q64.c:24
#define SPI_OPMENU_4
Definition: w25q64.c:21
#define SPI_OPMENU_6
Definition: w25q64.c:27

Definition at line 38 of file w25q64.c.

◆ SPI_OPPREFIX

#define SPI_OPPREFIX   ((0x50 << 8) | 0x06) /* EWSR and WREN */

Definition at line 33 of file w25q64.c.

◆ SPI_OPTYPE

#define SPI_OPTYPE
Value:
((SPI_OPTYPE_7 << 14) | (SPI_OPTYPE_6 << 12) | \
(SPI_OPTYPE_5 << 10) | (SPI_OPTYPE_4 << 8) | \
(SPI_OPTYPE_3 << 6) | (SPI_OPTYPE_2 << 4) | \
(SPI_OPTYPE_1 << 2) | (SPI_OPTYPE_0 << 0))
#define SPI_OPTYPE_5
Definition: w25q64.c:25
#define SPI_OPTYPE_1
Definition: w25q64.c:13
#define SPI_OPTYPE_3
Definition: w25q64.c:19
#define SPI_OPTYPE_0
Definition: w25q64.c:10
#define SPI_OPTYPE_2
Definition: w25q64.c:16
#define SPI_OPTYPE_4
Definition: w25q64.c:22
#define SPI_OPTYPE_6
Definition: w25q64.c:28
#define SPI_OPTYPE_7
Definition: w25q64.c:31

Definition at line 34 of file w25q64.c.

◆ SPI_OPTYPE_0

#define SPI_OPTYPE_0   0x01 /* Write, no address */

Definition at line 10 of file w25q64.c.

◆ SPI_OPTYPE_1

#define SPI_OPTYPE_1   0x03 /* Write, address required */

Definition at line 13 of file w25q64.c.

◆ SPI_OPTYPE_2

#define SPI_OPTYPE_2   0x02 /* Read, address required */

Definition at line 16 of file w25q64.c.

◆ SPI_OPTYPE_3

#define SPI_OPTYPE_3   0x00 /* Read, no address */

Definition at line 19 of file w25q64.c.

◆ SPI_OPTYPE_4

#define SPI_OPTYPE_4   0x03 /* Write, address required */

Definition at line 22 of file w25q64.c.

◆ SPI_OPTYPE_5

#define SPI_OPTYPE_5   0x00 /* Read, no address */

Definition at line 25 of file w25q64.c.

◆ SPI_OPTYPE_6

#define SPI_OPTYPE_6   0x03 /* Write, address required */

Definition at line 28 of file w25q64.c.

◆ SPI_OPTYPE_7

#define SPI_OPTYPE_7   0x02 /* Read, address required */

Definition at line 31 of file w25q64.c.

◆ SPI_VSCC

#define SPI_VSCC   (WG_64_BYTE | EO(0x20) | BES_4_KB)

Definition at line 42 of file w25q64.c.

Function Documentation

◆ mainboard_get_spi_config()

int mainboard_get_spi_config ( struct spi_config cfg)

Definition at line 52 of file w25q64.c.

References memcpy().

Here is the call graph for this function:

Variable Documentation

◆ spi_config

const struct spi_config spi_config
static
Initial value:
= {
.preop = SPI_OPPREFIX,
.optype = SPI_OPTYPE,
.lvscc = SPI_VSCC,
.uvscc = SPI_VSCC,
}
#define SPI_OPMENU_LOWER
Definition: w25q64.c:40
#define SPI_OPTYPE
Definition: w25q64.c:34
#define SPI_OPPREFIX
Definition: w25q64.c:33
#define SPI_VSCC
Definition: w25q64.c:42
#define SPI_OPMENU_UPPER
Definition: w25q64.c:38

Definition at line 1 of file w25q64.c.