zhuravlev alexander wrote:
> vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
> unknown: <PNP0303> can't assign resources
> unknown: <PNP0c02> can't assign resources
> unknown: <PNP0501> can't assign resources
> unknown: <PNP0501> can't assign resources
> unknown: <PNP0401> can't assign resources
> unknown: <PNP0700> can't assign resources
> ad0: 4125MB <FUJITSU MPB3043ATU E> [8940/15/63] at ata0-master UDMA33
> acd0: CDROM <CREATIVECD3220E> at ata0-slave PIO4
> Mounting root from ufs:/dev/ad0s2a
> ----------------- end --------------------
> 
> is this normal ?

It is if you have your BIOS configured incorrectly with
regard to whether you are running a "PNP OS".

It's also normal if you have more hardware in a box
than it's possible to handle simultaneously, e.g. if
you had a bunch of slots full of resource hungry
hardware.

Probably you will need to fiddle with your BIOS.

Try the following patch; the failure message will be
somewhat less cryptic, since it will tell you the
proximal reason for failure out of the 5 possibles
for the message you are seeing.  8-).

-- Terry
Index: isa_common.c
===================================================================
RCS file: /usr/cvs/src/sys/isa/isa_common.c,v
retrieving revision 1.16.2.1
diff -u -r1.16.2.1 isa_common.c
--- isa_common.c        16 Sep 2000 15:49:52 -0000      1.16.2.1
+++ isa_common.c        24 Feb 2002 21:07:23 -0000
@@ -387,15 +387,20 @@
        struct isa_device *idev = DEVTOISA(child);
        struct isa_config_entry *ice;
        struct isa_config config;
+       char *reason = "Empty ISA id_configs";
 
        bzero(&config, sizeof config);
        TAILQ_FOREACH(ice, &idev->id_configs, ice_link) {
+               reason = "memory";
                if (!isa_find_memory(child, &ice->ice_config, &config))
                        continue;
+               reason = "port";
                if (!isa_find_port(child, &ice->ice_config, &config))
                        continue;
+               reason = "irq";
                if (!isa_find_irq(child, &ice->ice_config, &config))
                        continue;
+               reason = "drq";
                if (!isa_find_drq(child, &ice->ice_config, &config))
                        continue;
 
@@ -403,6 +408,7 @@
                 * A working configuration was found enable the device 
                 * with this configuration.
                 */
+               reason = "no callback";
                if (idev->id_config_cb) {
                        idev->id_config_cb(idev->id_config_arg,
                                           &config, 1);
@@ -414,7 +420,7 @@
         * Disable the device.
         */
        bus_print_child_header(device_get_parent(child), child);
-       printf(" can't assign resources\n");
+       printf(" can't assign resources (%s)\n", reason);
        if (bootverbose)
            isa_print_child(device_get_parent(child), child);
        bzero(&config, sizeof config);

Reply via email to