blob: 552e6645e781cd04c080ad3013e172f8d45edeaa [file] [log] [blame]
Angel Pons09481b12020-04-03 01:21:13 +02001/* SPDX-License-Identifier: GPL-2.0-only */
2/* This file is part of the coreboot project. */
Iru Cai928c6c62017-06-15 18:18:51 +08003
Arthur Heymansfa5d0f82019-11-12 19:11:50 +01004#include <bootblock_common.h>
Kyösti Mälkki3855c012019-03-03 08:45:19 +02005#include <device/pnp_ops.h>
Elyes HAOUAS4ad14462018-06-16 18:29:33 +02006#include <northbridge/intel/sandybridge/raminit_native.h>
Patrick Rudolphda9302a2019-03-24 17:01:41 +01007#include <southbridge/intel/bd82x6x/pch.h>
Iru Cai928c6c62017-06-15 18:18:51 +08008#include <superio/nuvoton/nct6776/nct6776.h>
9#include <superio/nuvoton/common/nuvoton.h>
10
11#define SERIAL_DEV PNP_DEV(0x2e, NCT6776_SP1)
12
Iru Cai928c6c62017-06-15 18:18:51 +080013const struct southbridge_usb_port mainboard_usb_ports[] = {
14 { 1, 0, 0 },
15 { 1, 0, 0 },
16 { 1, 1, 1 },
17 { 1, 1, 1 },
18 { 1, 1, 2 },
19 { 1, 1, 2 },
20 { 1, 0, 3 },
21 { 1, 0, 3 },
22 { 1, 0, 4 },
23 { 1, 0, 4 },
24 { 1, 0, 6 },
25 { 1, 1, 5 },
26 { 1, 1, 5 },
27 { 1, 0, 6 },
28};
29
Arthur Heymansfa5d0f82019-11-12 19:11:50 +010030void bootblock_mainboard_early_init(void)
Iru Cai928c6c62017-06-15 18:18:51 +080031{
32 /* Set GPIOs on superio, enable UART */
33 nuvoton_pnp_enter_conf_state(SERIAL_DEV);
34 pnp_set_logical_device(SERIAL_DEV);
35
36 pnp_write_config(SERIAL_DEV, 0x1c, 0x80);
37 pnp_write_config(SERIAL_DEV, 0x27, 0x80);
38 pnp_write_config(SERIAL_DEV, 0x2a, 0x60);
39
40 nuvoton_pnp_exit_conf_state(SERIAL_DEV);
41
42 nuvoton_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE);
43}
44
45void mainboard_get_spd(spd_raw_data *spd, bool id_only)
46{
47 read_spd(&spd[0], 0x50, id_only);
48 read_spd(&spd[1], 0x51, id_only);
49 read_spd(&spd[2], 0x52, id_only);
50 read_spd(&spd[3], 0x53, id_only);
51}