1cb9c377fSPaolo Bonzini #ifndef HW_FLASH_H 2175de524SMarkus Armbruster #define HW_FLASH_H 3cb9c377fSPaolo Bonzini 487ecb68bSpbrook /* NOR flash devices */ 5cfe5f011SAvi Kivity 6d4842052SMarkus Armbruster #include "exec/hwaddr.h" 7db1015e9SEduardo Habkost #include "qom/object.h" 8cfe5f011SAvi Kivity 988eeee0aSbalrog /* pflash_cfi01.c */ 1016434065SMarkus Armbruster 11e7b62741SMarkus Armbruster #define TYPE_PFLASH_CFI01 "cfi.pflash01" 128063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(PFlashCFI01, PFLASH_CFI01) 1316434065SMarkus Armbruster 1416434065SMarkus Armbruster 1516434065SMarkus Armbruster PFlashCFI01 *pflash_cfi01_register(hwaddr base, 16940d5b13SMarkus Armbruster const char *name, 17a8170e5eSAvi Kivity hwaddr size, 184be74634SMarkus Armbruster BlockBackend *blk, 19ce14710fSMarkus Armbruster uint32_t sector_len, 2016434065SMarkus Armbruster int width, 2187ecb68bSpbrook uint16_t id0, uint16_t id1, 226725070dSbalrog uint16_t id2, uint16_t id3, 2301e0451aSAnthony Liguori int be); 24e60cf765SPhilippe Mathieu-Daudé BlockBackend *pflash_cfi01_get_blk(PFlashCFI01 *fl); 2516434065SMarkus Armbruster MemoryRegion *pflash_cfi01_get_memory(PFlashCFI01 *fl); 262d731dbdSMarkus Armbruster void pflash_cfi01_legacy_drive(PFlashCFI01 *dev, DriveInfo *dinfo); 2787ecb68bSpbrook 2816434065SMarkus Armbruster /* pflash_cfi02.c */ 2916434065SMarkus Armbruster 30e7b62741SMarkus Armbruster #define TYPE_PFLASH_CFI02 "cfi.pflash02" 318063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(PFlashCFI02, PFLASH_CFI02) 3216434065SMarkus Armbruster 3316434065SMarkus Armbruster 3416434065SMarkus Armbruster PFlashCFI02 *pflash_cfi02_register(hwaddr base, 35940d5b13SMarkus Armbruster const char *name, 3616434065SMarkus Armbruster hwaddr size, 3716434065SMarkus Armbruster BlockBackend *blk, 38ce14710fSMarkus Armbruster uint32_t sector_len, 3916434065SMarkus Armbruster int nb_mappings, 4016434065SMarkus Armbruster int width, 4116434065SMarkus Armbruster uint16_t id0, uint16_t id1, 4216434065SMarkus Armbruster uint16_t id2, uint16_t id3, 4316434065SMarkus Armbruster uint16_t unlock_addr0, 4416434065SMarkus Armbruster uint16_t unlock_addr1, 4516434065SMarkus Armbruster int be); 46cfe5f011SAvi Kivity 479ab26b0eSCédric Le Goater /* m25p80.c */ 489ab26b0eSCédric Le Goater 49*a7538ca0SCédric Le Goater #define TYPE_M25P80 "m25p80-generic" 50*a7538ca0SCédric Le Goater 519ab26b0eSCédric Le Goater BlockBackend *m25p80_get_blk(DeviceState *dev); 529ab26b0eSCédric Le Goater 53cb9c377fSPaolo Bonzini #endif 54