2023-04-19 16:45:48 +00:00
|
|
|
---
|
2023-04-19 18:09:55 +00:00
|
|
|
title: Flashing the Dell Latitude E6400
|
2023-04-19 16:45:48 +00:00
|
|
|
x-toc-enable: true
|
|
|
|
...
|
|
|
|
|
2023-04-19 18:09:55 +00:00
|
|
|
Introduction
|
|
|
|
============
|
|
|
|
|
2023-04-23 11:37:26 +00:00
|
|
|
Initial flashing instructions for the E6400.
|
|
|
|
|
|
|
|
**ROM images are available in the [Libreboot 20230423
|
|
|
|
release](../../news/libreboot20230423.md), and subsequent releases.**
|
2023-04-19 16:45:48 +00:00
|
|
|
|
|
|
|
This guide is for those who want libreboot on their Latitude E6400 while
|
|
|
|
they still have the original Dell BIOS present. This guide can also be
|
|
|
|
followed (adapted) if you brick your E6400, to know how to recover.
|
|
|
|
|
2023-04-19 18:09:55 +00:00
|
|
|
Blob-free initialisation!
|
|
|
|
=========================
|
2023-04-19 16:45:48 +00:00
|
|
|
|
2023-04-19 18:09:55 +00:00
|
|
|
This board can boot entirely blob-free in the flash. The hardware is similar
|
|
|
|
to that of ThinkPad X200, T400 etc where no-ME setup is possible.
|
2023-04-19 16:45:48 +00:00
|
|
|
|
2023-04-19 18:09:55 +00:00
|
|
|
No-microcode setup feasible
|
|
|
|
----------------------------
|
2023-04-19 16:45:48 +00:00
|
|
|
|
2023-04-19 18:09:55 +00:00
|
|
|
The
|
|
|
|
[microcode bugfixes/mitigations added for GM45](../../news/gm45microcode.md)
|
|
|
|
are also applicable to this board, for users who are interested. Read that
|
|
|
|
article for more information.
|
2023-04-19 16:45:48 +00:00
|
|
|
|
2023-04-19 18:09:55 +00:00
|
|
|
Libreboot still recommends that boot with CPU microcode updates, by default,
|
|
|
|
for all the reasons described by Libreboot's [Binary Blobs Reductions
|
|
|
|
Policy](../../news/policy.md) but this board run reasonably well without them.
|
2023-04-19 16:45:48 +00:00
|
|
|
|
|
|
|
A note about GPUs
|
2023-04-19 18:09:55 +00:00
|
|
|
-----------------
|
2023-04-19 16:45:48 +00:00
|
|
|
|
2023-04-19 18:09:55 +00:00
|
|
|
We *believe* the dGPU models are PM45, and therefore will require a VGA
|
|
|
|
blob for initialisation. This is currently unsupported in Libreboot.
|
2023-04-19 16:45:48 +00:00
|
|
|
|
2023-04-19 18:09:55 +00:00
|
|
|
Models with iGPU (Intel graphics) are GM45, and fully supported in Libreboot
|
|
|
|
with native initialisation.
|
2023-04-19 16:45:48 +00:00
|
|
|
|
|
|
|
Flash chip size {#flashchips}
|
|
|
|
===============
|
|
|
|
|
|
|
|
Use this to find out:
|
|
|
|
|
|
|
|
flashrom -p internal
|
|
|
|
|
2023-04-19 18:09:55 +00:00
|
|
|
We believe most/all are 4MB (32Mb) flash sizes, but larger ROM images are
|
|
|
|
provided for people who wish to upgrade.
|
|
|
|
|
2023-04-19 16:45:48 +00:00
|
|
|
MAC address {#macaddress}
|
|
|
|
===========
|
|
|
|
|
|
|
|
Refer to [mac\_address.md](../hardware/mac_address.md).
|
|
|
|
|
2023-04-19 18:09:55 +00:00
|
|
|
How to flash internally (no diassembly)
|
|
|
|
=======================================
|
|
|
|
|
|
|
|
You can flash Libreboot directly from the vendor (Dell) BIOS, without taking
|
|
|
|
the machine apart. It can be done entirely from Linux. It will probably also
|
|
|
|
work on BSD systems, but it has only been testing on Linux thus far.
|
|
|
|
|
|
|
|
Check `util/e6400-flash-unlock` in the `lbmk.git` repository, or in release
|
2023-04-23 11:37:26 +00:00
|
|
|
archives for Libreboot releases from 20230423 onwards.
|
2023-04-19 18:09:55 +00:00
|
|
|
|
|
|
|
Go in there:
|
|
|
|
|
|
|
|
cd util/e6400-flash-unlock
|
|
|
|
make
|
|
|
|
|
|
|
|
With this program, you can unlock the flash in such a way where everything
|
|
|
|
is writeable. Information about how to use it is in the `README.md` file which
|
2023-04-19 18:20:36 +00:00
|
|
|
is included in that program's directory, or you can read it online here:
|
2023-04-19 18:09:55 +00:00
|
|
|
|
2023-04-19 18:20:36 +00:00
|
|
|
<https://browse.libreboot.org/lbmk.git/plain/util/e6400-flash-unlock/README.md>
|
2023-04-19 16:45:48 +00:00
|
|
|
|
2023-04-23 12:46:45 +00:00
|
|
|
Literally just run that program, and do what it says. You run it once, and shut
|
|
|
|
down, and when you do, the system brings itself back up automatically. Then
|
|
|
|
you run it and flash it unlocked. Then you run it again. The source code is
|
|
|
|
intuitive enough that you can easily get the gist of it; it's writing some EC
|
|
|
|
commands and changing some chipset config bits. The EC on this machine is
|
|
|
|
hooked up to the `GPIO33` signal, sometimes called `HDA_DOCK_EN`, which sets
|
|
|
|
the flash descriptor override thus disabling any flash protection by the IFD.
|
|
|
|
It also bypasses the SMM BIOS lock protection by disabling SMIs, and Dell's
|
|
|
|
BIOS doesn't set any other type of protection either such as writing to
|
|
|
|
Protected Range registers.
|
2023-04-19 16:45:48 +00:00
|
|
|
|
2023-04-19 18:09:55 +00:00
|
|
|
With this method, you can probably flash it within 5 minutes. Again, zero
|
|
|
|
disassembly required!
|
2023-04-19 16:45:48 +00:00
|
|
|
|
|
|
|
How to flash externally
|
|
|
|
=========================
|
|
|
|
|
|
|
|
Refer to [spi.md](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](spi.md#rpi-drive-strength) for a workaround.
|
|
|
|
|
2023-04-19 18:09:55 +00:00
|
|
|
Have a look online for videos showing how to disassemble, if you wish to
|
|
|
|
externally re-flash.
|