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

Daisuke Aoyama aoyama at
Wed Dec 26 09:34:43 UTC 2012

>Thanks! I'll integrate timer-related bits later this week, good catch!
>spinlock_enter and spinlock_exit are intended to be used only in
>spinlock code and should be replaced by intr_disable/intr_restore there, 

Yes, you are right. It should not divide/re-entry.
It seems the kernel is very stable than any previous!

>The other bit I'm considering for merge is armv6 instruction for managing 

Probably, it's unnecessary. It's my cut and try code.
RPI is my first ARM architecture for kernel side.
Of course, I didn't know about ARM assembler until I got RPI.

>PTE sync - related part, Im not sure it's strictly required. We use WT 
>caches for page tables
>so we should be OK without implicit sync operations for them. I hope 
>more clueful can confirm/disprove this.

It seems CF_ICACHE_SYNC solve PTE problem.
Please see arm/swtch.S in the patch.

However, still USB LAN is unstable :(

Here is current using patch:

If you already have clang world, you can use pre-build version:

or apply patch and rebuild the kernel yourself.

# fetch -o /usr
# cd /usr/src
# gzcat /usr/src-244663-20121226.patch.gz | patch
# make buildkernel KERNCONF=RPI-B-test9 WITH_FDT=yes

Don't forget to add NO_WERROR= and WERROR= to /etc/make.conf if you use 
If you already applied previous patch, you can remove it by:

# cd /usr/src
# gzcat /usr/src-244663-20121225.patch.gz | patch -R

then, apply new patch.

Daisuke Aoyama 

More information about the freebsd-arm mailing list