-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement and test Linux kernel code #34
Comments
Rebased Cherry-picked commits from
Made things compile and make more sense (e.g., dropped landing-zone stuff). Made Currently need to pass SLRT address into
|
Modified the code to pass SLRT address and adjusted/brought back some related code. Started testing on hardware, it just resets at the moment. The reset happens surprisingly fast in |
Found a couple of issues, it now stops in While looking at assembly realized that |
Actually, when working on Xen rebase I read through Probably the best way to do this is to change SKL to be as close to TXT as possible (because we won't be able to change how TXT does things) and instead not depend on |
The code was using old register with the start of SKL, goes further now and resets somewhere when dealing with event log.
The code itself doesn't seem to rely on
I guess so, if Intel won't change something about TXT in the future. |
It does, these two lines implicitly use addl %eax, %cs:2(%eax)
lgdt %cs:(%eax) |
I missed how |
After making one more Intel-specific part conditional, the code now crashes in slmodule because something is wrong with passing SKL base into decompressed kernel. |
Trusting |
Yay, it boots:
The digests don't match output of
Turns out it's a security feature to not print pointer values with
That was it, because neither log nor SLB were reserved. |
Cleaned up the code.
SHA1 hash for PCR-18 matches, but not for PCR-17. The latter matches if I compute the expected PCR value manually excluding SHA256 hash matches for PCR-17 the same way, but doesn't match for PCR-18, which looks really weird. |
The code for extending PCRs of TPM2 looked weird and that is where the bug was: TrenchBoot/linux@3beecd1 Hashes now match the event log if you take into account:
It behaves the same with Intel TXT, so this is not exactly in scope, although it will likely break OSFV tests. Next: run OSFV tests on this. |
Tests might need some update:
Otherwise the tests pass at least on APU2 (APU3 has weird serial which mixes output). |
Made DRTM tests pass by computing expected PCR values without Then tried using |
Edit: forgot to attach log trenchboot_log.html.zip |
Found out that OSFV tests didn't work when some banks were disabled, fixed. Rebased meta-trenchboot PR onto zarhus/meta-trenchboot#49. Saw that PCR extension is stilll broken in Linux, fixed. |
Another related PR: Dasharo/osfv-results#14 |
Brief summary
Implement Linux kernel code for AMD with necessary fixes for the most up-to-date TrenchBoot boot protocol. The code should be pushed to TrenchBoot Linux repository.
The text was updated successfully, but these errors were encountered: