blob: 09aef03dff7cb01b6ee8a57a2135a9a08229bb30 [file] [log] [blame]
Kerry Shehb9136ed82011-11-15 21:27:57 +08001/*
2 * This file is part of the coreboot project.
3 *
4 * Copyright (C) 2011 Advanced Micro Devices, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
Kerry Shehb9136ed82011-11-15 21:27:57 +080014 */
15
16#include <console/console.h>
17#include <device/device.h>
18#include <device/pci.h>
19#include <arch/io.h>
Kerry Shehb9136ed82011-11-15 21:27:57 +080020#include <cpu/x86/msr.h>
Kerry Shehb9136ed82011-11-15 21:27:57 +080021#include <device/pci_def.h>
Kimarie Hoot9ca4f512013-03-07 09:10:29 -070022#include <southbridge/amd/sb800/sb800.h>
23#include <cpu/amd/mtrr.h>
Kerry Shehb9136ed82011-11-15 21:27:57 +080024#include "SBPLATFORM.h" /* Platfrom Specific Definitions */
Kerry Shehb9136ed82011-11-15 21:27:57 +080025
26void set_pcie_reset(void);
27void set_pcie_dereset(void);
28
29/**
30 * TODO
31 * SB CIMx callback
32 */
33void set_pcie_reset(void)
34{
35}
36
37/**
38 * TODO
39 * mainboard specific SB CIMx callback
40 */
41void set_pcie_dereset(void)
42{
43}
44
Kerry Shehb9136ed82011-11-15 21:27:57 +080045
Jens Rottmann5e707662013-02-26 15:56:11 +010046/**********************************************
47 * Enable the dedicated functions of the board.
48 **********************************************/
Paul Menzel528640d2013-02-23 21:31:23 +010049static void mainboard_enable(device_t dev)
Kerry Shehb9136ed82011-11-15 21:27:57 +080050{
51 printk(BIOS_INFO, "Mainboard " CONFIG_MAINBOARD_PART_NUMBER " Enable.\n");
Kimarie Hoot9ca4f512013-03-07 09:10:29 -070052
53 /*
54 * Initialize ASF registers to an arbitrary address because someone
55 * long ago set things up this way inside the SPD read code. The
56 * SPD read code has been made generic and moved out of the board
57 * directory, so the ASF init is being done here.
58 */
59 pm_iowrite(0x29, 0x80);
60 pm_iowrite(0x28, 0x61);
Kerry Shehb9136ed82011-11-15 21:27:57 +080061}
62
Kerry Shehb9136ed82011-11-15 21:27:57 +080063struct chip_operations mainboard_ops = {
Paul Menzel528640d2013-02-23 21:31:23 +010064 .enable_dev = mainboard_enable,
Kerry Shehb9136ed82011-11-15 21:27:57 +080065};