mb/ibm/sbp1: Update PCIe SBDF in comment
[coreboot2.git] / Documentation / mainboard / intel / dq67sw.md
blobd641fc633b626aeba7ab268da2700dbf985ca86d
1 # Intel DQ67SW
3 The Intel DQ67SW is a microATX-sized desktop board for Intel Sandy Bridge CPUs.
5 ## Technology
7 ```{eval-rst}
8 +------------------+--------------------------------------------------+
9 | Northbridge      | :doc:`../../northbridge/intel/sandybridge/index` |
10 +------------------+--------------------------------------------------+
11 | Southbridge      | Intel Q67 (bd82x6x)                              |
12 +------------------+--------------------------------------------------+
13 | CPU socket       | LGA 1155                                         |
14 +------------------+--------------------------------------------------+
15 | RAM              | 4 x DDR3-1333                                    |
16 +------------------+--------------------------------------------------+
17 | Super I/O        | Nuvoton/Winbond W83677HG-i                       |
18 +------------------+--------------------------------------------------+
19 | Audio            | Realtek ALC888S                                  |
20 +------------------+--------------------------------------------------+
21 | Network          | Intel 82579LM Gigabit Ethernet                   |
22 +------------------+--------------------------------------------------+
23 | Serial           | Internal header                                  |
24 +------------------+--------------------------------------------------+
25 ```
27 ## Status
29 ### Working
31 - Sandy Bridge and Ivy Bridge CPUs (tested: i5-2500, Pentium G2120)
32 - Native RAM initialization with four DIMMs
33 - Integrated GPU with libgfxinit
34 - PCIe graphics in the PEG slot
35 - Additional PCIe slots
36 - PCI slot
37 - All rear (4x) and internal (8x) USB2 ports
38 - Rear USB3 ports (2x)
39 - All four internal SATA ports (two 6 Gb/s, two 3 Gb/s)
40 - Two rear eSATA connectors (3 Gb/s)
41 - SATA at 6 Gb/s
42 - Gigabit Ethernet
43 - SeaBIOS 1.16.1 + libgfxinit (legacy VGA) to boot slackware64 (Linux 5.15)
44 - SeaBIOS 1.16.1 + extracted VGA BIOS to boot Windows 10 (21H2)
45 - edk2 UefiPayload (uefipayload_202207) + libgfxinit (high-res) to boot:
46     - slackware64 (Linux 5.15)
47     - Windows 10 (22H2)
48 - External in-circuit flashing with flashrom-1.2 and a Raspberry Pi 1
49 - Poweroff
50 - Resume from S3
51 - Console output on the serial port
53 ### Not working
55 - Automatic fan control. One can still use OS-based fan control programs,
56   such as fancontrol on Linux or SpeedFan on Windows.
57 - Windows 10 booted from SeaBIOS + libgfxinit (high-res). The installation
58   works, but once Windows Update installs drivers, it crashes and enters a
59   bootloop.
61 ### Untested
63 - Firewire (LSI L-FW3227-100)
64 - EHCI debug
65 - S/PDIF audio
66 - Audio jacks other than the green one
68 ## Flashing coreboot
70 ```{eval-rst}
71 +---------------------+------------+
72 | Type                | Value      |
73 +=====================+============+
74 | Socketed flash      | no         |
75 +---------------------+------------+
76 | Model               | W25Q64.V   |
77 +---------------------+------------+
78 | Size                | 8 MiB      |
79 +---------------------+------------+
80 | Package             | SOIC-8     |
81 +---------------------+------------+
82 | Write protection    | yes        |
83 +---------------------+------------+
84 | Dual BIOS feature   | no         |
85 +---------------------+------------+
86 | Internal flashing   | see below  |
87 +---------------------+------------+
88 | In circuit flashing | see below  |
89 +---------------------+------------+
90 ```
92 The flash is divided into the following regions, as obtained with
93 `ifdtool -f rom.layout backup.rom`:
95     00000000:00000fff fd
96     00580000:007fffff bios
97     00003000:0057ffff me
98     00001000:00002fff gbe
100 Unfortunately the SPI interface to the chip is locked down by the vendor
101 firmware. The BIOS Lock Enable (BLE) bit of the `BIOS_CNTL` register, part of
102 the PCI configuration space of the LPC Interface Bridge, is set.
104 It is possible to program the chip is to attach an external programmer
105 with an SOIC-8 clip.
107 ```{eval-rst}
108 Another way is to boot the vendor firmware in UEFI mode and exploit the
109 unpatched S3 Boot Script vulnerability. See this page for a similar procedure:
110 :doc:`../lenovo/ivb_internal_flashing`.
113 On this specific board it is possible to prevent the BLE bit from being set
114 when it resumes from S3. One entry in the S3 Boot Script must be modified,
115 e.g. with a patched version of [CHIPSEC](https://github.com/chipsec/chipsec)
116 that supports this specific type of S3 Boot Script, for example from strobo5:
118     $ git clone -b headerless https://github.com/strobo5/chipsec.git
119     $ cd chipsec
120     $ python setup.py build_ext -i
121     $ sudo python chipsec_main.py -m tools.uefi.s3script_modify -a replace_op,mmio_wr,0xe00f80dc,0x00,1
123 The boot script contains an entry that writes 0x02 to memory at address
124 0xe00f80dc. This address points at the PCIe configuration register at offset
125 0xdc for the PCIe device 0:1f.0, which is the BIOS Control Register of the LPC
126 Interface Bridge [0][1]. The value 0x02 sets the BLE bit, and the modification
127 prevents this by making it write a 0 instead.
129 ```{eval-rst}
130 After suspending and resuming the board, the BIOS region can be flashed with
131 a coreboot image, e.g. using flashrom. Note that the ME region is not readable,
132 so the `--noverify-all` flag is necessary. Please refer to the
133 :doc:`../../tutorial/flashing_firmware/index`.
136 ## Hardware monitoring and fan control
138 Currently there is no automatic, OS-independent fan control.
140 ## Serial port header
142 Serial port 1, provided by the Super I/O, is exposed on a pin header. The
143 RS-232 signals are assigned to the header so that its pin numbers map directly
144 to the pin numbers of a DE-9 connector. If your serial port doesn't seem to
145 work, check if your bracket expects a different assignment.
147 Here is a top view of the serial port header found on this board:
149                  +---+---+
150              N/C |   | 9 | RI  -> pin 9
151                  +---+---+
152     Pin 8 <- CTS | 8 | 7 | RTS -> pin 7
153                  +---+---+
154     Pin 6 <- DSR | 6 | 5 | GND -> pin 5
155                  +---+---+
156     Pin 4 <- DTR | 4 | 3 | TxD -> pin 3
157                  +---+---+
158     Pin 2 <- RxD | 2 | 1 | DCD -> pin 1
159                  +---+---+
161 ## References
163 [0]: Intel 6 Series Chipset and Intel C200 Series Chipset Datasheet,
164 May 2011,
165 Document number 324645-006
167 [1]: Accessing PCI Express Configuration Registers Using Intel Chipsets,
168 December 2008,
169 Document number 321090