Unofficial (Simplified) Libreboot Documentation
  • Home
  • Building from source/
  • External SPI flashing/
  • Freedom in Libreboot/
  • Maintainance manual/
  • Operating systems/
  • Payloads/
  • Releases/
  • Targets/
    • ARM Chromebooks/
    • Emulation/
    • Other/
    • X86/
      • AMD pitfalls
      • Boards/
        • Acer G43T-AM3
        • ASUS KCMA-D8 Desktop/Workstation
        • ASUS KFSN4-DRE Server/Workstation
        • ASUS KGPE-D16 Server/Workstation
        • Dell Latitude flashing
        • Dell Latitude thermal throttling
        • Dell OptiPlex 3050 Micro
        • Dell OptiPlex 7010/9010 MT
        • Dell OptiPlex 7010/9010 SFF
        • Dell OptiPlex 7020/9020 SFF/MT, and XE2 MT/SFF
        • Dell OptiPlex 780 MT/USFF
        • Dell Precision T1650
        • Gigabyte GA-G41M-ES2L Desktop
        • HP Compaq Elite 8300 USDT
        • HP Elite 8200 SFF/MT and 6200 Pro Business
        • HP EliteBook 2170p
        • HP EliteBook 2560p
        • HP EliteBook 2570p
        • HP EliteBook 820 G2
        • HP EliteBook 8460p
        • HP EliteBook 8470p
        • HP EliteBook 8560w
        • HP EliteBook Folio 9470m
        • Intel D510MO/D410PT
        • Intel D945GCLF Desktop
        • MacBook 1,1 and 2,1
        • ThinkPad R400
        • ThinkPad T400 external flashing
        • ThinkPad T420 external flashing
        • ThinkPad T440p external flashing
        • ThinkPad T480/T480s
        • ThinkPad T500 external flashing
        • ThinkPad T60 recovery guide
        • ThinkPad W541/W540 external flashing
        • ThinkPad X200 first-time flashing
        • ThinkPad X220/X220T
        • ThinkPad X230/X230T external flashing
        • ThinkPad X60 recovery
        • ThinkPad X60 Tablet recovery
        • ThinkPad X60/X60T/T60 internal flashing
      • Changing the MAC address
      • Disabling /dev/mem protections
      • Disabling Intel Boot Guard on MEv11
      • EC firmware updates
      • Generic internal flashing
      • Insert vendor files
      • Intel pitfalls
      • Ivybridge internal flashing
      • Microcode
      • nvmutil import
      • nvmutil manual
  • UNCATEGORIZED/
Site license: GFDL v1.3 with disclaimer

Dell Precision T1650

Dell Precision T1650
Specifications
Manufacturer Dell
Name Precision T1650
Variants Precision T1650
Released 2012
Chipset Intel C216
CPU Intel Ivy Bridge
Graphics Discrete graphics, or Intel HD Graphics model
depending on CPU model
Memory DDR3 DIMMs (max 32GB, 4x8GB), ECC memory supported
Architecture x86_64
Original boot firmware Dell UEFI firmware
Intel ME/AMD PSP Present. Can be disabled with me_cleaner.
Flash chip SOIC-16 and/or SOIC-8 12MiB (96Mbit)
W+: Works without vendor firmware; 
N: Doesn't work; 
W*: Works with vendor firmware; 
U: Untested; 
P+: Partially works; 
P*: Partially works with vendor firmware
?: UNKNOWN AT THIS TIME
Features
Internal flashing with original boot firmware W*
Display (if Intel GPU) W+
Display (discrete GPU, SeaBIOS payload only) W*
Audio W+
RAM Init W+
Payloads supported
GRUB (libgfxinit only) Works
SeaBIOS Works
SeaBIOS with GRUB Works
## Introduction

Unavailable in Libreboot 20230625 or earlier. You must compile from source, or use at least Libreboot 20231021.

Vendor information

This is similar code-wise to Dell OptiPlex 9010 which coreboot supports.

Build ROM image from source

The build target, when building from source, is thus:

./mk -b coreboot t1650_12mb

Installation

Insert binary files

If you’re using a release ROM, please ensure that you’ve inserted extra firmware required refer to the guide 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.

WARNING about CPU/GPU compatibility

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. The Ivy Bridge Wikipedia has a list of them.

NOT ALL CPUs support ECC memory. You must use one that supports it, if you want to have the ECC feature, or else it won’t work. ECC allows for error correction, mitigating certain defects that develop over time in the RAM (it will not account for all defects, and memory always needs to be replaced eventually) - with ECC RAM, this machine is more suitable to applications where data integrity matters.

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 is possible.

Internal flashing is also possible from the factory BIOS, if you set the service mode jumper. This shorts HDA_SDO (Soft Descriptor Override), which disables the ME after early bringup and disables IFD-based flash protections.

Observe, below the PCI slots:

Here is a close-up:

Simply short those pins, on the header, using a jumper. When you do this, all flash protections will be disabled.

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 - 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 IC being flashed:

SOIC8 flash IC on T1650

and here is the SOIC16 IC being flashed:

SOIC16 flash IC on T1650

Here is SeaBIOS after a successful boot attempt:

SeaBIOS on T1650

Here is GRUB:

GRUB on T1650

MemTest86+:

MemTest86+ on T1650

The Debian installer:

Debian installation

and here is Mozilla Firefox in Debian booted on T1650, showing the Libreboot flashing instructions in Chinese:

Libreboot flashing instructions

Other aspects of the machine are not much to write home about. It’s a standard desktop PC form factor, and you can just run whatever you want on it.

Enjoy!