History log of /openbsd/sys/dev/fdt/if_cad.c (Results 1 – 14 of 14)
Revision Date Author Comments
# 50107bc3 24-Mar-2024 patrick <patrick@openbsd.org>

Implement resetting the PHY via a GPIO pin, like in fec(4). This helps
enable the PHY on the Raspberry Pi 5.

ok kettenis@


# dcec61dc 15-Aug-2023 miod <miod@openbsd.org>

Replace a bunch of (1 << 31) with (1U << 31)


# caaad5e7 14-Aug-2022 jca <jca@openbsd.org>

Unbreak, don't assume we always hold the NET_LOCK

After net/if.c:rev 1.661 ifioctl() doesn't take the net lock any more
around SIOCGIFMEDIA and SIOCSIFMEDIA, which broke cad_ioctl().
The same was al

Unbreak, don't assume we always hold the NET_LOCK

After net/if.c:rev 1.661 ifioctl() doesn't take the net lock any more
around SIOCGIFMEDIA and SIOCSIFMEDIA, which broke cad_ioctl().
The same was already true about SIOCGIFSFFPAGE. Only release/reacquire
the net lock if warranted.

Input mvs@, ok miod@ mvs@ bluhm@

show more ...


# 9947cf1d 08-Mar-2022 visa <visa@openbsd.org>

Make cad(4) handle rxr ioctl.


# dc7152bb 07-Mar-2022 visa <visa@openbsd.org>

Prevent deadlock in cad_down()

Introduce an rwlock to serialize cad(4) ioctl operations so that
cad_down() can release NET_LOCK() temporarily when invoking barriers.
This releasing prevents a possib

Prevent deadlock in cad_down()

Introduce an rwlock to serialize cad(4) ioctl operations so that
cad_down() can release NET_LOCK() temporarily when invoking barriers.
This releasing prevents a possible deadlock with the taskq barrier.
The deadlock was pointed out by witness(4).

In addition, release NET_LOCK() when allocating memory in cad_up()
to reduce the risk of ill effects.

show more ...


# 00f22677 27-Jan-2022 visa <visa@openbsd.org>

cad(4): Disable unused priority queues

The GEMs on the PolarFire Soc implement four Rx queues and four
Tx queues for prioritizing traffic. All the queues are in a pseudo
active state after reset. Th

cad(4): Disable unused priority queues

The GEMs on the PolarFire Soc implement four Rx queues and four
Tx queues for prioritizing traffic. All the queues are in a pseudo
active state after reset. The driver uses only queues with index 0.
Disable the rest to avoid DMA errors.

Tested on a SiFive FU740 by jca@, Microchip PolarFire SoC and
Xilinx Zynq-7000 by me.

show more ...


# e20b624a 29-Jul-2021 patrick <patrick@openbsd.org>

Change driver class from DV_DULL to DV_IFNET, so that it can be recognized
as boot interface when doing netboot. This makes auto install/upgrade work.

ok kettenis@ visa@


# bd26bf05 27-Jun-2021 visa <visa@openbsd.org>

Create DMA maps with 64-bit capability when appropriate.

OK kettenis@


# d8cda1f5 27-Jun-2021 visa <visa@openbsd.org>

Use config register to determine if 64-bit DMA is available.

Suggested by and OK kettenis@


# bc7a8eb0 27-Jun-2021 jsg <jsg@openbsd.org>

match on sifive,fu540-c000-gem

used by the hifive unmatched device tree in mainline linux and u-boot
ok visa@


# 0aa35098 26-Jun-2021 visa <visa@openbsd.org>

cad: Implement 64-bit DMA mode

This lets the driver utilize 64-bit DMA on hardware that supports it.

Currently, riscv64 does not constrain DMA-reachable memory to the 32-bit
range. This caused memo

cad: Implement 64-bit DMA mode

This lets the driver utilize 64-bit DMA on hardware that supports it.

Currently, riscv64 does not constrain DMA-reachable memory to the 32-bit
range. This caused memory errors with cad(4) on machines that have RAM
above 4GB in the physical address space.

Prompted by Mickael Torres

OK kettenis@

show more ...


# 3b783122 25-Jun-2021 visa <visa@openbsd.org>

Remove an unused struct.


# afd483c3 13-Jun-2021 drahn <drahn@openbsd.org>

Match sifive,fu740-c000-gem so that device is detected on Unmatched.
pointed out by jsg@


# cdbda811 28-May-2021 visa <visa@openbsd.org>

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive chec

Add cad(4), a driver for Cadence GEM.

This initial revision targets the Zynq-7000, where the GEM implements
single transmit and receive queues with 32-bit DMA addresses. The driver
uses receive checksum offload, but transmit checksum offload is disabled
because of a hardware quirk. Also, the hardware's receive path is prone
to getting stuck if input cannot be handled quickly enough. The driver
attempts to recover by restarting the receiver when no input has been
seen for a while.

OK kettenis@

show more ...