From: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
To: linux-kernel@vger.kernel.org
Cc: H Peter Anvin <hpa@zytor.com>
Subject: Re: [PATCH 8/8] x86, microcode, intel: correct extended signature checksum verification
Date: Mon, 28 Jul 2014 17:36:38 -0300 [thread overview]
Message-ID: <20140728203638.GA20113@khazad-dum.debian.net> (raw)
In-Reply-To: <1406146251-8540-9-git-send-email-hmh@hmh.eng.br>
On Wed, 23 Jul 2014, Henrique de Moraes Holschuh wrote:
> We have been calculating the checksum for extended signatures in a way that
> is very likely to be incompatible with the Intel public documention. This
> code dates back to 2003, when the support for the "new microcode format"
> was added to the driver by Intel itself.
>
> The extended signature table should be deleted when an extended signature
> is "applied" to the main microcode patch if the Intel SDM is to be believed
> (Intel 64 and IA32 Software Developers Manual, vol 3A, page 9-30, entry for
> "Checksum[n]" in table 9-6). Deleting the extended signature table changes
> the Total Size of the microcode, and that reflects in the checksum that
> should be in the extended signature entry if it is to be used unmodified to
> replace the main microcode signature.
>
> It is worth noting that deleting the extended signature table results in a
> microcode patch that violates the rule that the Total Size field must be a
> multiple of 1024, and it is impossible to add any padding to fix that.
>
> This patch changes the extended signature table checksum verification
> code to accept both ways of calculating the extended signature checksum
> as valid.
It looks like this might not be enough.
TianoCore USDK2014 (UEFI reference code) and OpenSolaris do it in a
completely different, and utterly incompatible way. For the record, they
sum all three dwords on the extended signature entry (including the checksum
one) and expect it to be zero. How the heck did they went from what is
described in the Intel SDM to that crazy code, I have no idea.
At this point, I do think we could just remove the entire extended signature
support, and be happy with the LOC reduction. That's code that has never
seen use in 11 years, and which nobody seems to agree on how it should be
implemented. I very much doubt it will ever be used at this point.
Anyway, I propose we stop checking the checksum on the extended microcode
signature entirely. They are already covered by the checksum of the
extended microcode signature *table* (which covers all extended signature
entries).
--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh
next prev parent reply other threads:[~2014-07-28 20:36 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-23 20:10 [PATCH 0/8] x86, microcode: cosmetic and minor issue fixes Henrique de Moraes Holschuh
2014-07-23 20:10 ` [PATCH 1/8] x86, microcode, amd: fix missing static declaration Henrique de Moraes Holschuh
2014-07-24 10:24 ` Borislav Petkov
2014-07-23 20:10 ` [PATCH 2/8] x86, microcode, intel: fix missing static declarations Henrique de Moraes Holschuh
2014-07-24 10:28 ` Borislav Petkov
2014-07-23 20:10 ` [PATCH 3/8] x86, microcode, intel: fix typos Henrique de Moraes Holschuh
2014-07-24 10:33 ` Borislav Petkov
2014-07-23 20:10 ` [PATCH 4/8] x86, microcode, intel: fix missing declaration Henrique de Moraes Holschuh
2014-07-24 11:01 ` Borislav Petkov
2014-07-24 14:27 ` Henrique de Moraes Holschuh
2014-07-24 18:23 ` [PATCH v2 4/8] x86, microcode, intel: rename apply_microcode and declare it static Henrique de Moraes Holschuh
2014-07-25 16:23 ` Borislav Petkov
2014-07-23 20:10 ` [PATCH 5/8] x86, microcode, intel: don't use fields from unknown format header Henrique de Moraes Holschuh
2014-07-24 11:37 ` Borislav Petkov
2014-07-24 13:30 ` Henrique de Moraes Holschuh
2014-07-24 14:28 ` Borislav Petkov
2014-07-24 15:07 ` Henrique de Moraes Holschuh
2014-07-24 16:29 ` Borislav Petkov
2014-07-24 17:49 ` Henrique de Moraes Holschuh
2014-07-23 20:10 ` [PATCH 6/8] x86, microcode, intel: total_size is valid only when data_size != 0 Henrique de Moraes Holschuh
2014-07-25 16:46 ` Borislav Petkov
2014-07-25 19:04 ` Henrique de Moraes Holschuh
2014-07-28 14:26 ` Borislav Petkov
2014-07-28 15:39 ` Henrique de Moraes Holschuh
2014-07-23 20:10 ` [PATCH 7/8] x86, microcode, intel: forbid some incorrect metadata Henrique de Moraes Holschuh
2014-07-28 15:31 ` Borislav Petkov
2014-07-28 19:37 ` Henrique de Moraes Holschuh
2014-07-29 10:45 ` Borislav Petkov
2014-07-29 20:25 ` Henrique de Moraes Holschuh
2014-08-04 11:09 ` Borislav Petkov
2014-08-04 20:18 ` Henrique de Moraes Holschuh
2014-08-08 12:54 ` Borislav Petkov
2014-08-08 13:50 ` Henrique de Moraes Holschuh
2014-08-08 15:21 ` Borislav Petkov
2014-08-08 15:45 ` Henrique de Moraes Holschuh
2014-07-23 20:10 ` [PATCH 8/8] x86, microcode, intel: correct extended signature checksum verification Henrique de Moraes Holschuh
2014-07-28 20:36 ` Henrique de Moraes Holschuh [this message]
2014-08-24 14:55 ` [tip:x86/microcode] x86, microcode, amd: Fix missing static declaration tip-bot for Henrique de Moraes Holschuh
2014-08-24 14:55 ` [tip:x86/microcode] x86, microcode, intel: Add missing static declarations tip-bot for Henrique de Moraes Holschuh
2014-08-24 14:56 ` [tip:x86/microcode] x86, microcode, intel: Fix typos tip-bot for Henrique de Moraes Holschuh
2014-08-24 14:56 ` [tip:x86/microcode] x86, microcode, intel: Rename apply_microcode and declare it static tip-bot for Henrique de Moraes Holschuh
2014-08-24 14:56 ` [tip:x86/microcode] x86, microcode, intel: Fix total_size computation tip-bot for Henrique de Moraes Holschuh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140728203638.GA20113@khazad-dum.debian.net \
--to=hmh@hmh.eng.br \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®