diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2009-05-02 21:26:06 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2009-05-02 21:26:06 +0000 |
commit | b192fbb6a6c5837c6a44913ea1d86f57742a1375 (patch) | |
tree | 41e3ec8247f6d2b3447f96611744032f7fc162c8 | |
parent | 23afab51bc73a7d739f5b78a9932172ac5e6295e (diff) |
More KL configuration structures.
-rw-r--r-- | sys/arch/sgi/include/mnode.h | 15 | ||||
-rw-r--r-- | sys/arch/sgi/sgi/sginode.c | 26 |
2 files changed, 35 insertions, 6 deletions
diff --git a/sys/arch/sgi/include/mnode.h b/sys/arch/sgi/include/mnode.h index e0ed9a39329..b5bd754b161 100644 --- a/sys/arch/sgi/include/mnode.h +++ b/sys/arch/sgi/include/mnode.h @@ -1,4 +1,4 @@ -/* $OpenBSD: mnode.h,v 1.1 2009/04/13 21:17:54 miod Exp $ */ +/* $OpenBSD: mnode.h,v 1.2 2009/05/02 21:26:00 miod Exp $ */ /* * Copyright (c) 2004 Opsycon AB (www.opsycon.se / www.opsycon.com) @@ -292,6 +292,19 @@ typedef struct klmembnk_n_s { int16_t membnk_attr; } klmembnk_n_t; +/* KLSTRUCT_XBOW: Xbow */ +#define MAX_XBOW_LINKS 16 +typedef struct klxbow_s { + klinfo_t xbow_info; + klport_t xbow_port_info[MAX_XBOW_LINKS]; /* Module number */ + int xbow_hub_master_link; +} klxbow_t; + +/* xbow_port_info.port_flag bits */ +#define XBOW_PORT_IO 0x01 +#define XBOW_PORT_HUB 0x02 +#define XBOW_PORT_ENABLE 0x04 + /* KLSTRUCT_IOC3: Basic I/O Controller */ typedef struct klioc3_s { klinfo_t ioc3_info; diff --git a/sys/arch/sgi/sgi/sginode.c b/sys/arch/sgi/sgi/sginode.c index 358b26f8219..a7f5e1423a2 100644 --- a/sys/arch/sgi/sgi/sginode.c +++ b/sys/arch/sgi/sgi/sginode.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sginode.c,v 1.2 2009/04/15 18:47:15 miod Exp $ */ +/* $OpenBSD: sginode.c,v 1.3 2009/05/02 21:26:05 miod Exp $ */ /* * Copyright (c) 2008, 2009 Miodrag Vallat. * @@ -110,12 +110,13 @@ kl_do_boardinfo(lboard_t *boardinfo) klhub_t *hubcomp; klmembnk_m_t *memcomp_m; klmembnk_n_t *memcomp_n; + klxbow_t *xbowcomp; struct cpuinfo *cpu; int i, j; - DB_PRF(("board type %x slot %x nasid %x components %d\n", + DB_PRF(("board type %x slot %x nasid %x nic %p components %d\n", boardinfo->brd_type, boardinfo->brd_slot, boardinfo->brd_nasid, - boardinfo->brd_numcompts)); + boardinfo->brd_nic, boardinfo->brd_numcompts)); for (i = 0; i < boardinfo->brd_numcompts; i++) { comp = IP27_UNCAC_ADDR(klinfo_t *, 0, boardinfo->brd_compts[i]); @@ -123,8 +124,9 @@ kl_do_boardinfo(lboard_t *boardinfo) switch(comp->struct_type) { case KLSTRUCT_CPU: cpucomp = (klcpu_t *)comp; - DB_PRF(("\tcpu type %x %dMhz cache %dMB speed %dMhz\n", - cpucomp->cpu_prid, cpucomp->cpu_speed, + DB_PRF(("\tcpu type %x/%x %dMhz cache %dMB speed %dMhz\n", + cpucomp->cpu_prid, cpucomp->cpu_fpirr, + cpucomp->cpu_speed, cpucomp->cpu_scachesz, cpucomp->cpu_scachespeed)); if (nextcpu < MAX_CPUS) { @@ -181,6 +183,20 @@ kl_do_boardinfo(lboard_t *boardinfo) break; + case KLSTRUCT_XBOW: + xbowcomp = (klxbow_t *)comp; + DB_PRF(("\txbow hub master link %d\n", + xbowcomp->xbow_hub_master_link)); + for (j = 0; j < MAX_XBOW_LINKS; j++) { + if (xbowcomp->xbow_port_info[j].port_flag & + XBOW_PORT_ENABLE) + DB_PRF(("\t\twidget %d nasid %d flg %u\n", + j, + xbowcomp->xbow_port_info[j].port_nasid, + xbowcomp->xbow_port_info[j].port_flag)); + } + break; + default: DB_PRF(("\tcomponent widget %d type %d\n", comp->widid, comp->struct_type)); |