Hi Minskey and Kyle,
Thanks for all your discussion on this.
I found that the SOL session is gone after executing the following code
in bge_asf_pre_reset_operations:
bge_reg_put32(bgep, RX_RISC_EVENT_REG, event | RRER_ASF_EVENT);
But the bge driver in S10 does the same thing. As Kyle said there's no
problem with S10, I don't think that's
the root cause.
We have got some feedback from IBM, saying that it is a known issue at
IBM which will not be fixed. And I
am waiting for the document from IBM to see if we can provide a workaround.
Kyle, I have tried to install S10 on the box, but the BMC connection got
lost too. Could you tell me which
build of S10 you used with no problem?
Thanks,
Carson
minskey guo wrote:
Kyle McDonald 写道:
Hi Kerry,
I looked up the bug you filed, hoping to add this to it myself, but I
didn't see anyway for me to do that (is bugs.opensolaris.org read-only?)
Anyway, over the weekend I poked this a little more, and I'll admit
it's got me stumped.
The disconnect definitely occurs at:
bge_asf_pre_reset_operations()
Just take a look at this routine. IMHO, this routine should be fine.
One little nits in this routine is: how long should we wait for firmware
to pause, it doesn't check it after exiting while loop. If you suspect
this routine, you can try to check the event or tries variables after
exiting while loop.
I guess, the routine is doing the job:
it tells firmware to pause, after geting ack from fw, it sets a magic
number which indicates to firmware/hardware that driver is alive
and that all the following reset operation performed by driver is
just a software reset, not a hardware reset.
during those operations, your ipmi is paused, and will be resumed
after OS driver initialization is finished.
-minskey
But looking at the code, I can't tell where. There are calls to 3
functions in that one, but setting break points on those didn't add
any info - it appears they were never called? - Or could the calls
have been inlined or optimized out by the compiler?
I'm going to have to go read up on how to use kdb, so I can examine
the arguments passed to the function, etc.
Thanks for all your help!
-Kyle
Here's the very end of the output:
...
hid3 is /p...@0,0/pci1014,2...@1d,1/h...@2/dev...@1/in...@1
USB 1.10 interface (usbif4b3,4004.config1.1) operating at full speed
(USB 1.x) on USB 1.10 external hub: mo...@1, hid1 at bus address 7
IBM HIDK/M
hid1 is /p...@0,0/pci1014,2...@1d,1/h...@2/dev...@3/mo...@1
/p...@0,0/pci1014,2...@1d,1/h...@2/dev...@1/in...@1 (hid3) online
/p...@0,0/pci1014,2...@1d,1/h...@2/dev...@3/mo...@1 (hid1) online
PCIE-device: pci1014,2...@1,1, bge1
bge1 is /p...@0,0/pci8086,3...@3/pci8086,3...@0,2/pci1014,2...@1,1
pseudo-device: devinfo0
devinfo0 is /pseudo/devi...@0
Hostname: Einstein03
dump on /dev/zvol/dsk/zroot0/dump size 4096 MB
NIS domain name is Engineering.NIS
Loaded modules: [ lofs ]
kmdb: stop at bge`bge_attach
kmdb: target stopped at:
bge`bge_attach: pushq %rbp
[2]> [2]>
[2]>
[2]>
[2]> :c
kmdb: stop at bge`bge_asf_pre_reset_operations
kmdb: target stopped at:
bge`bge_asf_pre_reset_operations: pushq %rbp
[2]>
[2]>
[2]>
[2]>
[2]>
[2]>
[2]>
[2]> bge_nic_put32:b
[2]> bge_reg_get32:b
[2]> bge_reg_put32:b
[2]>
[2]>
[2]>
[2]> :c
system>
Kyle McDonald wrote:
Hi Kerry,
Maybe this will help even more. I was looking at the driver sources
in OpenGrok, and (if I was looking at the same version) I thought
I'd set a few more break points. it looks like it's:
bge_attach()->bge_reset()->bge_chip_reset()->bge_asf_pre_reset_operations()
Hope this helps.
-Kyle
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss
--
Thanks and Regards,
Carson (Yong Tan)
Sun Microsystems China (ERI)
Email: [email protected]
Tel : (86-10)6267-3681 (x51681)
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss