And these two randomly crash, but only under heavy load, probably because there is a concurrency in the PCI bus regarding the two ethernet units and the two uart modules.
Is this RB532A, a Mikrotik board that allows one to stack "daughtercards", each providing mini-PCI slots?
If so, this could just be a Mikrotik hardware design issue also.
But yeah, I do agree it is most likely a software issue.
Have you ran some sort of memtest on it? If not, that might be a good idea. (I would personally run it as init, allocating suitable amount of RAM (most of it), mlock() the RAM, an then repeatedly fill it with a Xorshift generator verifying with the same initial data that the data is unchanged. I do not believe the RAM is at fault here, but making sure, excluding it as a possible reason, could be useful.)
The minicom SIGSEGV looks like a NULL pointer dereference, though.
Also, do you have
two mini-PCI UART modules installed? The driver may not be designed to do that correctly. A lot of PCI devices assume the system has exactly one of those. If you have an online link to the sources (gitweb or similar, I'm lazy and don't want to untar tarballs) of that particular driver, I could take a look and make an educated guess.
Not sure, but it looks more a software problem; kernel 2.6 are all unable to operate when uart-modules are installed (the kernel crashes immediately), kernel <=4.4 are OK, but it also maybe caps, which haven't been investigated yet.
No, I agree; I am just pointing out some of the possible causes just in case.
Me, I'd verify the RAM using some sort of quickly written memory test, so I could exclude the RAM from the list of possible reasons. Then, I'd modify it a bit, to use a few rounds of the Xorshoft PRNG per word of memory, to also pin the CPU, to get a RAM+CPU stress test. If that does not trigger any crashes or unexpected memory changes, you can basically exclude userspace from the list of possible reasons, leaving just the kernel drivers. While it can seem like superfluous work, being able to subdivide the problem space like this, excluding possible by unlikely causes one by one, works.
That said, if this indeed is the multi-miniPCI-daughter-card board, and you have more than one daughter card installed, you could test them one-by-one, using the same kernel configuration if possible. This too takes time, but if they are stable alone, and only unstable when both in use -- perhaps the stack/slot order matters too? --, then you have pinpointed the problem to the interaction between the two drivers.
Then, adding some kind of PCI spinlock in the driver (as you said, the devices do not use DMA), to ensure "logical transactions" to the two devices are not interspersed, might "fix" the issue. If it does not, it is a hardware issue. If it does, then one can contact the Linux PCI people, and ask for advice on how to properly implement that feature.
Or this is how I would go about it. There is probably a much better way; I just don't know it.