CINXE.COM

Libreboot – Tasks

<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <meta name="generator" content="pandoc"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <title>Libreboot – Tasks</title> <style type="text/css"> html{ background:#fff; color:#222; } .date,.author,.h a{display:none} code,pre,#TOC,a:hover{background:#eee} :not(p),a:hover { max-width:60em; margin:0 auto; font-family:sans-serif; line-height:1.4 } a{color:#22d} .title>*, header ul>li, .nav ul>li, #footer ul>li, .h:hover>* ul>li { display:inline; margin:.7%; text-align:center; } .title>*,span.date{display:block} img,video,iframe{max-width:100%} #TOC{ float:left; margin:1em } html,ul,#TOC{padding:1em} @media (min-width:60em) { .title-logo{display:none} div.title {background-position:right} h1.title {padding:0 4em} #TOC{min-width:25%} } </style> <link rel="alternate" type="application/rss+xml" title="RSS Feed" href="/feed.xml"/> </head> <body> <div class="page"> <header> <div class="title"> <h1 class="title">Tasks</h1> </div> <ul> <li><a href="/">Home</a></li> <li><a href="/faq.html">FAQ</a></li> <li><a href="/download.html">Download</a></li> <li><a href="/docs/install/">Install</a></li> <li><a href="/docs/">Docs</a></li> <li><a href="/news/">News</a></li> <li><a href="https://todo.sr.ht/~libreboot/Libreboot">Bugs</a></li> <li><a href="/tasks/">TODO</a></li> <li><a href="/git.html">Send patch</a></li> <li><a href="/contact.html">Contact</a></li> <li><strong><a href="https://ryf.fsf.org/categories/laptops">Buy preinstalled</a></strong></li> </ul> <hr/> </header> <nav id="TOC"> <h1>Navigate this page:</h1> <ul> <li><a href="#help-the-libreboot-project">Help the Libreboot project</a></li> <li><a href="#current-tasks-more-will-be-added-soon">Current tasks (more will be added soon)</a> <ul> <li><a href="#move-all-distro-fdeboot-guides-to-distro-wikimanuals">Move all distro FDE+/boot/ guides to distro wiki/manuals</a></li> <li><a href="#document-other-rpi-gnulinux-distros-for-spi-flashing">Document other RPi GNU+Linux distros for SPI flashing</a></li> <li><a href="#bug-crossgcc-not-included-in-src-archive-if-not-already-build">bug: crossgcc not included in src archive if not already build</a></li> <li><a href="#thinkpad-r60-support">ThinkPad R60 support</a></li> <li><a href="#investigate-u-boot">Investigate u-boot</a></li> <li><a href="#grub-add-bls-support">GRUB: add BLS support</a></li> <li><a href="#create-a-board-status-repo-like-coreboot">Create a board-status repo, like coreboot</a></li> <li><a href="#todo-i945-test-framebuffernon-i915-init-during-s3-resume">TODO: i945: test framebuffer(non-i915) init during S3 resume</a></li> <li><a href="#a3c8a005-payloadstianocore-add-kconfig-to-set-boot-timeout">61a3c8a005 payloads/tianocore: Add Kconfig to set boot timeout</a></li> <li><a href="#document-the-following-boards">Document the following boards</a> <ul> <li><a href="#acer-g43t-am3">Acer G43T-AM3</a></li> </ul></li> <li><a href="#generate-ich10-descriptornvm">Generate ICH10 descriptor/nvm</a></li> <li><a href="#re-do-desktop-boards">Re-do desktop boards</a></li> <li><a href="#add-the-following-boards">Add the following boards</a> <ul> <li><a href="#lenovog505s">lenovo/g505s</a></li> <li><a href="#intel-x4x-platform">Intel x4x platform</a> <ul> <li><a href="#dell-optiplex-760">Dell Optiplex 760</a></li> <li><a href="#asrockg41c-gs">asrock/g41c-gs</a></li> <li><a href="#asusp5qc">asus/p5qc</a></li> <li><a href="#asusp5ql-em">asus/p5ql-em</a></li> <li><a href="#asusp5qpl-am">asus/p5qpl-am</a></li> <li><a href="#foxconng41s-k">foxconn/g41s-k</a></li> <li><a href="#inteldg41wv">intel/dg41wv</a></li> <li><a href="#inteldg43gt">intel/dg43gt</a></li> <li><a href="#lenovothinkcentre_a58">lenovo/thinkcentre_a58</a></li> </ul></li> <li><a href="#intel-pineview-platform">Intel Pineview platform</a></li> <li><a href="#gm45-ich9m">GM45 / ICH9M</a> <ul> <li><a href="#lenovox301-thinkpad-x200-variant">lenovo/x301 (thinkpad x200 variant)</a></li> </ul></li> <li><a href="#intel-i945">Intel i945</a> <ul> <li><a href="#asusp5gc-mx">asus/p5gc-mx</a></li> <li><a href="#getacp470">getac/p470</a></li> <li><a href="#gigabytega-945gcm-s2l">gigabyte/ga-945gcm-s2l</a></li> <li><a href="#ibasemb899">ibase/mb899</a></li> <li><a href="#kontron986lcd-m">kontron/986lcd-m</a></li> <li><a href="#rodark886ex">roda/rk886ex</a></li> </ul></li> <li><a href="#amd-fam10h-fam15h">AMD Fam10h / Fam15h</a> <ul> <li><a href="#advansusa785e-i">advansus/a785e-i</a></li> <li><a href="#amdbimini_fam10">amd/bimini_fam10</a></li> <li><a href="#amdmahogany_fam10">amd/mahogany_fam10</a></li> <li><a href="#amdserengeti_cheetah_fam10">amd/serengeti_cheetah_fam10</a></li> <li><a href="#amdtilapia_fam10">amd/tilapia_fam10</a></li> <li><a href="#asusm4a785-m">asus/m4a785-m</a></li> <li><a href="#asusm4a785t-m">asus/m4a785t-m</a></li> <li><a href="#asusm4a78-em">asus/m4a78-em</a></li> <li><a href="#asusm5a88-v">asus/m5a88-v</a></li> <li><a href="#avalueeax-785e">avalue/eax-785e</a></li> <li><a href="#gigabytema785gm">gigabyte/ma785gm</a></li> <li><a href="#gigabytema785gmt">gigabyte/ma785gmt</a></li> <li><a href="#gigabytema78gm">gigabyte/ma78gm</a></li> <li><a href="#hpdl165_g6_fam10">hp/dl165_g6_fam10</a></li> <li><a href="#ieikino-780am2-fam10">iei/kino-780am2-fam10</a></li> <li><a href="#jetwaypa78vm5">jetway/pa78vm5</a></li> <li><a href="#msims9652_fam10">msi/ms9652_fam10</a></li> <li><a href="#supermicroh8dmr_fam10">supermicro/h8dmr_fam10</a></li> <li><a href="#supermicroh8qme_fam10">supermicro/h8qme_fam10</a></li> <li><a href="#supermicroh8scm_fam10">supermicro/h8scm_fam10</a></li> <li><a href="#tyans2912_fam10">tyan/s2912_fam10</a></li> </ul></li> <li><a href="#gm45">gm45</a> <ul> <li><a href="#thinkpad-w700">thinkpad w700</a></li> </ul></li> </ul></li> <li><a href="#linuxboot-payload">Linuxboot payload</a></li> <li><a href="#fork-coreboot-4.11-and-maintain-for-fam10h15h-boards">Fork coreboot 4.11 and maintain, for fam10h/15h boards</a></li> <li><a href="#test-seabios-option-etcusb-time-sigatt">Test SeaBIOS option: etc/usb-time-sigatt</a></li> <li><a href="#sstmacronix-patches-for-flashrom-on-x60t60">SST+macronix patches for flashrom on X60/T60</a></li> <li><a href="#warnings-about-option-roms">Warnings about option ROMs</a></li> <li><a href="#use-coreboots-memtest86-fork">Use coreboot’s memtest86+ fork</a></li> <li><a href="#gemini-site-for-libreboot">Gemini site for libreboot</a></li> <li><a href="#tor-site-for-libreboot">Tor site for libreboot</a></li> <li><a href="#nd-http-site">2nd HTTP site</a></li> <li><a href="#i2p-site">i2p site</a></li> <li><a href="#fix-grub-bugs">Fix GRUB bugs</a></li> <li><a href="#security-patch-spectre-msr-fixes-for-fam15h-boards">Security patch: spectre MSR fixes for Fam15h boards</a></li> <li><a href="#document-teensy-spi-flasher">Document teensy SPI flasher</a></li> <li><a href="#todo-document-use-of-schottky-diode-for-vcc-on-spi-flash-isp">TODO: document use of schottky diode for VCC on SPI flash (ISP)</a></li> <li><a href="#document-alternative-external-flashing-method-for-x200sx200t">Document alternative external flashing method for X200S/X200T</a></li> <li><a href="#handle-sata-power-in-ultrabay-on-gm45-thinkpads">Handle SATA power in ultrabay on gm45 thinkpads</a></li> <li><a href="#document-seriallptpcie-bus-enabledisable-on-ga-g41m-es2l">document serial/lpt/pcie bus enable/disable on GA-G41M-ES2L</a></li> <li><a href="#document-quad-core-mods-on-gm45-thinkpads">Document quad-core mods on GM45 thinkpads</a></li> </ul></li> </ul> </nav> <div class="pagetext"> <p><a href="../">Return to previous index</a></p> <div class="h"><h1 id="help-the-libreboot-project">Help the Libreboot project</h1><a aria-hidden="true" href="#help-the-libreboot-project">[link]</a></div> <p>This page is very new. It’s intended to serve those who ask: what can I do to help Libreboot? You could try implementing some of the tasks listed on this page or you could submit new tasks to this page!</p> <div class="h"><h1 id="current-tasks-more-will-be-added-soon">Current tasks (more will be added soon)</h1><a aria-hidden="true" href="#current-tasks-more-will-be-added-soon">[link]</a></div> <div class="h"><h2 id="move-all-distro-fdeboot-guides-to-distro-wikimanuals">Move all distro FDE+/boot/ guides to distro wiki/manuals</h2><a aria-hidden="true" href="#move-all-distro-fdeboot-guides-to-distro-wikimanuals">[link]</a></div> <p>The Guix, Fedora, Parabola and Trisquel guides were outdated and therefore deleted. The Debian guide should also be deleted, even though it’s up to date. The hyperbola one is actually a link to a guide on the Hyperbola site.</p> <p>These are guides for fully encrypted GNU+Linux systems, including /boot, but it’s desirable for these to be documented instead by each distro, because then they will more likely be properly maintained.</p> <p>We constantly have to update them, on libreboot.srht.site. It is unsustainable. Move them to other projects and let them deal with it. Libreboot’s only job is to boot you into a payload. The rest is up to you!</p> <p>This concerns GRUB payload on x86 targets. For SeaBIOS, it’s fairly easy to just push a button and the distro installer boots, or the installed distro just boots up as normal.</p> <p>Here are links to the guides that were deleted:</p> <ul> <li><a href="https://notabug.org/libreboot/lbwww/src/8844c201ef0d1ab856fed2aa5148b89100fffe0d/site/docs/gnulinux/guix_system.md" class="uri">https://notabug.org/libreboot/lbwww/src/8844c201ef0d1ab856fed2aa5148b89100fffe0d/site/docs/gnulinux/guix_system.md</a></li> <li><a href="https://notabug.org/libreboot/lbwww/src/8844c201ef0d1ab856fed2aa5148b89100fffe0d/site/docs/gnulinux/encrypted_trisquel.md" class="uri">https://notabug.org/libreboot/lbwww/src/8844c201ef0d1ab856fed2aa5148b89100fffe0d/site/docs/gnulinux/encrypted_trisquel.md</a></li> <li><a href="https://notabug.org/libreboot/lbwww/src/8844c201ef0d1ab856fed2aa5148b89100fffe0d/site/docs/gnulinux/encrypted_parabola.md" class="uri">https://notabug.org/libreboot/lbwww/src/8844c201ef0d1ab856fed2aa5148b89100fffe0d/site/docs/gnulinux/encrypted_parabola.md</a></li> <li><a href="https://notabug.org/libreboot/lbwww/src/8844c201ef0d1ab856fed2aa5148b89100fffe0d/site/docs/gnulinux/configuring_parabola.md" class="uri">https://notabug.org/libreboot/lbwww/src/8844c201ef0d1ab856fed2aa5148b89100fffe0d/site/docs/gnulinux/configuring_parabola.md</a></li> </ul> <p>The Trisquel one will be almost identical to the Debian one, with perhaps a few extra considerations taken. It’s recommended to focus on Debian first, and then adapt that to Trisquel. However, Trisquel is based on Ubuntu, so the guide can also be adapted for the Ubuntu site. This will cover most Ubuntu and Debian based distros.</p> <p>The remaining Debian guide is here: <a href="https://notabug.org/libreboot/lbwww/src/8844c201ef0d1ab856fed2aa5148b89100fffe0d/site/docs/gnulinux/encrypted_debian.md" class="uri">https://notabug.org/libreboot/lbwww/src/8844c201ef0d1ab856fed2aa5148b89100fffe0d/site/docs/gnulinux/encrypted_debian.md</a></p> <div class="h"><h2 id="document-other-rpi-gnulinux-distros-for-spi-flashing">Document other RPi GNU+Linux distros for SPI flashing</h2><a aria-hidden="true" href="#document-other-rpi-gnulinux-distros-for-spi-flashing">[link]</a></div> <p>See: <a href="../docs/install/spi.html#caution-about-rpi">../docs/install/spi.html#caution-about-rpi</a></p> <p>RPi’s default distro, Raspbian, no longer can be trusted to be secure. TODO: document how to use other distros, to configure the RPi for SPI flashing.</p> <div class="h"><h2 id="bug-crossgcc-not-included-in-src-archive-if-not-already-build">bug: crossgcc not included in src archive if not already build</h2><a aria-hidden="true" href="#bug-crossgcc-not-included-in-src-archive-if-not-already-build">[link]</a></div> <p>fix this. in practise, i always build the roms and then run the release scripts which means crossgcc will have been built, but this bug should still be fixed. this is so that you can simply run the release build scripts right after downloading the git repository</p> <div class="h"><h2 id="thinkpad-r60-support">ThinkPad R60 support</h2><a aria-hidden="true" href="#thinkpad-r60-support">[link]</a></div> <p>macc24 on IRC ported it. add it!</p> <div class="h"><h2 id="investigate-u-boot">Investigate u-boot</h2><a aria-hidden="true" href="#investigate-u-boot">[link]</a></div> <p>e.g. Pine64 ROCKPro64, which was added in coreboot 4.14 but it’s also supported by uboot</p> <p>Lots of ARM hardware supported in coreboot, and lots of non-coreboot hardware out there with free firmware, but using uboot (not coreboot)</p> <p>Pinebook computers look interesting:</p> <p>Some of their computers look like they will be suitable for Libreboot, but they are ARM and most of them don’t have coreboot support (instead, they use uboot exclusively).</p> <div class="h"><h2 id="grub-add-bls-support">GRUB: add BLS support</h2><a aria-hidden="true" href="#grub-add-bls-support">[link]</a></div> <p>Resources:</p> <ul> <li><a href="https://systemd.io/BOOT_LOADER_SPECIFICATION">The systemd’s Boot Loader Specification</a></li> <li><a href="https://www.freedesktop.org/wiki/MatthewGarrett/BootLoaderSpec/">The freedesktop.org’s Boot Loader Specification</a></li> <li><a href="https://www.freedesktop.org/software/systemd/man/systemd-boot.html">systemd-boot</a> - uefi app</li> </ul> <div class="h"><h2 id="create-a-board-status-repo-like-coreboot">Create a board-status repo, like coreboot</h2><a aria-hidden="true" href="#create-a-board-status-repo-like-coreboot">[link]</a></div> <p>See: <a href="https://review.coreboot.org/plugins/gitiles/board-status/" class="uri">https://review.coreboot.org/plugins/gitiles/board-status/</a></p> <p>For testing boards in Libreboot (and osboot-libre), it would be nice to have reports like on coreboot board-status entries.</p> <p>This is especially important <em>now</em>, because lots of boards are being added to both Libreboot and osboot-libre. It will <em>especially</em> be important for osboot-libre, after the Libreboot release, because osboot-libre will start to focus on being a rolling release, bleeding edge coreboot distro, while Libreboot focuses on stable release. <em>board-status</em> entries like these will be invaluable to both projects.</p> <div class="h"><h2 id="todo-i945-test-framebuffernon-i915-init-during-s3-resume">TODO: i945: test framebuffer(non-i915) init during S3 resume</h2><a aria-hidden="true" href="#todo-i945-test-framebuffernon-i915-init-during-s3-resume">[link]</a></div> <p>See notes here: <a href="https://doc.coreboot.org/releases/coreboot-4.8.1-relnotes.html" class="uri">https://doc.coreboot.org/releases/coreboot-4.8.1-relnotes.html</a></p> <p>video init is skipped on i945 now, during S3 resume, to save time, and the i915 linux kernel driver can handle that, but other drivers should be tested. e.g. generic corebootfb driver, drivers in various BSD systems, etc</p> <div class="h"><h2 id="a3c8a005-payloadstianocore-add-kconfig-to-set-boot-timeout">61a3c8a005 payloads/tianocore: Add Kconfig to set boot timeout</h2><a aria-hidden="true" href="#a3c8a005-payloadstianocore-add-kconfig-to-set-boot-timeout">[link]</a></div> <p>this is from the coreboot git log. looks interesting. investigate</p> <div class="h"><h2 id="document-the-following-boards">Document the following boards</h2><a aria-hidden="true" href="#document-the-following-boards">[link]</a></div> <p>These boards are added, but not documented yet</p> <div class="h"><h3 id="acer-g43t-am3">Acer G43T-AM3</h3><a aria-hidden="true" href="#acer-g43t-am3">[link]</a></div> <p>See: <a href="flashrom_read_me_disable.log.txt">flashrom_read_me_disable.log.txt</a><br /> This is from Michael Büchler, whom I emailed, asking for info about this board. This is the person who ported the board to coreboot.</p> <p>Michael states the following:<br /> </p> <pre><code>I&#39;m also attaching a flashrom read log. The filename suggests that I had the ME disable pin set.. so this was with the &quot;-p internal&quot; flasher, but the SPI_ROM1 header also works. The pinout is 1:1 the same as the EEPROM. This reminds me that I wanted to create a page for this board on the coreboot documentation. There you would have found this info. I should do it soon.</code></pre> <p>ME disable pin? Probably setting GPIO33 or something. I’ve replied to Michael, encouraging that person to document this board on the coreboot website.</p> <p>indeed, next to the southbridge is a jumper and the silk screen says “ME disable” so I’m guessing this is actually just GPIO33 being grounded. so it’s not simply disabling the ME, but the intel flash descriptor (which also disables NVM, not just the ME)</p> <p>Here are some photos: TODO: add photos that michael sent me. i’m waiting for michael to confirm what license. for now see these photos that i pulled from a search engine:</p> <ul> <li>&lt;ttps://pc-1.ru/pic/big/1186411.jpg&gt;</li> <li><a href="https://i5.walmartimages.com/asr/7ded9e88-73e6-4bc4-9b2a-ff22313c7172_2.9abea30734ddf03fc15b7188cb3e92cd.jpeg" class="uri">https://i5.walmartimages.com/asr/7ded9e88-73e6-4bc4-9b2a-ff22313c7172_2.9abea30734ddf03fc15b7188cb3e92cd.jpeg</a></li> </ul> <p>For flashing instructions:</p> <ul> <li>Refer to <a href="https://libreboot.srht.site/img/g43t-am3/soic8.jpg" class="uri">https://libreboot.srht.site/img/g43t-am3/soic8.jpg</a> - a proper photo is not available under a free license, or could not be found, so this diagram was made</li> <li>NOTE: It might not be possible to do ISP flashing. Several other X4X desktop mainboards are problematic.</li> <li>FOR EXAMPLE: <a href="https://doc.coreboot.org/mainboard/intel/dg43gt.html" class="uri">https://doc.coreboot.org/mainboard/intel/dg43gt.html</a></li> <li>That’s another X4X board, and it recommends to de-solder the flash</li> <li>It might be that this board, linked above, can be flashed ISP-style, but the person who wrote that page was using a 3.3V rail from a flasher like RPi or whatever, and maybe the flash chip shares a common rail with the southbridge or something else that draws a lot of current</li> <li>On GA-G41M-ES2L, it’s possible to power on the board, then turn it off but leave it plugged in, and a 3.3V rail from the ATX PSU will be active, powering the chip and providing more than enough current. In that situation, you connect your SPI flasher without using your SPI flasher’s 3.3V rail. That may also be the case on this board, and the one linked dabove.</li> </ul> <p>I couldn’t find exact schematics/boardviews, but I did find this:</p> <ul> <li><a href="http://download.ecs.com.cn/dlfileecs/manual/mb/eng/p4/G43T_MV10/G43T-M_V20.pdf" class="uri">http://download.ecs.com.cn/dlfileecs/manual/mb/eng/p4/G43T_MV10/G43T-M_V20.pdf</a></li> </ul> <p>2MiB flash chip according to:<br /> <a href="https://review.coreboot.org/plugins/gitiles/board-status/+/refs/heads/master/acer/g43t-am3/4.12-4089-gb7e591e2da/2020-11-17T18_20_46Z/config.txt" class="uri">https://review.coreboot.org/plugins/gitiles/board-status/+/refs/heads/master/acer/g43t-am3/4.12-4089-gb7e591e2da/2020-11-17T18_20_46Z/config.txt</a> and <a href="https://review.coreboot.org/plugins/gitiles/board-status/+/refs/heads/master/acer/g43t-am3/4.12-3211-gfb623a02c5/2020-10-11T11_24_19Z/config.txt" class="uri">https://review.coreboot.org/plugins/gitiles/board-status/+/refs/heads/master/acer/g43t-am3/4.12-3211-gfb623a02c5/2020-10-11T11_24_19Z/config.txt</a></p> <p>NOTE: i think this is ICH10. Kconfig mentions IFD. flash it descriptorless based on intel/dg43gt port using “motherboard porting guide”</p> <p>coreboot ba49d859eeaeced032403b2da6a5f34ea2a93a94 added it. The following is from that coreboot revision, in the commit log:</p> <ul> <li>Same board as Aspire M5800 (same vendor BIOS image)</li> <li>Similar mainboards by Acer: G41T-AM, G43T-AM, G43T-AM4, Q45T-AM, to name a few.</li> <li>ECS has some models that are obiously based on the same design, e.g. G43T-WM and G43T-M.</li> </ul> <p>Working (ignore the note about Windows. Libreboot project doesn’t care about that. This is just copied from the coreboot git log):</p> <ul> <li>CPUs from Pentium Dual-Core E2160 to Core 2 Quad Q9550 at FSB1333</li> <li>Native raminit</li> <li>All four DIMM slots at 1066 MHz (tested 2x2GB + 2x4GB)</li> <li>PS/2 mouse</li> <li>PS/2 keyboard (needs CONFIG_SEABIOS_PS2_TIMEOUT, tested: 500)</li> <li>USB ports (8 internal, 4 external)</li> <li>All six SATA ports</li> <li>Intel GbE</li> <li>Both PCI ports with various cards (Ethernet, audio, USB, VGA)</li> <li>Integrated graphics (libgfxinit)</li> <li>HDMI and VGA ports</li> <li>boot with PCIe graphics and SeaBIOS</li> <li>boot with PCI VGA and SeaBIOS</li> <li>Both PCIe ports</li> <li>Flashing with flashrom</li> <li>Rear audio output</li> <li>SeaBIOS 1.14.0 to boot slackware64</li> <li>SeaBIOS 1.14.0 to boot Windows 10 (needs VGA BIOS)</li> <li>Temperature readings (including PECI)</li> <li>Super I/O EC automatic fan control</li> <li>S3 suspend/resume</li> <li>Poweroff</li> </ul> <p>Not working:</p> <ul> <li>Resource issues with the VGA BIOS of a PCI rv100-based card</li> <li>Super I/O voltage reading conversions</li> </ul> <p>Untested:</p> <ul> <li>The other audio jacks or the front panel header</li> <li>On-board Firewire</li> <li>EHCI debug</li> <li>VBT (was extracted and added, but don’t know how to test)</li> <li>Super I/O GPIOs</li> </ul> <div class="h"><h2 id="generate-ich10-descriptornvm">Generate ICH10 descriptor/nvm</h2><a aria-hidden="true" href="#generate-ich10-descriptornvm">[link]</a></div> <p>Coreboot has a few Intel X4X boards with ICH10 southbridge. These can be booted descriptorless, but in some cases those boards will use an Intel gigabit NIC, which means that the NIC will be useless in a descriptorless setup.</p> <p>Basically <code>ich9utils</code> but for ich10. However, it’s preferable to generate it using bincfg. Intel provides some limited information about ICH10 descriptors in public datasheets. The rest can be guessed at like it was for ICH9M in libreboot.</p> <div class="h"><h2 id="re-do-desktop-boards">Re-do desktop boards</h2><a aria-hidden="true" href="#re-do-desktop-boards">[link]</a></div> <p>Right now, the configs make no sense. VGA ROM setup (for external GPU) also runs libgfxinit, and vice versa, on KCMA-D8 / KGPE-D16, and in many configs, both coreboot and seabios run pci roms. There needs to be consistency here.</p> <p>I think there should be separation:</p> <ul> <li>libgfxinit. coreboot doesn’t load pci roms. seabios loads them</li> <li>vgarom-only setup, where coreboot runs pci roms. seabios doesn’t load them</li> </ul> <div class="h"><h2 id="add-the-following-boards">Add the following boards</h2><a aria-hidden="true" href="#add-the-following-boards">[link]</a></div> <p>NOTE: some of these might not be suitable for Libreboot. Each one will be checked, before adding it to Libreboot.</p> <p>TODO: also check under “variants” for each board, and add more to this list if any are found. These lists are generated by greping Kconfig files but sometimes multiple boards are specified in a single Kconfig file. For example, macbook21 Kconfig also specifies imac52 and macbook11 without any code changes.</p> <div class="h"><h3 id="lenovog505s">lenovo/g505s</h3><a aria-hidden="true" href="#lenovog505s">[link]</a></div> <p>Last I checked, video init was a problem on this laptop. (binary blob, but there was some work to implement free video initialization)</p> <p>It might still be worth looking into</p> <div class="h"><h3 id="intel-x4x-platform">Intel x4x platform</h3><a aria-hidden="true" href="#intel-x4x-platform">[link]</a></div> <p>NOTE: some use ICH7 southbridge.</p> <p>NOTE: others use ICH10, and some of <em>those</em> have Intel ME + descriptor. others have descriptorless setup (no Intel ME). <em>all</em> of them can boot descriptorless, so it’s possible to nuke the Intel ME on all of them (ICH7 ones never have ME to begin with)</p> <p>NOTE: this is the same platform used by Gigabyte GA-G41M-ES2L which Libreboot already supports. that one uses an ICH7 southbridge</p> <h4 id="dell-optiplex-760">Dell Optiplex 760</h4> <p>vitali64 on IRC is porting this to coreboot, and has it almost fully working</p> <h4 id="asrockg41c-gs">asrock/g41c-gs</h4> <p>Variants:</p> <ul> <li>g41c-gs-r2</li> <li>g41m-gs</li> <li>g41m-s3</li> <li>g41m-vs3-r2</li> </ul> <h4 id="asusp5qc">asus/p5qc</h4> <p>Variants:</p> <ul> <li>p5q_pro</li> <li>p5ql_pro</li> <li>p5q</li> </ul> <h4 id="asusp5ql-em">asus/p5ql-em</h4> <p>No variants specified in Kconfig</p> <h4 id="asusp5qpl-am">asus/p5qpl-am</h4> <p>Variants:</p> <ul> <li>p5g41t-m_lx</li> </ul> <h4 id="foxconng41s-k">foxconn/g41s-k</h4> <p>Variants:</p> <ul> <li>g41m</li> </ul> <h4 id="inteldg41wv">intel/dg41wv</h4> <p>No variants specified in Kconfig</p> <h4 id="inteldg43gt">intel/dg43gt</h4> <p>No variants specified in Kconfig</p> <h4 id="lenovothinkcentre_a58">lenovo/thinkcentre_a58</h4> <p>No variants specified in Kconfig</p> <div class="h"><h3 id="intel-pineview-platform">Intel Pineview platform</h3><a aria-hidden="true" href="#intel-pineview-platform">[link]</a></div> <p>NOTE: same platform as Intel D510MO / D410PT</p> <ul> <li>foxconn/d41s</li> </ul> <div class="h"><h3 id="gm45-ich9m">GM45 / ICH9M</h3><a aria-hidden="true" href="#gm45-ich9m">[link]</a></div> <h4 id="lenovox301-thinkpad-x200-variant">lenovo/x301 (thinkpad x200 variant)</h4> <p>ThinkPad X200 variant. Use standand ICH9M descriptor+nvm image</p> <div class="h"><h3 id="intel-i945">Intel i945</h3><a aria-hidden="true" href="#intel-i945">[link]</a></div> <p>same platform as X60/T60 thinkpads. some of these are desktops, so there will be some differences. it’s unlikely that Intel ME will be an issue on any of them.</p> <h4 id="asusp5gc-mx">asus/p5gc-mx</h4> <p>No variants specified by Kconfig</p> <h4 id="getacp470">getac/p470</h4> <p>No variants specified by Kconfig</p> <h4 id="gigabytega-945gcm-s2l">gigabyte/ga-945gcm-s2l</h4> <p>Variants:</p> <ul> <li>ga-945gcm-s2c</li> </ul> <h4 id="ibasemb899">ibase/mb899</h4> <p>No variants specified by Kconfig</p> <h4 id="kontron986lcd-m">kontron/986lcd-m</h4> <p>No variants specified by Kconfig</p> <h4 id="rodark886ex">roda/rk886ex</h4> <p>No variants specified by Kconfig</p> <div class="h"><h3 id="amd-fam10h-fam15h">AMD Fam10h / Fam15h</h3><a aria-hidden="true" href="#amd-fam10h-fam15h">[link]</a></div> <p>These boards are not a priority at the moment, but they will be added at some point (<em>after</em> the post-2016 release). These were all deleted from coreboot in version 4.11 (they are fam10h/15h boards). On this TODO page is an entry asking whether to fork coreboot 4.11 and maintain it, backporting newer features from coreboot, making it work with newer GCC toolchains, and so on.</p> <p>NOTE: some of these are a <em>big</em> if, but many of them will work nicely without binary blobs when booting. NOTE: use of a VGA option ROM is implied, and Libreboot won’t provide these, but the user could install an add-on graphics card and coreboot/seabios would just run whatever is on the card. There is no problem with Libreboot running those, because they could be free or non-free, we just don’t know.</p> <p>In practise, most of these probably don’t have native video initialization in coreboot for the onboard GPU (if present), because it’s probably an AMD/ATI one and libgfxinit doesn’t have good support for those (it mostly has excellent support for Intel video chipsets).</p> <p>This doesn’t mean Libreboot can’t support them. It just means that we will have to provide ROM images that don’t use libgfxinit. Instead, the ROMs provided will always run VGA option ROMs present on the GPU. Here we mean add-on video cards, which means there’s no way for the Libreboot project to predict what hardware will be used. It means that any GPU could be used. It probably implies use of SeaBIOS, but coreboot itself is able to run those VGA ROMs which enables other payloads (such as GNU GRUB) to be used reliably (with text mode startup).</p> <p>Where external VGA ROMs are concerned, Libreboot prefers for coreboot to run them, and for SeaBIOS to run run them, OR, for SeaBIOS to run it but be the main payload.</p> <p>In cases where coreboot runs the VGA ROM, it can also run other PCI ROMs, and SeaBIOS doesn’t need to do anything (and in fact shouldn’t do anything).</p> <p>On boards that <em>do</em> have libgfxinit support, coreboot isn’t running any PCI ROMs, which means no PCI ROMs for GRUB, which means you should use the SeaBIOS payload, either as the main payload or chainloaded from GRUB.</p> <p>Also: it’s still possible to use a serial console. You could use any of these boards in a headless server setup, with no graphics card.</p> <p>Also: there are USB VGA adapters available. Driver support in the Linux kernel is flaky for a lot of them, but you might be able to get some sort of desktop usage out of these boards, if you used one of them (there would be no display during early boot, but you would see something when booting your kernel). With llvmpipe driver you could actually get good use out of these. They are usually a simple framebuffer chip inside.</p> <h4 id="advansusa785e-i">advansus/a785e-i</h4> <p>No variants specified by Kconfig</p> <h4 id="amdbimini_fam10">amd/bimini_fam10</h4> <p>No variants specified by Kconfig</p> <h4 id="amdmahogany_fam10">amd/mahogany_fam10</h4> <p>No variants specified by Kconfig</p> <h4 id="amdserengeti_cheetah_fam10">amd/serengeti_cheetah_fam10</h4> <p>No variants specified by Kconfig</p> <h4 id="amdtilapia_fam10">amd/tilapia_fam10</h4> <p>No variants specified by Kconfig</p> <h4 id="asusm4a785-m">asus/m4a785-m</h4> <p>No variants specified by Kconfig</p> <h4 id="asusm4a785t-m">asus/m4a785t-m</h4> <p>No variants specified by Kconfig</p> <h4 id="asusm4a78-em">asus/m4a78-em</h4> <p>No variants specified by Kconfig</p> <h4 id="asusm5a88-v">asus/m5a88-v</h4> <p>No variants specified by Kconfig</p> <h4 id="avalueeax-785e">avalue/eax-785e</h4> <p>No variants specified by Kconfig</p> <h4 id="gigabytema785gm">gigabyte/ma785gm</h4> <p>No variants specified by Kconfig</p> <h4 id="gigabytema785gmt">gigabyte/ma785gmt</h4> <p>No variants specified by Kconfig</p> <h4 id="gigabytema78gm">gigabyte/ma78gm</h4> <p>No variants specified by Kconfig</p> <h4 id="hpdl165_g6_fam10">hp/dl165_g6_fam10</h4> <p>No variants specified by Kconfig</p> <h4 id="ieikino-780am2-fam10">iei/kino-780am2-fam10</h4> <p>No variants specified by Kconfig</p> <h4 id="jetwaypa78vm5">jetway/pa78vm5</h4> <p>No variants specified by Kconfig</p> <h4 id="msims9652_fam10">msi/ms9652_fam10</h4> <p>No variants specified by Kconfig</p> <h4 id="supermicroh8dmr_fam10">supermicro/h8dmr_fam10</h4> <p>No variants specified by Kconfig</p> <h4 id="supermicroh8qme_fam10">supermicro/h8qme_fam10</h4> <p>No variants specified by Kconfig</p> <h4 id="supermicroh8scm_fam10">supermicro/h8scm_fam10</h4> <p>No variants specified by Kconfig</p> <h4 id="tyans2912_fam10">tyan/s2912_fam10</h4> <p>No variants specified by Kconfig</p> <div class="h"><h3 id="gm45">gm45</h3><a aria-hidden="true" href="#gm45">[link]</a></div> <h4 id="thinkpad-w700">thinkpad w700</h4> <p><a href="http://www.thinkwiki.org/wiki/Category:W700" class="uri">http://www.thinkwiki.org/wiki/Category:W700</a></p> <p>might be fun to work on. probably doesn’t require much modification in coreboot, if any. buy one and port it to coreboot</p> <p>There are photos on this page:</p> <p><a href="http://web.archive.org/web/20210510205738/https://notabug.org/libreboot/libreboot/issues/573" class="uri">http://web.archive.org/web/20210510205738/https://notabug.org/libreboot/libreboot/issues/573</a></p> <div class="h"><h2 id="linuxboot-payload">Linuxboot payload</h2><a aria-hidden="true" href="#linuxboot-payload">[link]</a></div> <p>Linuxboot is a busybox+linux system available here:<br /> <a href="https://www.linuxboot.org/" class="uri">https://www.linuxboot.org/</a></p> <p>It goes in bootflash. It provides a bootloader program called u-root, which uses kexec to boot other kernels. It also provides some UEFI features, and it can parse GNU GRUB configuration files. It requires a large amount of flashing space (at least 12MiB, but it might be possible to squeeze it into 8MiB).</p> <p>The problem is: it is using the upstream Linux kernel. TODO: fork Linuxboot and make the fork use linux-libre. Check other packages too. With this, a fully libre (by FSF standards) busybox+linux distro can be made, based on Linuxboot.</p> <p>Linuxboot-libre is the working name for this new project. It will absolutely knock the wind out of GRUB and anything else, on setups where it’s possible to use this payload.</p> <p>Other payloads will still be retained, of course.</p> <div class="h"><h2 id="fork-coreboot-4.11-and-maintain-for-fam10h15h-boards">Fork coreboot 4.11 and maintain, for fam10h/15h boards</h2><a aria-hidden="true" href="#fork-coreboot-4.11-and-maintain-for-fam10h15h-boards">[link]</a></div> <p>Nowadays, coreboot removes boards. For example, KCMA-D8 and KGPE-D16 (and others were removed) from coreboot because they don’t support relocatable ramstage, <code>C_ENVIRONMENTAL_BOOTBLOCK</code>, postcar and a few other features are required now in coreboot ports.</p> <p>For libreboot purposes, it’s mostly AMD Fam10/15h boards that were removed. These were maintained based on AMD’s AGESA codebase, which was never properly integrated. It was just bolted on to coreboot, without honouring coreboot’s native coding style and maintaining it was very difficult. The person maintaining fam10h/15h boards (in particular KCMA-D8 and KGPE-D16) had stopped doing work on those boards at that point.</p> <p>Libreboot currently does not fork coreboot, and it never has. Rather, it has been a downstream distribution of coreboot, de-blobbing it and patching it when necessary. This was sustainable before, because more or less just one revision could be used.</p> <p>There are mainly 2 choices:</p> <ul> <li>Re-add deleted boards to coreboot</li> <li>Fork older coreboot revisions with those other boards, and keep backporting newer features from later coreboot revisions (for instance, coreboot now has the ability to clear all DRAM on every bootup but this configuration option is unavailable on KCMA-D8 and KGPE-D16 mainboards)</li> </ul> <p>In practise, since this mostly affects fam10h/fam15h boards, it’s probably <em>easier</em> to do the latter; fork older coreboot revision (version 4.11 in this case) and start backporting newer features; the current code works well, and only minor fixes will be needed here and there over time (e.g. patch it up to work on newer GCC versions when building).</p> <p>Forking the <em>entire</em> coreboot project and maintaining it for more than just a few boards isn’t really practical. It is best to cooperate with upstream, but in this case we are talking only about boards that were deleted.</p> <p>It’s always possible to bring the code on those deleted boards up to date again in the future, for re-entry into the coreboot master repository.</p> <div class="h"><h2 id="test-seabios-option-etcusb-time-sigatt">Test SeaBIOS option: etc/usb-time-sigatt</h2><a aria-hidden="true" href="#test-seabios-option-etcusb-time-sigatt">[link]</a></div> <p>default is 500ms. setting it higher like 1000s might make USB drives work in SeaBIOS on KFSN4-DRE. see notes on <a href="https://www.seabios.org/Runtime_config#Option_ROMs" class="uri">https://www.seabios.org/Runtime_config#Option_ROMs</a></p> <div class="h"><h2 id="sstmacronix-patches-for-flashrom-on-x60t60">SST+macronix patches for flashrom on X60/T60</h2><a aria-hidden="true" href="#sstmacronix-patches-for-flashrom-on-x60t60">[link]</a></div> <p>These binaries are referenced in the documentation currently not actually available and the build system (lbmk) does not produce them.</p> <div class="h"><h2 id="warnings-about-option-roms">Warnings about option ROMs</h2><a aria-hidden="true" href="#warnings-about-option-roms">[link]</a></div> <p>They’re bad because they’re non-free. They violate the four freedoms. Libreboot enables automatic loading of PCI option ROMs in some setups, simply for the purpose of technical correctness, because there’s no rule that says an option ROM must be non-free. It’s possible that an option ROM might actually be free software.</p> <p>Banning option ROMs in Libreboot desktops would be like banning all software from executing in an operating system, just because those programs might be non-free.</p> <p>Instead, the <em>correct</em> solution ethically is to just tell people not to use non-free software, and for the <em>libreboot project</em> to never directly recommend, distribute or document non-free software.</p> <div class="h"><h2 id="use-coreboots-memtest86-fork">Use coreboot’s memtest86+ fork</h2><a aria-hidden="true" href="#use-coreboots-memtest86-fork">[link]</a></div> <p>The current version used does build, but it doesn’t run, or it glitches out. That version of memtest is designed to be run on a normal BIOS system, so it might actually work with the SeaBIOS payload, but we want to use a memtest version that is guaranteed to work on bare metal, which is more common on Libreboot systems.</p> <div class="h"><h2 id="gemini-site-for-libreboot">Gemini site for libreboot</h2><a aria-hidden="true" href="#gemini-site-for-libreboot">[link]</a></div> <p>Gemini is a popular alternative to the web. See: <a href="https://gemini.circumlunar.space/" class="uri">https://gemini.circumlunar.space/</a></p> <p>I’ve noticed a lot of projects starting to offer this, in addition to a regular website.</p> <p>pandox2gem i’m told is a good tool that could integrate with the current static site generator, which uses pandoc (the pages are written in markdown)</p> <div class="h"><h2 id="tor-site-for-libreboot">Tor site for libreboot</h2><a aria-hidden="true" href="#tor-site-for-libreboot">[link]</a></div> <p>hidden onion service</p> <p>host it separately from the main site, on a different server. that way, there is another website just in case</p> <div class="h"><h2 id="nd-http-site">2nd HTTP site</h2><a aria-hidden="true" href="#nd-http-site">[link]</a></div> <p>Have different DNS records for ns2. specifically, different IPv4+6 for the site. When the main ns1 is down, the new website will kick in. (ns1 and ns2 are both currently hosted on the same network as the website)</p> <div class="h"><h2 id="i2p-site">i2p site</h2><a aria-hidden="true" href="#i2p-site">[link]</a></div> <p>I probably won’t, but someone is welcome to do this and libreboot.srht.site will link to it</p> <div class="h"><h2 id="fix-grub-bugs">Fix GRUB bugs</h2><a aria-hidden="true" href="#fix-grub-bugs">[link]</a></div> <p>Many of these bugs only happen in bare metal, and only on devices supported by libreboot. See:</p> <p><a href="http://web.archive.org/web/20210510213902/https://notabug.org/libreboot/libreboot/issues/561" class="uri">http://web.archive.org/web/20210510213902/https://notabug.org/libreboot/libreboot/issues/561</a></p> <div class="h"><h2 id="security-patch-spectre-msr-fixes-for-fam15h-boards">Security patch: spectre MSR fixes for Fam15h boards</h2><a aria-hidden="true" href="#security-patch-spectre-msr-fixes-for-fam15h-boards">[link]</a></div> <p>See: <a href="http://web.archive.org/web/20210510214458/https://notabug.org/libreboot/libreboot/issues/440" class="uri">http://web.archive.org/web/20210510214458/https://notabug.org/libreboot/libreboot/issues/440</a></p> <div class="h"><h2 id="document-teensy-spi-flasher">Document teensy SPI flasher</h2><a aria-hidden="true" href="#document-teensy-spi-flasher">[link]</a></div> <p>The following page has information, which can be assimilated: <a href="https://trmm.net/SPI_flash/" class="uri">https://trmm.net/SPI_flash/</a></p> <p>Also see: <a href="https://www.flashrom.org/Teensy_3.1_SPI_%2B_LPC/FWH_Flasher" class="uri">https://www.flashrom.org/Teensy_3.1_SPI_%2B_LPC/FWH_Flasher</a></p> <p>Also see this interesting firmware here: <a href="https://github.com/urjaman/frser-teensyflash" class="uri">https://github.com/urjaman/frser-teensyflash</a><br /> NOTE: i’ve made a local git clone of this</p> <div class="h"><h2 id="todo-document-use-of-schottky-diode-for-vcc-on-spi-flash-isp">TODO: document use of schottky diode for VCC on SPI flash (ISP)</h2><a aria-hidden="true" href="#todo-document-use-of-schottky-diode-for-vcc-on-spi-flash-isp">[link]</a></div> <p>this type of diode has minimal voltage drop. most flashes run close to their specified 3.3v, sometimes a bit higher, but the tolerated range is between 2.7 and 3.6v</p> <p>notes about use of a diode is already specified in the external flashing guide but those notes should be improved</p> <ul> <li>x200 (after cutting solder bridge - R405 - between flash chip and ICH9M)</li> <li>x200s/x200t/w700 - 25xx flash Vcc is hardwired :( (to be confirmed on production board)</li> <li>t400/t400s/t500/x301 - 25xx flash Vcc is hardwired, as everything else on UCI/lenovo boards</li> </ul> <div class="h"><h2 id="document-alternative-external-flashing-method-for-x200sx200t">Document alternative external flashing method for X200S/X200T</h2><a aria-hidden="true" href="#document-alternative-external-flashing-method-for-x200sx200t">[link]</a></div> <p>GNUtoo wrote this interested guide: <a href="https://framagit.org/GNUtoo/coreboot-scripts/-/tree/master/flash-wson8" class="uri">https://framagit.org/GNUtoo/coreboot-scripts/-/tree/master/flash-wson8</a></p> <p>It still requires external flashing, but no soldering.</p> <p>TODO: what about bucts? the bootblock is protected by PR4, but is it possible to use BUCTS and init from another bootblock?</p> <p>NOTE TO SELF: a local git clone has been made of the above</p> <div class="h"><h2 id="handle-sata-power-in-ultrabay-on-gm45-thinkpads">Handle SATA power in ultrabay on gm45 thinkpads</h2><a aria-hidden="true" href="#handle-sata-power-in-ultrabay-on-gm45-thinkpads">[link]</a></div> <p>See: <a href="http://web.archive.org/web/20201022210929/https://notabug.org/libreboot/libreboot/issues/484" class="uri">http://web.archive.org/web/20201022210929/https://notabug.org/libreboot/libreboot/issues/484</a></p> <div class="h"><h2 id="document-seriallptpcie-bus-enabledisable-on-ga-g41m-es2l">document serial/lpt/pcie bus enable/disable on GA-G41M-ES2L</h2><a aria-hidden="true" href="#document-seriallptpcie-bus-enabledisable-on-ga-g41m-es2l">[link]</a></div> <p>See: <a href="http://web.archive.org/web/20210510214317/https://notabug.org/libreboot/libreboot/issues/469" class="uri">http://web.archive.org/web/20210510214317/https://notabug.org/libreboot/libreboot/issues/469</a></p> <p>This might be why graphics cards and add-on network cards didn’t work on mine, last time i tested it. it’s a config option that must be enabled in coreboot?</p> <div class="h"><h2 id="document-quad-core-mods-on-gm45-thinkpads">Document quad-core mods on GM45 thinkpads</h2><a aria-hidden="true" href="#document-quad-core-mods-on-gm45-thinkpads">[link]</a></div> <p>NOTE: MAX_CPUS=4 is now the default, in coreboot, for these machines.</p> <p>There’s a mod for T500 thinkpads, but it will work on any gm45 thinkpad supported in libreboot. Just have to study the schematics and boardview, then adapt the info available online for T500.</p> <p>NOTE: max CPUs has to be set in coreboot</p> <p>Document a <em>clean</em> way to do it. The current guides online have you drilling holes in the CPU socket! That’s why they won’t be linked here.</p> <p>Some notes are already written here. expand upon them: <a href="http://web.archive.org/web/20210307234010/https://notabug.org/libreboot/libreboot/issues/340" class="uri">http://web.archive.org/web/20210307234010/https://notabug.org/libreboot/libreboot/issues/340</a></p> <div id="footer"> <hr /> <ul> <li><a href="/git.html">Edit this page</a></li> <li><a href="/who.html">Who develops Libreboot?</a></li> <li><a href="/license.html">License</a></li> <li><a href="/template-license.html">Template</a></li> <li><a href="logo-license.html">Logo</a></li> <li><a href="/contrib.html">Authors</a></li> </ul> <hr /> </div> <p>Markdown file for this page: <a href="https://libreboot.at/tasks/index.md" class="uri">https://libreboot.at/tasks/index.md</a></p> <p>This HTML page was generated by the <a href="https://untitled.vimuser.org/">untitled static site generator</a>.</p> </div> </div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10