From 22b8fac15e86fee084602bcbb732b043b2f9a416 Mon Sep 17 00:00:00 2001 From: Francis Rowe Date: Mon, 11 May 2015 19:48:52 -0400 Subject: docs/tasks.html: clean up (2) --- (limited to 'docs/tasks.html') diff --git a/docs/tasks.html b/docs/tasks.html index 263349d..82e202a 100644 --- a/docs/tasks.html +++ b/docs/tasks.html @@ -11,322 +11,351 @@ Libreboot task list -
-

Libreboot task list

+
+

Libreboot task list

Back to index.html.

- -

+

Important tasks for the libreboot project -

+

This page is part of the git repository, so feel free to submit patches adding or removing to this list.

-

Board ports

-
    -
  • - Current candidates (new boards) for libreboot: -
      -
    • - Libreboot has so far been biased towards Intel. This needs to end (the sooner, the better). A nice start: -
        -
      • - Lenovo G505S (works without CPU microcode updates). - Videos BIOS is not yet fully replaced (openatom doesn't have a working framebuffer, yet, but - it can draw a bitmap in user space, using a special utility) - - openatom in github. - SMU needs replacing (ruik/funfuctor/patrickg/mrnuke might be able to help). -
      • -
      • - ASUS KFSN4-DRE - fam10h, already in coreboot, seems to have native graphics initialization already, - fam10h, already in coreboot. Works without CPU microcode updates, has native graphics initialization - (text-mode and framebuffer mode). PLCC flash chip, but can be read/flashed from factory firmware - so just boot up, dump, hot-swap and flash the dump to make a backup, then check that the system - boots with the backup. Then flash the original chip with libreboot. External PLCC flash programmer - not needed! -
      • -
      • - ASUS KGPE-D16 - code not yet public, - ported by Raptor Engineering Inc. (USA). - They are asking for 50K* USD to pay for the work to upstream the code (do code review, add more patches, - get it merged in coreboot master repository - a lot of work!). Crowd funding will be necessary. - Crowd funding will be necessary. - See coreboot mailing list. - This board uses DIP-8 (socket) SPI flash, so it's easy to flash (external flashing required for initial install). - * was 35K. The extra 15K is a stretch goal for S3 support and full text-mode graphics initialization (bugs eliminated). -
      • -
      • - F2A85-M and E350M1 (libreboot_*_headless.rom). Test openatom (video BIOS replacement). SMU firmware is a problem. XHCI firmware is a problem. -
      • -
      • - TODO: Add ARM candidates here (the above systems are all AMD). -
      • -
      • This list needs to expand!
      • -
      -
    • -
    • - That doesn't mean Intel is off the table just yet: -
        -
      • - ThinkPad R500: http://projects.mtjm.eu/work_packages/43 -
      • -
      • - ThinkPad W500: they all use switchable graphics (ATI+Intel). Unknown if PM45 is compatible with GM45. -
      • -
      • - Non-lenovo GM45 laptops: -
          - Dell Latitude E6400 - quite a few of these online. This is a good laptop to target in coreboot and libreboot. - NOTE: EC support. ALSO: DDR2 memory (coreboot raminit for GM45 currently only supports DDR3) -
        -
      • -
      • - Desktop system: Dell Optiplex 755. There are lots of these available online. - ICH9. DDR2 RAM (needs work in coreboot). No EC (it's a desktop). It will require - quite a bit of work in coreboot, but this is a very good candidate. - The ME can probably be removed and disabled, using ich9gen without any modifications - (or with few modifications). Where are the datasheets? Schematics? -
      • -
      -
    • -
    -
  • -
- -

Platform-specific bugs

-
    -
  • - Fix these issues on GM45/GS45 targets: -
      -
    • - X200: text-mode is broken. only framebuffer graphics work. Git-bisect is needed. -
    • -
    • - X200/X60: battery drained even while system is "off" on some systems. investigate. -
    • -
    • - Sound (internal speaker) broken on T500 (works in lenovobios). external speaker/headphones work. - - probably a different hda_verb -
    • -
    • - Test this patch for X200 Tablet digitizer support: - https://paste.debian.net/plainh/65cd0a55 - - tty0_ wants to know whether it breaks the X200 (non-tablet version) or not. (It's probably fine) -
    • -
    -
  • -
  • - Finish all work listed in future/index.html -
  • -
  • - Fix these issues on i945 targets (X60/T60/macbook21) - -
  • -
- -

- Flashing from lenovobios to libreboot (and vice versa) -

- - -

Payloads

-
    -
  • - Add ProteanOS payload to systems with big enough flash chips. (eg X200/R400). - This page (outdated, but still useful according to the maintainer) has some info: - http://www.proteanos.com/doc/plat/porting/. - pehjota says that once the port is done, prokit can be modified to generate the entire - distribution as a vmlinuz and initrd.img file. -
  • -
- -

Build system

-
    -
  • - When downloading coreboot/grub/memtest/etc using the download scripts, it currently does - not check the integrity of these sources at all. Libreboot releases are signed, but - what can be done to improve it is to check the sha512sums of all files downloaded - by these scripts (which are in the git repository, but not the release archives, - because the release archives already include these sources). Do this for all - non-integrated modules used in libreboot. -
  • -
  • Make memtest86+ build using coreboot's own crossgcc toolchain. Currently, - memtest86+ doesn't even work at all when cross-compiled using the toolchain in x86-64 trisquel7
  • -
  • - Make libreboot (all of it!) build reproducibly. This is very important. - See http://projects.mtjm.eu/work_packages/16. -
  • -
  • - build/release/archives currently fails on Parabola (it only works well in Trisquel). - That script is buggy, and full of ugly hacks anyway, - so re-write it and make it modular/portable this time. -
  • -
- -

Improvements to the utilities

-
    -
  • - Stop deleting flash chip definitions in flashrom. Instead, modify flashrom to ignore - a list of chip definitions. This is a much cleaner solution. (add an option to override - the ignore). -
  • -
  • - Make ich9gen/ich9deblob portable. They both rely extensively on bitfields, and they assume - little-endian; for instance, mapping a little endian file directly to a struct, instead - of serializing/deserializing. Re-factor both utilities and make them fully portable. - See http://projects.mtjm.eu/work_packages/18 -
  • -
  • - Adapt linux-libre deblob scripts for use with coreboot. Libreboot is already deblobbed - using its own script, but updating it is still a bit too manual. linux-libre's deblob - scripts do an excellent job and (adapted) will make it much easier to maintain coreboot-libre. -
  • -
  • - Add a whitelist entry to board_enable.c in flashrom, for the ThinkPad R400 and T400 -
  • -
- -

- BeagleBone Black -

-
    -
  • Get libre distros ported to it. Eg proteanos, trisquel, parabola, librecmc and so on.
  • -
  • See BBB screwdriver - from the coreboot - project, this is an openwrt-based image for the BBB that comes with EHCI enabled out of the box. - Look into re-basing that on librecmc (librecmc is a deblobbed version of openwrt).
  • -
+
+ +
+ +

Board ports

+
    +
  • + Current candidates (new boards) for libreboot: +
      +
    • + Libreboot has so far been biased towards Intel. This needs to end (the sooner, the better). A nice start: +
        +
      • + Lenovo G505S (works without CPU microcode updates). + Videos BIOS is not yet fully replaced (openatom doesn't have a working framebuffer, yet, but + it can draw a bitmap in user space, using a special utility) - + openatom in github. + SMU needs replacing (ruik/funfuctor/patrickg/mrnuke might be able to help). +
      • +
      • + ASUS KFSN4-DRE - fam10h, already in coreboot, seems to have native graphics initialization already, + fam10h, already in coreboot. Works without CPU microcode updates, has native graphics initialization + (text-mode and framebuffer mode). PLCC flash chip, but can be read/flashed from factory firmware + so just boot up, dump, hot-swap and flash the dump to make a backup, then check that the system + boots with the backup. Then flash the original chip with libreboot. External PLCC flash programmer + not needed! +
      • +
      • + ASUS KGPE-D16 - code not yet public, + ported by Raptor Engineering Inc. (USA). + They are asking for 50K* USD to pay for the work to upstream the code (do code review, add more patches, + get it merged in coreboot master repository - a lot of work!). Crowd funding will be necessary. + Crowd funding will be necessary. + See coreboot mailing list. + This board uses DIP-8 (socket) SPI flash, so it's easy to flash (external flashing required for initial install). + * was 35K. The extra 15K is a stretch goal for S3 support and full text-mode graphics initialization (bugs eliminated). +
      • +
      • + F2A85-M and E350M1 (libreboot_*_headless.rom). Test openatom (video BIOS replacement). SMU firmware is a problem. XHCI firmware is a problem. +
      • +
      • + TODO: Add ARM candidates here (the above systems are all AMD). +
      • +
      • This list needs to expand!
      • +
      +
    • +
    • + That doesn't mean Intel is off the table just yet: +
        +
      • + ThinkPad R500: http://projects.mtjm.eu/work_packages/43 +
      • +
      • + ThinkPad W500: they all use switchable graphics (ATI+Intel). Unknown if PM45 is compatible with GM45. +
      • +
      • + Non-lenovo GM45 laptops: +
          + Dell Latitude E6400 - quite a few of these online. This is a good laptop to target in coreboot and libreboot. + NOTE: EC support. ALSO: DDR2 memory (coreboot raminit for GM45 currently only supports DDR3) +
        +
      • +
      • + Desktop system: Dell Optiplex 755. There are lots of these available online. + ICH9. DDR2 RAM (needs work in coreboot). No EC (it's a desktop). It will require + quite a bit of work in coreboot, but this is a very good candidate. + The ME can probably be removed and disabled, using ich9gen without any modifications + (or with few modifications). Where are the datasheets? Schematics? +
      • +
      +
    • +
    +
  • +
+

Back to top of page.

+
+ +
+

Platform-specific bugs

+
    +
  • + Fix these issues on GM45/GS45 targets: +
      +
    • + X200: text-mode is broken. only framebuffer graphics work. Git-bisect is needed. +
    • +
    • + X200/X60: battery drained even while system is "off" on some systems. investigate. +
    • +
    • + Sound (internal speaker) broken on T500 (works in lenovobios). external speaker/headphones work. + - probably a different hda_verb +
    • +
    • + Test this patch for X200 Tablet digitizer support: + https://paste.debian.net/plainh/65cd0a55 + - tty0_ wants to know whether it breaks the X200 (non-tablet version) or not. (It's probably fine) +
    • +
    • + Fix remaining incompatible LCD panels in native graphics on T500. + See hcl/t500.html. +
    • +
    +
  • +
  • + Finish all work listed in future/index.html +
  • +
  • + Fix these issues on i945 targets (X60/T60/macbook21) + +
  • +
+

Back to top of page.

+
+ +
+

+ Flashing from lenovobios to libreboot (and vice versa) +

+ +

Back to top of page.

+
+ +
+

Payloads

+
    +
  • + Add ProteanOS payload to systems with big enough flash chips. (eg X200/R400). + This page (outdated, but still useful according to the maintainer) has some info: + http://www.proteanos.com/doc/plat/porting/. + pehjota says that once the port is done, prokit can be modified to generate the entire + distribution as a vmlinuz and initrd.img file. +
  • +
+

Back to top of page.

+
+ +
+

Build system

+
    +
  • + When downloading coreboot/grub/memtest/etc using the download scripts, it currently does + not check the integrity of these sources at all. Libreboot releases are signed, but + what can be done to improve it is to check the sha512sums of all files downloaded + by these scripts (which are in the git repository, but not the release archives, + because the release archives already include these sources). Do this for all + non-integrated modules used in libreboot. +
  • +
  • Make memtest86+ build using coreboot's own crossgcc toolchain. Currently, + memtest86+ doesn't even work at all when cross-compiled using the toolchain in x86-64 trisquel7
  • +
  • + Make libreboot (all of it!) build reproducibly. This is very important. + See http://projects.mtjm.eu/work_packages/16. +
  • +
  • + build/release/archives currently fails on Parabola (it only works well in Trisquel). + That script is buggy, and full of ugly hacks anyway, + so re-write it and make it modular/portable this time. +
  • +
+

Back to top of page.

+
+ +
+

Improvements to the utilities

+
    +
  • + Stop deleting flash chip definitions in flashrom. Instead, modify flashrom to ignore + a list of chip definitions. This is a much cleaner solution. (add an option to override + the ignore). +
  • +
  • + Make ich9gen/ich9deblob portable. They both rely extensively on bitfields, and they assume + little-endian; for instance, mapping a little endian file directly to a struct, instead + of serializing/deserializing. Re-factor both utilities and make them fully portable. + See http://projects.mtjm.eu/work_packages/18 +
  • +
  • + Adapt linux-libre deblob scripts for use with coreboot. Libreboot is already deblobbed + using its own script, but updating it is still a bit too manual. linux-libre's deblob + scripts do an excellent job and (adapted) will make it much easier to maintain coreboot-libre. +
  • +
  • + Add a whitelist entry to board_enable.c in flashrom, for the ThinkPad R400 and T400 +
  • +
+

Back to top of page.

+
+ +
+

+ BeagleBone Black +

+
    +
  • Get libre distros ported to it. Eg proteanos, trisquel, parabola, librecmc and so on.
  • +
  • See BBB screwdriver - from the coreboot + project, this is an openwrt-based image for the BBB that comes with EHCI enabled out of the box. + Look into re-basing that on librecmc (librecmc is a deblobbed version of openwrt).
  • +
+

Back to top of page.

+
+ +
+

Documentation improvements

+ +

Back to top of page.

+
+ +
+

Project (institutional) improvements

+
    +
  • + Add proper guidelines for contributions, + like Development Guidelines on the coreboot wiki. For instance, require + Sign-off-by in all commits for libreboot. Consulting with the FSF about this + (licensing@fsf.org). +
  • +
  • + Libreboot needs to be factory firmware, not the replacement. It needs to be *the* firmware. + Consult with the openlunchbox project (and maybe others) on getting hardware manufactured + with libreboot support (out of the box, from the factory). +
  • +
  • + PROPOSAL (only a proposal, for now): + Look into the possibility of expanding libreboot to support non-coreboot systems. (u-boot, for instance). + Currently, libreboot presents itself as a deblobbed coreboot distribution. There are other systems out there + that use other firmware, such as u-boot, which libreboot could theoretically support. This would mean that + the build scripts know how to build things other than just coreboot/grub. +
      +
    • Allwinner A10 (ARM) SoCs
    • +
    • PMON?
    • +
    • barebox (u-boot derivative)
    • +
    • etc
    • +
    • + http://zedboard.org/product/zedboard + might be a candidate, according to the main developer of openlunchbox. +
    • +
    +
  • +
  • + Set up a routine (project-wise) for testing each system with the latest kernel version. + See http://projects.mtjm.eu/work_packages/22 + and http://projects.mtjm.eu/work_packages/21 +
  • +
+

Back to top of page.

+
+ +
+

EC firmware

+

+ http://www.coreboot.org/Embedded_controller + Replace this on all libreboot targets. Some laptops use an extra SPI flash chip for the EC, some + have EC in the main chip, some don't use SPI flash at all but have the firmware inside the EC chip itself. + If the EC has integrated flash then you need to be able to get to the pins on the chip or be able to program them over LPC or SPI (if they have that feature). + The lenovo laptops currently supported in libreboot all use H8 EC chips (contains flash inside the chip). + Read the datasheets on how to externally programme the EC. Chromebooks seem to have free EC + (https://chromium.googlesource.com/chromiumos/platform/ec/+/master/chip/). +

-

Documentation improvements

- - -

Project (institutional) improvements

-
    -
  • - Add proper guidelines for contributions, - like Development Guidelines on the coreboot wiki. For instance, require - Sign-off-by in all commits for libreboot. Consulting with the FSF about this - (licensing@fsf.org). -
  • -
  • - Libreboot needs to be factory firmware, not the replacement. It needs to be *the* firmware. - Consult with the openlunchbox project (and maybe others) on getting hardware manufactured - with libreboot support (out of the box, from the factory). -
  • -
  • - PROPOSAL (only a proposal, for now): - Look into the possibility of expanding libreboot to support non-coreboot systems. (u-boot, for instance). - Currently, libreboot presents itself as a deblobbed coreboot distribution. There are other systems out there - that use other firmware, such as u-boot, which libreboot could theoretically support. This would mean that - the build scripts know how to build things other than just coreboot/grub. -
      -
    • Allwinner A10 (ARM) SoCs
    • -
    • PMON?
    • -
    • barebox (u-boot derivative)
    • -
    • etc
    • -
    • - http://zedboard.org/product/zedboard - might be a candidate, according to the main developer of openlunchbox. -
    • -
    -
  • -
  • - Set up a routine (project-wise) for testing each system with the latest kernel version. - See http://projects.mtjm.eu/work_packages/22 - and http://projects.mtjm.eu/work_packages/21 -
  • -
- -

EC firmware

-

- http://www.coreboot.org/Embedded_controller - Replace this on all libreboot targets. Some laptops use an extra SPI flash chip for the EC, some - have EC in the main chip, some don't use SPI flash at all but have the firmware inside the EC chip itself. - If the EC has integrated flash then you need to be able to get to the pins on the chip or be able to program them over LPC or SPI (if they have that feature). - The lenovo laptops currently supported in libreboot all use H8 EC chips (contains flash inside the chip). - Read the datasheets on how to externally programme the EC. Chromebooks seem to have free EC - (https://chromium.googlesource.com/chromiumos/platform/ec/+/master/chip/). -

-

Back to top of page.

-
-- cgit v0.9.1