blob: 8bf6f902ca4dd5a920702d6b02ffaf63e5e92b20 [file] [log] [blame]
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +01001/*
2 * This file is part of the coreboot project.
3 *
4 * Copyright (C) 2007-2009 coresystems GmbH
5 * Copyright (C) 2011 Sven Schnelle <svens@stackframe.org>
6 * Copyright (C) 2013 Vladimir Serbinenko <phcoder@gmail.com>
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as
10 * published by the Free Software Foundation; version 2 of
11 * the License.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +010017 */
18
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +010019#include <stdint.h>
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +010020#include <arch/io.h>
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +010021#include <ec/acpi/ec.h>
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +010022
Edward O'Callaghan77757c22015-01-04 21:33:39 +110023#include <southbridge/intel/ibexpeak/pch.h>
Angel Pons95de2312020-02-17 13:08:53 +010024#include <northbridge/intel/ironlake/ironlake.h>
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +010025
Arthur Heymans39f8a1a2019-10-02 17:13:02 +020026const struct southbridge_usb_port mainboard_usb_ports[] = {
27 /* Enabled, Current table lookup index, OC map */
28 { 1, IF1_557, 0 },
29 { 1, IF1_55F, 1 },
30 { 1, IF1_74B, 3 },
31 { 1, IF1_74B, 3 },
32 { 1, IF1_557, 3 },
33 { 1, IF1_14B, 3 },
34 { 1, IF1_74B, 3 },
35 { 1, IF1_74B, 3 },
36 { 1, IF1_74B, 4 },
37 { 1, IF1_74B, 5 },
38 { 1, IF1_55F, 7 },
39 { 1, IF1_55F, 7 },
40 { 1, IF1_557, 7 },
41 { 1, IF1_55F, 7 },
42};
43
Vladimir Serbinenko9817a372014-02-19 22:07:12 +010044static void set_fsb_frequency(void)
45{
46 u8 block[5];
47 u16 fsbfreq = 62879;
48 smbus_block_read(0x69, 0, 5, block);
49 block[0] = fsbfreq;
50 block[1] = fsbfreq >> 8;
51
52 smbus_block_write(0x69, 0, 5, block);
53}
54
Arthur Heymanscea4fd92019-10-03 08:54:35 +020055void mainboard_pre_raminit(void)
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +010056{
Vladimir Serbinenko9817a372014-02-19 22:07:12 +010057 set_fsb_frequency();
Arthur Heymanscea4fd92019-10-03 08:54:35 +020058}
Vladimir Serbinenko9817a372014-02-19 22:07:12 +010059
Arthur Heymanscea4fd92019-10-03 08:54:35 +020060void mainboard_get_spd_map(u8 *spd_addrmap)
61{
62 spd_addrmap[0] = 0x50;
63 spd_addrmap[2] = 0x51;
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +010064}