Hi Carl-Daniel,
On 22.12.2010 02:33, Carl-Daniel Hailfinger wrote:
> thanks for your patch.
Thanks for the review!
> Minor nitpick:
>
> On 21.12.2010 16:17, Mathias Krause wrote:
>> (prot & 0xfffff800) + (((((prot & 0x7fc) >> 2) + 1) << 10) - 1));
>
> This one looks a bit odd. How about
>
> (prot & 0xfffff800) + ((((prot & 0x7fc) >> 2) << 10) | 0x3ff);
My solution really looks odd but how about that one:
(prot & 0xfffff800) + (((prot & 0x7fc) << 8) | 0x3ff));
New patch attached:
Fixed 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.
Signed-off-by: Mathias Krause <mathias.krause at secunet.com>
Regards,
Mathias
Index: chipset_enable.c
===================================================================
--- chipset_enable.c (Revision 1247)
+++ chipset_enable.c (Arbeitskopie)
@@ -691,20 +691,20 @@
/* 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;
_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom