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:
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
