Beispiel #1
0
ihandle_t
prom_memory_ihandle(void)
{
	static ihandle_t imemory;

	if (imemory != (ihandle_t)0)
		return (imemory);

	if (prom_getproplen(prom_chosennode(), "memory") != sizeof (ihandle_t))
		return (imemory = (ihandle_t)-1);

	(void) prom_getprop(prom_chosennode(), "memory", (caddr_t)(&imemory));
	imemory = (ihandle_t)prom_decode_int(imemory);
	return (imemory);
}
Beispiel #2
0
void
map_wellknown_devices()
{
    struct wkdevice *wkp;
    phandle_t	ieeprom;
    pnode_t	root;
    uint_t	stick_freq;

    /*
     * if there is a chosen eeprom, note it (for have_eeprom())
     */
    if (GETPROPLEN(prom_chosennode(), CHOSEN_EEPROM) ==
            sizeof (phandle_t) &&
            GETPROP(prom_chosennode(), CHOSEN_EEPROM, (caddr_t)&ieeprom) != -1)
        chosen_eeprom = (pnode_t)prom_decode_int(ieeprom);

    root = prom_nextnode((pnode_t)0);
    /*
     * Get System clock frequency from root node if it exists.
     */
    if (GETPROP(root, "stick-frequency", (caddr_t)&stick_freq) != -1)
        system_clock_freq = stick_freq;

    map_wellknown(NEXT((pnode_t)0));

    /*
     * See if it worked
     */
    for (wkp = wkdevice; wkp->wk_namep; ++wkp) {
        if (wkp->wk_flags == V_MUSTHAVE) {
            cmn_err(CE_PANIC, "map_wellknown_devices: required "
                    "device %s not mapped", wkp->wk_namep);
        }
    }

    /*
     * all sun4u systems must have an IO bus, i.e. sbus or pcibus
     */
    if (niobus == 0)
        cmn_err(CE_PANIC, "map_wellknown_devices: no i/o bus node");

    check_cpus_ver();
    check_cpus_set();
}