TianoCore EDK2 master
Loading...
Searching...
No Matches
SpiNorFlashJedecSfdp.h File Reference
#include <Base.h>

Go to the source code of this file.

Data Structures

struct  _SFDP_HEADER
 
struct  _SFDP_PARAMETER_HEADER
 
struct  _SFDP_BASIC_FLASH_PARAMETER
 
struct  SFDP_SECTOR_CONFIGURATION_COMMAND
 
struct  SFDP_SECTOR_CONFIGURATION_MAP
 
struct  SFDP_SECTOR_CONFIGURATION_GENERIC_HEADER
 
struct  _SFDP_SECTOR_REGION
 
union  _SFDP_SECTOR_MAP_TABLE
 

Macros

#define SFDP_HEADER_SIGNATURE   0x50444653
 
#define SFDP_SUPPORTED_MAJOR_REVISION   0x1ul
 
#define SFDP_BASIC_PARAMETER_ID_LSB   0x00
 JEDEC Basic Flash Parameter Header.
 
#define SFDP_BASIC_PARAMETER_ID_MSB   0xFF
 
#define SFDP_SECTOR_MAP_PARAMETER_ID_LSB   0x81
 
#define SFDP_FOUR_BYTE_ADDRESS_INSTRUCTION_LSB   0x84
 
#define SFDP_SECTOR_MAP_PARAMETER_ID_MSB   0xFF
 
#define SFDP_FLASH_MEMORY_DENSITY_4GBIT   0x80000000
 
#define SPI_UNIFORM_4K_ERASE_SUPPORTED   0x01
 
#define SPI_UNIFORM_4K_ERASE_UNSUPPORTED   0x03
 
#define SPI_ADDR_3BYTE_ONLY   0x00
 
#define SPI_ADDR_3OR4BYTE   0x01
 
#define SPI_ADDR_4BYTE_ONLY   0x02
 
#define SFDP_ERASE_TYPES_NUMBER   4
 
#define SFDP_ERASE_TYPE_1   0x0001
 
#define SFDP_ERASE_TYPE_2   0x0002
 
#define SFDP_ERASE_TYPE_3   0x0003
 
#define SFDP_ERASE_TYPE_4   0x0004
 
#define SPI_FLASH_READ   0x03
 
#define SPI_FLASH_READ_DUMMY   0x00
 
#define SPI_FLASH_READ_ADDR_BYTES   SPI_ADDR_3OR4BYTE
 
#define SPI_FLASH_FAST_READ   0x0B
 
#define SPI_FLASH_FAST_READ_DUMMY   0x01
 
#define SPI_FLASH_FAST_READ_ADDR_BYTES   SPI_ADDR_3OR4BYTE
 
#define SPI_FLASH_PP   0x02
 
#define SPI_FLASH_PP_DUMMY   0x00
 
#define SPI_FLASH_PP_ADDR_BYTES   SPI_ADDR_3OR4BYTE
 
#define SPI_FLASH_PAGE_SIZE   256
 
#define SPI_FLASH_SE   0x20
 
#define SPI_FLASH_SE_DUMMY   0x00
 
#define SPI_FLASH_SE_ADDR_BYTES   SPI_ADDR_3OR4BYTE
 
#define SPI_FLASH_BE32K   0x52
 
#define SPI_FLASH_BE32K_DUMMY   0x00
 
#define SPI_FLASH_BE32K_ADDR_BYTES   SPI_ADDR_3OR4BYTE
 
#define SPI_FLASH_BE   0xD8
 
#define SPI_FLASH_BE_DUMMY   0x00
 
#define SPI_FLASH_BE_ADDR_BYTES   SPI_ADDR_3OR4BYTE
 
#define SPI_FLASH_CE   0x60
 
#define SPI_FLASH_CE_DUMMY   0x00
 
#define SPI_FLASH_CE_ADDR_BYTES   SPI_ADDR_3OR4BYTE
 
#define SPI_FLASH_RDID   0x9F
 
#define SPI_FLASH_RDID_DUMMY   0x00
 
#define SPI_FLASH_RDID_ADDR_BYTES   SPI_ADDR_3OR4BYTE
 
