LibBSD | Raspberrypi4b: Add sd card support (!158)
Shaunak Datar (@skdatar)
gitlab at rtems.org
Fri Aug 21 14:25:49 UTC 2026
Shaunak Datar commented on a discussion on freebsd/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c: https://gitlab.rtems.org/rtems/pkg/rtems-libbsd/-/merge_requests/158#note_157697
> + * interrupts (or SDHCI error interrupts) until the IO is done.
> + */
> + if (idx == 0) {
> + bus_dmamap_sync(sc->sc_dma_tag, sc->sc_dma_map, sync_op);
> +
> + slot->intmask &= ~DATA_XFER_MASK;
> + bcm_sdhci_write_4(sc->sc_dev, slot, SDHCI_SIGNAL_ENABLE,
> + slot->intmask);
> + }
> +
> + /*
> + * Start the DMA transfer. Only programming errors (like failing to
> + * allocate a channel) cause a non-zero return from bcm_dma_start().
> + */
> + err = bcm_dma_start(sc->sc_dma_ch, psrc, pdst, len);
> + KASSERT((err == 0), ("bcm2835_sdhci: failed DMA start"));
We have set the `static int bcm2835_sdhci_pio_mode = 1;` hence in the attach function the `SDHCI_PLATFORM_TRANSFER` is not set and the dma route is never used. The `freebsd/sys/dev/sdhci/sdhci.c` does not call `SDHCI_PLATFORM_START_TRANSFER`, here the function registered in `bcm_sdhci_methods` is the `bcm_sdhci_start_transfer()` so `bcm_sdhci_start_transfer` and in turn `bcm_sdhci_start_dma` is never called.
--
View it on GitLab: https://gitlab.rtems.org/rtems/pkg/rtems-libbsd/-/merge_requests/158#note_157697
You're receiving this email because of your account on gitlab.rtems.org. Unsubscribe from this thread: https://gitlab.rtems.org/-/sent_notifications/5-9lu39lmdswi07knm96kv6ppnh-k/unsubscribe | Manage all notifications: https://gitlab.rtems.org/-/profile/notifications | Help: https://gitlab.rtems.org/help
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20260821/d2155ec4/attachment-0001.htm>
More information about the bugs
mailing list