View | Details | Raw Unified | Return to bug 325995
Collapse All | Expand All

(-)a/arch/x86_64/pci/mmconfig.c (-4 / +9 lines)
Lines 13-19 Link Here
13
13
14
#include "pci.h"
14
#include "pci.h"
15
15
16
#define MMCONFIG_APER_SIZE (256*1024*1024)
16
/* aperture is up to 256MB but BIOS may reserve less */
17
#define MMCONFIG_APER_MIN	(2 * 1024*1024)
18
#define MMCONFIG_APER_MAX	(256 * 1024*1024)
19
17
/* Verify the first 16 busses. We assume that systems with more busses
20
/* Verify the first 16 busses. We assume that systems with more busses
18
   get MCFG right. */
21
   get MCFG right. */
19
#define MAX_CHECK_BUS 16
22
#define MAX_CHECK_BUS 16
Lines 175-183 void __init pci_mmcfg_init(void) Link Here
175
		return;
178
		return;
176
179
177
	if (!e820_all_mapped(pci_mmcfg_config[0].base_address,
180
	if (!e820_all_mapped(pci_mmcfg_config[0].base_address,
178
			pci_mmcfg_config[0].base_address + MMCONFIG_APER_SIZE,
181
			pci_mmcfg_config[0].base_address + MMCONFIG_APER_MIN,
179
			E820_RESERVED)) {
182
			E820_RESERVED)) {
180
		printk(KERN_ERR "PCI: BIOS Bug: MCFG area is not E820-reserved\n");
183
		printk(KERN_ERR "PCI: BIOS Bug: MCFG area at %x is not E820-reserved\n",
184
				pci_mmcfg_config[0].base_address);
181
		printk(KERN_ERR "PCI: Not using MMCONFIG.\n");
185
		printk(KERN_ERR "PCI: Not using MMCONFIG.\n");
182
		return;
186
		return;
183
	}
187
	}
Lines 190-196 void __init pci_mmcfg_init(void) Link Here
190
	}
194
	}
191
	for (i = 0; i < pci_mmcfg_config_num; ++i) {
195
	for (i = 0; i < pci_mmcfg_config_num; ++i) {
192
		pci_mmcfg_virt[i].cfg = &pci_mmcfg_config[i];
196
		pci_mmcfg_virt[i].cfg = &pci_mmcfg_config[i];
193
		pci_mmcfg_virt[i].virt = ioremap_nocache(pci_mmcfg_config[i].base_address, MMCONFIG_APER_SIZE);
197
		pci_mmcfg_virt[i].virt = ioremap_nocache(pci_mmcfg_config[i].base_address,
198
							 MMCONFIG_APER_MAX);
194
		if (!pci_mmcfg_virt[i].virt) {
199
		if (!pci_mmcfg_virt[i].virt) {
195
			printk("PCI: Cannot map mmconfig aperture for segment %d\n",
200
			printk("PCI: Cannot map mmconfig aperture for segment %d\n",
196
			       pci_mmcfg_config[i].pci_segment_group_number);
201
			       pci_mmcfg_config[i].pci_segment_group_number);

Return to bug 325995