#define SPI_FLASH_WREN   0x06
 
#define SPI_FLASH_WREN_DUMMY   0x00
 
#define SPI_FLASH_WREN_ADDR_BYTES   SPI_ADDR_3OR4BYTE
 
#define SPI_FLASH_WRDI   0x04
 
#define SPI_FLASH_WRDI_DUMMY   0x00
 
#define SPI_FLASH_WRDI_ADDR_BYTES   SPI_ADDR_3OR4BYTE
 
#define SPI_FLASH_RDSR   0x05
 
#define SPI_FLASH_RDSR_DUMMY   0x00
 
#define SPI_FLASH_RDSR_ADDR_BYTES   SPI_ADDR_3OR4BYTE
 
#define SPI_FLASH_SR_NOT_WIP   0x0
 
#define SPI_FLASH_SR_WIP   BIT0
 
#define SPI_FLASH_SR_WEL   BIT1
 
#define SPI_FLASH_WRSR   0x01
 
#define SPI_FLASH_WRSR_DUMMY   0x00
 
#define SPI_FLASH_WRSR_ADDR_BYTES   SPI_ADDR_3OR4BYTE
 
#define SPI_FLASH_WREN_50H   0x50
 
#define SPI_FLASH_RDSFDP   0x5A
 
#define SPI_FLASH_RDSFDP_DUMMY   0x01
 
#define SPI_FLASH_RDSFDP_ADDR_BYTES   SPI_ADDR_3BYTE_ONLY
 
#define ERASE_TYPICAL_TIME_UNITS_MASK   0x60
 
#define ERASE_TYPICAL_TIME_BIT_POSITION   5
 
#define ERASE_TYPICAL_TIME_UNIT_1_MS_BITMAP   0x00
 
#define ERASE_TYPICAL_TIME_UNIT_1_MS   1
 
#define ERASE_TYPICAL_TIME_UNIT_16_MS_BITMAP   0x01
 
#define ERASE_TYPICAL_TIME_UNIT_16_MS   16
 
#define ERASE_TYPICAL_TIME_UNIT_128_MS_BITMAP   0x02
 
#define ERASE_TYPICAL_TIME_UNIT_128_MS   128
 
#define ERASE_TYPICAL_TIME_UNIT_1000_MS_BITMAP   0x03
 
#define ERASE_TYPICAL_TIME_UNIT_1000_MS   1000
 
#define ERASE_TYPICAL_TIME_COUNT_MASK   0x1f
 
#define SFDP_SECTOR_MAP_TABLE_ENTRY_TYPE_COMMAND   0
 
#define SFDP_SECTOR_MAP_TABLE_ENTRY_TYPE_MAP   1
 
#define SFDP_SECTOR_MAP_TABLE_ENTRY_LAST   1
 
#define SFDP_SECTOR_REGION_SIZE_UNIT   256
 

Typedefs

typedef struct _SFDP_HEADER SFDP_HEADER
 
typedef struct _SFDP_PARAMETER_HEADER SFDP_PARAMETER_HEADER
 
typedef struct _SFDP_BASIC_FLASH_PARAMETER SFDP_BASIC_FLASH_PARAMETER
 
typedef struct _SFDP_SECTOR_REGION SFDP_SECTOR_REGION
 
typedef union _SFDP_SECTOR_MAP_TABLE SFDP_SECTOR_MAP_TABLE
 

Enumerations

enum  SPDF_CONFIGURATION_COMMAND_ADDR_LENGTH { SpdfConfigurationCommandAddressNone = 0 , SpdfConfigurationCommandAddress3Byte = 1 , SpdfConfigurationCommandAddress4Byte = 2 , SpdfConfigurationCommandAddressVariable = 3 }
 

Detailed Description

SPI NOR Flash JEDEC Serial Flash Discoverable Parameters (SFDP) header file.

Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Revision Reference:
Glossary:
  • SFDP - Serial Flash Discoverable Parameters
  • PTP - Parameter Table Pointer

Definition in file SpiNorFlashJedecSfdp.h.

Macro Definition Documentation

◆ ERASE_TYPICAL_TIME_BIT_POSITION

