I think the second interrupt is the problem. I read in the BCM hardware manual,two CAN controller on the same interrupt won't work without modifying
the module code. IMHO you need another GPIO for the second interrupt.
that GPIO has only one interrupt per bank. Otherwise I won't have come to the
idea to use the same interrupt.
If it is true with the ONE interrupt line, it could be possible to use the RX0BF and
RX1BF lines from each controller and connect them to normal GPIO inputs as CAN0_RX0BF, ...,CAN1_RX1BF.
The first thing to do in the interrupt service routine would then be to read the GPIO inputs and
decide which Buffer to read.
Or doing it with software, reading the CANINTF registers of both can controllers on receiving
an interrupt. It would be just 3 more bytes to transmit over SPI.
Compared to the 100us that the driver needs to start reading (as you described on your homepage) and the 15 Bytes to read for a message, I think it is not too long.
But I try to avoid changing the module, because I thing it will take very long to understand it.
that the way that I expected it to be, but unfortunatly, it didn't work yesterday.Changing the board definition will only change the kernel. That's where the structure is stored. Make is smart enough to realize, which code depends on each other and just compile only
which are needed to compile. The mcp251x module asking the kernel for the informations
on startup so it doesn't need to be recompiled if the structure changed. 'make module' should compile the modules.
I changed the board defintion, executed "make; make modules; make modules_install""
copied the kernel into /boot/ and rebooted, but the calculation for CNF1...CNF3 stayed the same.
I will try it again, perhaps I have forgotten a step.