Beispiel #1
0
static int __init ip27_setup(void)
{
	hubreg_t p, e, n_mode;
	nasid_t nid;

	ip27_setup_console();
	ip27_reboot_setup();

	/*
	 * hub_rtc init and cpu clock intr enabled for later calibrate_delay.
	 */
	nid = get_nasid();
	printk("IP27: Running on node %d.\n", nid);

	p = LOCAL_HUB_L(PI_CPU_PRESENT_A) & 1;
	e = LOCAL_HUB_L(PI_CPU_ENABLE_A) & 1;
	printk("Node %d has %s primary CPU%s.\n", nid,
	       p ? "a" : "no",
	       e ? ", CPU is running" : "");

	p = LOCAL_HUB_L(PI_CPU_PRESENT_B) & 1;
	e = LOCAL_HUB_L(PI_CPU_ENABLE_B) & 1;
	printk("Node %d has %s secondary CPU%s.\n", nid,
	       p ? "a" : "no",
	       e ? ", CPU is running" : "");

	/*
	 * Try to catch kernel missconfigurations and give user an
	 * indication what option to select.
	 */
	n_mode = LOCAL_HUB_L(NI_STATUS_REV_ID) & NSRI_MORENODES_MASK;
	printk("Machine is in %c mode.\n", n_mode ? 'N' : 'M');
#ifdef CONFIG_SGI_SN0_N_MODE
	if (!n_mode)
		panic("Kernel compiled for M mode.");
#else
	if (n_mode)
		panic("Kernel compiled for N mode.");
#endif

	ioc3_sio_init();
	ioc3_eth_init();
	per_cpu_init();

	set_io_port_base(IO_BASE);

	board_time_init = ip27_time_init;

	return 0;
}
void __init plat_mem_setup(void)
{
	hubreg_t p, e, n_mode;
	nasid_t nid;

	ip27_reboot_setup();

	/*
                                                                      
  */
	nid = get_nasid();
	printk("IP27: Running on node %d.\n", nid);

	p = LOCAL_HUB_L(PI_CPU_PRESENT_A) & 1;
	e = LOCAL_HUB_L(PI_CPU_ENABLE_A) & 1;
	printk("Node %d has %s primary CPU%s.\n", nid,
	       p ? "a" : "no",
	       e ? ", CPU is running" : "");

	p = LOCAL_HUB_L(PI_CPU_PRESENT_B) & 1;
	e = LOCAL_HUB_L(PI_CPU_ENABLE_B) & 1;
	printk("Node %d has %s secondary CPU%s.\n", nid,
	       p ? "a" : "no",
	       e ? ", CPU is running" : "");

	/*
                                                           
                                     
  */
	n_mode = LOCAL_HUB_L(NI_STATUS_REV_ID) & NSRI_MORENODES_MASK;
	printk("Machine is in %c mode.\n", n_mode ? 'N' : 'M');
#ifdef CONFIG_SGI_SN_N_MODE
	if (!n_mode)
		panic("Kernel compiled for M mode.");
#else
	if (n_mode)
		panic("Kernel compiled for N mode.");
#endif

	ioc3_eth_init();
	per_cpu_init();

	set_io_port_base(IO_BASE);
}
void __init ip27_setup(void)
{
    nasid_t nid;
    hubreg_t p, e;

    ip27_setup_console();
    ip27_reboot_setup();

    num_bridges = 0;
    /*
     * hub_rtc init and cpu clock intr enabled for later calibrate_delay.
     */
    DBG("ip27_setup(): Entered.\n");
    nid = get_nasid();
    printk("IP27: Running on node %d.\n", nid);

    p = LOCAL_HUB_L(PI_CPU_PRESENT_A) & 1;
    e = LOCAL_HUB_L(PI_CPU_ENABLE_A) & 1;
    printk("Node %d has %s primary CPU%s.\n", nid,
           p ? "a" : "no",
           e ? ", CPU is running" : "");

    p = LOCAL_HUB_L(PI_CPU_PRESENT_B) & 1;
    e = LOCAL_HUB_L(PI_CPU_ENABLE_B) & 1;
    printk("Node %d has %s secondary CPU%s.\n", nid,
           p ? "a" : "no",
           e ? ", CPU is running" : "");

    verify_mode();
    ioc3_sio_init();
    ioc3_eth_init();
    per_cpu_init();

    set_io_port_base(IO_BASE);

    board_be_init = ip27_be_init;
    board_time_init = ip27_time_init;
}