#define ERASE_TYPICAL_TIME_BIT_POSITION   5

Definition at line 238 of file SpiNorFlashJedecSfdp.h.

◆ ERASE_TYPICAL_TIME_COUNT_MASK

#define ERASE_TYPICAL_TIME_COUNT_MASK   0x1f

Definition at line 247 of file SpiNorFlashJedecSfdp.h.

◆ ERASE_TYPICAL_TIME_UNIT_1000_MS

#define ERASE_TYPICAL_TIME_UNIT_1000_MS   1000

Definition at line 246 of file SpiNorFlashJedecSfdp.h.

◆ ERASE_TYPICAL_TIME_UNIT_1000_MS_BITMAP

#define ERASE_TYPICAL_TIME_UNIT_1000_MS_BITMAP   0x03

Definition at line 245 of file SpiNorFlashJedecSfdp.h.

◆ ERASE_TYPICAL_TIME_UNIT_128_MS

#define ERASE_TYPICAL_TIME_UNIT_128_MS   128

Definition at line 244 of file SpiNorFlashJedecSfdp.h.

◆ ERASE_TYPICAL_TIME_UNIT_128_MS_BITMAP

#define ERASE_TYPICAL_TIME_UNIT_128_MS_BITMAP   0x02

Definition at line 243 of file SpiNorFlashJedecSfdp.h.

◆ ERASE_TYPICAL_TIME_UNIT_16_MS

#define ERASE_TYPICAL_TIME_UNIT_16_MS   16

Definition at line 242 of file SpiNorFlashJedecSfdp.h.

◆ ERASE_TYPICAL_TIME_UNIT_16_MS_BITMAP

#define ERASE_TYPICAL_TIME_UNIT_16_MS_BITMAP   0x01

Definition at line 241 of file SpiNorFlashJedecSfdp.h.

◆ ERASE_TYPICAL_TIME_UNIT_1_MS

#define ERASE_TYPICAL_TIME_UNIT_1_MS   1

Definition at line 240 of file SpiNorFlashJedecSfdp.h.

◆ ERASE_TYPICAL_TIME_UNIT_1_MS_BITMAP

#define ERASE_TYPICAL_TIME_UNIT_1_MS_BITMAP   0x00

Definition at line 239 of file SpiNorFlashJedecSfdp.h.

◆ ERASE_TYPICAL_TIME_UNITS_MASK

#define ERASE_TYPICAL_TIME_UNITS_MASK   0x60

Definition at line 237 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_BASIC_PARAMETER_ID_LSB

#define SFDP_BASIC_PARAMETER_ID_LSB   0x00

JEDEC Basic Flash Parameter Header.

Definition at line 27 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_BASIC_PARAMETER_ID_MSB

#define SFDP_BASIC_PARAMETER_ID_MSB   0xFF

Definition at line 28 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_ERASE_TYPE_1

#define SFDP_ERASE_TYPE_1   0x0001

Definition at line 181 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_ERASE_TYPE_2

#define SFDP_ERASE_TYPE_2   0x0002

Definition at line 182 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_ERASE_TYPE_3

#define SFDP_ERASE_TYPE_3   0x0003

Definition at line 183 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_ERASE_TYPE_4

#define SFDP_ERASE_TYPE_4   0x0004

Definition at line 184 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_ERASE_TYPES_NUMBER

#define SFDP_ERASE_TYPES_NUMBER   4

Definition at line 180 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_FLASH_MEMORY_DENSITY_4GBIT

#define SFDP_FLASH_MEMORY_DENSITY_4GBIT   0x80000000

Definition at line 37 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_FOUR_BYTE_ADDRESS_INSTRUCTION_LSB

#define SFDP_FOUR_BYTE_ADDRESS_INSTRUCTION_LSB   0x84

Definition at line 34 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_HEADER_SIGNATURE

#define SFDP_HEADER_SIGNATURE   0x50444653

Definition at line 23 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_SECTOR_MAP_PARAMETER_ID_LSB

#define SFDP_SECTOR_MAP_PARAMETER_ID_LSB   0x81

JDEC Sector Map Parameter Header and Table

