Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 09 Jan 2013 14:52:27 -0800
From:      Oleksandr Tymoshenko <gonzo@bluezbox.com>
To:        freebsd-arm@freebsd.org
Subject:   Re: FreeBSD/armv6z/clang on Raspberry Pi 512MB (with U-Boot + ubldr)
Message-ID:  <50EDF4AB.5060606@bluezbox.com>
In-Reply-To: <E48DEAF481F74C69A1BC7A01F2B8E74A@ad.peach.ne.jp>
References:  <B5F827FF91C94FF2AFEE00194A2BB2C5@ad.peach.ne.jp> <B508111FCE534B2CBA61F4D1EC1078D3@ad.peach.ne.jp> <D3ABE3919EA74D668DB060952B5CD8C0@ad.peach.ne.jp> <2659960079254C38ACD2F1DCBB7A1A19@ad.peach.ne.jp> <E48DEAF481F74C69A1BC7A01F2B8E74A@ad.peach.ne.jp>

next in thread | previous in thread | raw e-mail | index | archive | help
On 1/8/2013 9:11 AM, Daisuke Aoyama wrote:
> I have updated clang RPI code based on SVN r244906 + pmap-wb-caches-fix.
>
> Now default transfer mode is DMA. If you want to use PIO(previous 
> method),
> you can change it by following command anytime:
>
> # sysctl hw.bcm2835.sdhci.pio=1
>
> or add to /boot/loader.rc:
>
> set hw.bcm2835.sdhci.pio=1
>
> major change:
> o fix critical bug caused panic in arm/arm/vfp.c
> o fix VFP compatibility for existing world/apps using SIGILL
> o add TMPFS and UNIONFS kernel config
> o use tmpfs as /tmp
> o merge pmap-wb-caches-fix.diff and arm-autotune-fix.diff by gonzo
> o assign all DMA(DMA0-12) IRQs in bcm2835-rpi-b.dts
> o increase DI_MAX_INTR_NUM to 16 (necessary for DMA IRQs)
> o call rman_set_virtual if SYS_RES_MEMORY
> o add transfer and transfer_end method to dev/sdhci
> o add simple DMA controller (does not support linked operation)
> o test implement DMA transfer for SD card I/O
> o add hw.bcm2835.sdhci.pio for PIO transfer (disabled by default)
>
> Note:
> 512 byte chunk is used for each DMA transfer of SD because eMMC have 
> only 1KB FIFO.
> PIO mode is always used for a request smaller than 512 byte.
> DMA transfer is not so fast although the efficiency of the bus differs.
> At this time, first trigger is invoked by same INT of PIO.
> sys/dev/sdhci/sdhci.c should be rewritten to adapt the DMA controller.
>
> Known Problems:
> To store correct values to DMA engine, it uses D-cache invalidate all. 
> (unknown reason, first chunk only)
> Some code using VFP hang.

Thank you, Daisuke-san. I'm going to merge DMA driver and  DMA transfers
support for SDHCI. Merging other SDHCI fixes require more testing (and 
spec reading)
  but they're on my ToDo list too. DMA driver needs some clean-up though
before it can be committed to the tree. I'll post  my notes on it when 
it's ready.




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