Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

More "issues" with -current - i2c problems



I recently updated some of my machines from 6.99.23 (late July 2013) to 6.99.24 (mid October). After having fought and won a battle with the boot-loader, I'm now seeing some new problems, with i2c/piixpm.

The problems can be seen easily by using modload(8) to load the spdmem module. The module loads successfully and configures the two instances of the driver that should be present. Then, the kernel logs a timeout message from the piixpm(4) driver, and just "sits there" for several minutes; eventually, modload exits and I get a new shell prompt. (The delay is probably a result of the driver trying to read-and-checksum data from the ROMs on devices/instances at non-existent addresses.)

Now, this multi-minute delay is, by itself, pretty ugly. But things are even more screwed up at this point! If I reboot the machine, it seems that some sort of flags has been "tickled". The machine will power-off and then power-on, but it will not automatically boot. Pressing the "reset" button will start the boot process.

However, at this point the BIOS complains about something ("This CPU does not support the ASUS core-unlocker" or similar!), and requires me to enter BIOS Setup and save new settings. I have not seen any settings that actually need to be updated, but I must Save the new settings before I can boot!

I tried the same sequence of events, except I loaded the sdtemp module instead of spdmem. The long delay does not occur (as expected, since the sdtemp driver doesn't need to read any large amounts of ROM data). But the BIOS-is-corrupted problem still exists, and requires manual intervention in order to reboot.

I suspect that this behavior was introduced when i2c was modified (by soren?) to permit configurations that don't have hardwired i2c addresses. Both sdtemp and spdmem modules have hardwired addresses only, yet it would seem that the bus is being scanned and devices are being "probed" at addresses other than those that are explicitly referenced in these modules/drivers. (And one of these devices apparently has access to the BIOS's EPROM settings!)

I did notice that jdc introduced the ability to prevent indirect attach by setting the "i2c-indirect-config" property, but I don't know how this would be done on an amd64 machine, and it's not clear to me that I would still be able to attach driver instances when the module's ioconf file uses

        spdmem* at iic? addr 0x50
        ...

So, does anyone have any suggestions on how to proceed?




-------------------------------------------------------------------------
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:       |
| Customer Service | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com    |
| Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette at juniper.net |
| Kernel Developer |                          | pgoyette at netbsd.org  |
-------------------------------------------------------------------------


Home | Main Index | Thread Index | Old Index