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

From: Oleksandr Tymoshenko <gonzo_at_bluezbox.com>
Date: Wed, 12 Dec 2012 16:06:51 -0800
On 12/12/2012 9:08 AM, Daisuke Aoyama wrote:
> Hi,
>
> I've created FreeBSD clang world for RPI based on svn 244112 + 
> eabi.diff(NOT USE) + few NetBSD code.
> I didn't test with "-mfloat-abi=softfp" but it might work.
>
> The first version is released at my Japanese blog:
> http://shell.peach.ne.jp/aoyama/archives/2357
>
> Thank you for many comments to previous versions.
> Thank you for adding RPI support to FreeBSD.
> Thank you for porting latest clang to head!
> It's very useful for RPI developing now.
>
> You can get the pre-build image from my archives:
>
> http://www.peach.ne.jp/archives/rpi/
> (At this time, freebsd-pi-clang-20121213.img.gz is the latest version.)
>
> Download and decompress it, then write it to SD. This image requires 
> SD 4GB or more.
> I'm using as headless server. So, you need a serial console for seeing 
> the boot log.
> If you need to change the value on it, please mount the second 
> partition (e.g. /dev/da0s2a).
> If you want the video out, please remove the line of "set 
> console=comconsole" in /boot/loader.rc.
>
> Note: first time, it takes about 2 minutes for generating the SSH keys.
> This version includes axe(ASIX AX88x7x/760) driver because smsc is not 
> stable.
> Now "cc" is "clang" instead of "gcc". If you want to use gcc, specify 
> or edit /etc/make.conf.
> The initial setup code is taken from NetBSD.
>
> Using config is here:
> http://www.peach.ne.jp/archives/rpi/config/RPI-B-test8
>
> Source and pacth is here:
> http://www.peach.ne.jp/archives/rpi/patch/
>
>
> Pre-configured for:
>
> MEM 496MB/GPU 16MB/SWAP 512MB
> I/O: multi-console (primary serial)
> IP address: 192.168.1.240
> Default router: 192.168.1.1
> DNS: 192.168.1.1
> sshd: enabled
>
> User: pi
> Password: raspberry
> Password(root): raspberry
>
> kernel section limit:
> TS=256MB, DS=1024MB, SS=256MB
>
> example of /etc/make.conf:
> ----------------------------------------------------------------------
> WITHOUT_X11=yes
>
> WITH_CLANG=yes
> WITH_CLANG_IS_CC=yes
>
> # Now cc = clang is default
> #CC=clang
> #CXX=clang++
> #CPP=clang-cpp
>
> # For clang
> NO_WERROR=
> WERROR=
>
> CFLAGS=-O2 -fno-strict-aliasing -pipe -march=armv6z 
> -mtune=arm1176jzf-s -mfloat-abi=soft
> COPTFLAGS=-O1 -fno-strict-aliasing -pipe -march=armv6z 
> -mtune=arm1176jzf-s -mfloat-abi=soft
>
> # For gcc
> #CC=gcc
> #CXX=g++
> #CPP=cpp
> ----------------------------------------------------------------------
> How to use GPT USB stick in RPI:
>
> (if you use something, delete/destory it before doing)
> # gpart delete -i NN da0
> # gpart destroy -F da0
>
> (create new partition and format)
> # gpart create -s gpt da0
> # gpart add -t freebsd-ufs da0
> # gpart show
> # newfs -U -j /dev/da0p1
>
> (mount it)
> # mount /dev/da0p1 /mnt
> ----------------------------------------------------------------------
> Known problems:
> o SD card is not configured correctly. (power on/off need if it's failed)
> o hang the system. (unknown reason)
> o smsc is not stable.
> o alignment/padding is not same as gcc. (temporary avoid strict 
> alignment now)
> o call both IDCACHE_WBINV_ALL and DCACHE_WB_RANGE at switch. (can't 
> work without both)
> o still depend on GNU as (gas syntax).
>
> TODO:
> o modify/replace bcm2835 drivers.
> o using "clang -integrated-as".
> o fix alignment with clang.
> o self build.
> o use EABI if possible.
> o create build script :-)
>
> Enjoy clang world in Raspberry Pi!

Amazing! Thank you for working on it
Received on Thu Dec 13 2012 - 00:07:06 UTC