aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/tile/kernel/setup.c')
-rw-r--r--arch/tile/kernel/setup.c35
1 files changed, 16 insertions, 19 deletions
diff --git a/arch/tile/kernel/setup.c b/arch/tile/kernel/setup.c
index fdde3b6986e5..2b8b689e596d 100644
--- a/arch/tile/kernel/setup.c
+++ b/arch/tile/kernel/setup.c
@@ -23,6 +23,7 @@
23#include <linux/irq.h> 23#include <linux/irq.h>
24#include <linux/kexec.h> 24#include <linux/kexec.h>
25#include <linux/pci.h> 25#include <linux/pci.h>
26#include <linux/swiotlb.h>
26#include <linux/initrd.h> 27#include <linux/initrd.h>
27#include <linux/io.h> 28#include <linux/io.h>
28#include <linux/highmem.h> 29#include <linux/highmem.h>
@@ -109,7 +110,7 @@ static unsigned int __initdata maxnodemem_pfn[MAX_NUMNODES] = {
109}; 110};
110static nodemask_t __initdata isolnodes; 111static nodemask_t __initdata isolnodes;
111 112
112#ifdef CONFIG_PCI 113#if defined(CONFIG_PCI) && !defined(__tilegx__)
113enum { DEFAULT_PCI_RESERVE_MB = 64 }; 114enum { DEFAULT_PCI_RESERVE_MB = 64 };
114static unsigned int __initdata pci_reserve_mb = DEFAULT_PCI_RESERVE_MB; 115static unsigned int __initdata pci_reserve_mb = DEFAULT_PCI_RESERVE_MB;
115unsigned long __initdata pci_reserve_start_pfn = -1U; 116unsigned long __initdata pci_reserve_start_pfn = -1U;
@@ -160,7 +161,7 @@ static int __init setup_isolnodes(char *str)
160} 161}
161early_param("isolnodes", setup_isolnodes); 162early_param("isolnodes", setup_isolnodes);
162 163
163#ifdef CONFIG_PCI 164#if defined(CONFIG_PCI) && !defined(__tilegx__)
164static int __init setup_pci_reserve(char* str) 165static int __init setup_pci_reserve(char* str)
165{ 166{
166 unsigned long mb; 167 unsigned long mb;
@@ -171,7 +172,7 @@ static int __init setup_pci_reserve(char* str)
171 172
172 pci_reserve_mb = mb; 173 pci_reserve_mb = mb;
173 pr_info("Reserving %dMB for PCIE root complex mappings\n", 174 pr_info("Reserving %dMB for PCIE root complex mappings\n",
174 pci_reserve_mb); 175 pci_reserve_mb);
175 return 0; 176 return 0;
176} 177}
177early_param("pci_reserve", setup_pci_reserve); 178early_param("pci_reserve", setup_pci_reserve);
@@ -411,7 +412,7 @@ static void __init setup_memory(void)
411 continue; 412 continue;
412 } 413 }
413#endif 414#endif
414#ifdef CONFIG_PCI 415#if defined(CONFIG_PCI) && !defined(__tilegx__)
415 /* 416 /*
416 * Blocks that overlap the pci reserved region must 417 * Blocks that overlap the pci reserved region must
417 * have enough space to hold the maximum percpu data 418 * have enough space to hold the maximum percpu data
@@ -604,11 +605,9 @@ static void __init setup_bootmem_allocator_node(int i)
604 /* Free all the space back into the allocator. */ 605 /* Free all the space back into the allocator. */
605 free_bootmem(PFN_PHYS(start), PFN_PHYS(end - start)); 606 free_bootmem(PFN_PHYS(start), PFN_PHYS(end - start));
606 607
607#if defined(CONFIG_PCI) 608#if defined(CONFIG_PCI) && !defined(__tilegx__)
608 /* 609 /*
609 * Throw away any memory aliased by the PCI region. FIXME: this 610 * Throw away any memory aliased by the PCI region.
610 * is a temporary hack to work around bug 10502, and needs to be
611 * fixed properly.
612 */ 611 */
613 if (pci_reserve_start_pfn < end && pci_reserve_end_pfn > start) 612 if (pci_reserve_start_pfn < end && pci_reserve_end_pfn > start)
614 reserve_bootmem(PFN_PHYS(pci_reserve_start_pfn), 613 reserve_bootmem(PFN_PHYS(pci_reserve_start_pfn),
@@ -1353,8 +1352,7 @@ void __init setup_arch(char **cmdline_p)
1353 setup_cpu_maps(); 1352 setup_cpu_maps();
1354 1353
1355 1354
1356#ifdef CONFIG_PCI 1355#if defined(CONFIG_PCI) && !defined(__tilegx__)
1357#if !defined (__tilegx__)
1358 /* 1356 /*
1359 * Initialize the PCI structures. This is done before memory 1357 * Initialize the PCI structures. This is done before memory
1360 * setup so that we know whether or not a pci_reserve region 1358 * setup so that we know whether or not a pci_reserve region
@@ -1362,7 +1360,6 @@ void __init setup_arch(char **cmdline_p)
1362 */ 1360 */
1363 if (tile_pci_init() == 0) 1361 if (tile_pci_init() == 0)
1364 pci_reserve_mb = 0; 1362 pci_reserve_mb = 0;
1365#endif
1366 1363
1367 /* PCI systems reserve a region just below 4GB for mapping iomem. */ 1364 /* PCI systems reserve a region just below 4GB for mapping iomem. */
1368 pci_reserve_end_pfn = (1 << (32 - PAGE_SHIFT)); 1365 pci_reserve_end_pfn = (1 << (32 - PAGE_SHIFT));
@@ -1384,6 +1381,10 @@ void __init setup_arch(char **cmdline_p)
1384 * any memory using the bootmem allocator. 1381 * any memory using the bootmem allocator.
1385 */ 1382 */
1386 1383
1384#ifdef CONFIG_SWIOTLB
1385 swiotlb_init(0);
1386#endif
1387
1387 paging_init(); 1388 paging_init();
1388 setup_numa_mapping(); 1389 setup_numa_mapping();
1389 zone_sizes_init(); 1390 zone_sizes_init();
@@ -1391,10 +1392,6 @@ void __init setup_arch(char **cmdline_p)
1391 setup_cpu(1); 1392 setup_cpu(1);
1392 setup_clock(); 1393 setup_clock();
1393 load_hv_initrd(); 1394 load_hv_initrd();
1394
1395#if defined(CONFIG_PCI) && defined (__tilegx__)
1396 tile_pci_init();
1397#endif
1398} 1395}
1399 1396
1400 1397
@@ -1538,11 +1535,11 @@ static struct resource code_resource = {
1538}; 1535};
1539 1536
1540/* 1537/*
1541 * We reserve all resources above 4GB so that PCI won't try to put 1538 * On Pro, we reserve all resources above 4GB so that PCI won't try to put
1542 * mappings above 4GB; the standard allows that for some devices but 1539 * mappings above 4GB; the standard allows that for some devices but
1543 * the probing code trunates values to 32 bits. 1540 * the probing code trunates values to 32 bits.
1544 */ 1541 */
1545#ifdef CONFIG_PCI 1542#if defined(CONFIG_PCI) && !defined(__tilegx__)
1546static struct resource* __init 1543static struct resource* __init
1547insert_non_bus_resource(void) 1544insert_non_bus_resource(void)
1548{ 1545{
@@ -1588,7 +1585,7 @@ static int __init request_standard_resources(void)
1588 enum { CODE_DELTA = MEM_SV_INTRPT - PAGE_OFFSET }; 1585 enum { CODE_DELTA = MEM_SV_INTRPT - PAGE_OFFSET };
1589 1586
1590 iomem_resource.end = -1LL; 1587 iomem_resource.end = -1LL;
1591#ifdef CONFIG_PCI 1588#if defined(CONFIG_PCI) && !defined(__tilegx__)
1592 insert_non_bus_resource(); 1589 insert_non_bus_resource();
1593#endif 1590#endif
1594 1591
@@ -1596,7 +1593,7 @@ static int __init request_standard_resources(void)
1596 u64 start_pfn = node_start_pfn[i]; 1593 u64 start_pfn = node_start_pfn[i];
1597 u64 end_pfn = node_end_pfn[i]; 1594 u64 end_pfn = node_end_pfn[i];
1598 1595
1599#ifdef CONFIG_PCI 1596#if defined(CONFIG_PCI) && !defined(__tilegx__)
1600 if (start_pfn <= pci_reserve_start_pfn && 1597 if (start_pfn <= pci_reserve_start_pfn &&
1601 end_pfn > pci_reserve_start_pfn) { 1598 end_pfn > pci_reserve_start_pfn) {
1602 if (end_pfn > pci_reserve_end_pfn) 1599 if (end_pfn > pci_reserve_end_pfn)