Bueno, después de varios días dándole vueltas al asunto, he llegado al punto exacto donde da el kernel panic:
dento de nvm.c hay esta función:
static int BcmInitEEPROMQueues(struct bcm_mini_adapter *Adapter)
{
unsigned int value = 0;
/* CHIP Bug : Clear the Avail bits on the Read queue. The default
* value on this register is supposed to be 0x00001102.
* But we get 0x00001122.
*/
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, NVM_RW, DBG_LVL_ALL, "Fixing reset value on 0x0f003004 register\n");
value = EEPROM_READ_DATA_AVAIL;
wrmalt(Adapter, EEPROM_SPI_Q_STATUS1_REG, &value, sizeof(value)); <----------------------------------------------- KERNEL PANIC!
/* Flush the all the EEPROM queues. */
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, NVM_RW, DBG_LVL_ALL, " Flushing the queues\n");
value = EEPROM_ALL_QUEUE_FLUSH;
wrmalt(Adapter, SPI_FLUSH_REG, &value, sizeof(value));
value = 0;
wrmalt(Adapter, SPI_FLUSH_REG, &value, sizeof(value));
/* Read the EEPROM Status Register. Just to see, no real purpose. */
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, NVM_RW, DBG_LVL_ALL, "EEPROM Status register value = %x\n", ReadEEPROMStatusRegister(Adapter));
return STATUS_SUCCESS;
} /* BcmInitEEPROMQueues() */
no sé si es por SPI o porque la eeprom no esta correctamente direccionada por algún puntero, ¿alguien con experiencia sobre el tema?
Gracias