blob: cf91f1ea65a019bd1ad8d3c3d37e30451bc1335a [file] [log] [blame]
Angel Pons4b429832020-04-02 23:48:50 +02001/* SPDX-License-Identifier: GPL-2.0-only */
2/* This file is part of the coreboot project. */
Damien Zammit62477932015-05-03 21:34:38 +10003
Furquan Shaikh76cedd22020-05-02 10:24:23 -07004#include <acpi/acpigen.h>
5#include <acpi/acpi.h>
Damien Zammit62477932015-05-03 21:34:38 +10006#include <device/device.h>
Damien Zammit62477932015-05-03 21:34:38 +10007#include <northbridge/intel/pineview/pineview.h>
8#include <types.h>
9
10unsigned long acpi_fill_mcfg(unsigned long current)
11{
Damien Zammitf7060f12015-11-14 00:59:21 +110012 u32 length = 0;
Damien Zammit62477932015-05-03 21:34:38 +100013 u32 pciexbar = 0;
Damien Zammit62477932015-05-03 21:34:38 +100014 int max_buses;
Damien Zammit62477932015-05-03 21:34:38 +100015
Damien Zammitf7060f12015-11-14 00:59:21 +110016 if (!decode_pciebar(&pciexbar, &length))
Damien Zammit62477932015-05-03 21:34:38 +100017 return current;
18
Damien Zammitf7060f12015-11-14 00:59:21 +110019 max_buses = length >> 20;
Angel Pons39ff7032020-03-09 21:39:44 +010020 current += acpi_create_mcfg_mmconfig((acpi_mcfg_mmconfig_t *) current, pciexbar, 0, 0,
21 max_buses - 1);
Damien Zammit62477932015-05-03 21:34:38 +100022
23 return current;
24}