coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
romstage.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#include <
northbridge/intel/haswell/haswell.h
>
4
#include <
northbridge/intel/haswell/raminit.h
>
5
#include <
southbridge/intel/lynxpoint/pch.h
>
6
7
void
mainboard_config_rcba
(
void
)
8
{
9
/*
10
* GFX INTA -> PIRQA (MSI)
11
* D28IP_P1IP WLAN INTA -> PIRQB
12
* D28IP_P4IP ETH0 INTB -> PIRQC
13
* D29IP_E1P EHCI1 INTA -> PIRQD
14
* D26IP_E2P EHCI2 INTA -> PIRQE
15
* D31IP_SIP SATA INTA -> PIRQF (MSI)
16
* D31IP_SMIP SMBUS INTB -> PIRQG
17
* D31IP_TTIP THRT INTC -> PIRQH
18
* D27IP_ZIP HDA INTA -> PIRQG (MSI)
19
*/
20
21
/* Device interrupt pin register (board specific) */
22
RCBA32
(
D31IP
) = (
INTC
<<
D31IP_TTIP
) | (
NOINT
<<
D31IP_SIP2
) |
23
(
INTB
<<
D31IP_SMIP
) | (
INTA
<<
D31IP_SIP
);
24
RCBA32
(
D30IP
) = (
NOINT
<<
D30IP_PIP
);
25
RCBA32
(
D29IP
) = (
INTA
<<
D29IP_E1P
);
26
RCBA32
(
D28IP
) = (
INTA
<<
D28IP_P1IP
) | (
INTC
<<
D28IP_P3IP
) |
27
(
INTB
<<
D28IP_P4IP
);
28
RCBA32
(
D27IP
) = (
INTA
<<
D27IP_ZIP
);
29
RCBA32
(
D26IP
) = (
INTA
<<
D26IP_E2P
);
30
RCBA32
(
D25IP
) = (
NOINT
<<
D25IP_LIP
);
31
RCBA32
(
D22IP
) = (
NOINT
<<
D22IP_MEI1IP
);
32
33
/* Device interrupt route registers */
34
RCBA16
(
D31IR
) =
DIR_ROUTE
(
PIRQF
,
PIRQG
,
PIRQH
,
PIRQA
);
35
RCBA16
(
D29IR
) =
DIR_ROUTE
(
PIRQD
,
PIRQE
,
PIRQF
,
PIRQG
);
36
RCBA16
(
D28IR
) =
DIR_ROUTE
(
PIRQB
,
PIRQC
,
PIRQD
,
PIRQE
);
37
RCBA16
(
D27IR
) =
DIR_ROUTE
(
PIRQG
,
PIRQH
,
PIRQA
,
PIRQB
);
38
RCBA16
(
D26IR
) =
DIR_ROUTE
(
PIRQE
,
PIRQF
,
PIRQG
,
PIRQH
);
39
RCBA16
(
D25IR
) =
DIR_ROUTE
(
PIRQA
,
PIRQB
,
PIRQC
,
PIRQD
);
40
RCBA16
(
D22IR
) =
DIR_ROUTE
(
PIRQA
,
PIRQB
,
PIRQC
,
PIRQD
);
41
}
42
43
void
mb_get_spd_map
(
struct
spd_info
*spdi)
44
{
45
spdi->
addresses
[0] = 0x50;
46
spdi->
addresses
[1] = 0x51;
47
spdi->
addresses
[2] = 0x52;
48
spdi->
addresses
[3] = 0x53;
49
}
50
51
const
struct
usb2_port_config
mainboard_usb2_ports
[
MAX_USB2_PORTS
] = {
52
/* Length, Enable, OCn#, Location */
53
{ 0x0040, 1, 0,
/* P0: Back USB3 port (OC0) */
54
USB_PORT_BACK_PANEL
},
55
{ 0x0040, 1, 0,
/* P1: Back USB3 port (OC0) */
56
USB_PORT_BACK_PANEL
},
57
{ 0x0040, 1, 1,
/* P2: Flex Port on bottom (OC1) */
58
USB_PORT_FLEX
},
59
{ 0x0040, 1,
USB_OC_PIN_SKIP
,
/* P3: Dock connector */
60
USB_PORT_DOCK
},
61
{ 0x0040, 1,
USB_OC_PIN_SKIP
,
/* P4: Mini PCIE */
62
USB_PORT_MINI_PCIE
},
63
{ 0x0040, 1, 1,
/* P5: USB eSATA header (OC1) */
64
USB_PORT_FLEX
},
65
{ 0x0040, 1, 3,
/* P6: Front Header J8H2 (OC3) */
66
USB_PORT_FRONT_PANEL
},
67
{ 0x0040, 1, 3,
/* P7: Front Header J8H2 (OC3) */
68
USB_PORT_FRONT_PANEL
},
69
{ 0x0040, 1, 4,
/* P8: USB/LAN Jack (OC4) */
70
USB_PORT_FRONT_PANEL
},
71
{ 0x0040, 1, 4,
/* P9: USB/LAN Jack (OC4) */
72
USB_PORT_FRONT_PANEL
},
73
{ 0x0040, 1, 5,
/* P10: Front Header J7H3 (OC5) */
74
USB_PORT_FRONT_PANEL
},
75
{ 0x0040, 1, 5,
/* P11: Front Header J7H3 (OC5) */
76
USB_PORT_FRONT_PANEL
},
77
{ 0x0040, 1, 6,
/* P12: USB/DP Jack (OC6) */
78
USB_PORT_FRONT_PANEL
},
79
{ 0x0040, 1, 6,
/* P13: USB/DP Jack (OC6) */
80
USB_PORT_FRONT_PANEL
},
81
};
82
83
const
struct
usb3_port_config
mainboard_usb3_ports
[
MAX_USB3_PORTS
] = {
84
/* Enable, OCn# */
85
{ 1, 0 },
/* P1; */
86
{ 1, 0 },
/* P2; */
87
{ 1, 0 },
/* P3; */
88
{ 1, 0 },
/* P4; */
89
{ 1, 0 },
/* P6; */
90
{ 1, 0 },
/* P6; */
91
};
PIRQH
#define PIRQH
Definition:
irq.h:101
PIRQC
#define PIRQC
Definition:
irq.h:96
PIRQA
#define PIRQA
Definition:
irq.h:94
PIRQD
#define PIRQD
Definition:
irq.h:97
PIRQB
#define PIRQB
Definition:
irq.h:95
PIRQF
#define PIRQF
Definition:
irq.h:99
PIRQE
#define PIRQE
Definition:
irq.h:98
PIRQG
#define PIRQG
Definition:
irq.h:100
raminit.h
mainboard_usb3_ports
const struct usb3_port_config mainboard_usb3_ports[MAX_USB3_PORTS]
Definition:
romstage.c:45
mainboard_config_rcba
void mainboard_config_rcba(void)
Definition:
romstage.c:7
mb_get_spd_map
void mb_get_spd_map(struct spd_info *spdi)
Definition:
romstage.c:19
mainboard_usb2_ports
const struct usb2_port_config mainboard_usb2_ports[MAX_USB2_PORTS]
Definition:
romstage.c:27
haswell.h
USB_OC_PIN_SKIP
#define USB_OC_PIN_SKIP
Definition:
pei_data.h:27
MAX_USB3_PORTS
#define MAX_USB3_PORTS
Definition:
pei_data.h:26
USB_PORT_BACK_PANEL
@ USB_PORT_BACK_PANEL
Definition:
pei_data.h:30
USB_PORT_DOCK
@ USB_PORT_DOCK
Definition:
pei_data.h:32
USB_PORT_FLEX
@ USB_PORT_FLEX
Definition:
pei_data.h:34
USB_PORT_FRONT_PANEL
@ USB_PORT_FRONT_PANEL
Definition:
pei_data.h:31
USB_PORT_MINI_PCIE
@ USB_PORT_MINI_PCIE
Definition:
pei_data.h:33
MAX_USB2_PORTS
#define MAX_USB2_PORTS
Definition:
pei_data.h:25
D28IP_P3IP
#define D28IP_P3IP
Definition:
rcba.h:71
D31IP_TTIP
#define D31IP_TTIP
Definition:
rcba.h:57
D25IP
#define D25IP
Definition:
rcba.h:78
D31IR
#define D31IR
Definition:
rcba.h:87
D22IP
#define D22IP
Definition:
rcba.h:80
D26IR
#define D26IR
Definition:
rcba.h:92
D31IP_SMIP
#define D31IP_SMIP
Definition:
rcba.h:59
D28IR
#define D28IR
Definition:
rcba.h:90
INTA
#define INTA
Definition:
rcba.h:21
D26IP_E2P
#define D26IP_E2P
Definition:
rcba.h:77
D31IP
#define D31IP
Definition:
rcba.h:56
D31IP_SIP2
#define D31IP_SIP2
Definition:
rcba.h:58
D30IP_PIP
#define D30IP_PIP
Definition:
rcba.h:62
D22IR
#define D22IR
Definition:
rcba.h:95
D29IP
#define D29IP
Definition:
rcba.h:63
D25IR
#define D25IR
Definition:
rcba.h:93
DIR_ROUTE
#define DIR_ROUTE(a, b, c, d)
Definition:
rcba.h:116
D29IR
#define D29IR
Definition:
rcba.h:89
D25IP_LIP
#define D25IP_LIP
Definition:
rcba.h:79
D27IP
#define D27IP
Definition:
rcba.h:74
D27IP_ZIP
#define D27IP_ZIP
Definition:
rcba.h:75
D27IR
#define D27IR
Definition:
rcba.h:91
NOINT
#define NOINT
Definition:
rcba.h:20
D28IP_P4IP
#define D28IP_P4IP
Definition:
rcba.h:70
D30IP
#define D30IP
Definition:
rcba.h:61
INTC
#define INTC
Definition:
rcba.h:23
D26IP
#define D26IP
Definition:
rcba.h:76
D28IP_P1IP
#define D28IP_P1IP
Definition:
rcba.h:73
D29IP_E1P
#define D29IP_E1P
Definition:
rcba.h:64
D28IP
#define D28IP
Definition:
rcba.h:65
D31IP_SIP
#define D31IP_SIP
Definition:
rcba.h:60
INTB
#define INTB
Definition:
rcba.h:22
D22IP_MEI1IP
#define D22IP_MEI1IP
Definition:
rcba.h:84
RCBA16
#define RCBA16(x)
Definition:
rcba.h:13
RCBA32
#define RCBA32(x)
Definition:
rcba.h:14
pch.h
spd_info
Definition:
spd.h:11
spd_info::addresses
uint8_t addresses[4]
Definition:
raminit.h:11
usb2_port_config
Definition:
usb.h:27
usb3_port_config
Definition:
usb.h:130
src
mainboard
intel
baskingridge
romstage.c
Generated by
1.9.1