> From: Hannu Vuolasaho <vuokkose...@gmail.com> > Date: Wed, 13 Dec 2017 21:51:43 +0200 > > Hello! > > I have OpenBSD running on the RPi 3. Unfortunately SD card isn't supported > so I run from USB stick like everybody else. My blazing fast USB stick is > really slow on RPi :( So I have some motivation to scratch my itch. > > I have some really early porting success with NetBSD SD card driver (my > first in OpenBSD) from: > > http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/arm/broadcom/bcm2835_sdhost.c?rev=1.4&content-type=text/x-cvsweb-markup&only_with_tag=MAIN > > Currently it does one thing. It shows up in dmesg. I would like to have > some help. How the bus which the NetBSD driver talks to is implemented in > OpenBSD is the main question. Do I have to make a lot of changes for it?
Warning! The Pi has *two* different SD/SDIO controllers. Which one is actually used to drive the card in the uSD slot depends on the firmware and/or the device tree. You probably should check that the controller you're writing the driver for is indeed used for the uSD slot. I also believe only one of the controllers has a DMA engine, which is pretty much essential for getting decent performance. I think the other controller can use an external DMA engine, but at that point things become really complicated. That said, NetBSD's SD/MMC stack is derived from OpenBSD's code so porting drivers should be relatively easy.