Lines Matching +full:hi +full:- +full:fi

9  * Copyright (C) 2007-2014 Silicon Graphics, Inc. All rights reserved.
130 uv_cpuid.pnode_mask = (1 << uv_cpuid.n_skt) - 1; in early_get_pnodeid()
164 + UV4_HUB_REVISION_BASE - 1; in early_set_hub_type()
180 + UV2_HUB_REVISION_BASE - 1; in early_set_hub_type()
239 #define INVALID_TYPE 0 /* Leaf 0xb sub-leaf types */
274 uv_cpuid.apicid_mask = (~(-1 << sid_shift)); in set_x2apic_bits()
292 strncpy(to, from, len-1); in uv_stringify()
303 for (i = 0; st->entry[i].type != UV_SYSTAB_TYPE_UNUSED; i++) { in early_find_archtype()
304 unsigned long ptr = st->entry[i].offset; in early_find_archtype()
309 if (st->entry[i].type == UV_SYSTAB_TYPE_ARCH_TYPE) in early_find_archtype()
319 int n = strlen(uv_ate->archtype); in decode_arch_type()
321 if (n > 0 && n < sizeof(uv_ate->archtype)) { in decode_arch_type()
323 uv_stringify(sizeof(uv_archtype), uv_archtype, uv_ate->archtype); in decode_arch_type()
347 rev = st->revision; in early_get_arch_type()
353 uvst_size = st->size; in early_get_arch_type()
421 uv_hub_info->hub_revision = in uv_set_system_type()
427 switch (uv_hub_info->hub_revision) { in uv_set_system_type()
469 uv_cpu_info->p_uv_hub_info = &uv_hub_info_node0; in uv_acpi_madt_oem_check()
584 set_memory_block_size_order(order - 1); in set_block_size()
599 int bytes, i, sid, lsid = -1, indx = 0, lindx = -1; in build_uv_gr_table()
609 for (; gre->type != UV_GAM_RANGE_TYPE_UNUSED; gre++) { in build_uv_gr_table()
610 if (gre->type == UV_GAM_RANGE_TYPE_HOLE) { in build_uv_gr_table()
612 /* Mark hole between RAM/non-RAM: */ in build_uv_gr_table()
614 last_limit = gre->limit; in build_uv_gr_table()
618 last_limit = gre->limit; in build_uv_gr_table()
619 pr_info("UV: extra hole in GAM RE table @%d\n", (int)(gre - uv_gre_table)); in build_uv_gr_table()
622 if (_max_socket < gre->sockid) { in build_uv_gr_table()
623 …pr_err("UV: GAM table sockid(%d) too large(>%d) @%d\n", gre->sockid, _max_socket, (int)(gre - uv_g… in build_uv_gr_table()
626 sid = gre->sockid - _min_socket; in build_uv_gr_table()
630 grt->base = lindx; in build_uv_gr_table()
631 grt->nasid = gre->nasid; in build_uv_gr_table()
632 grt->limit = last_limit = gre->limit; in build_uv_gr_table()
640 if (grt->limit == last_limit) { in build_uv_gr_table()
641 grt->limit = last_limit = gre->limit; in build_uv_gr_table()
645 /* Non-contiguous RAM range: */ in build_uv_gr_table()
648 grt->base = lindx; in build_uv_gr_table()
649 grt->nasid = gre->nasid; in build_uv_gr_table()
650 grt->limit = last_limit = gre->limit; in build_uv_gr_table()
653 /* Non-contiguous/non-RAM: */ in build_uv_gr_table()
656 grt->base = grt - _gr_table; in build_uv_gr_table()
657 grt->nasid = gre->nasid; in build_uv_gr_table()
658 grt->limit = last_limit = gre->limit; in build_uv_gr_table()
664 i = grt - _gr_table; in build_uv_gr_table()
679 int gb = grt->base; in build_uv_gr_table()
682 end = (unsigned long)grt->limit << UV_GAM_RANGE_SHFT; in build_uv_gr_table()
684 pr_info("UV: GAM Range %2d %04x 0x%013lx-0x%013lx (%d)\n", i, grt->nasid, start, end, gb); in build_uv_gr_table()
918 pr_info("UV: Map %s_HI 0x%lx - 0x%lx %s (%d segments)\n", in map_high()
986 UV2_MMIOH = -1,
998 int i, fi, li, n, max_io; in calc_mmioh_map() local
1051 max_io = lnasid = fi = li = -1; in calc_mmioh_map()
1065 nasid = -1; in calc_mmioh_map()
1071 if (i != n-1) in calc_mmioh_map()
1076 if (lnasid != -1 || (i == n-1 && nasid != -1)) { in calc_mmioh_map()
1080 if (lnasid == -1) { in calc_mmioh_map()
1084 f = fi; in calc_mmioh_map()
1089 pr_info("UV: %s[%03d..%03d] NASID 0x%04x ADDR 0x%016lx - 0x%016lx\n", in calc_mmioh_map()
1090 id, fi, li, lnasid, addr1, addr2); in calc_mmioh_map()
1094 fi = li = i; in calc_mmioh_map()
1215 domain = pci_domain_nr(pdev->bus); in uv_set_vga_state()
1216 bus = pdev->bus->number; in uv_set_vga_state()
1233 uv_hub_info->nr_online_cpus++; in uv_cpu_init()
1247 mnp->n_val = uv_cpuid.n_skt; in get_mn()
1249 mnp->m_val = 0; in get_mn()
1250 mnp->n_lshift = 0; in get_mn()
1254 mnp->m_val = uv_cpuid.m_skt; in get_mn()
1256 mnp->n_lshift = m_gr_config.s3.m_skt; in get_mn()
1258 mnp->m_val = uv_cpuid.m_skt; in get_mn()
1259 mnp->n_lshift = mnp->m_val == 40 ? 40 : 39; in get_mn()
1261 mnp->m_shift = mnp->m_val ? 64 - mnp->m_val : 0; in get_mn()
1264 static void __init uv_init_hub_info(struct uv_hub_info_s *hi) in uv_init_hub_info() argument
1269 hi->gpa_mask = mn.m_val ? in uv_init_hub_info()
1270 (1UL << (mn.m_val + mn.n_val)) - 1 : in uv_init_hub_info()
1271 (1UL << uv_cpuid.gpa_shift) - 1; in uv_init_hub_info()
1273 hi->m_val = mn.m_val; in uv_init_hub_info()
1274 hi->n_val = mn.n_val; in uv_init_hub_info()
1275 hi->m_shift = mn.m_shift; in uv_init_hub_info()
1276 hi->n_lshift = mn.n_lshift ? mn.n_lshift : 0; in uv_init_hub_info()
1277 hi->hub_revision = uv_hub_info->hub_revision; in uv_init_hub_info()
1278 hi->hub_type = uv_hub_info->hub_type; in uv_init_hub_info()
1279 hi->pnode_mask = uv_cpuid.pnode_mask; in uv_init_hub_info()
1280 hi->nasid_shift = uv_cpuid.nasid_shift; in uv_init_hub_info()
1281 hi->min_pnode = _min_pnode; in uv_init_hub_info()
1282 hi->min_socket = _min_socket; in uv_init_hub_info()
1283 hi->pnode_to_socket = _pnode_to_socket; in uv_init_hub_info()
1284 hi->socket_to_node = _socket_to_node; in uv_init_hub_info()
1285 hi->socket_to_pnode = _socket_to_pnode; in uv_init_hub_info()
1286 hi->gr_table_len = _gr_table_len; in uv_init_hub_info()
1287 hi->gr_table = _gr_table; in uv_init_hub_info()
1290 hi->gnode_extra = (uv_node_id & ~((1 << uv_cpuid.gnode_shift) - 1)) >> 1; in uv_init_hub_info()
1292 hi->gnode_upper = (u64)hi->gnode_extra << mn.m_val; in uv_init_hub_info()
1295 hi->global_mmr_base = uv_gp_table->mmr_base; in uv_init_hub_info()
1296 hi->global_mmr_shift = uv_gp_table->mmr_shift; in uv_init_hub_info()
1297 hi->global_gru_base = uv_gp_table->gru_base; in uv_init_hub_info()
1298 hi->global_gru_shift = uv_gp_table->gru_shift; in uv_init_hub_info()
1299 hi->gpa_shift = uv_gp_table->gpa_shift; in uv_init_hub_info()
1300 hi->gpa_mask = (1UL << hi->gpa_shift) - 1; in uv_init_hub_info()
1302 hi->global_mmr_base = in uv_init_hub_info()
1305 hi->global_mmr_shift = _UV_GLOBAL_MMR64_PNODE_SHIFT; in uv_init_hub_info()
1308 get_lowmem_redirect(&hi->lowmem_remap_base, &hi->lowmem_remap_top); in uv_init_hub_info()
1310 hi->apic_pnode_shift = uv_cpuid.socketid_shift; in uv_init_hub_info()
1313 pr_info("UV: N:%d M:%d m_shift:%d n_lshift:%d\n", hi->n_val, hi->m_val, hi->m_shift, hi->n_lshift); in uv_init_hub_info()
1314 …mask/shift:0x%lx/%d pnode_mask:0x%x apic_pns:%d\n", hi->gpa_mask, hi->gpa_shift, hi->pnode_mask, h… in uv_init_hub_info()
1315 pr_info("UV: mmr_base/shift:0x%lx/%ld\n", hi->global_mmr_base, hi->global_mmr_shift); in uv_init_hub_info()
1316 if (hi->global_gru_base) in uv_init_hub_info()
1318 hi->global_gru_base, hi->global_gru_shift); in uv_init_hub_info()
1320 pr_info("UV: gnode_upper:0x%lx gnode_extra:0x%x\n", hi->gnode_upper, hi->gnode_extra); in uv_init_hub_info()
1329 uv_gp_table->mmr_base, uv_gp_table->mmr_shift, in decode_gam_params()
1330 uv_gp_table->gru_base, uv_gp_table->gru_shift, in decode_gam_params()
1331 uv_gp_table->gpa_shift); in decode_gam_params()
1340 int sock_max = -1, pnode_max = -1; in decode_gam_rng_tbl()
1343 for (; gre->type != UV_GAM_RANGE_TYPE_UNUSED; gre++) { in decode_gam_rng_tbl()
1344 unsigned long size = ((unsigned long)(gre->limit - lgre) in decode_gam_rng_tbl()
1356 if (gre->type == 1 || gre->type == 2) in decode_gam_rng_tbl()
1364 pr_info("UV: %2d: 0x%014lx-0x%014lx%c %5lu%c %3d %04x %02x %02x\n", in decode_gam_rng_tbl()
1367 (unsigned long)gre->limit << UV_GAM_RANGE_SHFT, in decode_gam_rng_tbl()
1369 gre->type, gre->nasid, gre->sockid, gre->pnode); in decode_gam_rng_tbl()
1372 lgre = gre->limit; in decode_gam_rng_tbl()
1373 if (sock_min > gre->sockid) in decode_gam_rng_tbl()
1374 sock_min = gre->sockid; in decode_gam_rng_tbl()
1375 if (sock_max < gre->sockid) in decode_gam_rng_tbl()
1376 sock_max = gre->sockid; in decode_gam_rng_tbl()
1377 if (pnode_min > gre->pnode) in decode_gam_rng_tbl()
1378 pnode_min = gre->pnode; in decode_gam_rng_tbl()
1379 if (pnode_max < gre->pnode) in decode_gam_rng_tbl()
1380 pnode_max = gre->pnode; in decode_gam_rng_tbl()
1401 if (st && st->revision == UV_SYSTAB_VERSION_1) in decode_uv_systab()
1404 if ((!st) || (st->revision < UV_SYSTAB_VERSION_UV4_LATEST)) { in decode_uv_systab()
1405 int rev = st ? st->revision : 0; in decode_uv_systab()
1409 pr_err("UV: Does not support UV, switch to non-UV x86_64\n"); in decode_uv_systab()
1412 return -EINVAL; in decode_uv_systab()
1415 for (i = 0; st->entry[i].type != UV_SYSTAB_TYPE_UNUSED; i++) { in decode_uv_systab()
1416 unsigned long ptr = st->entry[i].offset; in decode_uv_systab()
1424 switch (st->entry[i].type) { in decode_uv_systab()
1439 __func__, st->entry[i].type); in decode_uv_systab()
1497 /* Build socket id -> node id, pnode */ in build_socket_tables()
1498 num = maxsock - minsock + 1; in build_socket_tables()
1503 nump = maxpnode - minpnode + 1; in build_socket_tables()
1516 for (; gre->type != UV_GAM_RANGE_TYPE_UNUSED; gre++) { in build_socket_tables()
1517 if (gre->type == UV_GAM_RANGE_TYPE_HOLE) in build_socket_tables()
1519 i = gre->sockid - minsock; in build_socket_tables()
1523 _socket_to_pnode[i] = gre->pnode; in build_socket_tables()
1525 i = gre->pnode - minpnode; in build_socket_tables()
1526 _pnode_to_socket[i] = gre->sockid; in build_socket_tables()
1529 gre->sockid, gre->type, gre->nasid, in build_socket_tables()
1530 _socket_to_pnode[gre->sockid - minsock], in build_socket_tables()
1531 _pnode_to_socket[gre->pnode - minpnode]); in build_socket_tables()
1534 /* Set socket -> node values: */ in build_socket_tables()
1545 _socket_to_node[sockid - minsock] = nid; in build_socket_tables()
1559 if (lnid == _socket_to_node[sockid - minsock]) { in build_socket_tables()
1560 _node_to_pnode[lnid] = _socket_to_pnode[sockid - minsock]; in build_socket_tables()
1574 pr_info("UV: Checking socket->node/pnode for identity maps\n"); in build_socket_tables()
1729 new_hub->pnode = _node_to_pnode[nodeid]; in uv_system_init_hub()
1731 new_hub->pnode = 0xffff; in uv_system_init_hub()
1733 new_hub->numa_blade_id = uv_node_to_blade_id(nodeid); in uv_system_init_hub()
1734 new_hub->memory_nid = NUMA_NO_NODE; in uv_system_init_hub()
1735 new_hub->nr_possible_cpus = 0; in uv_system_init_hub()
1736 new_hub->nr_online_cpus = 0; in uv_system_init_hub()
1749 uv_cpu_info_per(cpu)->p_uv_hub_info = uv_hub_info_list(nodeid); in uv_system_init_hub()
1750 uv_cpu_info_per(cpu)->blade_cpu_id = uv_cpu_hub_info(cpu)->nr_possible_cpus++; in uv_system_init_hub()
1751 if (uv_cpu_hub_info(cpu)->memory_nid == NUMA_NO_NODE) in uv_system_init_hub()
1752 uv_cpu_hub_info(cpu)->memory_nid = cpu_to_node(cpu); in uv_system_init_hub()
1756 uv_hub_info_list(numa_node_id)->pnode == 0xffff) in uv_system_init_hub()
1757 uv_hub_info_list(numa_node_id)->pnode = pnode; in uv_system_init_hub()
1758 else if (uv_cpu_hub_info(cpu)->pnode == 0xffff) in uv_system_init_hub()
1759 uv_cpu_hub_info(cpu)->pnode = pnode; in uv_system_init_hub()
1763 unsigned short pnode = uv_hub_info_list(nodeid)->pnode; in uv_system_init_hub()
1765 /* Add pnode info for pre-GAM list nodes without CPUs: */ in uv_system_init_hub()
1771 uv_hub_info_list(nodeid)->pnode = pnode; in uv_system_init_hub()
1777 uv_hub_info_list(nodeid)->pnode, in uv_system_init_hub()
1778 uv_hub_info_list(nodeid)->nr_possible_cpus); in uv_system_init_hub()