coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
early_init.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later */
2
3
/* PILOT Super I/O is only based on LPC observation done on factory system. */
4
5
#define BLUBB_DEV PNP_DEV(port, 0x04)
6
7
#include <
device/pnp_ops.h
>
8
#include <
console/console.h
>
9
#include <
device/pnp.h
>
10
11
#include "
pilot.h
"
12
13
/*
14
* Logical device 4, 5 and 7 are being deactivated. Logical Device 1 seems to
15
* be another serial (?), it is also deactivated on the HP machine.
16
*/
17
void
pilot_early_init
(
pnp_devfn_t
dev)
18
{
19
u16
port
= dev >> 8;
20
21
printk
(
BIOS_DEBUG
,
"Using port: %04x\n"
,
port
);
22
pilot_disable_serial
(
PNP_DEV
(
port
, 0x1));
23
printk
(
BIOS_DEBUG
,
"disable serial 1\n"
);
24
25
pnp_enter_ext_func_mode
(dev);
26
pnp_set_logical_device
(
PNP_DEV
(
port
, 0x3));
27
pnp_set_enable
(dev, 0);
28
pnp_set_iobase
(dev,
PNP_IDX_IO0
, 0x0b00);
29
pnp_set_iobase
(dev,
PNP_IDX_IO1
, 0x0b80);
30
pnp_set_iobase
(dev,
PNP_IDX_IO2
, 0x0b84);
31
pnp_set_iobase
(dev,
PNP_IDX_IO3
, 0x0b86);
32
pnp_set_enable
(dev, 1);
33
pnp_exit_ext_func_mode
(dev);
34
35
/*
36
pnp_enter_ext_func_mode(dev);
37
pnp_set_logical_device(PNP_DEV(port, 0x3));
38
pnp_exit_ext_func_mode(dev);
39
pnp_enter_ext_func_mode(dev);
40
pnp_set_enable(PNP_DEV(port, 0x3), 0);
41
pnp_exit_ext_func_mode(dev);
42
*/
43
44
pnp_enter_ext_func_mode
(dev);
45
pnp_set_logical_device
(
PNP_DEV
(
port
, 0x4));
46
pnp_exit_ext_func_mode
(dev);
47
pnp_enter_ext_func_mode
(dev);
48
pnp_set_enable
(
PNP_DEV
(
port
, 0x4), 0);
49
pnp_exit_ext_func_mode
(dev);
50
51
pnp_enter_ext_func_mode
(dev);
52
pnp_set_logical_device
(
PNP_DEV
(
port
, 0x5));
53
pnp_exit_ext_func_mode
(dev);
54
pnp_enter_ext_func_mode
(dev);
55
pnp_set_enable
(
PNP_DEV
(
port
, 0x5), 0);
56
pnp_exit_ext_func_mode
(dev);
57
58
pnp_enter_ext_func_mode
(dev);
59
pnp_set_logical_device
(
PNP_DEV
(
port
, 0x6));
60
pnp_set_enable
(dev, 0);
61
pnp_set_iobase
(dev,
PNP_IDX_IO0
, 0x60);
62
pnp_set_iobase
(dev,
PNP_IDX_IO1
, 0x64);
63
pnp_set_irq
(dev,
PNP_IDX_IRQ0
, 1);
64
pnp_set_drq
(dev, 0x71, 3);
65
pnp_set_enable
(dev, 0);
66
pnp_exit_ext_func_mode
(dev);
67
68
pnp_enter_ext_func_mode
(dev);
69
pnp_set_logical_device
(
PNP_DEV
(
port
, 0xe));
70
pnp_set_enable
(dev, 0);
71
pnp_set_iobase
(dev,
PNP_IDX_IO0
, 0x70);
72
pnp_set_iobase
(dev,
PNP_IDX_IO1
, 0x72);
73
pnp_set_irq
(dev,
PNP_IDX_IRQ0
, 8);
74
pnp_set_drq
(dev, 0x71, 3);
75
pnp_set_enable
(dev, 0);
76
pnp_exit_ext_func_mode
(dev);
77
78
pnp_enter_ext_func_mode
(dev);
79
pnp_set_logical_device
(
PNP_DEV
(
port
, 0x7));
80
pnp_exit_ext_func_mode
(dev);
81
pnp_enter_ext_func_mode
(dev);
82
pnp_set_enable
(
PNP_DEV
(
port
, 0x7), 0);
83
pnp_exit_ext_func_mode
(dev);
84
85
/*
86
pnp_enter_ext_func_mode(dev);
87
pnp_set_logical_device(PNP_DEV(port, 0x8));
88
pnp_exit_ext_func_mode(dev);
89
pnp_enter_ext_func_mode(dev);
90
pnp_set_enable(PNP_DEV(port, 0x8), 0);
91
pnp_exit_ext_func_mode(dev);
92
93
pnp_enter_ext_func_mode(dev);
94
pnp_set_logical_device(PNP_DEV(port, 0x9));
95
pnp_exit_ext_func_mode(dev);
96
pnp_enter_ext_func_mode(dev);
97
pnp_set_enable(PNP_DEV(port, 0x9), 0);
98
pnp_exit_ext_func_mode(dev);
99
100
pnp_enter_ext_func_mode(dev);
101
pnp_set_logical_device(PNP_DEV(port, 0x10));
102
pnp_exit_ext_func_mode(dev);
103
pnp_enter_ext_func_mode(dev);
104
pnp_set_enable(PNP_DEV(port, 0x10), 0);
105
pnp_exit_ext_func_mode(dev);
106
*/
107
}
printk
#define printk(level,...)
Definition:
stdlib.h:16
console.h
port
port
Definition:
i915.h:29
BIOS_DEBUG
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
Definition:
loglevel.h:128
pnp_enter_ext_func_mode
static void pnp_enter_ext_func_mode(pnp_devfn_t dev)
Definition:
early_init.c:52
pnp_exit_ext_func_mode
static void pnp_exit_ext_func_mode(pnp_devfn_t dev)
Definition:
early_init.c:58
pilot.h
pnp.h
PNP_IDX_IO2
#define PNP_IDX_IO2
Definition:
pnp_def.h:7
PNP_IDX_IO3
#define PNP_IDX_IO3
Definition:
pnp_def.h:8
PNP_IDX_IO0
#define PNP_IDX_IO0
Definition:
pnp_def.h:5
PNP_IDX_IO1
#define PNP_IDX_IO1
Definition:
pnp_def.h:6
PNP_IDX_IRQ0
#define PNP_IDX_IRQ0
Definition:
pnp_def.h:10
pnp_set_irq
void pnp_set_irq(struct device *dev, u8 index, u8 irq)
Definition:
pnp_device.c:100
pnp_set_logical_device
void pnp_set_logical_device(struct device *dev)
Definition:
pnp_device.c:59
pnp_set_enable
void pnp_set_enable(struct device *dev, int enable)
Definition:
pnp_device.c:64
pnp_set_drq
void pnp_set_drq(struct device *dev, u8 index, u8 drq)
Definition:
pnp_device.c:106
pnp_set_iobase
void pnp_set_iobase(struct device *dev, u8 index, u16 iobase)
Definition:
pnp_device.c:93
pnp_ops.h
PNP_DEV
#define PNP_DEV(PORT, FUNC)
Definition:
pnp_type.h:10
pnp_devfn_t
u32 pnp_devfn_t
Definition:
pnp_type.h:8
pilot_disable_serial
void pilot_disable_serial(pnp_devfn_t dev)
Definition:
early_serial.c:33
u16
uint16_t u16
Definition:
stdint.h:48
pilot_early_init
void pilot_early_init(pnp_devfn_t dev)
Definition:
early_init.c:17
src
superio
serverengines
pilot
early_init.c
Generated by
1.9.1