Embedding JTAG into a systemโs service processor allows for powerful out-of-band (independent of the operating system) built-in self test (BIST) functions. Using JTAG-based boundary scan, for example, can isolate system failure root cause to an extent unachievable through any other means.
For those who may have missed it, I've been blogging about my experiences with the MinnowBoard Turbot for the last 15 months. Now, finally, all the blogs have been combined into a 138-page compendium of my learnings about x86 architecture, UEFI, Yocto Linux, and many other technical topics. Check it out at The MinnowBoard Chronicles (note: requires registration).ย
High-end, mission-critical systems often use a plethora of diagnostic routines for power-on self test (POST), data logging, operational measurements, Built-In Self Test (BIST), and platform audits. Embedded x86 JTAG run-control adds out-of-band services to this mix. This article describes one such use case for Power-On Self Test (POST) of PCI Express ports.
In Episode 30, I finally succeeded in building a Yocto Linux image for the MinnowBoard. But, it wonโt boot! Is it time to drag out a copy of SourcePoint to help?
A few months ago, my son began to take an interest in cryptocurrency, and we decided to build an Ethereum mining rig together. But it wasnโt as easy to do as it seemed it would be at first.
Out-of-band access between on-board BMCs and CPU JTAG chains is now a de facto implementation on hyperscale servers manufactured by the ODMs. This article describes the BMC firmware library within our ScanWorks Embedded Diagnostics (SED) product used to run diagnostics at-scale.
In the article JTAG and run-control API in BMCs for at-scale debug, I described how embedding the Intel ITP run-control library down on a service processor provides for a rich set of target-based functions for debug forensics. How might this apply to reading MSRs, such as the ones created to address Spectre and Meltdown.
In my last blog, I observed that running Yocto Linux builds with all 16 threads of my new AMD Ryzen 7 1700X machine would always crash. Running under VirtualBox and only using one thread always worked; but it took seven hours. Could I achieve a compromise?