diff options
Diffstat (limited to 'roms/skiboot/external/common/arch_flash.h')
-rw-r--r-- | roms/skiboot/external/common/arch_flash.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/roms/skiboot/external/common/arch_flash.h b/roms/skiboot/external/common/arch_flash.h new file mode 100644 index 000000000..0dff8b704 --- /dev/null +++ b/roms/skiboot/external/common/arch_flash.h @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later +/* Copyright 2015 IBM Corp. + */ + +#ifndef __EXTERNAL_ARCH_FLASH_H +#define __EXTERNAL_ARCH_FLASH_H + +#include <getopt.h> +#include <libflash/blocklevel.h> + +enum flash_access { + PNOR_DIRECT, + PNOR_MTD, + BMC_DIRECT, + BMC_MTD, + ACCESS_INVAL +}; + +int arch_flash_init(struct blocklevel_device **bl, const char *file, + bool keep_alive); + +void arch_flash_close(struct blocklevel_device *bl, const char *file); + +/* Low level functions that an architecture may support */ + +/* + * If called BEFORE init, then this dictates how the flash will be + * accessed. + * If called AFTER init, then this returns how the flash is being accessed. + */ +enum flash_access arch_flash_access(struct blocklevel_device *bl, + enum flash_access access); + +int arch_flash_erase_chip(struct blocklevel_device *bl); +int arch_flash_4b_mode(struct blocklevel_device *bl, int set_4b); +int arch_flash_set_wrprotect(struct blocklevel_device *bl, int set); + +#endif /* __EXTERNAL_ARCH_FLASH_H */ |