8.2 KiB
title | x-toc-enable |
---|---|
Flashing the Dell Latitude E6400 | true |
The microcode bugfixes/mitigations added for GM45 are also applicable to this board, for users who are interested. Read that article for more information.
Libreboot still recommends that boot with CPU microcode updates, by default, for all the reasons described by Libreboot's Binary Blobs Reductions Policy but this board run reasonably well without them.
A note about GPUs
We confirm that the Nvidia models are PM45, and therefore will require a VGA
ROM for initialisation. This is supported in Libreboot after the 20230625
release, if you compile from source; the e6400_4mb
target can work on both
variants, but will need the Nvidia VGA ROM inserted to work on Nvidia models.
This insertion is handled automatically in newer lbmk revisions, during build
time, or you can insert it on a release rom
after 20230625. - A Video BIOS Option
ROM is used, in this configuration. Libreboot's
build system automatically downloads this at build time, or it can handle that
for you in the same way if it was scrubbed from a release ROM.
Models with Intel graphics are GM45, and fully supported in Libreboot with native initialisation; ROM images are available since Libreboot 20230423. The Intel video initialisation is libre, implemented with publicly available source code via libgfxinit, from the coreboot project.
Flash chip size
Use this to find out:
flashprog -p internal
We believe most/all are 4MB (32Mb) flash sizes. The schematics hint that some boards may have 6MB flash (4MB and 2MB, dual chip), but we've only ever seen 4MB setups in the wild. You can still flash the 4MB image on 6MB setups, if it's encountered, by just leaving the higher 2MB part unflashed, because the flash descriptor (in Libreboot) configures everything so that the BIOS region ends just before the 4MB mark, in flash; the BIOS region is the final region, in the higher part of flash as defined by the descriptor, regardless of whether that is the actual end of the flash.
Libreboot does currently provide 6MB images on this board, for these reasons.
MAC address
The MAC address is part of the ROM image that you're flashing. You can change it at any time, before or after you've flashed Libreboot; you can also change it in the Dell BIOS, if you really want to. This is for the onboard gigabit ethernet device.
Refer to mac_address.md.
It is recommended that you run nvmutil. See:
The nvmutil
software is specifically designed for changing MAC addresses,
and it implements a few more safeguards (e.g. prevents multicast/all-zero
MAC addresses) and features (MAC address randomisation, ability to correct or
intententionally corrupt(disable) GbE sections if you wish, swap GbE parts,
etc). You can also run ich9gen, if you wish:
Intel GPU: libre video initialisation available
Libreboot uses coreboot's native libgfxinit
on this platform, for
variants with Intel graphics.
For Intel GPU variants, Libreboot 20230423 and up have full support. Simply flash a release ROM, if you wish.
Intel GPU errata
Systems with a 1440 x 900 display panel instead of the more common 1280 x 800 panel will have garbled graphics before the OS boots (i.e. in SeaBIOS or GRUB) in Libreboot 20240504 and earlier. This is fixed in releases after 20240504.
This was caused by libgfxinit calculating PLL divider values for the pixel clock assuming a 96 MHz reference frequency, whereas the E6400 uses a 100 MHz reference frequency. The error is not large enough to affect the lower resolution panels, but is enough to affect the 1440 x 900 panels which use a higher pixel clock.
Nvidia GPU: Video BIOS Option ROM required
NOTE: nouveau
(Linux video driver) is unstable when it was last tested, in
this setup. Either specify nomodeset
kernel option, or use another
operating system such as OpenBSD. More information is written on the
E6400 hardware page, regarding OS compatibility.
This is unavailable in Libreboot 20230423 and 20230625, but a future release
will contain support for these variants; for now, you must compile Libreboot
from Git. It is available in the default master
branch of lbmk, under
build target e6400_4mb
- either build from source and it gets inserted
automatically, or you can insert it
manually on future release ROMs past Libreboot 20230625.
An earlier experimental revision existed in an experimental branch of
lbmk, as build target e6400nvidia_4mb
, but it was decided that since SeaBIOS
is the only payload anyway on this board, having just a single build target is
more efficient if that can (and it does) support both variants. It was therefore
added to the master branch.
Actual installation is the same as with regular E6400 (Intel GPU) variants. Refer to the E6400 flashing instructions.
Problems with Linux video drivers on Nvidia
Technically, there is nothing wrong with Libreboot itself, but the nouveau
driver hangs/crashes on Nvidia models, after booting Linux with the Nvidia VGA
ROM loaded from coreboot.
Until that is fixed, you must specify nomodeset
in your Linux kernel boot
parameters.
Refer to development discussion for more information - testers needed!
The Intel GPU variant of E6400 is more stable, and works fully, with full
acceleration - the Nvidia models can only be run in software, and the BSD
systems only have the slow nv
driver (which is nonetheless stable).
Nvidia errata
BEFORE you flash it, please know that support for Nvidia variants is a proof of concept. Known issues exist. For more information, please read the E6400 info page, E6400 nvidia news page and the development discussion via codeberg.
How to flash internally (no diassembly)
Please read the article:
Internally flash Dell Latitude laptops
Dell's original BIOS/UEFI firmware typically prevents write access, but it has bugs which can be exploited, to enable Libreboot installation very easily. You do not have to disassemble the machine.
How to flash externally
Refer to spi.md as a guide for external re-flashing.
The SPI flash chip shares a voltage rail with the ICH9 southbridge, which is not isolated using a diode. As a result, powering the flash chip externally causes the ICH9 to partially power up and attempt to drive the SPI clock pin low, which can interfere with programmers such as the Raspberry Pi. See RPi Drive Strength for a workaround.
Have a look online for videos showing how to disassemble, if you wish to externally re-flash.