Пример #1
0
static void
dump_crossbow(void)
{
	printk("===== Dump the Crossbow regs =====\n");
	clear_ii_error();
	xdump32((unsigned int *)0xc0000a0000000004, 1);
	clear_ii_error();
	xdump32((unsigned int *)0xc0000a0000000000, 1);
	printk("and again..\n");
	xdump32((unsigned int *)0xc0000a0000000000, 1);
	xdump32((unsigned int *)0xc0000a0000000000, 1);


	clear_ii_error();

	xdump32((unsigned int *)0xc000020000000004, 1);
	clear_ii_error();
	xdump32((unsigned int *)0xc000020000000000, 1);
	clear_ii_error();

	xdump32((unsigned int *)0xc0000a0000800004, 1);
	clear_ii_error();
	xdump32((unsigned int *)0xc0000a0000800000, 1);
	clear_ii_error();

	xdump32((unsigned int *)0xc000020000800004, 1);
	clear_ii_error();
	xdump32((unsigned int *)0xc000020000800000, 1);
	clear_ii_error();


}
Пример #2
0
void
klgraph_hack_init(void)
{

	kl_config_hdr_t *kl_hdr_ptr;
	lboard_t	*lb_ptr;
	lboard_t	*temp_ptr;
	klhub_t		*klhub_ptr;
	klioc3_t	*klioc3_ptr;
	klbri_t		*klbri_ptr;
	klxbow_t	*klxbow_ptr;
	klinfo_t	*klinfo_ptr;
	klcomp_t	*klcomp_ptr;
#if 0
	uint64_t	*tmp;
	volatile u32	*tmp32;

	/* Preset some values */
	/* Write IOERR clear to clear the CRAZY bit in the status */
	tmp = (uint64_t *)0xc0000a0001c001f8; *tmp = (uint64_t)0xffffffff;
	/* set widget control register...setting bedrock widget id to b */
	/* tmp = (uint64_t *)0xc0000a0001c00020; *tmp = (uint64_t)0x801b; */
	/* set io outbound widget access...allow all */
	tmp = (uint64_t *)0xc0000a0001c00110; *tmp = (uint64_t)0xff01;
	/* set io inbound widget access...allow all */
	tmp = (uint64_t *)0xc0000a0001c00118; *tmp = (uint64_t)0xff01;
	/* set io crb timeout to max */
	tmp = (uint64_t *)0xc0000a0001c003c0; *tmp = (uint64_t)0xffffff;
	tmp = (uint64_t *)0xc0000a0001c003c0; *tmp = (uint64_t)0xffffff;
	
	/* set local block io permission...allow all */
	tmp = (uint64_t *)0xc0000a0001e04010; *tmp = (uint64_t)0xfffffffffffffff;

	/* clear any errors */
	clear_ii_error();

	/* set default read response buffers in bridge */
	tmp32 = (volatile u32 *)0xc0000a000f000280L;
	*tmp32 = 0xba98;
	tmp32 = (volatile u32 *)0xc0000a000f000288L;
	*tmp32 = 0xba98;

printk("Widget ID Address 0x%p Value 0x%lx\n", (uint64_t *)0xc0000a0001e00000, *( (volatile uint64_t *)0xc0000a0001e00000) );

printk("Widget ID Address 0x%p Value 0x%lx\n", (uint64_t *)0xc0000a0001c00000, *( (volatile uint64_t *)0xc0000a0001c00000) );

printk("Widget ID Address 0x%p Value 0x%lx\n", (uint64_t *)0xc000020001e00000, *( (volatile uint64_t *)0xc000020001e00000) );


printk("Widget ID Address 0x%p Value 0x%lx\n", (uint64_t *)0xc000020001c00000, *( (volatile uint64_t *)0xc000020001c00000) );

printk("Widget ID Address 0x%p Value 0x%lx\n", (uint64_t *)0xc0000a0001e00000, *( (volatile uint64_t *)0xc0000a0001e00000) );

printk("Xbow ID Address 0x%p Value 0x%x\n", (uint64_t *)0xc0000a0000000000, *( (volatile uint32_t *)0xc0000a0000000000) );

printk("Xbow ID Address 0x%p Value 0x%x\n", (uint64_t *)0xc000020000000004, *( (volatile uint32_t *)0xc000020000000004) );

#endif

	if ( test )
		test_io_regs();
	/*
	 * Klconfig header.
	 */
	kl_hdr_ptr = kmalloc(sizeof(kl_config_hdr_t), GFP_KERNEL);
        kl_hdr_ptr->ch_magic = 0xbeedbabe;
        kl_hdr_ptr->ch_version = 0x0;
        kl_hdr_ptr->ch_malloc_hdr_off = 0x48;
        kl_hdr_ptr->ch_cons_off = 0x18;
        kl_hdr_ptr->ch_board_info = 0x0;
        kl_hdr_ptr->ch_cons_info.uart_base = 0x920000000f820178;
        kl_hdr_ptr->ch_cons_info.config_base = 0x920000000f024000;
        kl_hdr_ptr->ch_cons_info.memory_base = 0x920000000f800000;
        kl_hdr_ptr->ch_cons_info.baud = 0x2580;
        kl_hdr_ptr->ch_cons_info.flag = 0x1;
        kl_hdr_ptr->ch_cons_info.type = 0x300fafa;
        kl_hdr_ptr->ch_cons_info.nasid = 0x0;
        kl_hdr_ptr->ch_cons_info.wid = 0xf;
        kl_hdr_ptr->ch_cons_info.npci = 0x4;
        kl_hdr_ptr->ch_cons_info.baseio_nic = 0x0;

	/*
	 * We need to know whether we are booting from PROM or 
	 * boot from disk.
	 */
	linux_klcfg = (kl_config_hdr_t *)0xe000000000030000;
	if (linux_klcfg->ch_magic == 0xbeedbabe) {
		return;
	} else {
		linux_klcfg = kl_hdr_ptr;
	}

	/*
	 * lboard KLTYPE_IP35
	 */
	lb_ptr = kmalloc(sizeof(lboard_t), GFP_KERNEL);
	kl_hdr_ptr->ch_board_info = (klconf_off_t) lb_ptr;
	temp_ptr = lb_ptr;
	printk("First Lboard = %p\n", temp_ptr);

        lb_ptr->brd_next = 0;
        lb_ptr->struct_type = 0x1;
        lb_ptr->brd_type  = 0x11;
        lb_ptr->brd_sversion = 0x3;
        lb_ptr->brd_brevision = 0x1;
        lb_ptr->brd_promver = 0x1;
        lb_ptr->brd_promver = 0x1;
        lb_ptr->brd_slot = 0x0;
        lb_ptr->brd_debugsw = 0x0;
        lb_ptr->brd_module = 0x145;
        lb_ptr->brd_partition = 0x0;
        lb_ptr->brd_diagval = 0x0;
        lb_ptr->brd_diagparm = 0x0;
        lb_ptr->brd_inventory = 0x0;
        lb_ptr->brd_numcompts = 0x5;
        lb_ptr->brd_nic = 0x2a0aed35;
        lb_ptr->brd_nasid = 0x0;
        lb_ptr->brd_errinfo = 0x0;
        lb_ptr->brd_parent = 0x0;
        lb_ptr->brd_graph_link  = (devfs_handle_t)0x26;
        lb_ptr->brd_owner = 0x0;
        lb_ptr->brd_nic_flags = 0x0;
	memcpy(&lb_ptr->brd_name[0], "IP35", 4);

	/*
	 * Hub Component
	 */
	klcomp_ptr = kmalloc(sizeof(klcomp_t), GFP_KERNEL);
	klhub_ptr = (klhub_t *)klcomp_ptr;
	klinfo_ptr = (klinfo_t *)klcomp_ptr;
	lb_ptr->brd_compts[0] = (klconf_off_t)klcomp_ptr;
	printk("hub info = %p lboard = %p\n", klhub_ptr, lb_ptr);

	klinfo_ptr = (klinfo_t *)klhub_ptr;
        klinfo_ptr->struct_type = 0x2;
        klinfo_ptr->struct_version = 0x1;
        klinfo_ptr->flags = 0x1;
        klinfo_ptr->revision = 0x1;
        klinfo_ptr->diagval = 0x0;
        klinfo_ptr->diagparm = 0x0;
        klinfo_ptr->inventory = 0x0;
        klinfo_ptr->partid = 0x0;
        klinfo_ptr->nic = 0x2a0aed35;
        klinfo_ptr->physid = 0x0;
        klinfo_ptr->virtid = 0x0;
        klinfo_ptr->widid = 0x0;
        klinfo_ptr->nasid = 0x0;

        klhub_ptr->hub_flags = 0x0;
        klhub_ptr->hub_port.port_nasid = (nasid_t)0x0ffffffff;
        klhub_ptr->hub_port.port_flag = 0x0;
        klhub_ptr->hub_port.port_offset = 0x0;
        klhub_ptr->hub_box_nic = 0x0;
        klhub_ptr->hub_mfg_nic = 0x3f420;
        klhub_ptr->hub_speed = 0xbebc200;

	/*
	 * Memory Component
	 */
        klcomp_ptr = kmalloc(sizeof(klcomp_t), GFP_KERNEL);
        klinfo_ptr = (klinfo_t *)klcomp_ptr;
	lb_ptr->brd_compts[1] = (klconf_off_t)klcomp_ptr;

        klinfo_ptr->struct_type = 0x3;
        klinfo_ptr->struct_version = 0x2;
        klinfo_ptr->flags = 0x1;
        klinfo_ptr->revision = 0xff;
        klinfo_ptr->diagval = 0x0;
        klinfo_ptr->diagparm = 0x0;
        klinfo_ptr->inventory = 0x0;
        klinfo_ptr->partid = 0x0;
        klinfo_ptr->nic = 0xffffffffffffffff;
        klinfo_ptr->physid = 0xff;
        klinfo_ptr->virtid = 0xffffffff;
        klinfo_ptr->widid = 0x0;
        klinfo_ptr->nasid = 0x0;

	/*
	 * KLSTRUCT_HUB_UART Component
	 */
	klcomp_ptr = kmalloc(sizeof(klcomp_t), GFP_KERNEL);
	klinfo_ptr = (klinfo_t *)klcomp_ptr;
	lb_ptr->brd_compts[2] = (klconf_off_t)klcomp_ptr;

        klinfo_ptr->struct_type = 0x11;
        klinfo_ptr->struct_version = 0x1;
        klinfo_ptr->flags = 0x31;
        klinfo_ptr->revision = 0xff;
        klinfo_ptr->diagval = 0x0;
        klinfo_ptr->diagparm = 0x0;
        klinfo_ptr->inventory = 0x0;
        klinfo_ptr->partid = 0x0;
        klinfo_ptr->nic = 0xffffffffffffffff;
        klinfo_ptr->physid = 0x0;
        klinfo_ptr->virtid = 0x0;
        klinfo_ptr->widid = 0x0;
        klinfo_ptr->nasid = 0x0;

	/*
	 * KLSTRUCT_CPU Component
	 */
	klcomp_ptr = kmalloc(sizeof(klcomp_t), GFP_KERNEL);
        klinfo_ptr = (klinfo_t *)klcomp_ptr;
	lb_ptr->brd_compts[3] = (klconf_off_t)klcomp_ptr;

        klinfo_ptr->struct_type = 0x1;
        klinfo_ptr->struct_version = 0x2;
        klinfo_ptr->flags = 0x1;
        klinfo_ptr->revision = 0xff;
        klinfo_ptr->diagval = 0x0;
        klinfo_ptr->diagparm = 0x0;
        klinfo_ptr->inventory = 0x0;
        klinfo_ptr->partid = 0x0;
        klinfo_ptr->nic = 0xffffffffffffffff;
        klinfo_ptr->physid = 0x0;
        klinfo_ptr->virtid = 0x0;
        klinfo_ptr->widid = 0x0;
        klinfo_ptr->nasid = 0x0;

	/*
	 * KLSTRUCT_CPU Component
	 */
	klcomp_ptr = kmalloc(sizeof(klcomp_t), GFP_KERNEL);
        klinfo_ptr = (klinfo_t *)klcomp_ptr;
	lb_ptr->brd_compts[4] = (klconf_off_t)klcomp_ptr;

        klinfo_ptr->struct_type = 0x1;
        klinfo_ptr->struct_version = 0x2;
        klinfo_ptr->flags = 0x1;
        klinfo_ptr->revision = 0xff;
        klinfo_ptr->diagval = 0x0;
        klinfo_ptr->diagparm = 0x0;
        klinfo_ptr->inventory = 0x0;
        klinfo_ptr->partid = 0x0;
        klinfo_ptr->nic = 0xffffffffffffffff;
        klinfo_ptr->physid = 0x1;
        klinfo_ptr->virtid = 0x1;
        klinfo_ptr->widid = 0x0;
        klinfo_ptr->nasid = 0x0;

	lb_ptr->brd_compts[5] = 0; /* Set the next one to 0 .. end */
	lb_ptr->brd_numcompts = 5; /* 0 to 4 */

	/*
	 * lboard(0x42) KLTYPE_PBRICK_XBOW
	 */
	lb_ptr = kmalloc(sizeof(lboard_t), GFP_KERNEL);
	temp_ptr->brd_next = (klconf_off_t)lb_ptr; /* Let the previous point at the new .. */
	temp_ptr = lb_ptr;
	printk("Second Lboard = %p\n", temp_ptr);

        lb_ptr->brd_next = 0;
        lb_ptr->struct_type = 0x1;
        lb_ptr->brd_type  = 0x42;
        lb_ptr->brd_sversion = 0x2;
        lb_ptr->brd_brevision = 0x0;
        lb_ptr->brd_promver = 0x1;
        lb_ptr->brd_promver = 0x1;
        lb_ptr->brd_slot = 0x0;
        lb_ptr->brd_debugsw = 0x0;
        lb_ptr->brd_module = 0x145;
        lb_ptr->brd_partition = 0x1;
        lb_ptr->brd_diagval = 0x0;
        lb_ptr->brd_diagparm = 0x0;
        lb_ptr->brd_inventory = 0x0;
        lb_ptr->brd_numcompts = 0x1;
        lb_ptr->brd_nic = 0xffffffffffffffff;
        lb_ptr->brd_nasid = 0x0;
        lb_ptr->brd_errinfo = 0x0;
        lb_ptr->brd_parent = (struct lboard_s *)0x9600000000030070;
        lb_ptr->brd_graph_link  = (devfs_handle_t)0xffffffff;
        lb_ptr->brd_owner = 0x0;
        lb_ptr->brd_nic_flags = 0x0;
        memcpy(&lb_ptr->brd_name[0], "IOBRICK", 7);

	/*
	 * KLSTRUCT_XBOW Component
	 */
        klcomp_ptr = kmalloc(sizeof(klcomp_t), GFP_KERNEL);
	memset(klcomp_ptr, 0, sizeof(klcomp_t));
        klxbow_ptr = (klxbow_t *)klcomp_ptr;
        klinfo_ptr = (klinfo_t *)klcomp_ptr;
        lb_ptr->brd_compts[0] = (klconf_off_t)klcomp_ptr;
	printk("xbow_p 0x%p\n", klcomp_ptr);

        klinfo_ptr->struct_type = 0x4;
        klinfo_ptr->struct_version = 0x1;
        klinfo_ptr->flags = 0x1;
        klinfo_ptr->revision = 0x2;
        klinfo_ptr->diagval = 0x0;
        klinfo_ptr->diagparm = 0x0;
        klinfo_ptr->inventory = 0x0;
        klinfo_ptr->partid = 0x0;
        klinfo_ptr->nic = 0xffffffffffffffff;
        klinfo_ptr->physid = 0xff;
        klinfo_ptr->virtid = 0x0;
        klinfo_ptr->widid = 0x0;
        klinfo_ptr->nasid = 0x0;

        klxbow_ptr->xbow_master_hub_link = 0xb;
        klxbow_ptr->xbow_port_info[0].port_nasid = 0x0;
        klxbow_ptr->xbow_port_info[0].port_flag = 0x0;
        klxbow_ptr->xbow_port_info[0].port_offset = 0x0;

        klxbow_ptr->xbow_port_info[1].port_nasid = 0x401;
        klxbow_ptr->xbow_port_info[1].port_flag = 0x0;
        klxbow_ptr->xbow_port_info[1].port_offset = 0x0;

        klxbow_ptr->xbow_port_info[2].port_nasid = 0x0;
        klxbow_ptr->xbow_port_info[2].port_flag = 0x0;
        klxbow_ptr->xbow_port_info[2].port_offset = 0x0;

        klxbow_ptr->xbow_port_info[3].port_nasid = 0x0; /* ffffffff */
        klxbow_ptr->xbow_port_info[3].port_flag = 0x6;
        klxbow_ptr->xbow_port_info[3].port_offset = 0x30070;

        klxbow_ptr->xbow_port_info[4].port_nasid = 0x0; /* ffffff00; */
        klxbow_ptr->xbow_port_info[4].port_flag = 0x0;
        klxbow_ptr->xbow_port_info[4].port_offset = 0x0;

        klxbow_ptr->xbow_port_info[5].port_nasid = 0x0;
        klxbow_ptr->xbow_port_info[5].port_flag = 0x0;
        klxbow_ptr->xbow_port_info[5].port_offset = 0x0;
        klxbow_ptr->xbow_port_info[6].port_nasid = 0x0;
        klxbow_ptr->xbow_port_info[6].port_flag = 0x5;
        klxbow_ptr->xbow_port_info[6].port_offset = 0x30210;
        klxbow_ptr->xbow_port_info[7].port_nasid = 0x3;
        klxbow_ptr->xbow_port_info[7].port_flag = 0x5;
        klxbow_ptr->xbow_port_info[7].port_offset = 0x302e0;
	
	lb_ptr->brd_compts[1] = 0;
        lb_ptr->brd_numcompts = 1;


	/*
	 * lboard KLTYPE_PBRICK
	 */
	lb_ptr = kmalloc(sizeof(lboard_t), GFP_KERNEL);
	temp_ptr->brd_next = (klconf_off_t)lb_ptr; /* Let the previous point at the new .. */
	temp_ptr = lb_ptr;
	printk("Third Lboard %p\n", lb_ptr);

        lb_ptr->brd_next = 0;
        lb_ptr->struct_type = 0x1;
        lb_ptr->brd_type  = 0x72;
        lb_ptr->brd_sversion = 0x2;
        lb_ptr->brd_brevision = 0x0;
        lb_ptr->brd_promver = 0x1;
        lb_ptr->brd_promver = 0x41;
        lb_ptr->brd_slot = 0xe;
        lb_ptr->brd_debugsw = 0x0;
        lb_ptr->brd_module = 0x145;
        lb_ptr->brd_partition = 0x1;
        lb_ptr->brd_diagval = 0x0;
        lb_ptr->brd_diagparm = 0x0;
        lb_ptr->brd_inventory = 0x0;
        lb_ptr->brd_numcompts = 0x1;
        lb_ptr->brd_nic = 0x30e3fd;
        lb_ptr->brd_nasid = 0x0;
        lb_ptr->brd_errinfo = 0x0;
        lb_ptr->brd_parent = (struct lboard_s *)0x9600000000030140;
        lb_ptr->brd_graph_link  = (devfs_handle_t)0xffffffff;
        lb_ptr->brd_owner = 0x0;
        lb_ptr->brd_nic_flags = 0x0;
	memcpy(&lb_ptr->brd_name[0], "IP35", 4);

	/*
	 * KLSTRUCT_BRI Component
	 */
        klcomp_ptr = kmalloc(sizeof(klcomp_t), GFP_KERNEL);
        klbri_ptr = (klbri_t *)klcomp_ptr;
        klinfo_ptr = (klinfo_t *)klcomp_ptr;
        lb_ptr->brd_compts[0] = (klconf_off_t)klcomp_ptr;

        klinfo_ptr->struct_type = 0x5;
        klinfo_ptr->struct_version = 0x2;
        klinfo_ptr->flags = 0x1;
        klinfo_ptr->revision = 0x2;
        klinfo_ptr->diagval = 0x0;
        klinfo_ptr->diagparm = 0x0;
        klinfo_ptr->inventory = 0x0;
        klinfo_ptr->partid = 0xd002;
        klinfo_ptr->nic = 0x30e3fd;
        klinfo_ptr->physid = 0xe;
        klinfo_ptr->virtid = 0xe;
        klinfo_ptr->widid = 0xe;
        klinfo_ptr->nasid = 0x0;

        klbri_ptr->bri_eprominfo = 0xff;
        klbri_ptr->bri_bustype = 0x7;
        klbri_ptr->bri_mfg_nic = 0x3f4a8;

        lb_ptr->brd_compts[1] = 0;
        lb_ptr->brd_numcompts = 1;

	/*
	 * lboard KLTYPE_PBRICK
	 */
	lb_ptr = kmalloc(sizeof(lboard_t), GFP_KERNEL);
	temp_ptr->brd_next = (klconf_off_t)lb_ptr; /* Let the previous point at the new .. */
	temp_ptr = lb_ptr;
	printk("Fourth Lboard %p\n", lb_ptr);

        lb_ptr->brd_next = 0x0;
        lb_ptr->struct_type = 0x1;
        lb_ptr->brd_type  = 0x72;
        lb_ptr->brd_sversion = 0x2;
        lb_ptr->brd_brevision = 0x0;
        lb_ptr->brd_promver = 0x1;
        lb_ptr->brd_promver = 0x31;
        lb_ptr->brd_slot = 0xf;
        lb_ptr->brd_debugsw = 0x0;
        lb_ptr->brd_module = 0x145;
        lb_ptr->brd_partition = 0x1;
        lb_ptr->brd_diagval = 0x0;
        lb_ptr->brd_diagparm = 0x0;
        lb_ptr->brd_inventory = 0x0;
        lb_ptr->brd_numcompts = 0x6;
        lb_ptr->brd_nic = 0x30e3fd;
        lb_ptr->brd_nasid = 0x0;
        lb_ptr->brd_errinfo = 0x0;
        lb_ptr->brd_parent = (struct lboard_s *)0x9600000000030140;
        lb_ptr->brd_graph_link  = (devfs_handle_t)0xffffffff;
        lb_ptr->brd_owner = 0x0;
        lb_ptr->brd_nic_flags = 0x0;
	memcpy(&lb_ptr->brd_name[0], "IP35", 4);


	/*
	 * KLSTRUCT_BRI Component
	 */
        klcomp_ptr = kmalloc(sizeof(klcomp_t), GFP_KERNEL);
	klbri_ptr = (klbri_t *)klcomp_ptr;
        klinfo_ptr = (klinfo_t *)klcomp_ptr;
        lb_ptr->brd_compts[0] = (klconf_off_t)klcomp_ptr;

        klinfo_ptr->struct_type = 0x5;
        klinfo_ptr->struct_version = 0x2;
        klinfo_ptr->flags = 0x1;
        klinfo_ptr->revision = 0x2;
        klinfo_ptr->diagval = 0x0;
        klinfo_ptr->diagparm = 0x0;
        klinfo_ptr->inventory = 0x0;
        klinfo_ptr->partid = 0xd002;
        klinfo_ptr->nic = 0x30e3fd;
        klinfo_ptr->physid = 0xf;
        klinfo_ptr->virtid = 0xf;
        klinfo_ptr->widid = 0xf;
        klinfo_ptr->nasid = 0x0;

        klbri_ptr->bri_eprominfo = 0xff;
        klbri_ptr->bri_bustype = 0x7;
        klbri_ptr->bri_mfg_nic = 0x3f528;

	/*
	 * KLSTRUCT_SCSI component
	 */
        klcomp_ptr = kmalloc(sizeof(klcomp_t), GFP_KERNEL);
        klinfo_ptr = (klinfo_t *)klcomp_ptr;
        lb_ptr->brd_compts[1] = (klconf_off_t)klcomp_ptr;

        klinfo_ptr->struct_type = 0xb;
        klinfo_ptr->struct_version = 0x1;
        klinfo_ptr->flags = 0x31;
        klinfo_ptr->revision = 0x5;
        klinfo_ptr->diagval = 0x0;
        klinfo_ptr->diagparm = 0x0;
        klinfo_ptr->inventory = 0x0;
        klinfo_ptr->partid = 0x0;
        klinfo_ptr->nic = 0xffffffffffffffff;
        klinfo_ptr->physid = 0x1;
        klinfo_ptr->virtid = 0x0;
        klinfo_ptr->widid = 0xf;
        klinfo_ptr->nasid = 0x0;

	/*
	 * KLSTRUCT_IOC3 Component
	 */
        klcomp_ptr = kmalloc(sizeof(klcomp_t), GFP_KERNEL);
        klioc3_ptr = (klioc3_t *)klcomp_ptr;
        klinfo_ptr = (klinfo_t *)klcomp_ptr;
        lb_ptr->brd_compts[2] = (klconf_off_t)klcomp_ptr;

        klinfo_ptr->struct_type = 0x6;
        klinfo_ptr->struct_version = 0x1;
        klinfo_ptr->flags = 0x31;
        klinfo_ptr->revision = 0x1;
        klinfo_ptr->diagval = 0x0;
        klinfo_ptr->diagparm = 0x0;
        klinfo_ptr->inventory = 0x0;
        klinfo_ptr->partid = 0x0;
        klinfo_ptr->nic = 0xffffffffffffffff;
        klinfo_ptr->physid = 0x4;
        klinfo_ptr->virtid = 0x0;
        klinfo_ptr->widid = 0xf;
        klinfo_ptr->nasid = 0x0;

        klioc3_ptr->ioc3_ssram = 0x0;
        klioc3_ptr->ioc3_nvram = 0x0;

	/*
	 * KLSTRUCT_UNKNOWN Component
	 */
        klcomp_ptr = kmalloc(sizeof(klcomp_t), GFP_KERNEL);
        klinfo_ptr = (klinfo_t *)klcomp_ptr;
        lb_ptr->brd_compts[3] = (klconf_off_t)klcomp_ptr;

        klinfo_ptr->struct_type = 0x0;
        klinfo_ptr->struct_version = 0x1;
        klinfo_ptr->flags = 0x31;
        klinfo_ptr->revision = 0xff;
        klinfo_ptr->diagval = 0x0;
        klinfo_ptr->diagparm = 0x0;
        klinfo_ptr->inventory = 0x0;
        klinfo_ptr->partid = 0x0;
        klinfo_ptr->nic = 0xffffffffffffffff;
        klinfo_ptr->physid = 0x5;
        klinfo_ptr->virtid = 0x0;
        klinfo_ptr->widid = 0xf;
        klinfo_ptr->nasid = 0x0;

	/*
	 * KLSTRUCT_SCSI Component
	 */
        klcomp_ptr = kmalloc(sizeof(klcomp_t), GFP_KERNEL);
        klinfo_ptr = (klinfo_t *)klcomp_ptr;
        lb_ptr->brd_compts[4] = (klconf_off_t)klcomp_ptr;

        klinfo_ptr->struct_type = 0xb;
        klinfo_ptr->struct_version = 0x1;
        klinfo_ptr->flags = 0x31;
        klinfo_ptr->revision = 0x1;
        klinfo_ptr->diagval = 0x0;
        klinfo_ptr->diagparm = 0x0;
        klinfo_ptr->inventory = 0x0;
        klinfo_ptr->partid = 0x0;
        klinfo_ptr->nic = 0xffffffffffffffff;
        klinfo_ptr->physid = 0x6;
        klinfo_ptr->virtid = 0x5;
        klinfo_ptr->widid = 0xf;
        klinfo_ptr->nasid = 0x0;

	/*
	 * KLSTRUCT_UNKNOWN
	 */
        klcomp_ptr = kmalloc(sizeof(klcomp_t), GFP_KERNEL);
        klinfo_ptr = (klinfo_t *)klcomp_ptr;
        lb_ptr->brd_compts[5] = (klconf_off_t)klcomp_ptr;

        klinfo_ptr->struct_type = 0x0;
        klinfo_ptr->struct_version = 0x1;
        klinfo_ptr->flags = 0x31;
        klinfo_ptr->revision = 0xff;
        klinfo_ptr->diagval = 0x0;
        klinfo_ptr->diagparm = 0x0;
        klinfo_ptr->inventory = 0x0;
        klinfo_ptr->partid = 0x0;
        klinfo_ptr->nic = 0xffffffffffffffff;
        klinfo_ptr->physid = 0x7;
        klinfo_ptr->virtid = 0x0;
        klinfo_ptr->widid = 0xf;
        klinfo_ptr->nasid = 0x0;

	lb_ptr->brd_compts[6] = 0;
	lb_ptr->brd_numcompts = 6;

}