Lines Matching +full:slot +full:- +full:size
6 * Copyright (C) 2000, 05 by Ralf Baechle (ralf@linux-mips.org)
32 #include "ip27-common.h"
34 #define SLOT_PFNSHIFT (SLOT_SHIFT - PAGE_SHIFT)
35 #define PFN_NASIDSHFT (NASID_SHFT - PAGE_SHIFT)
64 if (router_a->rou_rflag == 1) in router_recurse()
70 router_a->rou_rflag = 1; in router_recurse()
73 if (router_a->rou_port[port].port_nasid == INVALID_NASID) in router_recurse()
77 router_a->rou_port[port].port_nasid, in router_recurse()
78 router_a->rou_port[port].port_offset); in router_recurse()
80 if (brd->brd_type == KLTYPE_ROUTER) { in router_recurse()
81 router = (klrou_t *)NODE_OFFSET_TO_K0(NASID_GET(brd), brd->brd_compts[0]); in router_recurse()
91 router_a->rou_rflag = 0; in router_recurse()
113 if (brd->brd_flags & DUPLICATE_BOARD) in compute_node_distance()
116 router = (klrou_t *)NODE_OFFSET_TO_K0(NASID_GET(brd), brd->brd_compts[0]); in compute_node_distance()
117 router->rou_rflag = 0; in compute_node_distance()
120 if (router->rou_port[port].port_nasid == INVALID_NASID) in compute_node_distance()
124 router->rou_port[port].port_nasid, in compute_node_distance()
125 router->rou_port[port].port_offset); in compute_node_distance()
127 if (dest_brd->brd_type == KLTYPE_IP27) { in compute_node_distance()
128 if (dest_brd->brd_nasid == nasid_a) in compute_node_distance()
130 if (dest_brd->brd_nasid == nasid_b) in compute_node_distance()
165 __node_distances[row][col] = -1; in init_topology_matrix()
205 if (brd->brd_flags & DUPLICATE_BOARD) in dump_topology()
210 router = (klrou_t *)NODE_OFFSET_TO_K0(NASID_GET(brd), brd->brd_compts[0]); in dump_topology()
213 if (router->rou_port[port].port_nasid == INVALID_NASID) in dump_topology()
217 router->rou_port[port].port_nasid, in dump_topology()
218 router->rou_port[port].port_offset); in dump_topology()
220 if (dest_brd->brd_type == KLTYPE_IP27) in dump_topology()
221 pr_cont(" %d", dest_brd->brd_nasid); in dump_topology()
222 if (dest_brd->brd_type == KLTYPE_ROUTER) in dump_topology()
231 static unsigned long __init slot_getbasepfn(nasid_t nasid, int slot) in slot_getbasepfn() argument
233 return ((unsigned long)nasid << PFN_NASIDSHFT) | (slot << SLOT_PFNSHIFT); in slot_getbasepfn()
236 static unsigned long __init slot_psize_compute(nasid_t nasid, int slot) in slot_psize_compute() argument
240 unsigned long size; in slot_psize_compute() local
252 /* Size in _Megabytes_ */ in slot_psize_compute()
253 size = (unsigned long)banks->membnk_bnksz[slot/4]; in slot_psize_compute()
256 if (size <= 128) { in slot_psize_compute()
257 if (slot % 4 == 0) { in slot_psize_compute()
258 size <<= 20; /* size in bytes */ in slot_psize_compute()
259 return size >> PAGE_SHIFT; in slot_psize_compute()
263 size /= 4; in slot_psize_compute()
264 size <<= 20; in slot_psize_compute()
265 return size >> PAGE_SHIFT; in slot_psize_compute()
277 * Probe for all CPUs - this creates the cpumask and sets up the in mlreset()
318 int slot; in szmem() local
323 for (slot = 0; slot < MAX_MEM_SLOTS; slot++) { in szmem()
324 slot_psize = slot_psize_compute(node, slot); in szmem()
325 if (slot == 0) in szmem()
338 pr_info("Ignoring slot %d onwards on node %d\n", in szmem()
339 slot, node); in szmem()
340 slot = MAX_MEM_SLOTS; in szmem()
343 memblock_add_node(PFN_PHYS(slot_getbasepfn(node, slot)), in szmem()
363 node_data[node] = &__node_data[node]->pglist; in node_mem_init()
365 NODE_DATA(node)->node_start_pfn = start_pfn; in node_mem_init()
366 NODE_DATA(node)->node_spanned_pages = end_pfn - start_pfn; in node_mem_init()
368 cpumask_clear(&hub_data(node)->h_cpus); in node_mem_init()
374 ((slot_freepfn - slot_firstpfn) << PAGE_SHIFT)); in node_mem_init()
388 * Currently, the intranode memory hole support assumes that each slot
390 * fits on the first slot.