FreeBSD/armv6z/clang on Raspberry Pi 512MB (with U-Boot + ubldr)

George Mitchell george+freebsd at m5p.com
Wed Jan 9 01:25:46 UTC 2013


On 01/08/13 12:11, 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.
>
> You can get the pre-build image from my archives:
>
> http://www.peach.ne.jp/archives/rpi/
>
> Using config is here:
> http://www.peach.ne.jp/archives/rpi/config/RPI-B-test13
>
> New kernel only is here:
> http://www.peach.ne.jp/archives/rpi/kernel/
>
> Source and pacth is here:
> http://www.peach.ne.jp/archives/rpi/patch/
>
>
> For more info, please read old ML or Japanese blog:
> http://lists.freebsd.org/pipermail/freebsd-arm/2013-January/004541.html
> http://lists.freebsd.org/pipermail/freebsd-arm/2013-January/004507.html
> http://lists.freebsd.org/pipermail/freebsd-arm/2012-December/004421.html
> http://lists.freebsd.org/pipermail/freebsd-arm/2012-December/004331.html
> http://shell.peach.ne.jp/aoyama/
>
>
> Enjoy clang world in Raspberry Pi!
> Thank you.

Wonderful!  Best of all, the console has a cursor!  It's sitting there
building sysutils/LPRng on an NFS-mounted /usr/ports tree (though it
doesn't appear it will finish before the morning).  No crash so far!
Thank you very much!                               -- George Mitchell


More information about the freebsd-arm mailing list