Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Mar 2018 00:16:56 +0100
From:      Emmanuel Vadot <manu@bidouilliste.com>
To:        Milan Obuch <freebsd-arm@dino.sk>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: GENERIC-MMCCAM/SDIO on Allwinner?
Message-ID:  <20180312001656.03013fb2359e5215c0f9b766@bidouilliste.com>
In-Reply-To: <20180311203400.134f10cf@zeta.dino.sk>
References:  <20180311203400.134f10cf@zeta.dino.sk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 11 Mar 2018 20:34:00 +0100
Milan Obuch <freebsd-arm@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@bidouilliste.com> <manu@freebsd.org>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180312001656.03013fb2359e5215c0f9b766>