This is in fact how its done. The important step is to add the set
pci_allow_pseudo_children=1 to the etc/system file, otherwise PCI will
not load the information. When I first tried to add device node
information to the dot-conf file pci wouldn't read it, but it was not
evident why it wouldn't.
Thanks for all you help.
Lou
Jan Setje-Eilers wrote:
You'll want to take a look at the driver.conf(4) man page and
translate all the bits of information you previously decorated the
node with via boot.rc into your .conf file.
So, something like:
name="ipmi_lpc" parent="/[EMAIL PROTECTED],0" device-type="pci"
unit-address="1f" ...
You'll also need to tell pci that it's OK to pick up .conf enumerated
nodes. You can do this by setting pci_allow_pseudo_children to 1 in
etc/system. Just add a line line this:
set pci_allow_pseudo_children=1
To etc/system.
Please let us know this goes for you.
-jan
I have tried this too, but when you try and map the registers with the
ddi_regs_map_setup() there's nothing to map and the call fails. There
is also the secondary problem of writing to the 6300ESB register space
so that LPC configuration can provide access to the IO space.
Lou
Artem Kachitchkine wrote:
Instead of creating a node, you could install your driver as a pseudo
driver, by creating a /kernel/drv/ipmi_lpc.conf (or whatever's you
driver name) file containing the line:
name="ipmi_lpc" parent="pseudo" instance=0;
The system will load the driver even if there isn't a hardware node
for it. Then access any I/O address you like, considering that *you
know* that no other driver on the system accesses (or at least doesn't
write or read-with-side-effect) this same address.
-Artem.
Louis Gagne wrote:
I have implemented a character driver under X86 based Solaris 10
release 3/05 that interfaces with a device on the ISA/LPC interface
using Intels 6300ESB I/O controller Hub. This device is not defined
by the system BIOS at boot time, so we had to do this manually by
modifying the boot startup script in boot/solaris/boot.rc to create a
device node and open up the relevant address space we needed to
access our device. We have a package that installs all the necessary
pieces for the new driver and this has worked just fine under the
3/05 version of Solaris 10.
It does not work under X86 based Solaris 10 Update 1 - which is what
our customer is using.
The driver itself is very simple and only accesses 3 bytes in LPC space.
The relevant changes in boot.rc made to allow access to this space
are shown below. I have tried to add these changes to bootenv.rc,
but /usr/sbin/eeprom generates error messages on the mknod, cd and
setbinprop lines.
Does anyone have any suggestions on what I might try?
Lou
# Set node for IPMI LPC SMIC interface space in PCI IO space.
mknod /[EMAIL PROTECTED],0/ipmi_lpc
cd /[EMAIL PROTECTED],0/ipmi_lpc
setprop device-type pci
setprop name "ipmi_lpc"
setprop unit-address 0x1f
setbinprop assigned-addresses
0x0000f800,0x0,0x0,0x0,0x0,0x8100f8ec,0x0,0x00000ca0,0x0,0x00000010
setbinprop device-id 0x25a1
setbinprop vendor-id 0x8086
setbinprop class-code 0x060100
setbinprop reg
0x0000f800,0,0,0,0,0x0100F8EC,0x0,0x00000000,0x00000000,0x00000010
This message posted from opensolaris.org
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org
--
Louis R. Gagne
Momentum Computer Inc.
1815 Aston Ave. Suite 107
Carlsbad, CA 92008
(760) 431-8663 X-104
(760) 431-7571 (FAX)
[EMAIL PROTECTED]
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org
--
Louis R. Gagne
Momentum Computer Inc.
1815 Aston Ave. Suite 107
Carlsbad, CA 92008
(760) 431-8663 X-104
(760) 431-7571 (FAX)
[EMAIL PROTECTED]
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org