GENERIC-MMCCAM/SDIO on Allwinner?
Emmanuel Vadot
manu at bidouilliste.com
Sun Mar 11 23:17:06 UTC 2018
On Sun, 11 Mar 2018 20:34:00 +0100
Milan Obuch <freebsd-arm at dino.sk> wrote:
> Hi,
>
> I saw there is GENERIC-MMCCAM kernel config file now, which should make
> posible to try SDIO on arm boards
On supported arm boards.
> so I decided to try it on my
> Allwinner H2+ based Orange Pi Zero. It did not work, there was no disk
> found for root file system. Examining console output, I found no
> mention of aw_mmc device.
>
> I read wiki at https://wiki.freebsd.org/SDIO and looked over another
> boards device drivers, and came with following modification to
> /usr/sys/arm/allwinner/files.allwinner
>
> --- files.allwinner.orig 2018-03-11 08:23:34.971413000 +0100
> +++ files.allwinner 2018-03-11 08:28:56.972933000 +0100
> @@ -10,7 +10,7 @@
> arm/allwinner/aw_gpio.c optional gpio
> arm/allwinner/aw_if_dwc.c optional dwc
> arm/allwinner/aw_machdep.c standard
> -arm/allwinner/aw_mmc.c optional mmc
> +arm/allwinner/aw_mmc.c optional mmc | mmccam
> arm/allwinner/aw_mp.c optional smp
> arm/allwinner/aw_nmi.c optional intrng
> arm/allwinner/aw_rsb.c optional rsb | p2wi
>
> and /usr/sys/arm/allwinner/aw_mmc.c
>
> --- aw_mmc.c.orig 2018-03-11 08:25:05.979124000 +0100
> +++ aw_mmc.c 2018-03-11 08:25:56.993269000 +0100
> @@ -52,6 +52,8 @@
> #include <dev/extres/hwreset/hwreset.h>
> #include <dev/extres/regulator/regulator.h>
>
> +#include "opt_mmccam.h"
> +
> #define AW_MMC_MEMRES 0
> #define AW_MMC_IRQRES 1
> #define AW_MMC_RESSZ 2
> @@ -1062,4 +1064,6 @@
>
> DRIVER_MODULE(aw_mmc, simplebus, aw_mmc_driver, aw_mmc_devclass, NULL,
> NULL);
> +#ifndef MMCCAM
> MMC_DECLARE_BRIDGE(aw_mmc);
> +#endif
>
> This makes kernel with aw_mmc device, but it does not work either, in
> console output was just
>
> aw_mmc0: <Allwinner Integrated MMC/SD controller> mem 0x1c0f000-0x1c0ffff irq 5 on simplebus0
> aw_mmc0: vmmc-supply regulator found
> aw_mmc0: attaching MMC child failed!
> device_attach: aw_mmc0 attach returned 6
> aw_mmc0: <Allwinner Integrated MMC/SD controller> mem 0x1c10000-0x1c10fff irq 6 on simplebus0
> aw_mmc0: cannot reset the controller
> device_attach: aw_mmc0 attach returned 6
>
> (there are two devices in dtb, first one is for SD card with root
> filesystem, second one is for wifi/bluetooth device). This makes
> actually sense - there is no device mmc in MMCCAM kernel config files,
> however, I am no step nearer now to usable SDIO on Allwinner SoC.
>
> With some more look over sources I realised aw_mmc is not the same as
> drivers for devices with working MMCCAM according wiki mentioned above
> - in aw_mmc method table, we have just device, bus and MMC bridge
> interface, whereas others have SDHCI interface in addition. And naming
> suggests it too - aw_mmc vs. ti_sdhci and bcm2835_sdhci...
>
> All this together, it looks like aw_mmc needs some rework in order to
> be able to move to MMCCAM framework. Did anybody something more already
> which could be shared?
I've started to look at what is needed to convert an mmc driver to the
MMCCAM stack, nothing to be shared for now.
> regards,
> Milan
--
Emmanuel Vadot <manu at bidouilliste.com> <manu at freebsd.org>
More information about the freebsd-arm
mailing list