iPXE
include
ipxe
spcr.h
Go to the documentation of this file.
1
#ifndef _IPXE_SPCR_H
2
#define _IPXE_SPCR_H
3
4
/** @file
5
*
6
* ACPI Serial Port Console Redirection (SPCR)
7
*
8
*/
9
10
FILE_LICENCE
( GPL2_OR_LATER_OR_UBDL );
11
12
#include <
stdint.h
>
13
#include <
ipxe/acpi.h
>
14
15
/** Serial Port Console Redirection table signature */
16
#define SPCR_SIGNATURE ACPI_SIGNATURE ( 'S', 'P', 'C', 'R' )
17
18
/** A Serial Port Console Redirection table */
19
struct
spcr_table
{
20
/** ACPI header */
21
struct
acpi_header
acpi
;
22
/** Interface type */
23
uint8_t
type
;
24
/** Reserved */
25
uint8_t
reserved_a
[3];
26
/** Base address */
27
struct
acpi_address
base
;
28
/** Reserved */
29
uint8_t
reserved_b
[6];
30
/** Baud rate
31
*
32
* 0: leave unchanged
33
* 1: 2400 = 115200 / 48 (not defined in standard)
34
* 2: 4800 = 115200 / 24 (not defined in standard)
35
* 3: 9600 = 115200 / 12
36
* 4: 19200 = 115200 / 6
37
* 5: 38400 = 115200 / 3 (not defined in standard)
38
* 6: 57600 = 115200 / 2
39
* 7: 115200 = 115200 / 1
40
*/
41
uint8_t
baud
;
42
/** Parity */
43
uint8_t
parity
;
44
/** Stop bits */
45
uint8_t
stop
;
46
/** Flow control */
47
uint8_t
flow
;
48
/** Terminal type */
49
uint8_t
terminal
;
50
/** Language */
51
uint8_t
lang
;
52
/** PCI device ID */
53
uint16_t
pci_device_id
;
54
/** PCI vendor ID */
55
uint16_t
pci_vendor_id
;
56
/** PCI bus number */
57
uint8_t
pci_bus
;
58
/** PCI device number */
59
uint8_t
pci_dev
;
60
/** PCI function number */
61
uint8_t
pci_func
;
62
/** Reserved */
63
uint8_t
reserved_c
[4];
64
/** PCI segment */
65
uint8_t
pci_segment
;
66
/** Clock frequency */
67
uint32_t
clock
;
68
/** Precise baud rate */
69
uint32_t
precise
;
70
/** Reserved */
71
uint8_t
reserved_d
[4];
72
}
__attribute__
(( packed ));
73
74
/* SPCR interface types */
75
#define SPCR_TYPE_16550 0x0000
/**< 16550-compatible */
76
#define SPCR_TYPE_16450 0x0001
/**< 16450-compatible */
77
#define SPCR_TYPE_16550_GAS 0x0012
/**< 16550-compatible */
78
79
/** SPCR baud rates */
80
enum
spcr_baud
{
81
SPCR_BAUD_2400
= 1,
82
SPCR_BAUD_4800
= 2,
83
SPCR_BAUD_9600
= 3,
84
SPCR_BAUD_19200
= 4,
85
SPCR_BAUD_38400
= 5,
86
SPCR_BAUD_57600
= 6,
87
SPCR_BAUD_115200
= 7,
88
SPCR_BAUD_MAX
89
};
90
91
#endif
/* _IPXE_SPCR_H */
spcr_baud
spcr_baud
SPCR baud rates.
Definition:
spcr.h:80
__attribute__
#define __attribute__(x)
Definition:
compiler.h:10
SPCR_BAUD_38400
Definition:
spcr.h:85
uint16_t
unsigned short uint16_t
Definition:
stdint.h:11
spcr_table::lang
uint8_t lang
Language.
Definition:
spcr.h:51
spcr_table::flow
uint8_t flow
Flow control.
Definition:
spcr.h:47
spcr_table::pci_device_id
uint16_t pci_device_id
PCI device ID.
Definition:
spcr.h:53
SPCR_BAUD_4800
Definition:
spcr.h:82
spcr_table::pci_vendor_id
uint16_t pci_vendor_id
PCI vendor ID.
Definition:
spcr.h:55
spcr_table::reserved_d
uint8_t reserved_d[4]
Reserved.
Definition:
spcr.h:71
spcr_table
A Serial Port Console Redirection table.
Definition:
spcr.h:19
SPCR_BAUD_57600
Definition:
spcr.h:86
SPCR_BAUD_MAX
Definition:
spcr.h:88
spcr_table::reserved_c
uint8_t reserved_c[4]
Reserved.
Definition:
spcr.h:63
SPCR_BAUD_115200
Definition:
spcr.h:87
SPCR_BAUD_19200
Definition:
spcr.h:84
spcr_table::parity
uint8_t parity
Parity.
Definition:
spcr.h:43
spcr_table::precise
uint32_t precise
Precise baud rate.
Definition:
spcr.h:69
spcr_table::pci_segment
uint8_t pci_segment
PCI segment.
Definition:
spcr.h:65
SPCR_BAUD_9600
Definition:
spcr.h:83
spcr_table::stop
uint8_t stop
Stop bits.
Definition:
spcr.h:45
spcr_table::reserved_a
uint8_t reserved_a[3]
Reserved.
Definition:
spcr.h:25
SPCR_BAUD_2400
Definition:
spcr.h:81
acpi.h
ACPI data structures.
spcr_table::clock
uint32_t clock
Clock frequency.
Definition:
spcr.h:67
spcr_table::type
uint8_t type
Interface type.
Definition:
spcr.h:23
spcr_table::terminal
uint8_t terminal
Terminal type.
Definition:
spcr.h:49
spcr_table::acpi
struct acpi_header acpi
ACPI header.
Definition:
spcr.h:21
uint8_t
unsigned char uint8_t
Definition:
stdint.h:10
spcr_table::base
struct acpi_address base
Base address.
Definition:
spcr.h:27
spcr_table::pci_func
uint8_t pci_func
PCI function number.
Definition:
spcr.h:61
acpi_header
An ACPI description header.
Definition:
acpi.h:179
uint32_t
unsigned int uint32_t
Definition:
stdint.h:12
spcr_table::pci_bus
uint8_t pci_bus
PCI bus number.
Definition:
spcr.h:57
spcr_table::pci_dev
uint8_t pci_dev
PCI device number.
Definition:
spcr.h:59
spcr_table::reserved_b
uint8_t reserved_b[6]
Reserved.
Definition:
spcr.h:29
spcr_table::baud
uint8_t baud
Baud rate.
Definition:
spcr.h:41
acpi_address
An ACPI generic address structure.
Definition:
acpi.h:22
stdint.h
FILE_LICENCE
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
Generated by
1.8.15