diff --git a/site/docs/hardware/dell9020.md b/site/docs/hardware/dell9020.md
new file mode 100644
index 0000000..41ea0d5
--- /dev/null
+++ b/site/docs/hardware/dell9020.md
@@ -0,0 +1,173 @@
+---
+title: Dell OptiPlex 9020 SFF/MT (and 7020)
+x-toc-enable: true
+...
+
+**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
+OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
+
+
+Introduction
+============
+
+**Unavailable in Libreboot 20240126 or earlier. You must [compile from
+source](../build/), or use a version newer than Libreboot 20240126**
+
+Official information about the laptop can be found here:
+
+
+7020 compatibility
+------------------
+
+7020/9020 MT each have the same motherboard. Flash the 9020 ROM from Libreboot
+on your 7020, and it will work.
+
+Ditto 7020/9020 SFF, it's the same motherboard. However, Libreboot provides
+separate targets for MT and SFF.
+
+Build ROM image from source
+---------------------------
+
+For the MT variant (7020 MT and 9020 SFF):
+
+ ./build roms dell9020mt_12mb
+
+For the SFF variant (7020 MT and 7020 SFF):
+
+ ./build roms dell9020sff_12mb
+
+It is important that you choose the right one. The MT variant is the full
+MTX tower.
+
+Installation
+============
+
+Insert binary files
+-------------------
+
+If you're using a release ROM, please ensure that you've inserted extra firmware
+required refer to the [guide](../install/ivy_has_common.md) for that. (failure
+to adhere to this advice will result in a bricked machine)
+
+Libreboot's build system automatically downloads and processes these files if
+you build Libreboot from source, but the same logic that it uses must be re-run
+if you're using a release image.
+
+Set MAC address
+---------------
+
+This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM
+region. As such, release/build ROMs will contain the same MAC address. To
+change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
+
+WARNING about CPU/GPU compatibility
+-------------------------------
+
+**NOTE: Graphics cards did not work when last tested; the rendering and output
+is still handled by the intel graphics. Until this changes, you can only use
+the onboard Intel graphics reliably, on these boards.**
+
+At the time of testing this board, I didn't have a CPU with graphics built in,
+so I could only use discrete graphics on the PCI-E slot (in my case, Nvidia
+Quadro K420 running under the nouveau driver in Linux).
+
+If you want to use onboard graphics, you must have a CPU that has a GPU built
+into it. You can find a list here:
+
+ (**must be LGA 1150 socket**)
+
+Because of this, Libreboot currently only provides ROM images where SeaBIOS
+is the first payload, and SeaBIOS is relied upon the execute the VGA ROM that's
+stored on the graphics card. However, coreboot's libgfxinit is also enabled,
+so onboard graphics *should* work if you don't have a graphics card installed.
+
+Coreboot has libre initialisation code for Intel graphics, but libre
+initialisation code is not available for most graphics cards. This machine can
+take any graphics card that fits in the PCI-E slot.
+
+GRUB *also* works, from SeaBIOS when the machine is booted in text mode. Both
+coreboot GRUB, and BIOS GRUB provided by your (Linux) distro. It's done this
+way (SeaBIOS first) because Libreboot's configuration does not tell *coreboot*
+to execute VGA Option ROMs, and it's important that we try to prevent bricks
+whenever possible.
+
+Flash a ROM image (software)
+-----------------
+
+If you're already running Libreboot, and you don't have flash protection
+turned on, [internal flashing](../install/) is possible.
+
+Flash a ROM image (hardware)
+-----------------
+
+**REMOVE all power sources and connectors from the machine, before doing this.
+This is to prevent short circuiting and power surges while flashing.**
+
+For general information, please refer to [25xx NOR flash
+instructions](../install/spi.md) - that page refers to use of socketed flash.
+
+This machine is somewhat cumbersome to flash, because it has a SOIC-16 flash
+for the first 8MB part, and 4MB SOIC8. You can split up your 12MB ROM image
+like so:
+
+ dd if=libreboot.rom of=4mb.rom bs=1M skip=8
+ dd if=libreboot.rom of=8mb.rom bs=1M count=8
+
+The side cover comes off easily, and you can find the flash ICs next to the RAM.
+
+Here's the SOIC8 ICs being flashed:
+
+
+
+
+Enjoy!
diff --git a/site/docs/hardware/index.md b/site/docs/hardware/index.md
index 73439c9..72204b5 100644
--- a/site/docs/hardware/index.md
+++ b/site/docs/hardware/index.md
@@ -38,7 +38,7 @@ libreboot currently supports the following systems in this release:
### Desktops (AMD, Intel, x86)
-- **Dell OptiPlex 7020/9020 MT and SFF (no guides yet) - [Available to buy
+- [Dell OptiPlex 7020/9020 MT and SFF](dell9020.md) - Also [available to buy
with Libreboot preinstalled](https://minifree.org/product/libreboot-9020/)**
- [Acer G43T-AM3](acer_g43t-am3.md)
- [Apple iMac 5,2](imac52.md)
diff --git a/site/docs/install/e6430.md b/site/docs/install/e6430.md
index 2d50ed4..602e3ac 100644
--- a/site/docs/install/e6430.md
+++ b/site/docs/install/e6430.md
@@ -41,7 +41,7 @@ Refer to [mac\_address.md](../hardware/mac_address.md).
It is recommended that you run *nvmutil*. See:
-[nvmutil usage manual](nvmutil.md)
+[nvmutil usage manual](nvmutil.md) - E5530 users don't need to run this.
The `nvmutil` software is specifically designed for changing MAC addresses,
and it implements a few more safeguards (e.g. prevents multicast/all-zero