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  */
18 {
19  u16 port = dev >> 8;
20 
21  printk(BIOS_DEBUG, "Using port: %04x\n", port);
23  printk(BIOS_DEBUG, "disable serial 1\n");
24 
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);
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 
48  pnp_set_enable(PNP_DEV(port, 0x4), 0);
50 
55  pnp_set_enable(PNP_DEV(port, 0x5), 0);
57 
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);
67 
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);
77 
82  pnp_set_enable(PNP_DEV(port, 0x7), 0);
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 }
#define printk(level,...)
Definition: stdlib.h:16
port
Definition: i915.h:29
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
Definition: loglevel.h:128
static void pnp_enter_ext_func_mode(pnp_devfn_t dev)
Definition: early_init.c:52
static void pnp_exit_ext_func_mode(pnp_devfn_t dev)
Definition: early_init.c:58
#define PNP_IDX_IO2
Definition: pnp_def.h:7
#define PNP_IDX_IO3
Definition: pnp_def.h:8
#define PNP_IDX_IO0
Definition: pnp_def.h:5
#define PNP_IDX_IO1
Definition: pnp_def.h:6
#define PNP_IDX_IRQ0
Definition: pnp_def.h:10
void pnp_set_irq(struct device *dev, u8 index, u8 irq)
Definition: pnp_device.c:100
void pnp_set_logical_device(struct device *dev)
Definition: pnp_device.c:59
void pnp_set_enable(struct device *dev, int enable)
Definition: pnp_device.c:64
void pnp_set_drq(struct device *dev, u8 index, u8 drq)
Definition: pnp_device.c:106
void pnp_set_iobase(struct device *dev, u8 index, u16 iobase)
Definition: pnp_device.c:93
#define PNP_DEV(PORT, FUNC)
Definition: pnp_type.h:10
u32 pnp_devfn_t
Definition: pnp_type.h:8
void pilot_disable_serial(pnp_devfn_t dev)
Definition: early_serial.c:33
uint16_t u16
Definition: stdint.h:48
void pilot_early_init(pnp_devfn_t dev)
Definition: early_init.c:17