On Thu, 12 Jun 2008, jean-francois simon wrote: > hi, > > On a custom platform running a niagara2 cpu, i am seeing panics when the > bge driver for a broadcom 5704s (device id 16a8) is attached. the > problem is in bge_poll_firmware() function:
Have you filed a bug on this yet? I will cc nic-china as that is who is working on the bge driver. Please work with them to get a bug filed, if you haven't done so already. If you have, just let them know the CR ID. > > http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/io/bge/bge_chip2.c#bge_poll_firmware > > during the attach process the chip is resetted by the driver, which > enters a loop waiting for the 5704s chip f/w to come back out of reset. > this is what bge_poll_firmware() is doing by polling the chip memory > location NIC_MEM_GENCOMM: > > for (i = 0; i < 1000; ++i) { > drv_usecwait(1000); > gen = bge_nic_get64(bgep, NIC_MEM_GENCOMM) >> 32; > mac = bge_reg_get64(bgep, MAC_ADDRESS_REG(0)); > .... > > but at the same time in that loop, it tries to also read the 5704s mac > address register (offset 0x410). this is that very access which is > causing the panic. if i use kadb to nop that pci memory access, then the > attach completes OK, and later the chip works fine. > so it looks like on that particular chip (16a8) you can't access the mac > address register while the chip is in reset. > > this looks strange. did anyone ever have that problem? > looks like there is a broadcom doc (570X-PG104-R) which describes the > (tricky) init of the chip. but i don't have it.... > > thanks > -jf simon > > _______________________________________________ > driver-discuss mailing list > [email protected] > http://mail.opensolaris.org/mailman/listinfo/driver-discuss > -- Alan DuBoff - Solaris x86 IHV/OEM Group _______________________________________________ driver-discuss mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/driver-discuss
