9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] raspberry pi sdhost driver
@ 2016-12-11 16:57 Richard Miller
  2016-12-11 17:00 ` Richard Miller
  2016-12-18  4:20 ` Bakul Shah
  0 siblings, 2 replies; 4+ messages in thread
From: Richard Miller @ 2016-12-11 16:57 UTC (permalink / raw)
  To: 9fans

The pi3 native wifi driver (ether4330.c) recently added to
/n/sources/contrib/miller/9/bcm had an annoying limitation.
The sdio interface to the wifi chip is via the emmc host
adapter on the bcm283x SoC, which previously had been used
for the sdcard.  This meant a kernel could be configured to
use wifi or sdcard but not both.

Fortunately there is a secondary, Broadcom proprietary (and
undocumented) "sdhost" interface which can be used for the
sdcard instead.  This interface has been present on all the
pi models, but a linux driver only appeared when the pi3
was released.

I've now added a driver (sdhost.c) for this interface, which
will be used in place of emmc if you add sdhost to the "link"
section of the kernel config file.  I recommend this even if
you don't use wifi, since the sdhost hardware can squeeze a
bit more performance out of cards with "high speed" capability
(which nowadays means most of them).  You'll also need to update
io.h, and sdmmc.c to get the new code which recognises high speed
cards.

I've also updated the old emmc driver to increase its speed fairly
dramatically; but the emmc must always divide its 250Mhz input clock
by an even number, which means it can drive 50Mhz cards only up to
41.67 Mhz.  The sdhost driver doesn't have this limitation.




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-12-18  5:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-11 16:57 [9fans] raspberry pi sdhost driver Richard Miller
2016-12-11 17:00 ` Richard Miller
2016-12-18  4:20 ` Bakul Shah
2016-12-18  5:02   ` Bakul Shah

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).