blob: 6679cdb31be09f99a9abd06401617cb86452a0ee [file] [log] [blame]
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2017 Lubomir Rintel <lkundrak@v3.sk>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <device/pci_ops.h>
#if CONFIG_ROM_SIZE == 0x80000
# define ROM_DECODE_MAP 0x00
#elif CONFIG_ROM_SIZE == 0x100000
# define ROM_DECODE_MAP 0x40
#elif CONFIG_ROM_SIZE == 0x180000
# define ROM_DECODE_MAP 0x60
#elif CONFIG_ROM_SIZE == 0x200000
# define ROM_DECODE_MAP 0x70
#elif CONFIG_ROM_SIZE == 0x280000
# define ROM_DECODE_MAP 0x78
#elif CONFIG_ROM_SIZE == 0x300000
# define ROM_DECODE_MAP 0x7c
#elif CONFIG_ROM_SIZE == 0x380000
# define ROM_DECODE_MAP 0x7e
#elif CONFIG_ROM_SIZE == 0x400000
# define ROM_DECODE_MAP 0x7f
#else
# error "Bad CONFIG_ROM_SIZE"
#endif
static void bootblock_northbridge_init(void)
{
u8 reg;
pci_io_read_config8(PCI_DEV(0, 0x11, 0), 0x41);
reg |= ROM_DECODE_MAP;
pci_io_write_config8(PCI_DEV(0, 0x11, 0), 0x41, reg);
}