summaryrefslogtreecommitdiffstats
path: root/layout.c
diff options
context:
space:
mode:
authorNico Huber <nico.huber@secunet.com>2016-04-29 18:39:01 +0200
committerNico Huber <nico.h@gmx.de>2017-06-03 20:19:30 +0200
commit899e4ec810a1e2f3d377bc2095ba3d25b234a797 (patch)
tree270ac1d7101251d95a295effcbe5cf01ce2250f4 /layout.c
parent1878110848f36c53667c9855f0a413c43e64597f (diff)
downloadflashrom-899e4ec810a1e2f3d377bc2095ba3d25b234a797.tar.gz
flashrom-899e4ec810a1e2f3d377bc2095ba3d25b234a797.tar.bz2
flashrom-899e4ec810a1e2f3d377bc2095ba3d25b234a797.zip
Kill doit()
No words can describe this feeling. v2: Rejoice while removing more, orphaned code (layout.c). Change-Id: Id81177c50b4410e68dcf8ebab48386a94cd9b714 Signed-off-by: Nico Huber <nico.huber@secunet.com> Reviewed-on: https://review.coreboot.org/17949 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Diffstat (limited to 'layout.c')
-rw-r--r--layout.c84
1 files changed, 0 insertions, 84 deletions
diff --git a/layout.c b/layout.c
index 3d09011f3..2d5329516 100644
--- a/layout.c
+++ b/layout.c
@@ -202,33 +202,6 @@ void layout_cleanup(void)
layout.num_entries = 0;
}
-struct romentry *get_next_included_romentry(unsigned int start)
-{
- int i;
- unsigned int best_start = UINT_MAX;
- struct romentry *best_entry = NULL;
- struct romentry *cur;
-
- /* First come, first serve for overlapping regions. */
- for (i = 0; i < layout.num_entries; i++) {
- cur = &layout.entries[i];
- if (!cur->included)
- continue;
- /* Already past the current entry? */
- if (start > cur->end)
- continue;
- /* Inside the current entry? */
- if (start >= cur->start)
- return cur;
- /* Entry begins after start. */
- if (best_start > cur->start) {
- best_start = cur->start;
- best_entry = cur;
- }
- }
- return best_entry;
-}
-
/* Validate and - if needed - normalize layout entries. */
int normalize_romentries(const struct flashctx *flash)
{
@@ -252,60 +225,3 @@ int normalize_romentries(const struct flashctx *flash)
return ret;
}
-
-static int copy_old_content(struct flashctx *flash, int oldcontents_valid, uint8_t *oldcontents, uint8_t *newcontents, unsigned int start, unsigned int size)
-{
- if (!oldcontents_valid) {
- /* oldcontents is a zero-filled buffer. By reading the current data into oldcontents here, we
- * avoid a rewrite of identical regions even if an initial full chip read didn't happen. */
- msg_gdbg2("Read a chunk starting at 0x%06x (len=0x%06x).\n", start, size);
- int ret = flash->chip->read(flash, oldcontents + start, start, size);
- if (ret != 0) {
- msg_gerr("Failed to read chunk 0x%06x-0x%06x.\n", start, start + size - 1);
- return 1;
- }
- }
- memcpy(newcontents + start, oldcontents + start, size);
- return 0;
-}
-
-/**
- * Modify @newcontents so that it contains the data that should be on the chip eventually. In the case the user
- * wants to update only parts of it, copy the chunks to be preserved from @oldcontents to @newcontents. If
- * @oldcontents is not valid, we need to fetch the current data from the chip first.
- */
-int build_new_image(struct flashctx *flash, bool oldcontents_valid, uint8_t *oldcontents, uint8_t *newcontents)
-{
- unsigned int start = 0;
- struct romentry *entry;
- unsigned int size = flash->chip->total_size * 1024;
-
- /* If no regions were specified for inclusion, assume
- * that the user wants to write the complete new image.
- */
- if (num_include_args == 0)
- return 0;
-
- /* Non-included romentries are ignored.
- * The union of all included romentries is used from the new image.
- */
- while (start < size) {
- entry = get_next_included_romentry(start);
- /* No more romentries for remaining region? */
- if (!entry) {
- copy_old_content(flash, oldcontents_valid, oldcontents, newcontents, start,
- size - start);
- break;
- }
- /* For non-included region, copy from old content. */
- if (entry->start > start)
- copy_old_content(flash, oldcontents_valid, oldcontents, newcontents, start,
- entry->start - start);
- /* Skip to location after current romentry. */
- start = entry->end + 1;
- /* Catch overflow. */
- if (!start)
- break;
- }
- return 0;
-}