cbwww/site/docs/install/e6400.md

111 lines
4.1 KiB
Markdown
Raw Normal View History

---
title: Flashing the Dell Latitude E6400
x-toc-enable: true
...
Introduction
============
Initial flashing instructions for the E6400. DO NOT flash the Nvidia GPU
variant. This page pertains only to the Intel GPU variant.
This guide is for those who want Canoeboot 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, and you want to recover it.
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.
A note about GPUs
-----------------
Models with Intel graphics are GM45, and fully supported in Canoeboot
with native initialisation; ROM images are available since.
**The Intel video initialisation is libre, implemented with publicly available
source code via libgfxinit, from the coreboot project.**
Flash chip size {#flashchips}
===============
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 {#macaddress}
===========
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 Canoeboot; 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](../hardware/mac_address.md).
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
===============================================
Canoeboot uses coreboot's native `libgfxinit` on this platform, for
variants with Intel graphics.
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.
How to flash internally (no diassembly)
=======================================
Please read the article:
[Internally flash Dell Latitude laptops](dell_internal.md)
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](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.
Have a look online for videos showing how to disassemble, if you wish to
externally re-flash.