Skip site navigation (1)Skip section navigation (2)
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>