Serial is the most supported console with reguard to software, it is supported in coreboot,seabios,serialice,ipxe,memtest etc...

+

+

Unfortunately it's not available on every hardware anymore, some recent devices like the Lenovo X201 or the Chromebook pixel lack a serial port.

+

+

= Supported Serial Ports controllers =

== SuperI/O with integrated UARTs ==

== SuperI/O with integrated UARTs ==

Line 12:

Line 17:

USB to serial converters are not supported by coreboot at this time.

USB to serial converters are not supported by coreboot at this time.

−

= Enabling Serial Console =

= Enabling Serial Console =

Line 96:

Line 100:

= Hardware pinouts =

= Hardware pinouts =

−

=== de9 ===

+

=== Requirements ===

+

{| class="wikitable" border="1"

+

! Pin

+

! Required for

+

|-

+

| Mainboard TX -> Your development laptop RX

+

|

+

* Getting the mainboard's coreboot logs in real time.

+

|-

+

| Mainboard RX <- Your development laptop TX

+

|

+

* gdb in coreboot(Also requires Mainboard TX)

+

* Interacting with payloads, and what run after them, trough the serial console.

+

|-

+

|}

+

+

=== DE-9 ===

{| class="wikitable" border="1"

{| class="wikitable" border="1"

!Pin

!Pin

Line 131:

Line 151:

|}

|}

−

=== standard 10 pins PC mainboard connector ===

+

=== Standard 10 pins PC header ===

{| class="wikitable" border="1"

{| class="wikitable" border="1"

!Pin

!Pin

Line 140:

Line 160:

|-

|-

|2

|2

−

|

+

|DSR

|-

|-

|3

|3

−

|

+

|RXD

|-

|-

|4

|4

−

|

+

|RTS

|-

|-

|5

|5

−

|

+

|TXD

|-

|-

|6

|6

−

|

+

|CTS

|-

|-

|7

|7

−

|

+

|DTR

|-

|-

|8

|8

−

|

+

|RI

|-

|-

|9

|9

−

|

+

|GND

|-

|-

|10

|10

Line 167:

Line 187:

|-

|-

|}

|}

−

=== non-standard "intel" 10 pins PC mainboard connector ===

+

+

=== Non-standard "intel configuration" 10 pins header ===

{| class="wikitable" border="1"

{| class="wikitable" border="1"

!Pin

!Pin

Line 173:

Line 194:

|-

|-

|1

|1

−

|DCD

+

|

|-

|-

|2

|2

−

|

+

|TX

|-

|-

|3

|3

−

|

+

|RX

|-

|-

|4

|4

Line 185:

Line 206:

|-

|-

|5

|5

−

|

+

|GND

|-

|-

|6

|6

Line 204:

Line 225:

|}

|}

−

= Notes =

+

=== Tricks ===

−

While serial is the most supported console(support in coreboot,seabios,serialice,ipxe,memtest etc...) it's not available on every hardware anymore, some recent devices like the Lenovo X201 or the Chromebook pixel lack a serial port...

+

* If you short RX and TX pins, what you send to the serial port, will be sent back. That is very usefull for debugging and finding the right pins.

+

* ground is easy to find since it's connected to ground, a multimeter can find it easily trough "beeping".

+

* If you lack a multimeter and that you want to know if 2 pins are connected, for finding the serial port's ground pin for instance, assuming you already found RX and TX, you could connect RX and TX to the pins you want to checks, and then send some data trough the serial port, if you read it back, then the pins are connected together. Warning, don't do that with voltages that are not in then range of voltages of your serial port.

Notes

Serial is the most supported console with reguard to software, it is supported in coreboot,seabios,serialice,ipxe,memtest etc...

Unfortunately it's not available on every hardware anymore, some recent devices like the Lenovo X201 or the Chromebook pixel lack a serial port.

Supported Serial Ports controllers

SuperI/O with integrated UARTs

coreboot supports a variety of SuperI/O chips with UART functionality. If your mainboard has a serial port built-in, you can use it with no or minimal changes.

PCIe/Mini PCIe based serial cards

Experimental coreboot and libpayload support is available for the StarTech MPEX2S952 card. Those cards are available at Amazon for around 60 USD. In order to use the card for romstage debugging, minimal setup of the PCIe bridge and the MPEX2S952 have to be added to romstage.c, otherwise the card is only available after the resource allocator has been running.

USB to Serial Converters

USB to serial converters are not supported by coreboot at this time.

Enabling Serial Console

In order to get serial console output from various components of your system special options may be needed. This page tries to give a short description of how to use these options.

coreboot

In coreboot you have to set up serial console support during configuration. Enable Console--> Serial port console output.
You will be able to choose the UART and baud rate settings in the same menu.

Linux kernel command line

if you use grub2 you can add it to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub

Then regenrate the grub config:
For debian, ubuntu, trisquel:

sudo update-grub2

for arch, parabola:

grub-mkconfig -o /boot/grub/grub.cfg

Linux login prompt

In /etc/inittab add/enable a line like this:

T0:23:respawn:/sbin/getty -L ttyS0115200 vt100

Change ttyS0 to ttyS1 for COM2.

ubuntu, trisquel based

Create a file called /etc/init/ttyS0.conf containing the following:

# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.
start on stopped rc or RUNLEVEL=[2345]
stop on runlevel [!2345]
respawn
exec /sbin/getty -L 115200 ttyS0 vt102

Then do

sudo start ttyS0

Hardware pinouts

Requirements

Pin

Required for

Mainboard TX -> Your development laptop RX

Getting the mainboard's coreboot logs in real time.

Mainboard RX <- Your development laptop TX

gdb in coreboot(Also requires Mainboard TX)

Interacting with payloads, and what run after them, trough the serial console.

DE-9

Pin

Function

1

DCD

2

RX

3

TX

4

DTR

5

GND

6

DSR

7

RTS

8

CTS

9

RI

Standard 10 pins PC header

Pin

Function

1

DCD

2

DSR

3

RXD

4

RTS

5

TXD

6

CTS

7

DTR

8

RI

9

GND

10

NC

Non-standard "intel configuration" 10 pins header

Pin

Function

1

2

TX

3

RX

4

5

GND

6

7

8

9

10

NC

Tricks

If you short RX and TX pins, what you send to the serial port, will be sent back. That is very usefull for debugging and finding the right pins.

ground is easy to find since it's connected to ground, a multimeter can find it easily trough "beeping".

If you lack a multimeter and that you want to know if 2 pins are connected, for finding the serial port's ground pin for instance, assuming you already found RX and TX, you could connect RX and TX to the pins you want to checks, and then send some data trough the serial port, if you read it back, then the pins are connected together. Warning, don't do that with voltages that are not in then range of voltages of your serial port.