3 #include <lib/libsa/stand.h>
7 #include <machine/iplcb.h>
9 extern struct ipl_directory ipldir
;
11 static void dump_sysinfo(void *);
12 /* dump the sysinfo structure */
14 dump_sysinfo(void *sysinfo_p
)
16 struct sys_info
*sysinfo
= (struct sys_info
*)sysinfo_p
;
18 printf(" System Info: %p\n", sysinfo_p
);
19 printf(" Processors: %d\n", sysinfo
->nrof_procs
);
20 printf(" Coherence Block size: 0x%x\n", sysinfo
->coherency_size
);
21 printf(" Reservation Granule size: 0x%x\n", sysinfo
->resv_size
);
22 printf(" Arbiter Controller RA: %p\n", sysinfo
->arb_ctrl_addr
);
23 printf(" Physical ID Register RA: %p\n", sysinfo
->phys_id_addr
);
24 printf(" # of BOS Slot Reset Registers: %d\n", sysinfo
->nrof_bsrr
);
25 printf(" BSSR RA: %p\n", sysinfo
->bssr_addr
);
26 printf(" Time of day type: %d\n", sysinfo
->tod_type
);
27 printf(" TOD Register RA: %p\n", sysinfo
->todr_addr
);
28 printf(" Reset Status Register RA: %p\n", sysinfo
->rsr_addr
);
29 printf(" Power/Keylock Status RA: %p\n", sysinfo
->pksr_addr
);
30 printf(" Power/Reset Control RA: %p\n", sysinfo
->prcr_addr
);
31 printf(" System Specific Register RA: %p\n", sysinfo
->sssr_addr
);
32 printf(" System Interrupt Regs RA: %p\n", sysinfo
->sir_addr
);
33 printf(" Standard Config Register RA: %p\n", sysinfo
->scr_addr
);
34 printf(" Device Special Config Register RA: %p\n", sysinfo
->dscr_addr
);
35 printf(" NVRAM size: %d\n", sysinfo
->nvram_size
);
36 printf(" NVRAM RA: %p\n", sysinfo
->nvram_addr
);
37 printf(" VPD ROM RA: %p\n", sysinfo
->vpd_rom_addr
);
38 printf(" IPL ROM size: %d\n", sysinfo
->ipl_rom_size
);
39 printf(" IPL ROM RA: %p\n", sysinfo
->ipl_rom_addr
);
40 printf(" Global MFFR Register RA: %p\n", sysinfo
->g_mfrr_addr
);
41 printf(" Global Timebase RA: %p\n", sysinfo
->g_tb_addr
);
42 printf(" Global Timebase type: %d\n", sysinfo
->g_tb_type
);
43 printf(" Global Timebase multiplier: %d\n", sysinfo
->g_tb_mult
);
44 printf(" SP Errorlog Offset: 0x%x\n", sysinfo
->sp_errorlog_off
);
45 printf(" Connectivity Config Register RA: %p\n", sysinfo
->pcccr_addr
);
46 printf(" Software Poweroff Register RA: %p\n", sysinfo
->spocr_addr
);
47 printf(" EPOW intr register RA: %p\n", sysinfo
->pfeivr_addr
);
48 printf(" Access ID waddr: %d\n", sysinfo
->access_id_waddr
);
49 printf(" APM write space RA: %p\n", sysinfo
->loc_waddr
);
50 printf(" Access ID raddr: %d\n", sysinfo
->access_id_raddr
);
51 printf(" APM read space RA: %p\n", sysinfo
->loc_raddr
);
52 printf(" Architecture: %d\n", sysinfo
->architecture
);
53 printf(" Implementation: %d\n", sysinfo
->implementation
);
54 printf(" Machine Description: %s\n", sysinfo
->pkg_desc
);
57 /* Dump the IPL control block */
59 dump_iplcb(void *iplcb_p
)
63 struct ipl_directory
*ipldir
;
64 struct ipl_cb
*iplcb_ptr
;
67 ipldir
= &(iplcb_ptr
->dir
);
69 printf("IPL Control Block\n");
70 printf(" IPL Control Block Address: %p\n", iplcb_p
);
71 printf("IPL Directory Block\n");
72 printf(" IPLCB_ID: %s\n", ipldir
->iplcb_id
);
73 printf(" GPR offset: 0x%x\n", ipldir
->gpr_save_off
);
74 printf(" Bitmap size: 0x%x\n", ipldir
->cb_bitmap_size
);
75 printf(" Bitmap offset: 0x%x\n", ipldir
->bitmap_off
);
76 printf(" Bitmap size: 0x%x\n", ipldir
->bitmap_size
);
77 printf(" IPL info offset: 0x%x\n", ipldir
->iplinfo_off
);
78 printf(" IPL info size: 0x%x\n", ipldir
->iplinfo_size
);
79 printf(" IOCC POST offset: 0x%x\n", ipldir
->iocc_post_off
);
80 printf(" IOCC POST size: 0x%x\n", ipldir
->iocc_post_size
);
81 printf(" NIO POST offset: 0x%x\n", ipldir
->nio_post_off
);
82 printf(" NIO POST size: 0x%x\n", ipldir
->nio_post_size
);
83 printf(" SJL POST offset: 0x%x\n", ipldir
->sjl_post_off
);
84 printf(" SJL POST size: 0x%x\n", ipldir
->sjl_post_size
);
85 printf(" SCSI POST offset: 0x%x\n", ipldir
->scsi_post_off
);
86 printf(" SCSI POST size: 0x%x\n", ipldir
->scsi_post_size
);
87 printf(" Ethernet POST offset: 0x%x\n", ipldir
->eth_post_off
);
88 printf(" Ethernet POST size: 0x%x\n", ipldir
->eth_post_size
);
89 printf(" Token Ring POST offset: 0x%x\n", ipldir
->tok_post_off
);
90 printf(" Token Ring POST size: 0x%x\n", ipldir
->tok_post_size
);
91 printf(" Serial POST offset: 0x%x\n", ipldir
->ser_post_off
);
92 printf(" Serial POST size: 0x%x\n", ipldir
->ser_post_size
);
93 printf(" Parallel POST offset: 0x%x\n", ipldir
->par_post_off
);
94 printf(" Parallel POST size: 0x%x\n", ipldir
->par_post_size
);
95 printf(" RSC POST offset: 0x%x\n", ipldir
->rsc_post_off
);
96 printf(" RSC POST size: 0x%x\n", ipldir
->rsc_post_size
);
97 printf(" Legacy POST offset: 0x%x\n", ipldir
->lega_post_off
);
98 printf(" Legacy POST size: 0x%x\n", ipldir
->lega_post_size
);
99 printf(" Keyboard POST offset: 0x%x\n", ipldir
->kbd_post_off
);
100 printf(" Keyboard POST size: 0x%x\n", ipldir
->kbd_post_size
);
101 printf(" RAM POST offset: 0x%x\n", ipldir
->ram_post_off
);
102 printf(" RAM POST size: 0x%x\n", ipldir
->ram_post_size
);
103 printf(" SGA POST offset: 0x%x\n", ipldir
->sga_post_off
);
104 printf(" SGA POST size: 0x%x\n", ipldir
->sga_post_size
);
105 printf(" Family2 POST offset: 0x%x\n", ipldir
->fm2_post_off
);
106 printf(" Family2 POST size: 0x%x\n", ipldir
->fm2_post_size
);
107 printf(" Netboot result offset: 0x%x\n", ipldir
->net_boot_result_off
);
108 printf(" Netboot result size: 0x%x\n", ipldir
->net_boot_result_size
);
109 printf(" Core Sequence Controller result offset: 0x%x\n", ipldir
->csc_result_off
);
110 printf(" Core Sequence Controller result size: 0x%x\n", ipldir
->csc_result_size
);
111 printf(" Menu result offset: 0x%x\n", ipldir
->menu_result_off
);
112 printf(" Menu result size: 0x%x\n", ipldir
->menu_result_size
);
113 printf(" Console result offset: 0x%x\n", ipldir
->cons_result_off
);
114 printf(" Console result size: 0x%x\n", ipldir
->cons_result_size
);
115 printf(" Diag result offset: 0x%x\n", ipldir
->diag_result_off
);
116 printf(" Diag result size: 0x%x\n", ipldir
->diag_result_size
);
117 printf(" ROM scan offset: 0x%x\n", ipldir
->rom_scan_off
);
118 printf(" ROM scan size: 0x%x\n", ipldir
->rom_scan_size
);
119 printf(" SKY POST offset: 0x%x\n", ipldir
->sky_post_off
);
120 printf(" SKY POST size: 0x%x\n", ipldir
->sky_post_size
);
121 printf(" Global offset: 0x%x\n", ipldir
->global_off
);
122 printf(" Global size: 0x%x\n", ipldir
->global_size
);
123 printf(" Mouse offset: 0x%x\n", ipldir
->mouse_off
);
124 printf(" Mouse size: 0x%x\n", ipldir
->mouse_size
);
125 printf(" VRS offset: 0x%x\n", ipldir
->vrs_off
);
126 printf(" VRS size: 0x%x\n", ipldir
->vrs_size
);
127 printf(" Taur offset: 0x%x\n", ipldir
->taur_post_off
);
128 printf(" Taur size: 0x%x\n", ipldir
->taur_post_size
);
129 printf(" ENT offset: 0x%x\n", ipldir
->ent_post_off
);
130 printf(" ENT size: 0x%x\n", ipldir
->ent_post_size
);
131 printf(" VRS40 offset: 0x%x\n", ipldir
->vrs40_off
);
132 printf(" VRS40 size: 0x%x\n", ipldir
->vrs40_size
);
133 printf(" Sysinfo offset: 0x%x\n", ipldir
->sysinfo_offset
);
134 printf(" Sysinfo size: 0x%x\n", ipldir
->sysinfo_size
);
135 printf(" BUCinfo offset: 0x%x\n", ipldir
->bucinfo_off
);
136 printf(" BUCinfo size: 0x%x\n", ipldir
->bucinfo_size
);
137 printf(" Processor info offset: 0x%x\n", ipldir
->procinfo_off
);
138 printf(" Processor info size: 0x%x\n", ipldir
->procinfo_size
);
139 printf(" Family 2 IO info offset: 0x%x\n", ipldir
->fm2_ioinfo_off
);
140 printf(" Family 2 IO info size: 0x%x\n", ipldir
->fm2_ioinfo_size
);
141 printf(" Processor POST offset: 0x%x\n", ipldir
->proc_post_off
);
142 printf(" Processor POST size: 0x%x\n", ipldir
->proc_post_size
);
143 printf(" System VPD offset: 0x%x\n", ipldir
->sysvpd_off
);
144 printf(" System VPD size: 0x%x\n", ipldir
->sysvpd_size
);
145 printf(" Memory Data offset: 0x%x\n", ipldir
->memdata_off
);
146 printf(" Memory Data size: 0x%x\n", ipldir
->memdata_size
);
147 printf(" L2 data offset: 0x%x\n", ipldir
->l2data_off
);
148 printf(" L2 data size: 0x%x\n", ipldir
->l2data_size
);
149 printf(" FDDI POST offset: 0x%x\n", ipldir
->fddi_post_off
);
150 printf(" FDDI POST size: 0x%x\n", ipldir
->fddi_post_size
);
151 printf(" Golden VPD offset: 0x%x\n", ipldir
->golden_vpd_off
);
152 printf(" Golden VPD size: 0x%x\n", ipldir
->golden_vpd_size
);
153 printf(" NVRAM Cache offset: 0x%x\n", ipldir
->nvram_cache_off
);
154 printf(" NVRAM Cache size: 0x%x\n", ipldir
->nvram_cache_size
);
155 printf(" User struct offset: 0x%x\n", ipldir
->user_struct_off
);
156 printf(" User struct size: 0x%x\n", ipldir
->user_struct_size
);
157 printf(" Residual offset: 0x%x\n", ipldir
->residual_off
);
158 printf(" Residual size: 0x%x\n", ipldir
->residual_size
);
160 dump_sysinfo(iplcb_p
+ ipldir
->sysinfo_offset
);
161 p
= (u_char
*)(iplcb_p
+ ipldir
->procinfo_off
);
162 for (i
=0; i
< ipldir
->procinfo_size
; i
+=4) {
163 printf(" 0x%x\n", *p
);