mirror of https://github.com/ARMmbed/mbed-os.git
SFDP: provides doxygen documentation improvements
parent
ca704a4b3d
commit
c953b656ac
|
@ -47,7 +47,7 @@ constexpr int SFDP_ERASE_BITMASK_ALL = 0x0F; ///< Erase type All
|
||||||
|
|
||||||
constexpr int SFDP_MAX_NUM_OF_ERASE_TYPES = 4; ///< Maximum number of different erase types (erase granularity)
|
constexpr int SFDP_MAX_NUM_OF_ERASE_TYPES = 4; ///< Maximum number of different erase types (erase granularity)
|
||||||
|
|
||||||
/** SFDP Basic Parameter Table info */
|
/** JEDEC Basic Flash Parameter Table info */
|
||||||
struct sfdp_bptbl_info {
|
struct sfdp_bptbl_info {
|
||||||
uint32_t addr; ///< Address
|
uint32_t addr; ///< Address
|
||||||
size_t size; ///< Size
|
size_t size; ///< Size
|
||||||
|
@ -55,7 +55,7 @@ struct sfdp_bptbl_info {
|
||||||
int legacy_erase_instruction; ///< Legacy 4K erase instruction
|
int legacy_erase_instruction; ///< Legacy 4K erase instruction
|
||||||
};
|
};
|
||||||
|
|
||||||
/** SFDP Sector Map Table info */
|
/** JEDEC Sector Map Table info */
|
||||||
struct sfdp_smptbl_info {
|
struct sfdp_smptbl_info {
|
||||||
uint32_t addr; ///< Address
|
uint32_t addr; ///< Address
|
||||||
size_t size; ///< Size
|
size_t size; ///< Size
|
||||||
|
@ -68,36 +68,38 @@ struct sfdp_smptbl_info {
|
||||||
unsigned int erase_type_size_arr[SFDP_MAX_NUM_OF_ERASE_TYPES]; ///< Erase sizes for all different erase types
|
unsigned int erase_type_size_arr[SFDP_MAX_NUM_OF_ERASE_TYPES]; ///< Erase sizes for all different erase types
|
||||||
};
|
};
|
||||||
|
|
||||||
/** SFDP Parameter Table addresses and sizes */
|
/** SFDP JEDEC Parameter Table info */
|
||||||
struct sfdp_hdr_info {
|
struct sfdp_hdr_info {
|
||||||
sfdp_bptbl_info bptbl;
|
sfdp_bptbl_info bptbl;
|
||||||
sfdp_smptbl_info smptbl;
|
sfdp_smptbl_info smptbl;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Parse SFDP Headers
|
/** Parse SFDP Database
|
||||||
* Retrieves SFDP headers from a device and parses the information contained by the headers
|
* Retrieves all headers from within a memory device and parses the information contained by the headers
|
||||||
*
|
*
|
||||||
* @param sfdp_reader Callback function used to read headers from a device
|
* Only JEDEC headers are parsed, not vendor specific ones.
|
||||||
* @param hdr_info SFDP information structure
|
|
||||||
*
|
*
|
||||||
* @return 0 on success, negative error code on failure
|
* @param sfdp_reader Callback function used to read headers from within a device
|
||||||
|
* @param[out] sfdp_info Contains the results of parsing the SFDP Database JEDEC headers
|
||||||
|
*
|
||||||
|
* @return MBED_SUCCESS on success, negative error code on failure
|
||||||
*/
|
*/
|
||||||
int sfdp_parse_headers(Callback<int(bd_addr_t, void *, bd_size_t)> sfdp_reader, sfdp_hdr_info &hdr_info);
|
int sfdp_parse_headers(Callback<int(bd_addr_t, void *, bd_size_t)> sfdp_reader, sfdp_hdr_info &sfdp_info);
|
||||||
|
|
||||||
/** Parse Sector Map Parameter Table
|
/** Parse Sector Map Parameter Table
|
||||||
* Retrieves the table from a device and parses the information contained by the table
|
* Retrieves the table from a device and parses the information contained by the table
|
||||||
*
|
*
|
||||||
* @param sfdp_reader Callback function used to read headers from a device
|
* @param sfdp_reader Callback function used to read headers from within a device
|
||||||
* @param smtbl Sector Map Table information structure
|
* @param[out] smtbl Contains the results of parsing the JEDEC Sector Map Table
|
||||||
*
|
*
|
||||||
* @return 0 on success, negative error code on failure
|
* @return MBED_SUCCESS on success, negative error code on failure
|
||||||
*/
|
*/
|
||||||
int sfdp_parse_sector_map_table(Callback<int(bd_addr_t, void *, bd_size_t)> sfdp_reader, sfdp_smptbl_info &smtbl);
|
int sfdp_parse_sector_map_table(Callback<int(bd_addr_t, void *, bd_size_t)> sfdp_reader, sfdp_smptbl_info &smtbl);
|
||||||
|
|
||||||
/** Detect page size used for writing on flash
|
/** Detect page size used for writing on flash
|
||||||
*
|
*
|
||||||
* @param bptbl_ptr Pointer to memory holding a Basic Parameter Table structure
|
* @param bptbl_ptr Pointer to memory holding a Basic Parameter Table structure
|
||||||
* @param bptbl_size Size of memory holding a Basic Parameter Table
|
* @param bptbl_size Size of memory holding the Basic Parameter Table
|
||||||
*
|
*
|
||||||
* @return Page size
|
* @return Page size
|
||||||
*/
|
*/
|
||||||
|
@ -105,30 +107,33 @@ size_t sfdp_detect_page_size(uint8_t *bptbl_ptr, size_t bptbl_size);
|
||||||
|
|
||||||
/** Detect all supported erase types
|
/** Detect all supported erase types
|
||||||
*
|
*
|
||||||
* @param bptbl_ptr Pointer to memory holding a Basic Parameter Table structure
|
* @param bptbl_ptr Pointer to memory holding a JEDEC Basic Flash Parameter Table
|
||||||
* @param smtbl Sector Map Table information structure
|
* @param[in,out] sfdp_info Contains the results of parsing erase type instructions and sizes
|
||||||
*
|
*
|
||||||
* @return 0 on success, negative error code on failure
|
* @return MBED_SUCCESS on success, negative error code on failure
|
||||||
*/
|
*/
|
||||||
int sfdp_detect_erase_types_inst_and_size(uint8_t *bptbl_ptr, sfdp_hdr_info &sfdp_info);
|
int sfdp_detect_erase_types_inst_and_size(uint8_t *bptbl_ptr, sfdp_hdr_info &sfdp_info);
|
||||||
|
|
||||||
/** Find the region to which the given offset belongs to
|
/** Find the region to which the given offset belongs to
|
||||||
*
|
*
|
||||||
* @param offset Offset value
|
* @param offset Offset value
|
||||||
* @param smtbl Sector Map Table information structure
|
* @param sfdp_info Region information
|
||||||
|
*
|
||||||
|
* @return Region number
|
||||||
*/
|
*/
|
||||||
int sfdp_find_addr_region(bd_size_t offset, const sfdp_hdr_info &sfdp_info);
|
int sfdp_find_addr_region(bd_size_t offset, const sfdp_hdr_info &sfdp_info);
|
||||||
|
|
||||||
/** Iterate on all supported Erase Types of the Region to which the offset belongs to
|
/** Finds the largest Erase Type of the Region to which the offset belongs to
|
||||||
*
|
*
|
||||||
* Iterates from highest type to lowest.
|
* Iterates from highest type to lowest.
|
||||||
*
|
*
|
||||||
* @param bitfield
|
* @param bitfield Erase types bit field
|
||||||
* @param size
|
* @param size Upper limit for region size
|
||||||
* @param region
|
* @param offset Offset value
|
||||||
* @param smtbl Sector Map Table information structure
|
* @param region Region number
|
||||||
|
* @param smtbl Information about different erase types
|
||||||
*
|
*
|
||||||
* @return
|
* @return Largest erase type
|
||||||
*/
|
*/
|
||||||
int sfdp_iterate_next_largest_erase_type(uint8_t &bitfield,
|
int sfdp_iterate_next_largest_erase_type(uint8_t &bitfield,
|
||||||
int size,
|
int size,
|
||||||
|
|
|
@ -126,7 +126,7 @@ int sfdp_parse_single_param_header(sfdp_prm_hdr *phdr_ptr, sfdp_hdr_info &hdr_in
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int sfdp_parse_headers(Callback<int(bd_addr_t, void *, bd_size_t)> sfdp_reader, sfdp_hdr_info &hdr_info)
|
int sfdp_parse_headers(Callback<int(bd_addr_t, void *, bd_size_t)> sfdp_reader, sfdp_hdr_info &sfdp_info)
|
||||||
{
|
{
|
||||||
bd_addr_t addr = 0x0;
|
bd_addr_t addr = 0x0;
|
||||||
int number_of_param_headers = 0;
|
int number_of_param_headers = 0;
|
||||||
|
@ -164,7 +164,7 @@ int sfdp_parse_headers(Callback<int(bd_addr_t, void *, bd_size_t)> sfdp_reader,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
hdr_status = sfdp_parse_single_param_header((sfdp_prm_hdr *)param_header, hdr_info);
|
hdr_status = sfdp_parse_single_param_header((sfdp_prm_hdr *)param_header, sfdp_info);
|
||||||
if (hdr_status < 0) {
|
if (hdr_status < 0) {
|
||||||
return hdr_status;
|
return hdr_status;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue