trivial patch for abuild: allow powerpc-elf-gcc, too.
[coreboot.git] / util / flashrom / spi.h
1 /*
2  * This file is part of the flashrom project.
3  *
4  * Copyright (C) 2007, 2008 Carl-Daniel Hailfinger
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; version 2 of the License.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
18  */
19
20 #ifndef __SPI_H__
21 #define __SPI_H__ 1
22
23 /*
24  * Contains the generic SPI headers
25  */
26
27 /* Read Electronic ID */
28 #define JEDEC_RDID              0x9f
29 #define JEDEC_RDID_OUTSIZE      0x01
30 #define JEDEC_RDID_INSIZE       0x03
31
32 /* AT25F512A has bit 3 as don't care bit in commands */
33 #define AT25F512A_RDID          0x15
34 #define AT25F512A_RDID_OUTSIZE  0x01
35 #define AT25F512A_RDID_INSIZE   0x02
36
37 /* Read Electronic Manufacturer Signature */
38 #define JEDEC_REMS              0x90
39 #define JEDEC_REMS_OUTSIZE      0x04
40 #define JEDEC_REMS_INSIZE       0x02
41
42 /* Read Electronic Signature */
43 #define JEDEC_RES               0xab
44 #define JEDEC_RES_OUTSIZE       0x04
45 #define JEDEC_RES_INSIZE        0x01
46
47 /* Write Enable */
48 #define JEDEC_WREN              0x06
49 #define JEDEC_WREN_OUTSIZE      0x01
50 #define JEDEC_WREN_INSIZE       0x00
51
52 /* Write Disable */
53 #define JEDEC_WRDI              0x04
54 #define JEDEC_WRDI_OUTSIZE      0x01
55 #define JEDEC_WRDI_INSIZE       0x00
56
57 /* Chip Erase 0x60 is supported by Macronix/SST chips. */
58 #define JEDEC_CE_60             0x60
59 #define JEDEC_CE_60_OUTSIZE     0x01
60 #define JEDEC_CE_60_INSIZE      0x00
61
62 /* Chip Erase 0xc7 is supported by SST/ST/EON/Macronix chips. */
63 #define JEDEC_CE_C7             0xc7
64 #define JEDEC_CE_C7_OUTSIZE     0x01
65 #define JEDEC_CE_C7_INSIZE      0x00
66
67 /* Block Erase 0x52 is supported by SST and old Atmel chips. */
68 #define JEDEC_BE_52             0x52
69 #define JEDEC_BE_52_OUTSIZE     0x04
70 #define JEDEC_BE_52_INSIZE      0x00
71
72 /* Block Erase 0xd8 is supported by EON/Macronix chips. */
73 #define JEDEC_BE_D8             0xd8
74 #define JEDEC_BE_D8_OUTSIZE     0x04
75 #define JEDEC_BE_D8_INSIZE      0x00
76
77 /* Sector Erase 0x20 is supported by Macronix/SST chips. */
78 #define JEDEC_SE                0x20
79 #define JEDEC_SE_OUTSIZE        0x04
80 #define JEDEC_SE_INSIZE         0x00
81
82 /* Read Status Register */
83 #define JEDEC_RDSR              0x05
84 #define JEDEC_RDSR_OUTSIZE      0x01
85 #define JEDEC_RDSR_INSIZE       0x01
86 #define JEDEC_RDSR_BIT_WIP      (0x01 << 0)
87
88 /* Write Status Enable */
89 #define JEDEC_EWSR              0x50
90 #define JEDEC_EWSR_OUTSIZE      0x01
91 #define JEDEC_EWSR_INSIZE       0x00
92
93 /* Write Status Register */
94 #define JEDEC_WRSR              0x01
95 #define JEDEC_WRSR_OUTSIZE      0x02
96 #define JEDEC_WRSR_INSIZE       0x00
97
98 /* Read the memory */
99 #define JEDEC_READ              0x03
100 #define JEDEC_READ_OUTSIZE      0x04
101 /*      JEDEC_READ_INSIZE : any length */
102
103 /* Write memory byte */
104 #define JEDEC_BYTE_PROGRAM      0x02
105 #define JEDEC_BYTE_PROGRAM_OUTSIZE      0x05
106 #define JEDEC_BYTE_PROGRAM_INSIZE       0x00
107
108 #endif          /* !__SPI_H__ */