summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2010-03-21 13:52:06 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2010-03-21 13:52:06 +0000
commit566af0529b8d2b4dce7c97bd8fe0ff07a63bf0ea (patch)
tree02c1eb9ddc9914407d36e59bd471cb14aa31751d
parent1806556591e8663706b61628918462926cacfdb1 (diff)
Update KL structure definitions to match IP35 use of previously unused fields.
No functional change yet.
-rw-r--r--sys/arch/sgi/include/mnode.h134
-rw-r--r--sys/arch/sgi/sgi/ip27_machdep.c6
-rw-r--r--sys/arch/sgi/sgi/sginode.c170
3 files changed, 226 insertions, 84 deletions
diff --git a/sys/arch/sgi/include/mnode.h b/sys/arch/sgi/include/mnode.h
index 13f8b3762ec..a7d69814d07 100644
--- a/sys/arch/sgi/include/mnode.h
+++ b/sys/arch/sgi/include/mnode.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: mnode.h,v 1.13 2010/03/07 13:42:15 miod Exp $ */
+/* $OpenBSD: mnode.h,v 1.14 2010/03/21 13:52:03 miod Exp $ */
/*
* Copyright (c) 2004 Opsycon AB (www.opsycon.se / www.opsycon.com)
@@ -153,8 +153,9 @@ typedef struct lboard_s {
unsigned char brd_brevision; /* board revision */
unsigned char brd_promver; /* board prom version, if any */
unsigned char brd_flags; /* Enabled, Disabled etc */
- unsigned char brd_slot; /* slot number */
- unsigned short brd_debugsw; /* Debug switches */
+ unsigned char brd_slot; /* slot number (widget on IP35) */
+ unsigned short brd_bus_num: 2, /* PIC bus number (IP35) */
+ brd_unused: 14;
short brd_module; /* module to which it belongs */
char brd_partition; /* Partition number */
unsigned short brd_diagval; /* diagnostic value */
@@ -178,6 +179,8 @@ typedef struct lboard_s {
/* Definitions of board type and class */
#define IP27_BC_MASK 0xf0
+#define IP27_BT_MASK 0x0f
+
#define IP27_BC_NODE 0x10
#define IP27_BC_IO 0x20
#define IP27_BC_ROUTER 0x30
@@ -185,13 +188,29 @@ typedef struct lboard_s {
#define IP27_BC_GRAF 0x50
#define IP27_BC_HDTV 0x60
#define IP27_BC_BRICK 0x70
-
-#define IP27_BT_MASK 0x0f
-#define IP27_BT_CPU 0x01
-#define IP27_BT_BASEIO 0x01
-#define IP27_BT_MPLANE8 0x01
-
-#define IP27_BRD_BASEIO (IP27_BC_IO | IP27_BT_BASEIO)
+#define IP27_BC_IO2 0x80
+
+/* NODE types */
+#define IP27_BRD_CPU (IP27_BC_NODE | 0x01)
+/* IO types */
+#define IP27_BRD_BASEIO (IP27_BC_IO | 0x01) /* IO6 */
+#define IP27_BRD_MSCSI (IP27_BC_IO | 0x02)
+#define IP27_BRD_MENET (IP27_BC_IO | 0x03)
+#define IP27_BRD_FDDI (IP27_BC_IO | 0x04)
+#define IP27_BRD_PCI1 (IP27_BC_IO | 0x06) /* PCI shoebox */
+#define IP27_BRD_VME (IP27_BC_IO | 0x07)
+#define IP27_BRD_MIO (IP27_BC_IO | 0x08)
+#define IP27_BRD_FC (IP27_BC_IO | 0x09)
+#define IP27_BRD_LINC (IP27_BC_IO | 0x0a)
+/* MPLANE types */
+#define IP27_BRD_MPLANE8 (IP27_BC_MPLANE | 0x01)
+#define IP27_BRD_IOBRICK_XBOW (IP27_BC_MPLANE | 0x02)
+/* GRAF types */
+#define IP27_BRD_KONA (IP27_BC_GRAF | 0x01)
+#define IP27_BRD_MGRAS (IP27_BC_GRAF | 0x03)
+#define IP27_BRD_ODSY (IP27_BC_GRAF | 0x04)
+/* BRICK types */
+#define IP27_BRD_IOBRICK (IP27_BC_BRICK | 0x00)
#define IP27_BRD_IBRICK (IP27_BC_BRICK | 0x01)
#define IP27_BRD_PBRICK (IP27_BC_BRICK | 0x02)
#define IP27_BRD_XBRICK (IP27_BC_BRICK | 0x03)
@@ -200,30 +219,44 @@ typedef struct lboard_s {
#define IP27_BRD_PXBRICK (IP27_BC_BRICK | 0x06)
#define IP27_BRD_IXBRICK (IP27_BC_BRICK | 0x07)
#define IP27_BRD_CGBRICK (IP27_BC_BRICK | 0x08)
-
+/* IO2 types */
+#define IP27_BRD_DIVO (IP27_BC_IO2 | 0x01)
+#define IP27_BRD_TPU (IP27_BC_IO2 | 0x02)
+#define IP27_BRD_GSN (IP27_BC_IO2 | 0x03)
+#define IP27_BRD_GSN_AUX (IP27_BC_IO2 | 0x04)
+#define IP27_BRD_PCI3 (IP27_BC_IO2 | 0x05) /* PCI shoehorn */
+#define IP27_BRD_HIPPI (IP27_BC_IO2 | 0x06)
+#define IP27_BRD_ATM (IP27_BC_IO2 | 0x07)
/* Component info. Common info about a component. */
typedef struct klinfo_s { /* Generic info */
- unsigned char struct_type; /* type of this structure */
- unsigned char struct_version; /* version of this structure */
- unsigned char flags; /* Enabled, disabled etc */
- unsigned char revision; /* component revision */
- unsigned short diagval; /* result of diagnostics */
- unsigned short diagparm; /* diagnostic parameter */
- unsigned char inventory; /* previous inventory status */
- uint64_t nic; /* Must be aligned properly */
- unsigned char physid; /* physical id of component */
- unsigned int virtid; /* virtual id as seen by system */
- unsigned char widid; /* Widget id - if applicable */
- int16_t nasid; /* node number - from parent */
- char pad1; /* pad out structure. */
- char pad2; /* pad out structure. */
- void *arcs_compt; /* ptr to the arcs struct for ease*/
- klconf_off_t errinfo; /* component specific errors */
- unsigned short pad3; /* pci fields have moved over to */
- unsigned short pad4; /* klbri_t */
+ unsigned char struct_type; /* type of this structure */
+ unsigned char struct_version; /* version of this structure */
+ unsigned char flags; /* Enabled, disabled etc */
+ unsigned char revision; /* component revision */
+ unsigned short diagval; /* result of diagnostics */
+ unsigned short diagparm; /* diagnostic parameter */
+ unsigned char inventory; /* previous inventory status */
+ uint64_t nic; /* Must be aligned properly */
+ unsigned char physid; /* physical id of component */
+ unsigned int virtid; /* virtual id as seen by system */
+ unsigned char widid; /* Widget id - if applicable */
+ int16_t nasid; /* node number - from parent */
+ unsigned short port: 2, /* (IP35) port on dual port controller */
+ pci_bus_num: 2, /* (IP35) PCI bus number if on PIC */
+ pci_multifunc: 1,
+ pci_func_num: 3,/* (IP35) PCI function number */
+ pci_unused: 8;
+ char pad2; /* pad out structure. */
+ void *arcs_compt; /* ptr to the arcs struct for ease*/
+ klconf_off_t errinfo; /* component specific errors */
+ unsigned short pad3; /* pci fields have moved over to */
+ unsigned short pad4; /* klbri_t */
} klinfo_t;
+#define KLINFO_PHYSID_PIC_BUS1 0x10 /* set if on PIC bus 1 */
+#define KLINFO_PHYSID_WIDGET_MASK 0x0f
+
#define KLINFO_ENABLED 0x01
#define KLINFO_FAILED 0x02
@@ -250,7 +283,6 @@ typedef struct klinfo_s { /* Generic info */
#define KLSTRUCT_HUB_UART 17
#define KLSTRUCT_IOC3ENET 18
#define KLSTRUCT_IOC3UART 19
-#define KLSTRUCT_UNUSED 20
#define KLSTRUCT_IOC3PCKM 21
#define KLSTRUCT_RAD 22
#define KLSTRUCT_HUB_TTY 23
@@ -260,8 +292,8 @@ typedef struct klinfo_s { /* Generic info */
#define KLSTRUCT_MOD_SERIAL_NUM 26
#define KLSTRUCT_IOC3MS 27
#define KLSTRUCT_TPU 28
-#define KLSTRUCT_GSN_A 29
-#define KLSTRUCT_GSN_B 30
+#define KLSTRUCT_GSN 29
+#define KLSTRUCT_GSN_AUX 30
#define KLSTRUCT_XTHD 31
#define KLSTRUCT_QLFIBRE 32
#define KLSTRUCT_FIREWIRE 33
@@ -272,6 +304,14 @@ typedef struct klinfo_s { /* Generic info */
#define KLSTRUCT_PEBRICK 38
#define KLSTRUCT_GIGENET 39
#define KLSTRUCT_IDE 40
+/* new IP53 values */
+#define KLSTRUCT_IOC4 41
+#define KLSTRUCT_IOC4UART 42
+#define KLSTRUCT_IOC4_TTY 43
+#define KLSTRUCT_IOC4PCKM 44
+#define KLSTRUCT_IOC4MS 45
+#define KLSTRUCT_IOC4_ATA 46
+#define KLSTRUCT_VGAGFX 47
typedef struct klport_s {
int16_t port_nasid;
@@ -283,7 +323,8 @@ typedef struct klport_s {
typedef struct klcpu_s {
klinfo_t cpu_info;
uint16_t cpu_prid; /* Processor PRID value */
- uint16_t cpu_fpirr; /* FPU IRR value */
+ uint16_t cpu_fpirr; /* IP27: FPU IRR value */
+ /* IP35: mode information (?) */
uint16_t cpu_speed; /* Speed in MHZ */
uint16_t cpu_scachesz; /* secondary cache size in MB */
uint16_t cpu_scachespeed;/* secondary cache speed in MHz */
@@ -306,7 +347,7 @@ typedef struct klmembnk_m_s {
int16_t membnk_memsz; /* Total memory in megabytes */
int16_t membnk_dimm_select; /* bank to phys addr mapping*/
int16_t membnk_bnksz[MD_MEM_BANKS_M]; /* Memory bank sizes */
- int16_t membnk_attr;
+ int16_t membnk_attr; /* directory memory, per bank */
} klmembnk_m_t;
#define MD_MEM_BANKS_N 4 /* N-Mode */
@@ -315,7 +356,7 @@ typedef struct klmembnk_n_s {
int16_t membnk_memsz; /* Total memory in megabytes */
int16_t membnk_dimm_select; /* bank to phys addr mapping*/
int16_t membnk_bnksz[MD_MEM_BANKS_N]; /* Memory bank sizes */
- int16_t membnk_attr;
+ int16_t membnk_attr; /* directory memory, per bank */
} klmembnk_n_t;
/* KLSTRUCT_XBOW: Xbow */
@@ -331,16 +372,25 @@ typedef struct klxbow_s {
#define XBOW_PORT_HUB 0x02
#define XBOW_PORT_ENABLE 0x04
+/* KLSTRUCT_SCSI: SCSI Bus, or single-bus SCSI Controller */
+#define MAX_SCSI_DEVS 16
+typedef struct klscsi_s {
+ klinfo_t scsi_info;
+ uint64_t scsi_specific;
+ uint8_t scsi_numdevs;
+ klconf_off_t scsi_devinfo[MAX_SCSI_DEVS];
+} klscsi_t;
+
/* KLSTRUCT_IOC3: Basic I/O Controller */
typedef struct klioc3_s {
klinfo_t ioc3_info;
unsigned char ioc3_ssram; /* Info about ssram */
unsigned char ioc3_nvram; /* Info about nvram */
- klinfo_t ioc3_superio; /* Info about superio */
klconf_off_t ioc3_tty_off;
+ klconf_off_t ioc3_kbd_off;
+ klinfo_t ioc3_superio; /* Info about superio */
klinfo_t ioc3_enet;
klconf_off_t ioc3_enet_off;
- klconf_off_t ioc3_kbd_off;
} klioc3_t;
/* KLSTRUCT_IOC3_TTY: IOC3 attached TTY */
@@ -349,6 +399,14 @@ typedef struct klttydev_s {
struct terminal_data *ttydev_cfg; /* driver fills up this */
} klttydev_t;
+/* KLSTRUCT_SCSI2: SCSI Controller */
+typedef struct klscctl_s {
+ klinfo_t scsi_info;
+ uint type;
+ uint scsi_buscnt;
+ uint64_t scsi_bus[2];
+} klscctl_t;
+
/* ========== */
#define IP27_NMI(n) \
@@ -410,7 +468,7 @@ typedef struct gda {
console_t *kl_get_console(void);
void kl_init(int);
-void kl_scan_config(int);
+void kl_scan_config(int, int16_t);
int kl_scan_node(int, uint, int (*)(lboard_t *, void *), void *);
#define KLBRD_ANY 0
int kl_scan_board(lboard_t *, uint, int (*)(klinfo_t *, void *), void *);
diff --git a/sys/arch/sgi/sgi/ip27_machdep.c b/sys/arch/sgi/sgi/ip27_machdep.c
index ec540df45d3..dfd945e880d 100644
--- a/sys/arch/sgi/sgi/ip27_machdep.c
+++ b/sys/arch/sgi/sgi/ip27_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ip27_machdep.c,v 1.44 2010/03/20 16:22:55 miod Exp $ */
+/* $OpenBSD: ip27_machdep.c,v 1.45 2010/03/21 13:52:05 miod Exp $ */
/*
* Copyright (c) 2008, 2009 Miodrag Vallat.
@@ -212,13 +212,13 @@ ip27_setup()
* information, starting with the master node.
*/
- kl_scan_config(masternasid);
+ kl_scan_config(ip35, masternasid);
for (node = 0; node < maxnodes; node++) {
if (gda->nasid[node] < 0)
continue;
if (gda->nasid[node] == masternasid)
continue;
- kl_scan_config(gda->nasid[node]);
+ kl_scan_config(ip35, gda->nasid[node]);
}
/*
diff --git a/sys/arch/sgi/sgi/sginode.c b/sys/arch/sgi/sgi/sginode.c
index 5b363183e79..9ec5eb31170 100644
--- a/sys/arch/sgi/sgi/sginode.c
+++ b/sys/arch/sgi/sgi/sginode.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sginode.c,v 1.17 2010/03/07 13:42:17 miod Exp $ */
+/* $OpenBSD: sginode.c,v 1.18 2010/03/21 13:52:05 miod Exp $ */
/*
* Copyright (c) 2008, 2009 Miodrag Vallat.
*
@@ -99,9 +99,9 @@ kl_init(int ip35)
}
void
-kl_scan_config(int nasid)
+kl_scan_config(int ip35, int16_t nasid)
{
- kl_scan_node(nasid, KLBRD_ANY, kl_first_pass_board, NULL);
+ kl_scan_node(nasid, KLBRD_ANY, kl_first_pass_board, &ip35);
}
/*
@@ -110,15 +110,69 @@ kl_scan_config(int nasid)
int
kl_first_pass_board(lboard_t *boardinfo, void *arg)
{
- DB_PRF(("%cboard type %x slot %x nasid %x nic %p components %d\n",
+ DB_PRF(("%cboard type %x slot %x nasid %x nic %p ncomp %d\n",
boardinfo->struct_type & LBOARD ? 'l' : 'r',
- boardinfo->brd_type, boardinfo->brd_slot, boardinfo->brd_nasid,
- boardinfo->brd_nic, boardinfo->brd_numcompts));
+ boardinfo->brd_type, boardinfo->brd_slot,
+ boardinfo->brd_nasid, boardinfo->brd_nic,
+ boardinfo->brd_numcompts));
- kl_scan_board(boardinfo, KLSTRUCT_ANY, kl_first_pass_comp, NULL);
+ kl_scan_board(boardinfo, KLSTRUCT_ANY, kl_first_pass_comp, arg);
return 0;
}
+#ifdef DEBUG
+static const char *klstruct_names[] = {
+ "unknown component",
+ "cpu",
+ "hub",
+ "memory",
+ "xbow",
+ "bridge",
+ "ioc3",
+ "pci",
+ "vme",
+ "router",
+ "graphics",
+ "scsi",
+ "fddi",
+ "mio",
+ "disk",
+ "tape",
+ "cdrom",
+ "hub uart",
+ "ioc3 Ethernet",
+ "ioc3 uart",
+ "component type 20",
+ "ioc3 keyboard",
+ "rad",
+ "hub tty",
+ "ioc3 tty",
+ "fc",
+ "module serialnumber",
+ "ioc3 mouse",
+ "tpu",
+ "gsn main board",
+ "gsn aux board",
+ "xthd",
+ "QLogic fc",
+ "firewire",
+ "usb",
+ "usb keyboard",
+ "usb mouse",
+ "dual scsi",
+ "PE brick",
+ "gigabit Ethernet",
+ "ide",
+ "ioc4",
+ "ioc4 uart",
+ "ioc4 tty",
+ "ioc4 keyboard",
+ "ioc4 mouse",
+ "ioc4 ATA",
+ "pci graphics"
+};
+#endif
+
/*
* Callback routine for the initial enumeration (components).
* We are interested in cpu and memory information only, but display a few
@@ -127,35 +181,53 @@ kl_first_pass_board(lboard_t *boardinfo, void *arg)
int
kl_first_pass_comp(klinfo_t *comp, void *arg)
{
+ int ip35 = *(int *)arg;
klcpu_t *cpucomp;
klmembnk_m_t *memcomp_m;
arc_config64_t *arc;
#ifdef DEBUG
- klhub_t *hubcomp;
klmembnk_n_t *memcomp_n;
+ klhub_t *hubcomp;
klxbow_t *xbowcomp;
+ klscsi_t *scsicomp;
+ klscctl_t *scsi2comp;
int i;
#endif
arc = (arc_config64_t *)comp->arcs_compt;
+
+#ifdef DEBUG
+ if (comp->struct_type < nitems(klstruct_names))
+ DB_PRF(("\t%s", klstruct_names[comp->struct_type]));
+ else
+ DB_PRF(("\tcomponent type %d", comp->struct_type));
+ DB_PRF((", widget %x physid 0x%02x virtid %d",
+ comp->widid, comp->physid, comp->virtid));
+ if (ip35) {
+ DB_PRF((" prt %d bus %d", comp->port, comp->pci_bus_num));
+ if (comp->pci_multifunc)
+ DB_PRF((" pcifn %d", comp->pci_func_num));
+ }
+ DB_PRF(("\n"));
+#endif
+
switch (comp->struct_type) {
case KLSTRUCT_CPU:
cpucomp = (klcpu_t *)comp;
- 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));
-
+ DB_PRF(("\t type %x/%x %dMHz cache %dMB speed %dMHz\n",
+ cpucomp->cpu_prid, cpucomp->cpu_fpirr,
+ cpucomp->cpu_speed, cpucomp->cpu_scachesz,
+ cpucomp->cpu_scachespeed));
/*
* XXX this assumes the first cpu encountered is the boot
* XXX cpu.
*/
if (bootcpu_hwinfo.clock == 0) {
bootcpu_hwinfo.c0prid = cpucomp->cpu_prid;
-#if 0
- bootcpu_hwinfo.c1prid = cpucomp->cpu_fpirr;
-#else
- bootcpu_hwinfo.c1prid = cpucomp->cpu_prid;
-#endif
+ if (ip35)
+ bootcpu_hwinfo.c1prid = cpucomp->cpu_prid;
+ else
+ bootcpu_hwinfo.c1prid = cpucomp->cpu_fpirr;
bootcpu_hwinfo.clock = cpucomp->cpu_speed * 1000000;
bootcpu_hwinfo.tlbsize = 64;
bootcpu_hwinfo.type = (cpucomp->cpu_prid >> 8) & 0xff;
@@ -167,7 +239,7 @@ kl_first_pass_comp(klinfo_t *comp, void *arg)
memcomp_m = (klmembnk_m_t *)comp;
#ifdef DEBUG
memcomp_n = (klmembnk_n_t *)comp;
- DB_PRF(("\tmemory %dMB, select %x flags %x\n",
+ DB_PRF(("\t %dMB, select %x flags %x\n",
memcomp_m->membnk_memsz, memcomp_m->membnk_dimm_select,
kl_n_mode ?
memcomp_n->membnk_attr : memcomp_m->membnk_attr));
@@ -188,17 +260,17 @@ kl_first_pass_comp(klinfo_t *comp, void *arg)
}
}
#endif
-
- if (sys_config.system_type == SGI_IP27)
- kl_add_memory_ip27(comp->nasid, memcomp_m->membnk_bnksz,
- kl_n_mode ? MD_MEM_BANKS_N : MD_MEM_BANKS_M);
+ if (ip35)
+ kl_add_memory_ip35(comp->nasid,
+ memcomp_m->membnk_bnksz,
+ kl_n_mode ? MD_MEM_BANKS_N : MD_MEM_BANKS_M);
else
- kl_add_memory_ip35(comp->nasid, memcomp_m->membnk_bnksz,
- kl_n_mode ? MD_MEM_BANKS_N : MD_MEM_BANKS_M);
+ kl_add_memory_ip27(comp->nasid,
+ memcomp_m->membnk_bnksz,
+ kl_n_mode ? MD_MEM_BANKS_N : MD_MEM_BANKS_M);
break;
case KLSTRUCT_GFX:
- DB_PRF(("\tgraphics widget %d\n", comp->widid));
/*
* We rely upon the PROM setting up a fake ARCBios component
* for the graphics console, if there is one.
@@ -210,7 +282,7 @@ kl_first_pass_comp(klinfo_t *comp, void *arg)
if (arc != NULL &&
arc->class != 0 && arc->type == arc_DisplayController &&
ISSET(arc->flags, ARCBIOS_DEVFLAGS_CONSOLE_OUTPUT)) {
- DB_PRF(("\t(console device)\n"));
+ DB_PRF(("\t (console device)\n"));
/* paranoia */
if (comp->widid >= WIDGET_MIN &&
comp->widid <= WIDGET_MAX)
@@ -221,42 +293,53 @@ kl_first_pass_comp(klinfo_t *comp, void *arg)
#ifdef DEBUG
case KLSTRUCT_HUB:
hubcomp = (klhub_t *)comp;
- DB_PRF(("\thub widget %d port %d flag %d speed %dMHz\n",
- hubcomp->hub_info.widid, hubcomp->hub_port.port_nasid,
- hubcomp->hub_port.port_flag, hubcomp->hub_speed / 1000000));
+ DB_PRF(("\t port %d flag %d speed %dMHz\n",
+ hubcomp->hub_port.port_nasid, hubcomp->hub_port.port_flag,
+ hubcomp->hub_speed / 1000000));
break;
case KLSTRUCT_XBOW:
xbowcomp = (klxbow_t *)comp;
- DB_PRF(("\txbow hub master link %d\n",
+ DB_PRF(("\t hub master link %d\n",
xbowcomp->xbow_hub_master_link));
for (i = 0; i < MAX_XBOW_LINKS; i++) {
- if (xbowcomp->xbow_port_info[i].port_flag &
- XBOW_PORT_ENABLE)
- DB_PRF(("\t\twidget %d nasid %d flg %u\n",
- 8 + i,
- xbowcomp->xbow_port_info[i].port_nasid,
- xbowcomp->xbow_port_info[i].port_flag));
+ if (!ISSET(xbowcomp->xbow_port_info[i].port_flag,
+ XBOW_PORT_ENABLE))
+ continue;
+ DB_PRF(("\t\twidget %d nasid %d flg %u\n", 8 + i,
+ xbowcomp->xbow_port_info[i].port_nasid,
+ xbowcomp->xbow_port_info[i].port_flag));
}
break;
- default:
- DB_PRF(("\tcomponent widget %d type %d\n",
- comp->widid, comp->struct_type));
+ case KLSTRUCT_SCSI2:
+ scsi2comp = (klscctl_t *)comp;
+ for (i = 0; i < scsi2comp->scsi_buscnt; i++) {
+ scsicomp = (klscsi_t *)scsi2comp->scsi_bus[i];
+ DB_PRF(("\t\tbus %d, physid 0x%02x virtid %d,"
+ " specific %ld, numdevs %d\n",
+ i, scsicomp->scsi_info.physid,
+ scsicomp->scsi_info.virtid,
+ scsicomp->scsi_specific,
+ scsicomp->scsi_numdevs));
+ }
break;
#endif
}
+
#ifdef DEBUG
if (arc != NULL) {
- DB_PRF(("\tARCBios component: class %d type %d flags %02x key 0x%lx",
+ DB_PRF(("\t[ARCBios component:"
+ " class %d type %d flags %02x key 0x%lx",
arc->class, arc->type, arc->flags, arc->key));
if (arc->id_len != 0)
- DB_PRF((" %.*s\n",
+ DB_PRF((" %.*s]\n",
(int)arc->id_len, (const char *)arc->id));
else
- DB_PRF((" (no name)\n"));
+ DB_PRF((" (no name)]\n"));
}
#endif
+
return 0;
}
@@ -444,7 +527,7 @@ kl_add_memory_ip35(int16_t nasid, int16_t *sizes, unsigned int cnt)
#if 0
physmem += lp - fp;
#endif
- continue;
+ goto skip;
}
if (memrange_register(fp, lp,
@@ -460,6 +543,7 @@ kl_add_memory_ip35(int16_t nasid, int16_t *sizes, unsigned int cnt)
ptoa(np) >> 20);
}
}
+skip:
basepa += 1UL << 30; /* 1 GB */
}
}