Definition at line 33 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_SECTOR_MAP_PARAMETER_ID_MSB

#define SFDP_SECTOR_MAP_PARAMETER_ID_MSB   0xFF

Definition at line 35 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_SECTOR_MAP_TABLE_ENTRY_LAST

#define SFDP_SECTOR_MAP_TABLE_ENTRY_LAST   1

Definition at line 269 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_SECTOR_MAP_TABLE_ENTRY_TYPE_COMMAND

#define SFDP_SECTOR_MAP_TABLE_ENTRY_TYPE_COMMAND   0

Definition at line 267 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_SECTOR_MAP_TABLE_ENTRY_TYPE_MAP

#define SFDP_SECTOR_MAP_TABLE_ENTRY_TYPE_MAP   1

Definition at line 268 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_SECTOR_REGION_SIZE_UNIT

#define SFDP_SECTOR_REGION_SIZE_UNIT   256

Definition at line 311 of file SpiNorFlashJedecSfdp.h.

◆ SFDP_SUPPORTED_MAJOR_REVISION

#define SFDP_SUPPORTED_MAJOR_REVISION   0x1ul

Definition at line 24 of file SpiNorFlashJedecSfdp.h.

◆ SPI_ADDR_3BYTE_ONLY

#define SPI_ADDR_3BYTE_ONLY   0x00

Number of address bytes opcode can support

Definition at line 176 of file SpiNorFlashJedecSfdp.h.

◆ SPI_ADDR_3OR4BYTE

#define SPI_ADDR_3OR4BYTE   0x01

Definition at line 177 of file SpiNorFlashJedecSfdp.h.

◆ SPI_ADDR_4BYTE_ONLY

#define SPI_ADDR_4BYTE_ONLY   0x02

Definition at line 178 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_BE

#define SPI_FLASH_BE   0xD8

Definition at line 205 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_BE32K

#define SPI_FLASH_BE32K   0x52

Definition at line 202 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_BE32K_ADDR_BYTES

#define SPI_FLASH_BE32K_ADDR_BYTES   SPI_ADDR_3OR4BYTE

Definition at line 204 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_BE32K_DUMMY

#define SPI_FLASH_BE32K_DUMMY   0x00

Definition at line 203 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_BE_ADDR_BYTES

#define SPI_FLASH_BE_ADDR_BYTES   SPI_ADDR_3OR4BYTE

Definition at line 207 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_BE_DUMMY

#define SPI_FLASH_BE_DUMMY   0x00

Definition at line 206 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_CE

#define SPI_FLASH_CE   0x60

Definition at line 208 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_CE_ADDR_BYTES

#define SPI_FLASH_CE_ADDR_BYTES   SPI_ADDR_3OR4BYTE

Definition at line 210 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_CE_DUMMY

#define SPI_FLASH_CE_DUMMY   0x00

Definition at line 209 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_FAST_READ

#define SPI_FLASH_FAST_READ   0x0B

Definition at line 192 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_FAST_READ_ADDR_BYTES

#define SPI_FLASH_FAST_READ_ADDR_BYTES   SPI_ADDR_3OR4BYTE

Definition at line 194 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_FAST_READ_DUMMY

#define SPI_FLASH_FAST_READ_DUMMY   0x01

Definition at line 193 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_PAGE_SIZE

#define SPI_FLASH_PAGE_SIZE   256

Definition at line 198 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_PP

#define SPI_FLASH_PP   0x02

Definition at line 195 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_PP_ADDR_BYTES

#define SPI_FLASH_PP_ADDR_BYTES   SPI_ADDR_3OR4BYTE

Definition at line 197 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_PP_DUMMY

#define SPI_FLASH_PP_DUMMY   0x00

Definition at line 196 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_RDID

#define SPI_FLASH_RDID   0x9F

Definition at line 211 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_RDID_ADDR_BYTES

#define SPI_FLASH_RDID_ADDR_BYTES   SPI_ADDR_3OR4BYTE

Definition at line 213 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_RDID_DUMMY

#define SPI_FLASH_RDID_DUMMY   0x00

Definition at line 212 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_RDSFDP

#define SPI_FLASH_RDSFDP   0x5A

Definition at line 234 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_RDSFDP_ADDR_BYTES

#define SPI_FLASH_RDSFDP_ADDR_BYTES   SPI_ADDR_3BYTE_ONLY

Definition at line 236 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_RDSFDP_DUMMY

#define SPI_FLASH_RDSFDP_DUMMY   0x01

Definition at line 235 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_RDSR

#define SPI_FLASH_RDSR   0x05

Definition at line 224 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_RDSR_ADDR_BYTES

#define SPI_FLASH_RDSR_ADDR_BYTES   SPI_ADDR_3OR4BYTE

Definition at line 226 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_RDSR_DUMMY

#define SPI_FLASH_RDSR_DUMMY   0x00

Definition at line 225 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_READ

#define SPI_FLASH_READ   0x03

Read/Write Array Commands

Definition at line 189 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_READ_ADDR_BYTES

#define SPI_FLASH_READ_ADDR_BYTES   SPI_ADDR_3OR4BYTE

Definition at line 191 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_READ_DUMMY

#define SPI_FLASH_READ_DUMMY   0x00

Definition at line 190 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_SE

#define SPI_FLASH_SE   0x20

Definition at line 199 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_SE_ADDR_BYTES

#define SPI_FLASH_SE_ADDR_BYTES   SPI_ADDR_3OR4BYTE

Definition at line 201 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_SE_DUMMY

#define SPI_FLASH_SE_DUMMY   0x00

Definition at line 200 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_SR_NOT_WIP

#define SPI_FLASH_SR_NOT_WIP   0x0

Definition at line 227 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_SR_WEL

#define SPI_FLASH_SR_WEL   BIT1

Definition at line 229 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_SR_WIP

#define SPI_FLASH_SR_WIP   BIT0

Definition at line 228 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_WRDI

#define SPI_FLASH_WRDI   0x04

Definition at line 221 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_WRDI_ADDR_BYTES

#define SPI_FLASH_WRDI_ADDR_BYTES   SPI_ADDR_3OR4BYTE

Definition at line 223 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_WRDI_DUMMY

#define SPI_FLASH_WRDI_DUMMY   0x00

Definition at line 222 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_WREN

#define SPI_FLASH_WREN   0x06

Register Setting Commands

Definition at line 218 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_WREN_50H

#define SPI_FLASH_WREN_50H   0x50

Definition at line 233 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_WREN_ADDR_BYTES

#define SPI_FLASH_WREN_ADDR_BYTES   SPI_ADDR_3OR4BYTE

Definition at line 220 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_WREN_DUMMY

#define SPI_FLASH_WREN_DUMMY   0x00

Definition at line 219 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_WRSR

#define SPI_FLASH_WRSR   0x01

Definition at line 230 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_WRSR_ADDR_BYTES

#define SPI_FLASH_WRSR_ADDR_BYTES   SPI_ADDR_3OR4BYTE

Definition at line 232 of file SpiNorFlashJedecSfdp.h.

◆ SPI_FLASH_WRSR_DUMMY

#define SPI_FLASH_WRSR_DUMMY   0x00

Definition at line 231 of file SpiNorFlashJedecSfdp.h.

◆ SPI_UNIFORM_4K_ERASE_SUPPORTED

#define SPI_UNIFORM_4K_ERASE_SUPPORTED   0x01

Definition at line 170 of file SpiNorFlashJedecSfdp.h.

◆ SPI_UNIFORM_4K_ERASE_UNSUPPORTED

#define SPI_UNIFORM_4K_ERASE_UNSUPPORTED   0x03

Definition at line 171 of file SpiNorFlashJedecSfdp.h.

Typedef Documentation

◆ SFDP_SECTOR_MAP_TABLE

Sector Map Table structure, the entry could be either Configuration Detection Command descriptor, or Configuration Map descriptor.

◆ SFDP_SECTOR_REGION

Flash Device Region Definition.

Enumeration Type Documentation

◆ SPDF_CONFIGURATION_COMMAND_ADDR_LENGTH

Definition of Configuration detection command address length.

Definition at line 274 of file SpiNorFlashJedecSfdp.h.