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

Daisuke Aoyama aoyama at peach.ne.jp
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, 
>AFAIU,

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 
>interrupts/status.

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 
>somebody
>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:
http://www.peach.ne.jp/archives/rpi/patch/src-244663-20121226.patch.gz

If you already have clang world, you can use pre-build version:
http://www.peach.ne.jp/archives/rpi/test/kernel-20121226.gz

or apply patch and rebuild the kernel yourself.

# fetch -o /usr 
http://www.peach.ne.jp/archives/rpi/patch/src-244663-20121226.patch.gz
# 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 
clang.
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.

Thanks.
-- 
Daisuke Aoyama 



More information about the freebsd-arm mailing list