Serial Flash Discoverable Parameters. More...
Data Structures | |
| struct | sfdp_bptbl_info |
| JEDEC Basic Flash Parameter Table info. More... | |
| struct | sfdp_smptbl_info |
| JEDEC Sector Map Table info. More... | |
| struct | sfdp_fbatbl_info |
| JEDEC 4-byte Address Instruction Parameter Table info. More... | |
| struct | sfdp_hdr_info |
| SFDP JEDEC Parameter Table info. More... | |
Functions | |
| int | sfdp_parse_headers (Callback< int(bd_addr_t, void *, bd_size_t)> sfdp_reader, sfdp_hdr_info &sfdp_info) |
| Parse SFDP Database Retrieves all headers from within a memory device and parses the information contained by the headers. More... | |
| int | sfdp_parse_sector_map_table (Callback< int(bd_addr_t, void *, bd_size_t)> sfdp_reader, sfdp_hdr_info &sfdp_info) |
| Parse Sector Map Parameter Table Retrieves the table from a device and parses the information contained by the table. More... | |
| size_t | sfdp_detect_page_size (uint8_t *bptbl_ptr, size_t bptbl_size) |
| Detect page size used for writing on flash. More... | |
| int | sfdp_detect_erase_types_inst_and_size (uint8_t *bptbl_ptr, sfdp_hdr_info &sfdp_info) |
| Detect all supported erase types. More... | |
| int | sfdp_find_addr_region (bd_addr_t offset, const sfdp_hdr_info &sfdp_info) |
| Find the region to which the given offset belongs to. More... | |
| int | sfdp_iterate_next_largest_erase_type (uint8_t bitfield, bd_size_t size, bd_addr_t offset, int region, const sfdp_smptbl_info &smptbl) |
| Finds the largest Erase Type of the Region to which the offset belongs to. More... | |
| int | sfdp_detect_device_density (uint8_t *bptbl_ptr, sfdp_bptbl_info &bptbl_info) |
| Detect device density. More... | |
| int | sfdp_detect_addressability (uint8_t *bptbl_ptr, sfdp_bptbl_info &bptbl_info) |
| Detect is it possible to access the whole memory region. More... | |
Variables | |
| constexpr int | SFDP_HEADER_SIZE = 8 |
| Size of an SFDP header in bytes, 2 DWORDS. More... | |
| constexpr int | SFDP_BASIC_PARAMS_TBL_SIZE = 80 |
| Basic Parameter Table size in bytes, 20 DWORDS. More... | |
| constexpr int | SFDP_SECTOR_MAP_MAX_REGIONS = 10 |
| Maximum number of regions with different erase granularity. More... | |
| constexpr int | SFDP_ERASE_BITMASK_TYPE4 = 0x08 |
| Erase type 4 (erase granularity) identifier. More... | |
| constexpr int | SFDP_ERASE_BITMASK_TYPE3 = 0x04 |
| Erase type 3 (erase granularity) identifier. More... | |
| constexpr int | SFDP_ERASE_BITMASK_TYPE2 = 0x02 |
| Erase type 2 (erase granularity) identifier. More... | |
| constexpr int | SFDP_ERASE_BITMASK_TYPE1 = 0x01 |
| Erase type 1 (erase granularity) identifier. More... | |
| constexpr int | SFDP_ERASE_BITMASK_NONE = 0x00 |
| Erase type None. More... | |
| constexpr int | SFDP_ERASE_BITMASK_ALL = 0x0F |
| Erase type All. More... | |
| constexpr int | SFDP_MAX_NUM_OF_ERASE_TYPES = 4 |
| Maximum number of different erase types (erase granularity) More... | |
Serial Flash Discoverable Parameters.
Based on JESD216D.01 Standard.
| int mbed::sfdp_detect_addressability | ( | uint8_t * | bptbl_ptr, |
| sfdp_bptbl_info & | bptbl_info | ||
| ) |
Detect is it possible to access the whole memory region.
| bptbl_ptr | Pointer to memory holding a Basic Parameter Table structure |
| bptbl_info | Basic Parameter Table information structure |
| int mbed::sfdp_detect_device_density | ( | uint8_t * | bptbl_ptr, |
| sfdp_bptbl_info & | bptbl_info | ||
| ) |
Detect device density.
| bptbl_ptr | Pointer to memory holding a Basic Parameter Table structure |
| bptbl_info | Basic Parameter Table information structure |
| int mbed::sfdp_detect_erase_types_inst_and_size | ( | uint8_t * | bptbl_ptr, |
| sfdp_hdr_info & | sfdp_info | ||
| ) |
Detect all supported erase types.
| bptbl_ptr | Pointer to memory holding a JEDEC Basic Flash Parameter Table | |
| [in,out] | sfdp_info | Contains the results of parsing erase type instructions and sizes |
| size_t mbed::sfdp_detect_page_size | ( | uint8_t * | bptbl_ptr, |
| size_t | bptbl_size | ||
| ) |
Detect page size used for writing on flash.
| bptbl_ptr | Pointer to memory holding a Basic Parameter Table structure |
| bptbl_size | Size of memory holding the Basic Parameter Table |
| int mbed::sfdp_find_addr_region | ( | bd_addr_t | offset, |
| const sfdp_hdr_info & | sfdp_info | ||
| ) |
Find the region to which the given offset belongs to.
| offset | Offset value |
| sfdp_info | Region information |
| int mbed::sfdp_iterate_next_largest_erase_type | ( | uint8_t | bitfield, |
| bd_size_t | size, | ||
| bd_addr_t | offset, | ||
| int | region, | ||
| const sfdp_smptbl_info & | smptbl | ||
| ) |
Finds the largest Erase Type of the Region to which the offset belongs to.
Iterates from highest type to lowest.
| bitfield | Erase types bit field |
| size | Upper limit for region size |
| offset | Offset value |
| region | Region number |
| smptbl | Information about different erase types |
| int mbed::sfdp_parse_headers | ( | Callback< int(bd_addr_t, void *, bd_size_t)> | sfdp_reader, |
| sfdp_hdr_info & | sfdp_info | ||
| ) |
Parse SFDP Database Retrieves all headers from within a memory device and parses the information contained by the headers.
Only JEDEC headers are parsed, not vendor specific ones.
| sfdp_reader | Callback function used to read headers from within a device | |
| [out] | sfdp_info | Contains the results of parsing the SFDP Database JEDEC headers |
| int mbed::sfdp_parse_sector_map_table | ( | Callback< int(bd_addr_t, void *, bd_size_t)> | sfdp_reader, |
| sfdp_hdr_info & | sfdp_info | ||
| ) |
Parse Sector Map Parameter Table Retrieves the table from a device and parses the information contained by the table.
| sfdp_reader | Callback function used to read headers from within a device | |
| [out] | sfdp_info | Contains the results of parsing the JEDEC Sector Map Table |
| constexpr int SFDP_BASIC_PARAMS_TBL_SIZE = 80 |
| constexpr int SFDP_ERASE_BITMASK_TYPE1 = 0x01 |
| constexpr int SFDP_ERASE_BITMASK_TYPE2 = 0x02 |
| constexpr int SFDP_ERASE_BITMASK_TYPE3 = 0x04 |
| constexpr int SFDP_ERASE_BITMASK_TYPE4 = 0x08 |
| constexpr int SFDP_HEADER_SIZE = 8 |
| constexpr int SFDP_MAX_NUM_OF_ERASE_TYPES = 4 |