How to read/write SPI flash descriptor

Li Qiang <[email protected]> Thu, 09 May 2019 15:31:11 +0800
Newsgroups dev.linux.lists.oe-chipsec
Message-ID <CAKXe6SKOfuyB3jOvhMFzd617Wxj0R-yF=HSeUtoA5MWYA5-+YA@mail.gmail.com>
--===============7654368901620617333==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable

Hello all,

I used chipsec to evaluate my hardware.

And I got following report:

[-] Software has write access to SPI flash descriptor
[-] FAILED: SPI flash permissions allow SW to write flash descriptor

I look at the chipsec source code and find that this is read from frap
register(SPIBAR + 50h).
However I can't find the spec how to read the SPI flash descriptor itself.
I find some code from flashrom:
https://github.com/flashrom/flashrom/blob/db7482bb72035fab8386226d1720cde09=
e0c700e/ich_descriptors.c

It reads SPI flash descriptor using MMIO, but also I don't know how to
write it.(it has no effect when write to the same register with read).

Any hints?

Thanks,
Li Qiang

--===============7654368901620617333==
Content-Type: text/html
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="attachment.html"

PGRpdiBkaXI9Imx0ciI+PGRpdiBkaXI9Imx0ciI+PGRpdiBkaXI9Imx0ciI+PGRpdj5IZWxsbyBh
bGwsPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5JIHVzZWQgY2hpcHNlYyB0byBldmFsdWF0ZSBt
eSBoYXJkd2FyZS7CoDwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+QW5kIEkgZ290IGZvbGxvd2lu
ZyByZXBvcnQ6PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5bLV0gU29mdHdhcmUgaGFzIHdyaXRl
IGFjY2VzcyB0byBTUEkgZmxhc2ggZGVzY3JpcHRvcjwvZGl2PjxkaXY+Wy1dIEZBSUxFRDogU1BJ
IGZsYXNoIHBlcm1pc3Npb25zIGFsbG93IFNXIHRvIHdyaXRlIGZsYXNoIGRlc2NyaXB0b3I8L2Rp
dj48ZGl2Pjxicj48L2Rpdj5JIGxvb2sgYXQgdGhlIGNoaXBzZWMgc291cmNlIGNvZGUgYW5kIGZp
bmQgdGhhdCB0aGlzIGlzIHJlYWQgZnJvbSBmcmFwIHJlZ2lzdGVyKFNQSUJBUsKgKyA1MGgpLjxk
aXY+SG93ZXZlciBJIGNhbiYjMzk7dCBmaW5kIHRoZSBzcGVjIGhvdyB0byByZWFkIHRoZSBTUEkg
Zmxhc2ggZGVzY3JpcHRvciBpdHNlbGYuPC9kaXY+PGRpdj5JIGZpbmQgc29tZSBjb2RlIGZyb20g
Zmxhc2hyb206PC9kaXY+PGRpdj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZmxhc2hyb20v
Zmxhc2hyb20vYmxvYi9kYjc0ODJiYjcyMDM1ZmFiODM4NjIyNmQxNzIwY2RlMDllMGM3MDBlL2lj
aF9kZXNjcmlwdG9ycy5jIj5odHRwczovL2dpdGh1Yi5jb20vZmxhc2hyb20vZmxhc2hyb20vYmxv
Yi9kYjc0ODJiYjcyMDM1ZmFiODM4NjIyNmQxNzIwY2RlMDllMGM3MDBlL2ljaF9kZXNjcmlwdG9y
cy5jPC9hPjxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pkl0IHJlYWRzIFNQSSBmbGFzaCBk
ZXNjcmlwdG9yIHVzaW5nIE1NSU8sIGJ1dCBhbHNvIEkgZG9uJiMzOTt0IGtub3cgaG93IHRvIHdy
aXRlIGl0LihpdCBoYXMgbm8gZWZmZWN0IHdoZW4gd3JpdGUgdG8gdGhlIHNhbWUgcmVnaXN0ZXIg
d2l0aCByZWFkKS48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkFueSBoaW50cz88L2Rpdj48ZGl2
Pjxicj48L2Rpdj48ZGl2PlRoYW5rcyw8L2Rpdj48ZGl2PkxpIFFpYW5nPC9kaXY+PGRpdj48ZGl2
Pjxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4K

--===============7654368901620617333==--