1*2a929cd9Skiyohara /* $NetBSD: autoconf.c,v 1.2 2013/06/20 13:40:09 kiyohara Exp $ */
268122621Skiyohara /*
368122621Skiyohara * Copyright (c) 2013 KIYOHARA Takashi
468122621Skiyohara * All rights reserved.
568122621Skiyohara *
668122621Skiyohara * Redistribution and use in source and binary forms, with or without
768122621Skiyohara * modification, are permitted provided that the following conditions
868122621Skiyohara * are met:
968122621Skiyohara * 1. Redistributions of source code must retain the above copyright
1068122621Skiyohara * notice, this list of conditions and the following disclaimer.
1168122621Skiyohara * 2. Redistributions in binary form must reproduce the above copyright
1268122621Skiyohara * notice, this list of conditions and the following disclaimer in the
1368122621Skiyohara * documentation and/or other materials provided with the distribution.
1468122621Skiyohara *
1568122621Skiyohara * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
1668122621Skiyohara * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1768122621Skiyohara * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1868122621Skiyohara * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
1968122621Skiyohara * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
2068122621Skiyohara * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
2168122621Skiyohara * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2268122621Skiyohara * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
2368122621Skiyohara * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
2468122621Skiyohara * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2568122621Skiyohara * POSSIBILITY OF SUCH DAMAGE.
2668122621Skiyohara */
2768122621Skiyohara
2868122621Skiyohara #include <sys/cdefs.h>
29*2a929cd9Skiyohara __KERNEL_RCSID(0, "$NetBSD: autoconf.c,v 1.2 2013/06/20 13:40:09 kiyohara Exp $");
3068122621Skiyohara
3168122621Skiyohara #include <sys/systm.h>
3268122621Skiyohara #include <sys/types.h>
3368122621Skiyohara #include <sys/conf.h>
3468122621Skiyohara #include <sys/device.h>
3568122621Skiyohara
3668122621Skiyohara
3768122621Skiyohara void
cpu_configure(void)3868122621Skiyohara cpu_configure(void)
3968122621Skiyohara {
4068122621Skiyohara
4168122621Skiyohara splhigh();
4268122621Skiyohara splserial();
4368122621Skiyohara
4468122621Skiyohara if (config_rootfound("mainbus", NULL) == NULL)
4568122621Skiyohara panic("configure: mainbus not configured");
4668122621Skiyohara
4768122621Skiyohara /* Time to start taking interrupts so lets open the flood gates .... */
4868122621Skiyohara (void)spl0();
4968122621Skiyohara }
5068122621Skiyohara
5168122621Skiyohara void
cpu_rootconf(void)5268122621Skiyohara cpu_rootconf(void)
5368122621Skiyohara {
5468122621Skiyohara
5568122621Skiyohara aprint_normal("boot device: %s\n",
5668122621Skiyohara booted_device ? device_xname(booted_device) : "<unknown>");
5768122621Skiyohara
5868122621Skiyohara setroot(booted_device, booted_partition);
5968122621Skiyohara }
6068122621Skiyohara
6168122621Skiyohara void
device_register(device_t dev,void * aux)6268122621Skiyohara device_register(device_t dev, void *aux)
6368122621Skiyohara {
6468122621Skiyohara
6568122621Skiyohara if (device_is_a(dev, "clpslcd") ||
6668122621Skiyohara device_is_a(dev, "wmlcd")) {
6768122621Skiyohara extern int epoc32_fb_width, epoc32_fb_height, epoc32_fb_addr;
6868122621Skiyohara prop_dictionary_t dict = device_properties(dev);
6968122621Skiyohara
7068122621Skiyohara prop_dictionary_set_uint32(dict, "width", epoc32_fb_width);
7168122621Skiyohara prop_dictionary_set_uint32(dict, "height", epoc32_fb_height);
7268122621Skiyohara prop_dictionary_set_uint32(dict, "addr", epoc32_fb_addr);
7368122621Skiyohara }
74*2a929cd9Skiyohara
75*2a929cd9Skiyohara if (booted_device == NULL)
76*2a929cd9Skiyohara if (device_is_a(dev, "wd"))
77*2a929cd9Skiyohara booted_device = dev;
7868122621Skiyohara }
79