a91ec6eb61
Original work by @ourairquality * Sysparam threadsafe and SPI access * Sysparam test cases * Fix for negative int8 * Sysparam getting bool without memory allocation. Bool tests. * SPI flash refactoring. * Extract common spiflash.c into core. * Use spiflash.c in sysparam. * Use memcpy in spiflash.c insted of hand-written version. * Tests for spiflash.c
41 lines
1.2 KiB
C
41 lines
1.2 KiB
C
/* flashchip.h
|
|
*
|
|
* sdk_flashchip_t structure used by the SDK and some bootrom routines
|
|
*
|
|
* This is in a separate include file because it's referenced by several other
|
|
* headers which are otherwise independent of each other.
|
|
*
|
|
* Part of esp-open-rtos
|
|
* Copyright (C) 2015 Alex Stewart and Angus Gratton
|
|
* BSD Licensed as described in the file LICENSE
|
|
*/
|
|
|
|
#ifndef _FLASHCHIP_H
|
|
#define _FLASHCHIP_H
|
|
|
|
/* SDK/bootrom uses this structure internally to account for flash size.
|
|
|
|
chip_size field is initialised during startup from the flash size
|
|
saved in the image header (on the first 8 bytes of SPI flash).
|
|
|
|
Other field are initialised to hardcoded values by the SDK.
|
|
|
|
** NOTE: This structure is passed to some bootrom routines and is therefore
|
|
fixed. Be very careful if you want to change it that you do not break
|
|
things. **
|
|
|
|
Based on RE work by @foogod at
|
|
http://esp8266-re.foogod.com/wiki/Flashchip_%28IoT_RTOS_SDK_0.9.9%29
|
|
*/
|
|
typedef struct {
|
|
uint32_t device_id;
|
|
uint32_t chip_size; /* in bytes */
|
|
uint32_t block_size; /* in bytes */
|
|
uint32_t sector_size; /* in bytes */
|
|
uint32_t page_size; /* in bytes */
|
|
uint32_t status_mask;
|
|
} sdk_flashchip_t;
|
|
|
|
extern sdk_flashchip_t sdk_flashchip;
|
|
|
|
#endif /* _FLASHCHIP_H */
|