mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 23:22:37 +02:00
ich_descriptors: Draw +0xfff into ICH_FREG_LIMIT()
The condition `base > limit` is still valid since `base` is always at least 4096 greater than `limit` in this case. Change-Id: I11ac0a50b3f32f47879e7cfb7a26068cd0572ede Signed-off-by: Nico Huber <nico.huber@secunet.com> Reviewed-on: https://review.coreboot.org/19046 Reviewed-by: David Hendricks <david.hendricks@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
d54e4f4677
commit
0bb3f7142a
@ -246,7 +246,7 @@ static void pprint_freg(const struct ich_desc_region *reg, uint32_t i)
|
||||
if (base > limit)
|
||||
msg_pdbg2("is unused.\n");
|
||||
else
|
||||
msg_pdbg2("0x%08x - 0x%08x\n", base, limit | 0x0fff);
|
||||
msg_pdbg2("0x%08x - 0x%08x\n", base, limit);
|
||||
}
|
||||
|
||||
void prettyprint_ich_descriptor_region(const struct ich_descriptors *desc)
|
||||
@ -952,7 +952,7 @@ int layout_from_ich_descriptors(struct ich_layout *const layout, const void *con
|
||||
size_t i, j;
|
||||
for (i = 0, j = 0; i < min(desc.content.NR + 1, ARRAY_SIZE(regions)); ++i) {
|
||||
const chipoff_t base = ICH_FREG_BASE(desc.region.FLREGs[i]);
|
||||
const chipoff_t limit = ICH_FREG_LIMIT(desc.region.FLREGs[i]) + 0xfff;
|
||||
const chipoff_t limit = ICH_FREG_LIMIT(desc.region.FLREGs[i]);
|
||||
if (limit <= base)
|
||||
continue;
|
||||
layout->entries[j].start = base;
|
||||
|
@ -63,7 +63,7 @@
|
||||
/* 24-31: reserved */
|
||||
|
||||
#define ICH_FREG_BASE(flreg) (((flreg) << 12) & 0x01fff000)
|
||||
#define ICH_FREG_LIMIT(flreg) (((flreg) >> 4) & 0x01fff000)
|
||||
#define ICH_FREG_LIMIT(flreg) ((((flreg) >> 4) & 0x01fff000) | 0x00000fff)
|
||||
|
||||
void prettyprint_ich_reg_vscc(uint32_t reg_val, int verbosity, bool print_vcl);
|
||||
|
||||
|
8
ichspi.c
8
ichspi.c
@ -1566,14 +1566,12 @@ static int ich9_handle_frap(uint32_t frap, int i)
|
||||
msg_pdbg("0x%02X: 0x%08x ", offset, freg);
|
||||
if (rwperms == 0x3) {
|
||||
msg_pdbg("FREG%i: %s region (0x%08x-0x%08x) is %s.\n", i,
|
||||
region_name, base, (limit | 0x0fff),
|
||||
access_names[rwperms]);
|
||||
region_name, base, limit, access_names[rwperms]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
msg_pwarn("FREG%i: Warning: %s region (0x%08x-0x%08x) is %s.\n", i,
|
||||
region_name, base, (limit | 0x0fff),
|
||||
access_names[rwperms]);
|
||||
region_name, base, limit, access_names[rwperms]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -1608,7 +1606,7 @@ static int ich9_handle_pr(const size_t reg_pr0, int i)
|
||||
|
||||
msg_pdbg("0x%02X: 0x%08x ", off, pr);
|
||||
msg_pwarn("%sPR%u: Warning: 0x%08x-0x%08x is %s.\n", prefix, i, ICH_FREG_BASE(pr),
|
||||
ICH_FREG_LIMIT(pr) | 0x0fff, access_names[rwperms]);
|
||||
ICH_FREG_LIMIT(pr), access_names[rwperms]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -58,7 +58,6 @@ static void dump_file(const char *prefix, const uint32_t *dump, unsigned int len
|
||||
return;
|
||||
}
|
||||
|
||||
limit = limit | 0x0fff;
|
||||
file_len = limit + 1 - base;
|
||||
if (base + file_len > len) {
|
||||
printf("The %s region is spanning 0x%08x-0x%08x, but it is "
|
||||
|
Loading…
x
Reference in New Issue
Block a user