예제 #1
0
asmlinkage void __init
init_arch(int argc, char **argv, char **envp, int *prom_vec)
{
	unsigned int s;

	/* Determine which MIPS variant we are running on. */
	cpu_probe();

	prom_init(argc, argv, envp, prom_vec);

#ifdef CONFIG_SGI_IP22
	sgi_sysinit();
#endif

	cpu_report();

	/*
	 * Determine the mmu/cache attached to this machine,
	 * then flush the tlb and caches.  On the r4xx0
	 * variants this also sets CP0_WIRED to zero.
	 */
	loadmmu();

	/* Disable coprocessors and set FPU for 16/32 FPR register model */
	clear_cp0_status(ST0_CU1|ST0_CU2|ST0_CU3|ST0_KX|ST0_SX|ST0_FR);
	set_cp0_status(ST0_CU0);

	start_kernel();
}
예제 #2
0
asmlinkage void __init init_arch(int argc, char **argv, char **envp,
                                 int *prom_vec)
{
    /* Determine which MIPS variant we are running on. */
    cpu_probe();

    prom_init(argc, argv, envp, prom_vec);

#ifdef CONFIG_SGI_IP22
    sgi_sysinit();
#endif

    cpu_report();

    /*
     * Determine the mmu/cache attached to this machine, then flush the
     * tlb and caches.  On the r4xx0 variants this also sets CP0_WIRED to
     * zero.
     */
    load_mmu();

    /*
     * On IP27, I am seeing the TS bit set when the kernel is loaded.
     * Maybe because the kernel is in ckseg0 and not xkphys? Clear it
     * anyway ...
     */
    clear_cp0_status(ST0_BEV|ST0_TS|ST0_CU1|ST0_CU2|ST0_CU3);
    set_cp0_status(ST0_CU0|ST0_KX|ST0_SX|ST0_FR);

    start_kernel();
}