mirror of
https://review.coreboot.org/flashrom.git
synced 2025-07-02 22:43:17 +02:00
Add writeprotect support infrastructure
The following just lays out the structure for write protect manipulation of SPI flash chips in Flashrom. We later follow up with adding support for each manufacturer group. BUG=b:153800563 BRANCH=none TEST=builds Change-Id: Id93b5a1cb2da476fa8a7dde41d7b963024117474 Signed-off-by: Edward O'Callaghan <quasisec@google.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/40325 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:

committed by
Edward O'Callaghan

parent
b1f858f65b
commit
d3b6acffe4
51
writeprotect.h
Normal file
51
writeprotect.h
Normal file
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* This file is part of the flashrom project.
|
||||
*
|
||||
* Copyright (C) 2010 Google Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __WRITEPROTECT_H__
|
||||
#define __WRITEPROTECT_H__ 1
|
||||
|
||||
enum wp_mode {
|
||||
WP_MODE_UNKNOWN = -1,
|
||||
WP_MODE_HARDWARE, /* hardware WP pin determines status */
|
||||
WP_MODE_POWER_CYCLE, /* WP active until power off/on cycle */
|
||||
WP_MODE_PERMANENT, /* status register permanently locked,
|
||||
WP permanently enabled */
|
||||
};
|
||||
|
||||
struct wp {
|
||||
int (*list_ranges)(const struct flashctx *flash);
|
||||
int (*set_range)(const struct flashctx *flash,
|
||||
unsigned int start, unsigned int len);
|
||||
int (*enable)(const struct flashctx *flash, enum wp_mode mode);
|
||||
int (*disable)(const struct flashctx *flash);
|
||||
int (*wp_status)(const struct flashctx *flash);
|
||||
};
|
||||
|
||||
extern struct wp wp_generic;
|
||||
|
||||
enum wp_mode get_wp_mode(const char *mode_str);
|
||||
|
||||
/*
|
||||
* Generic write-protect stuff
|
||||
*/
|
||||
|
||||
struct modifier_bits {
|
||||
int sec; /* if 1, bp bits describe sectors */
|
||||
int tb; /* value of top/bottom select bit */
|
||||
};
|
||||
|
||||
#endif /* !__WRITEPROTECT_H__ */
|
Reference in New Issue
Block a user