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
|
|
|
|
2023-06-25 22:40:38 +00:00
|
|
|
**Variants with Nvidia GPUs are NOT supported in Libreboot 20230423
|
2023-10-20 23:00:28 +00:00
|
|
|
or 20230625.**
|
|
|
|
|
|
|
|
**Variants with Nvidia GPUs are supported in Libreboot 20231021 or higher.**
|
2023-05-09 07:13:15 +00:00
|
|
|
|
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
|
2023-05-09 07:13:15 +00:00
|
|
|
followed (adapted) if you brick your E6400, and you want to recover it.
|
|
|
|
|
|
|
|
Variants (nvidia or intel graphics)
|
|
|
|
========
|
2023-04-19 16:45:48 +00:00
|
|
|
|
2023-05-09 07:13:15 +00:00
|
|
|
Dell E6400, E6400 XFR and E6400 ATG are all believed to work. The flashing
|
|
|
|
instructions are identical, on all of them.
|
|
|
|
|
2023-10-10 20:37:16 +00:00
|
|
|
100% Free Software possible (Intel GPU)
|
2023-04-19 18:09:55 +00:00
|
|
|
=========================
|
2023-04-19 16:45:48 +00:00
|
|
|
|
2023-10-10 20:37:16 +00:00
|
|
|
This board can boot entirely *free software* in the flash. The hardware is similar
|
2023-04-19 18:09:55 +00:00
|
|
|
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-05-09 07:13:15 +00:00
|
|
|
We *confirm that* the Nvidia models are PM45, and therefore will require a VGA
|
2023-10-10 20:37:16 +00:00
|
|
|
ROM for initialisation. This is supported in Libreboot *after* the 20230625
|
2023-09-11 23:15:55 +00:00
|
|
|
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](ivy_has_common.md). - **A Video BIOS Option
|
2023-10-10 20:37:16 +00:00
|
|
|
ROM is used, in this configuration. Libreboot's
|
2023-05-09 07:13:15 +00:00
|
|
|
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.**
|
2023-04-19 16:45:48 +00:00
|
|
|
|
2023-05-09 07:13:15 +00:00
|
|
|
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.**
|
2023-04-19 16:45:48 +00:00
|
|
|
|
|
|
|
Flash chip size {#flashchips}
|
|
|
|
===============
|
|
|
|
|
|
|
|
Use this to find out:
|
|
|
|
|
2024-01-27 22:35:38 +00:00
|
|
|
flashprog -p internal
|
2023-04-19 16:45:48 +00:00
|
|
|
|
2024-08-26 01:22:04 +00:00
|
|
|
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.
|
2023-04-19 18:09:55 +00:00
|
|
|
|
2023-04-19 16:45:48 +00:00
|
|
|
MAC address {#macaddress}
|
|
|
|
===========
|
|
|
|
|
2023-05-09 07:13:15 +00:00
|
|
|
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.
|
|
|
|
|
2023-04-19 16:45:48 +00:00
|
|
|
Refer to [mac\_address.md](../hardware/mac_address.md).
|
|
|
|
|
2023-05-09 07:13:15 +00:00
|
|
|
It is recommended that you run *nvmutil*. See:
|
|
|
|
|
|
|
|
[nvmutil usage manual](nvmutil.md)
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
[ich9gen usage manual](ich9utils.md)
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
2024-05-20 17:13:07 +00:00
|
|
|
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.
|
|
|
|
|
2023-05-09 07:13:15 +00:00
|
|
|
Nvidia GPU: Video BIOS Option ROM required
|
|
|
|
==========================================
|
|
|
|
|
2023-05-09 19:13:02 +00:00
|
|
|
**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](../hardware/e6400.md), regarding OS compatibility.**
|
|
|
|
|
2023-06-25 22:40:38 +00:00
|
|
|
This is *unavailable* in Libreboot 20230423 and 20230625, but a future release
|
|
|
|
will contain support for these variants; for now, you must compile Libreboot
|
2023-09-11 23:15:55 +00:00
|
|
|
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](ivy_has_common.md) on future release ROMs past Libreboot 20230625.
|
2023-05-09 07:13:15 +00:00
|
|
|
|
2023-11-08 06:57:17 +00:00
|
|
|
An earlier experimental revision existed in an experimental branch of
|
2023-09-11 23:15:55 +00:00
|
|
|
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
|
2023-11-08 06:57:17 +00:00
|
|
|
more efficient if that can (and it does) support both variants. It was therefore
|
|
|
|
added to the master branch.
|
2023-05-09 07:13:15 +00:00
|
|
|
|
|
|
|
Actual installation is the same as with regular E6400 (Intel GPU) variants.
|
|
|
|
Refer to the [E6400 flashing instructions](../docs/install/e6400.md).
|
|
|
|
|
2023-09-11 23:15:55 +00:00
|
|
|
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](https://codeberg.org/libreboot/lbmk/issues/14#issuecomment-907758)
|
|
|
|
for more information - [testers needed!](../maintain/testing.md)
|
|
|
|
|
|
|
|
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).
|
2023-05-09 07:13:15 +00:00
|
|
|
|
2023-10-10 21:07:39 +00:00
|
|
|
Nvidia errata
|
|
|
|
-------------
|
2023-05-09 07:13:15 +00:00
|
|
|
|
|
|
|
**BEFORE** you flash it, please know that support for Nvidia variants is
|
2023-09-11 23:15:55 +00:00
|
|
|
a **proof of concept**. Known issues exist. For more information, please
|
2023-05-09 07:13:15 +00:00
|
|
|
read the [E6400 info page](../hardware/e6400.md), [E6400 nvidia news
|
|
|
|
page](../../news/e6400nvidia.md) and the [development discussion via
|
|
|
|
codeberg](https://codeberg.org/libreboot/lbmk/issues/14#issuecomment-907758).
|
|
|
|
|
2023-04-19 18:09:55 +00:00
|
|
|
How to flash internally (no diassembly)
|
|
|
|
=======================================
|
|
|
|
|
2024-08-26 01:22:04 +00:00
|
|
|
Please read the article:
|
2023-05-09 07:13:15 +00:00
|
|
|
|
2024-08-26 01:22:04 +00:00
|
|
|
[Internally flash Dell Latitude laptops](dell_internal.md)
|
2023-05-09 07:13:15 +00:00
|
|
|
|
2024-08-26 01:22:04 +00:00
|
|
|
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.
|
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.
|
2023-05-09 07:13:15 +00:00
|
|
|
|