>Synopsis: kernel hang
>Category: arm
>Environment:
System : OpenBSD 6.2
Details : OpenBSD 6.2-current (GENERIC) #154: Sat Jan 6 03:41:38
MST 2018
[email protected]:/usr/src/sys/arch/armv7/compile/GENERIC
Architecture: OpenBSD.armv7
Machine : armv7
>Description:
IMX6DQRM.pdf(page 1092) has no mention of the reset bit being
self-clearing == nothing but this:
field: |descr:
_______________________________________________________________________
0 |Ethernet MAC Reset
RESET | When this field is set, it clears the ETHEREN field.
>How-To-Repeat:
av7wandb# ifconfig fec0 down
av7wandb# ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768
index 3 priority 0 llprio 3
groups: lo
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000
fec0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:1f:7b:b4:04:49
index 1 priority 0 llprio 3
groups: egress
<HUNG UP>
>Fix:
minimal diff below.
-Artturi
diff --git a/sys/arch/armv7/imx/if_fec.c b/sys/arch/armv7/imx/if_fec.c
index 899c1904144..96d6b54873a 100644
--- a/sys/arch/armv7/imx/if_fec.c
+++ b/sys/arch/armv7/imx/if_fec.c
@@ -339,7 +339,6 @@ fec_attach(struct device *parent, struct device *self, void
*aux)
/* reset the controller */
HSET4(sc, ENET_ECR, ENET_ECR_RESET);
- while(HREAD4(sc, ENET_ECR) & ENET_ECR_RESET);
HWRITE4(sc, ENET_EIMR, 0);
HWRITE4(sc, ENET_EIR, 0xffffffff);
@@ -604,7 +603,6 @@ fec_init(struct fec_softc *sc)
/* reset the controller */
HSET4(sc, ENET_ECR, ENET_ECR_RESET);
- while(HREAD4(sc, ENET_ECR) & ENET_ECR_RESET);
/* set hw address */
HWRITE4(sc, ENET_PALR,
@@ -703,7 +701,6 @@ fec_stop(struct fec_softc *sc)
/* reset the controller */
HSET4(sc, ENET_ECR, ENET_ECR_RESET);
- while(HREAD4(sc, ENET_ECR) & ENET_ECR_RESET);
}
void
dmesg:
OpenBSD 6.2-current (GENERIC) #154: Sat Jan 6 03:41:38 MST 2018
[email protected]:/usr/src/sys/arch/armv7/compile/GENERIC
real mem = 2147483648 (2048MB)
avail mem = 2097070080 (1999MB)
mainbus0 at root: Wandboard i.MX6 Quad Board rev B1
cpu0 at mainbus0: ARM Cortex-A9 r2p10 (ARMv7)
cpu0: DC enabled IC enabled WB disabled EABT branch prediction enabled
cpu0: 32KB(32b/l,4way) I-cache, 32KB(32b/l,4way) wr-back D-cache
cortex0 at mainbus0
amptimer0 at cortex0: tick rate 396000 KHz
armliicc0 at cortex0: rtl 7 waymask: 0x0000000f
simplebus0 at mainbus0: "soc"
ampintc0 at simplebus0 nirq 160, ncpu 4
simplebus1 at simplebus0: "aips-bus"
imxccm0 at simplebus1: imx6 rev 1.2 CPU freq: 792 MHz
syscon0 at simplebus1: "anatop"
syscon1 at simplebus1: "snvs"
syscon2 at simplebus1: "iomuxc-gpr"
imxiomuxc0 at simplebus1
simplebus2 at simplebus1: "spba-bus"
imxuart0 at simplebus2: console
imxgpio0 at simplebus1
imxgpio1 at simplebus1
imxgpio2 at simplebus1
imxgpio3 at simplebus1
imxgpio4 at simplebus1
imxgpio5 at simplebus1
imxgpio6 at simplebus1
imxdog0 at simplebus1
imxanatop0 at simplebus1
imxtemp0 at simplebus1
imxgpc0 at simplebus1
simplebus3 at simplebus0: "aips-bus"
syscon3 at simplebus3: "ocotp"
imxehci0 at simplebus3
usb0 at imxehci0: USB revision 2.0
uhub0 at usb0 configuration 1 interface 0 "i.MX6 EHCI root hub" rev 2.00/1.00
addr 1
imxehci1 at simplebus3
usb1 at imxehci1: USB revision 2.0
uhub1 at usb1 configuration 1 interface 0 "i.MX6 EHCI root hub" rev 2.00/1.00
addr 1
fec0 at simplebus3
fec0: address 00:1f:7b:b4:04:49
atphy0 at fec0 phy 1: AR8035 10/100/1000 PHY, rev. 4
imxesdhc0 at simplebus3
imxesdhc0: 198 MHz base clock
sdmmc0 at imxesdhc0: 4-bit, mmc high-speed, dma
imxesdhc1 at simplebus3
imxesdhc1: 198 MHz base clock
sdmmc1 at imxesdhc1: 4-bit, mmc high-speed, dma
imxesdhc2 at simplebus3
imxesdhc2: 198 MHz base clock
sdmmc2 at imxesdhc2: 4-bit, mmc high-speed, dma
imxiic0 at simplebus3
iic0 at imxiic0
imxiic1 at simplebus3
iic1 at imxiic1
"fsl,sgtl5000" at iic1 addr 0xa not configured
imxuart1 at simplebus3
imxahci0 at simplebus0: AHCI 1.3
scsibus0 at imxahci0: 32 targets
simplebus4 at mainbus0: "regulators"
sdmmc1: can't enable card
scsibus1 at sdmmc2: 2 targets, initiator 0
sd0 at scsibus1 targ 1 lun 0: <SD/MMC, USD, 0002> SCSI2 0/direct removable
sd0: 7517MB, 512 bytes/sector, 15394816 sectors
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
boot device: sd0
root on sd0a (56259af92715ef48.a) swap on sd0b dump on sd0b
WARNING: CHECK AND RESET THE DATE!
usbdevs:
Controller /dev/usb0:
addr 1: high speed, self powered, config 1, EHCI root hub(0x0000),
i.MX6(0x0000), rev 1.00
port 1 powered
Controller /dev/usb1:
addr 1: high speed, self powered, config 1, EHCI root hub(0x0000),
i.MX6(0x0000), rev 1.00
port 1 powered
pcidump:
acpidump: