<div dir="ltr">Hello Brett and Coreboot community,<div><br></div><div>This'll be my last email in this particular thread (unless somebody asks me a question). I'll try to be short and punctual, and try to cover the most for BYT (considering Brett's last email), since I had some time to re-think about BYT TXE and recall some things, not mentioned here.</div><div><br></div><div>[1] HW straps. HW straps are for schematic HW designers, highly classified INTEL info, so I'll assume this is done correctly for the BYT boards (you all should check with your BYT board designers);</div><div>[2] Yes, BYT could be brought up without TXE FW (not using TXE HW), but then XDP will be disabled (maybe some other TXE related features);</div><div>[3] In order to make XDP to work, FW IOTG designers introduced so-called slim TXE, which is real TXE reduced to 1,5MB, in nutshell this TXE allows all the features, but disables main one: BIOS tampering;</div><div>[4] I remember one specific IOTG slim TXE: 1.1.1.1120 (it could be that there is slim TXE 1.1.1.1127 and newer), you should go to INTEL VIP site <a href="http://www.platformsw.intel.com" target="_blank">www.platformsw.intel.com</a> to check/get them (you have to have access to it);</div><div>[5] Or you can also go here: <a href="http://www.win-raid.com/t832f39-Intel-Engine-Firmware-Repositories.html" target="_blank">http://www.win-raid.com/t832f39-Intel-Engine-Firmware-Repositories.html</a> and try to find it;</div><div>[6] BYT Power Rails: there are 14 of them, if you reduce/not use Power Management, number reduces (example, if you use only CPU's C0 and C1 -> platform's S0, you need at most 5 main power rails (highly HW topic);</div><div><br></div><div>Lot of the decisions for the platform HW design are on your own perils, please, never forget this. INTEL reference boards are HW and SW guidance, not a must to follow up with them, but INTEL tries to comply with most complex customer wishes (example: to show all the advantages for C0, C1... C3, C6, C7, C8, C9 etc. PM CPU/SoC states in newest CPUs/SoCs, such as ATOM APL-I).</div><div><br></div><div>It just depends what are the particular requirements (referring as example to [6]). 14 Power Rails are there for BYT, but there are so handful to use, depending upon HW PM design. :-)</div><div><br></div><div>Zoran</div><div>_______</div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jul 16, 2016 at 12:45 AM, Testerman, Brett (US COM) <span dir="ltr"><<a href="mailto:Brett.Testerman@cobham.com" target="_blank">Brett.Testerman@cobham.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Hi Zoran,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">I am running a Bay Trail-I processor, an E3815 to be specific, and really had to jump through a lot of hoops to initially bring it up. I did everything I could
 think of from a software standpoint, including creating signed images and a manifest table. I sought support on the Intel forums and it was there that I was shown I could boot that processor without the TXE. We are using the processor in an embedded device
 where things like preventing BIOS tampering just gets in the way as we are not running Linux or Windows, and even if we did there is no network connectivity or any other reason for anyone to hack into it. Thankfully it seems for the E3800 family  Intel does
 not strictly enforce security. I do not have experience with the other CPU family members to know if that is true across the board.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">So empirically I found that yes, I can boot coreboot without the TXE binary in flash. However when I attached the XDP probe I could only see the boundary scan
 device. The CPU device had an address of all 0’s and the probe could not attach to it. I did not change any of the soft straps nor am I asserting the Security Flash Descriptors override hardware strap. All I did was remove the TXE from the boot flash.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">I also found that I don’t have to generate hashes on my binaries or a manifest table in order for it to boot. There is supposed to be a secure boot fuse to
 force that but we obviously are not setting it. <u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Documents I reviewed to get to the point I am:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">540009 Intel® Atom™ Processor E3800 Product Family – Intel® Trusted Execution Engine (Intel® TXE) Firmware    Bring-Up Guide<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">528703 Secure Boot Implementation in the Sample Boot Loader using Intel® FSP for Bay Trail Platforms README<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">539374 Secure Boot Sample Implementation for Intel® Atom™ Processor E3800 Product Family README<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Among others.  I haven’t look at this for over a year<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">As for the soft straps, the document I referenced originally:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">514482 Bay Trail-T/I SoC SPI Flash Programming Guide - Application Note<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">covers them along with the layout of the descriptor table. I did just do a quick web search and it looks like Intel has locked down that document. I am sorry
 to see that. The last time I check it was unlocked.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">As frustrating it has been bringing up this processor I will say it has worked solid once we got through all the hardware design issues. I think the HW engineer
 said there are 27 different power rails. I am still booting the version of coreboot I used to bring the chip up a year ago and we have done all of our application design as a payload to it. I just saw that Intel released a reference coreboot for the Bayley
 Bay platform, which is chip-down Bay Trail, in March of this year so I will probably migrate to it and lock it there.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">I will say if anyone needs help with bringing up a design the embedded community forums should be the place to start:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><a href="https://embedded.communities.intel.com/community/en" target="_blank">https://embedded.communities.intel.com/community/en</a><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Sorry for the long email. If my experiences can help others I will try to respond, time permitting. My way of thanking B.O. and others who helped me when I
 was in the same position.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Brett<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<div>
<div style="border-style:solid none none;border-top-width:1pt;border-top-color:rgb(181,196,223);padding:3pt 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10pt;font-family:Tahoma,sans-serif">From:</span></b><span style="font-size:10pt;font-family:Tahoma,sans-serif"> Zoran Stojsavljevic [mailto:<a href="mailto:zoran.stojsavljevic@gmail.com" target="_blank">zoran.stojsavljevic@gmail.com</a>]
<br>
<b>Sent:</b> Thursday, July 14, 2016 10:06 PM<br>
<b>To:</b> Testerman, Brett (US COM)<br>
<b>Cc:</b> coreboot; Martin Roth; Mayuri Tendulkar; Stefan Reinauer</span></p><div><div><br>
<b>Subject:</b> Re: [coreboot] TXE and Descriptor bin management in Coreboot<u></u><u></u></div></div><p></p>
</div>
</div><div><div>
<p class="MsoNormal"><u></u> <u></u></p>
<p><b><span style="font-size:14pt;color:rgb(192,0,0)">** Please note that the Sender of this email is from outside the Cobham NA IT Hub **</span>
</b><u></u><u></u></p>
<div>
<div>
<p class="MsoNormal">Hello Brett, <u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Having overall experience with INTEL, I should say that the Truth is a bit more complicated. ;-)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">In the simplified view, there are two points when bringing any INTEL CPU from reset, i should say. The first is: HW strap conditions, and these need to be set appropriately, depending upon what the HW config will be. This point I mentioned
 since I am not sure if XDP port only depends upon TXE, I do not really know with certainty for BYT, but I do know for some other families HW straps also need to be set properly for XDP to be enabled. Maybe there are two requirements for XDP to be enabled,
 so I am really not sure about this, this is why I am writing this email.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">So, the question I have here is: does BYT have to have one of the HW straps properly set (maybe it is already set by default design) for XDP to be enabled?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:Arial,sans-serif">The another point why TXE HW/FW engine is mainly used is the following: </span><span style="font-size:10.5pt;font-family:Arial,sans-serif;color:rgb(61,61,61);background:yellow"> TXE Firmware,
 the Trusted eXecution Engine, provide features to prevent BIOS tampering</span><span style="font-size:10.5pt;font-family:Arial,sans-serif;color:rgb(61,61,61)">, however information about TXE is considered Intel Confidential and require that you have CNDA account.</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Usually, FSP + Coreboot (as you have mention already), is built on the top of normal BIOS (last 2M, maybe these days 3M, since FSP and Coreboot are growing) , since normal BIOS includes SW straps (second point), which are also set by default
 (in BIOS). In this scenario, FIT (formerly FITC) tool is not required (if satisfied with default SW straps, which 99% developers are).<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Here is INTEL site where there are overall set of BYT documents, but many of them are locked (as well as 514482):<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><img border="0" width="473" height="100" src="cid:image002.png@01D1DEA3.F33E7FD0" alt="Inline image 1"><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><a href="http://www.intel.com/content/www/us/en/embedded/products/bay-trail/software-and-drivers.html" target="_blank">http://www.intel.com/content/www/us/en/embedded/products/bay-trail/software-and-drivers.html</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Hope this helps also,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Zoran<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">On Thu, Jul 14, 2016 at 9:51 PM, Testerman, Brett (US COM) <<a href="mailto:Brett.Testerman@cobham.com" target="_blank">Brett.Testerman@cobham.com</a>> wrote:<u></u><u></u></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Mayuri,</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Your best bet with all of this is to contact Intel and get a privileged access account. If that is
 not possible or practical then you need to do some reverse engineering.</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">First of all, go get this document from Intel’s web site:</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal">514482_ByTti_SoC_SPIFlashProgGuide_Rev1p0.pdf<u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">I don’t have a specific link to it but I know it is publically accessible. Search on the leading
 6 digit number or “SPI Flash Programming Guide”. This document fully describes the descriptor tables and how to use them. The FITC tool is the preferred way but you can bit-bang them with the info provided in that doc.</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">As for the TXE you will need to get that from Intel – it is not publically available. But I can say
 if you are running on the E3800 family (Bay Trail) then you don’t need it. The chip will boot without it but the XDP port will be locked out. You can also use the information from the programming guide to locate a TXE image in a 3<sup>rd</sup> party boot image
 and extract it out of that. I think that is what the idftool does.</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">The coreboot image will need to be located at the very end of flash because that is where the hardware
 reset vector is. The nice thing about that is once you have set up the descriptors you don’t have to rebuild/reprogram the entire flash image every time. For example, if your coreboot image is only 1MB in size then you only need to reprogram the last 1 megabyte
 of flash and leave the rest alone. Saves a ton of time.</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">There has been a lot of talk about this issue on Intel’s embedded communities forums. Check out this
 thread:</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><a href="https://embedded.communities.intel.com/thread/12354" target="_blank">https://embedded.communities.intel.com/thread/12354</a></span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Hope this helps!</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Brett</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span><u></u><u></u></p>
