blob: 2c722c82b83bb689453bc7199e6344dc1cc0253a [file] [log] [blame]
Uwe Hermann42b1c432010-12-09 18:09:14 +00001/*
2 * This file is part of the coreboot project.
3 *
4 * Copyright (C) 2003 Linux Networx
5 * (Written by Eric Biederman <ebiederman@lnxi.com> for Linux Networx)
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; version 2 of the License.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
Uwe Hermann42b1c432010-12-09 18:09:14 +000015 */
16
17#include <stdint.h>
18#include <arch/io.h>
Uwe Hermann42b1c432010-12-09 18:09:14 +000019#include <device/pci_ids.h>
20
21/* Enable 5MB ROM access at 0xFFB00000 - 0xFFFFFFFF. */
22static void amd8111_enable_rom(void)
23{
24 u8 byte;
Edward O'Callaghan9a817ef2014-10-26 10:12:15 +110025 pci_devfn_t dev;
Uwe Hermann42b1c432010-12-09 18:09:14 +000026
27 dev = pci_io_locate_device(PCI_ID(PCI_VENDOR_ID_AMD,
28 PCI_DEVICE_ID_AMD_8111_ISA), 0);
29
30 /* Note: The 0xFFFF0000 - 0xFFFFFFFF range is always enabled. */
31
32 /* Set the 5MB enable bits. */
33 byte = pci_io_read_config8(dev, 0x43);
34 byte |= (1 << 7); /* Enable 0xFFC00000-0xFFFFFFFF (4MB). */
35 byte |= (1 << 6); /* Enable 0xFFB00000-0xFFBFFFFF (1MB). */
36 pci_io_write_config8(dev, 0x43, byte);
37}
Patrick Georgi1bb68282009-12-31 12:56:53 +000038
Uwe Hermann1f7d3c52010-11-26 22:35:11 +000039static void bootblock_southbridge_init(void)
40{
Patrick Georgi1bb68282009-12-31 12:56:53 +000041 amd8111_enable_rom();
42}