
On Tue, Dec 13, 2011 at 12:18 PM, Ilya Yanok yanok@emcraft.com wrote:
Hi Tom,
On 12.12.2011 20:22, Tom Rini wrote:
+#if defined(CONFIG_GENERIC_MMC) && defined(CONFIG_OMAP_HSMMC) && \
- !defined(CONFIG_SPL_BUILD)
+int board_mmc_init(bd_t *bis) +{
- omap_mmc_init(0);
- return 0;
return omap_mmc_init(0);
I would also define this function ("weak") in some common place, so we will not need to copy/paste it all over the boards, but of course, it is not a blocker and I don't request this from you. Only if you want to... :-)
Well, we can use cpu_mmc_init() for this. But what slot(s) should we initialized in this common function? First? All?
The problem we have here is that board_mmc_init and cpu_mmc_init are already both weak and you can't replace one weak function with another weak function (or if you can, you need to play linker games). I had given this a quick stab but not reported back since I hadn't finished the rest of the related task (SPL and MMC support for am335x).
I don't really understand the issue. We don't even have to play with the weak functions, generic MMC code already does this. We can just provide the cpu_mmc_init function for OMAPs (which we don't have at the moment). The only problem I can see is how to tell this cpu_mmc_init function which slots to initialize. Probably we could use some configuration defines for this.
Ah, I hadn't been thinking of it that way. Perhaps a omap-common/mmc.c that tries and init's them all will do, but needs a lot of testing first. And a little bit of thinking to make sure the one interface case isn't ugly too (am33xx).