diff options
author | Mathias Krause <mathias.krause@secunet.com> | 2011-01-01 10:54:09 +0000 |
---|---|---|
committer | Mathias Krause <mathias.krause@secunet.com> | 2011-01-01 10:54:09 +0000 |
commit | e303191999078124d23e1c1bab2c3b17430ff93b (patch) | |
tree | e1369b87080837dbf19fb8454266f58c0677a1d5 | |
parent | 0ccfa3ba3a79c482153e18048dd1fd28f84ee4d9 (diff) | |
download | flashrom-e303191999078124d23e1c1bab2c3b17430ff93b.zip flashrom-e303191999078124d23e1c1bab2c3b17430ff93b.tar.gz |
Fix decoding of SB600 LPC ROM protection registers
The address part was using a bit of the size, the size was missing the
upper bit, was off by 1023 bytes and included the protection bits.
Corresponding to flashrom svn r1250.
Signed-off-by: Mathias Krause <mathias.krause@secunet.com>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
-rw-r--r-- | chipset_enable.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/chipset_enable.c b/chipset_enable.c index ec15996..6d6008e 100644 --- a/chipset_enable.c +++ b/chipset_enable.c @@ -691,20 +691,20 @@ static int enable_flash_sb600(struct pci_dev *dev, const char *name) /* No protection flags for this region?*/ if ((prot & 0x3) == 0) continue; - msg_pinfo("SB600 %s%sprotected from %u to %u\n", + msg_pinfo("SB600 %s%sprotected from 0x%08x to 0x%08x\n", (prot & 0x1) ? "write " : "", (prot & 0x2) ? "read " : "", - (prot & 0xfffffc00), - (prot & 0xfffffc00) + ((prot & 0x3ff) << 8)); + (prot & 0xfffff800), + (prot & 0xfffff800) + (((prot & 0x7fc) << 8) | 0x3ff)); prot &= 0xfffffffc; rpci_write_byte(dev, reg, prot); prot = pci_read_long(dev, reg); if (prot & 0x3) - msg_perr("SB600 %s%sunprotect failed from %u to %u\n", + msg_perr("SB600 %s%sunprotect failed from 0x%08x to 0x%08x\n", (prot & 0x1) ? "write " : "", (prot & 0x2) ? "read " : "", - (prot & 0xfffffc00), - (prot & 0xfffffc00) + ((prot & 0x3ff) << 8)); + (prot & 0xfffff800), + (prot & 0xfffff800) + (((prot & 0x7fc) << 8) | 0x3ff)); } buses_supported = CHIP_BUSTYPE_LPC | CHIP_BUSTYPE_FWH; |