[PATCH rtems-libbsd] freebsd/if_cgem: Remove QEMU workaround
Kinsey Moore
kinsey.moore at oarcorp.com
Tue Jun 27 15:30:15 UTC 2023
Note that this patch is for 6-freebsd-12 and its removal reduces the burden
to make the master branch match functionality.
On Tue, Jun 27, 2023 at 10:28 AM Kinsey Moore <kinsey.moore at oarcorp.com>
wrote:
> This removes the workaround applied on the fly for QEMU that disables
> priority queueing. The priority queue interrupt was not previously
> hooked up properly in QEMU and RSB now has the patches to allow it to
> work.
> ---
> freebsd/sys/dev/cadence/if_cgem.c | 26 +++++++-------------------
> 1 file changed, 7 insertions(+), 19 deletions(-)
>
> diff --git a/freebsd/sys/dev/cadence/if_cgem.c
> b/freebsd/sys/dev/cadence/if_cgem.c
> index 689c3611..c1c88e77 100644
> --- a/freebsd/sys/dev/cadence/if_cgem.c
> +++ b/freebsd/sys/dev/cadence/if_cgem.c
> @@ -133,7 +133,6 @@ struct cgem_softc {
> uint32_t net_ctl_shadow;
> #ifdef __rtems__
> uint32_t net_cfg_shadow;
> - int neednullqs;
> int phy_contype;
> #endif /* __rtems__ */
> int ref_clk_num;
> @@ -458,9 +457,8 @@ cgem_setup_descs(struct cgem_softc *sc)
> int desc_rings_size = CGEM_NUM_RX_DESCS * sizeof(struct
> cgem_rx_desc) +
> CGEM_NUM_TX_DESCS * sizeof(struct cgem_tx_desc);
>
> - if (sc->neednullqs)
> - desc_rings_size += sizeof(struct cgem_rx_desc) +
> - sizeof(struct cgem_tx_desc);
> + desc_rings_size += sizeof(struct cgem_rx_desc) +
> + sizeof(struct cgem_tx_desc);
> #endif /* __rtems__ */
> sc->txring = NULL;
> sc->rxring = NULL;
> @@ -609,13 +607,11 @@ cgem_setup_descs(struct cgem_softc *sc)
> sc->txring_queued = 0;
>
> #ifdef __rtems__
> - if (sc->neednullqs) {
> - sc->null_qs = (void *)(sc->txring + CGEM_NUM_TX_DESCS);
> - sc->null_qs_physaddr = sc->txring_physaddr +
> - CGEM_NUM_TX_DESCS * sizeof(struct cgem_tx_desc);
> + sc->null_qs = (void *)(sc->txring + CGEM_NUM_TX_DESCS);
> + sc->null_qs_physaddr = sc->txring_physaddr +
> + CGEM_NUM_TX_DESCS * sizeof(struct cgem_tx_desc);
>
> - cgem_null_qs(sc);
> - }
> + cgem_null_qs(sc);
> #endif /* __rtems__ */
>
> return (0);
> @@ -2074,15 +2070,7 @@ cgem_attach(device_t dev)
>
> sc->if_old_flags = if_getflags(ifp);
> sc->rxbufs = DEFAULT_NUM_RX_BUFS;
> -#if defined(CGEM64) && defined(__rtems__)
> - uint32_t design_cfg6 = RD4(sc, CGEM_DESIGN_CFG6);
> - /*
> - * QEMU does not have PBUF_CUTTHRU defined and is broken when
> trying
> - * to use nullqs
> - */
> - if ((design_cfg6 & CGEM_DESIGN_CFG6_PBUF_CUTTHRU))
> - sc->neednullqs = 1;
> -#else
> +#if !defined(CGEM64) && defined(__rtems__)
> sc->rxhangwar = 1;
> #endif
>
> --
> 2.30.2
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20230627/bddedc78/attachment.htm>
More information about the devel
mailing list