aboutsummaryrefslogtreecommitdiffstats
path: root/roms/skiboot/external/common/arch_flash.h
diff options
context:
space:
mode:
Diffstat (limited to 'roms/skiboot/external/common/arch_flash.h')
-rw-r--r--roms/skiboot/external/common/arch_flash.h38
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 */