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