<div>
<div style="border-style:solid none none;border-top-width:1pt;border-top-color:rgb(181,196,223);padding:3pt 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10pt;font-family:Tahoma,sans-serif">From:</span></b><span style="font-size:10pt;font-family:Tahoma,sans-serif"> coreboot [mailto:<a href="mailto:coreboot-bounces@coreboot.org" target="_blank">coreboot-bounces@coreboot.org</a>]
<b>On Behalf Of </b>Stefan Reinauer<br>
<b>Sent:</b> Wednesday, July 13, 2016 4:30 PM<br>
<b>To:</b> Mayuri Tendulkar<br>
<b>Cc:</b> Martin Roth; coreboot<br>
<b>Subject:</b> Re: [coreboot] TXE and Descriptor bin management in Coreboot</span><u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
<p><b><span style="font-size:14pt;color:rgb(192,0,0)">** Please note that the Sender of this email is from outside the Cobham NA IT Hub **</span>
</b><u></u><u></u></p>
<div>
<div>
<div>
<p class="MsoNormal">* Mayuri Tendulkar <<a href="mailto:mayuri.tendulkar@aricent.com" target="_blank">mayuri.tendulkar@aricent.com</a>> [160714 00:50]:<br>
> Ok, so do we need to ask Intel if we use Intel baytrail processor? How we can create this descriptor.bin?<br>
<br>
Please have a look at util/ifdtool and util/ifdfake for our tools<br>
dealing with Intel Firmware Descriptors. The most comprehensive way of<br>
producing the information you need is by using Intel's fitc tool,<br>
however.<br>
<br>
If you are willing to put some development effort into this, we could<br>
use help, merging ifdtool and ifdfake, as well as incorporating more<br>
fitc like capabilities into the tool.<br>
<br>
Stefan<br>
<br>
<br>
<br>
-- <br>
coreboot mailing list: <a href="mailto:coreboot@coreboot.org" target="_blank">coreboot@coreboot.org</a><br>
<a href="https://www.coreboot.org/mailman/listinfo/coreboot" target="_blank">https://www.coreboot.org/mailman/listinfo/coreboot</a><u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><br>
--<br>
coreboot mailing list: <a href="mailto:coreboot@coreboot.org" target="_blank">coreboot@coreboot.org</a><br>
<a href="https://www.coreboot.org/mailman/listinfo/coreboot" target="_blank">https://www.coreboot.org/mailman/listinfo/coreboot</a><u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
</div></div></div>
</div>

</blockquote></div><br></div></div>