Date: Wed, 26 Dec 2012 18:34:30 +0900 From: "Daisuke Aoyama" <aoyama@peach.ne.jp> To: "Oleksandr Tymoshenko" <gonzo@bluezbox.com> Cc: freebsd-arm@freebsd.org Subject: Re: FreeBSD/armv6z/clang on Raspberry Pi 512MB (with U-Boot + ubldr) Message-ID: <68E7D970E6D2475C8061DB45301103AF@ad.peach.ne.jp> In-Reply-To: <E42823D3-D405-40E7-B4CF-75DC947AC119@bluezbox.com> References: <B5F827FF91C94FF2AFEE00194A2BB2C5@ad.peach.ne.jp> <B508111FCE534B2CBA61F4D1EC1078D3@ad.peach.ne.jp> <E42823D3-D405-40E7-B4CF-75DC947AC119@bluezbox.com>
next in thread | previous in thread | raw e-mail | index | archive | help
>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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?68E7D970E6D2475C8061DB45301103AF>