I’m using a raspberrypi-cm3 and my machine connects to the internet using ethernet spi using the encx24j600 driver. I have appended the overlay to the device tree and I’m using balenaOS distro.
The device tree overlay is written as such encx24j600-spi2-overlay.dts and encx24j600-overlay.dts. These are more or less copies of the enc28j60-overlay.dts and enc28j60-spi2-overlay.dts.
// Overlay for the Microchip ENCX24J600 Ethernet Controller - SPI2 Compute Module
// Interrupt pin: 39
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2835";
fragment@0 {
target = <&spi2>;
__overlay__ {
/* needed to avoid dtc warning */
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
eth1: encx24j600@0{
compatible = "microchip,encx24j600";
reg = <0>; /* CE0 */
pinctrl-names = "default";
pinctrl-0 = <ð1_pins>;
interrupt-parent = <&gpio>;
interrupts = <39 0x2>; /* Falling edge */
spi-max-frequency = <12000000>;
status = "okay";
};
};
};
fragment@1 {
target = <&gpio>;
__overlay__ {
eth1_pins: eth1_pins {
brcm,pins = <39>;
brcm,function = <0>; /* in */
brcm,pull = <0>; /* none */
};
};
};
__overrides__ {
int_pin = <ð1>, "interrupts:0",
<ð1_pins>, "brcm,pins:0";
speed = <ð1>, "spi-max-frequency:0";
};
};
When I flash my image on the device I find that I am only able to connect via ethernet to usb and SPI connection fails completely. dmesg
logs show that the eth1 pin has a eth1: hw csum failure
The ifconfig logs for the eth1 pin looks like this
eth1 Link encap:Ethernet HWaddr 04:91:62:6B:9F:78
inet addr:192.168.68.117 Bcast:192.168.68.255 Mask:255.255.255.0
inet6 addr: fe80::11f6:6f22:9b98:dec4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16381 errors:112 dropped:26 overruns:0 frame:187
TX packets:396 errors:180 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3765249 (3.5 MiB) TX bytes:30358 (29.6 KiB)
Interrupt:166
Any help with this would be much appreciated. Thanks!