FreeBSD 11-CURRENT on Raspberry Pi 512MB

Warner Losh imp at bsdimp.com
Wed Oct 29 16:49:34 UTC 2014


On Oct 29, 2014, at 8:53 AM, Ian Lepore <ian at FreeBSD.org> wrote:

> On Tue, 2014-10-28 at 23:49 -0700, Rui Paulo wrote:
>> On Oct 28, 2014, at 18:20, Daisuke Aoyama <aoyama at peach.ne.jp> wrote:
>>> 
>>> I've created FreeBSD 11-CURRENT for RPi based on svn 273303.
>>> 
>>> The first version is released at my Japanese blog:
>>> 
>>> Download and tips
>>> http://shell.peach.ne.jp/aoyama/archives/2931
>>> Initial setup of FreeBSD 11 on RPi
>>> http://shell.peach.ne.jp/aoyama/archives/2946
>>> Package installation of Apache 2.4(event MPM), MySQL 5.6, PHP 5.6(ZTS) and phpMyAdmin.
>>> http://shell.peach.ne.jp/aoyama/archives/2951
>>> 
>>> The pre-build base images are available from my archives:
>>> http://www.peach.ne.jp/archives/rpi/
>>> (Latest version is FreeBSD-armv6-11.0-RPI-B-test20-r273303-20141026.img.gz)
>>> 
>>> Download and decompress it, then write it to an SD card of 8GB or more.
>>> This image is intended to use as a headless server. (No X11 and GPU 16MB)
>>> For quick playing, I provide some useful packages such as samba 4.1, AMP.
>>> 
>>> This version have cpufreq(4) based frequency contoller.
>>> Clock frequencies can be dynamically changed by hand or powerd.
>>> Also realtime raw values including temperature are stored in hw.cpufreq:
>>> 
>>> Example overclock at 1000MHz:
>>> 
>>> # sysctl hw.cpufreq
>>> hw.cpufreq.arm_freq: 1000000000
>>> hw.cpufreq.core_freq: 500000000
>>> hw.cpufreq.sdram_freq: 500000000
>>> hw.cpufreq.turbo: 1
>>> hw.cpufreq.voltage_core: 6
>>> hw.cpufreq.voltage_sdram_c: 1
>>> hw.cpufreq.voltage_sdram_i: 1
>>> hw.cpufreq.voltage_sdram_p: 1
>>> hw.cpufreq.temperature: 50843
>>> 
>>> # sysctl dev.cpu
>>> dev.cpu.%parent:
>>> dev.cpu.0.%desc: Open Firmware CPU
>>> dev.cpu.0.%driver: cpu
>>> dev.cpu.0.%location:
>>> dev.cpu.0.%pnpinfo: name=cpu at 0 compat=arm,1176jzf-s
>>> dev.cpu.0.%parent: cpulist0
>>> dev.cpu.0.freq: 300
>>> dev.cpu.0.freq_levels: 1000/-1 900/-1 800/-1 700/-1 600/-1 500/-1 400/-1 300/-1
>>> 
>>> 
>>> Note:
>>> Do not build kernel without patch to bcm2835_mbox.c, otherwise you get a panic in msleep.
>>> 
>>> Using config is here:
>>> http://www.peach.ne.jp/archives/rpi/config/RPI-B-test20
>>> 
>>> Source and pacth is here:
>>> http://www.peach.ne.jp/archives/rpi/patch/
>>> 
>>> Local packages is here:
>>> http://www.peach.ne.jp/archives/rpi/ports/packages/All/
>>> 
>>> 
>>> Pre-configured:
>>> 
>>> MEM 496MB/GPU 16MB/SWAP none
>>> Clock: ARM 800MHz/Core 400MHz/SDRAM 400MHz (overclock from 700/250/400)
>>> ntpdate: 0.freebsd.pool.ntp.org
>>> portsnap: fetch and extracted
>>> powerd: enabled (min 300MHz)
>>> 
>>> See also:
>>> http://www.peach.ne.jp/archives/rpi/00README.txt
>> 
>> This is pretty interesting.  Is anyone already helping you merge your code to FreeBSD?
>> 
>> Some questions:
>> 
>> - Did you measure the power consumption when using the different frequency values?
>> - Could you also export the temperature in dev.cpu.0.temperature like coretemp/amdtemp?  You'd need to perform a device lookup and then lookup its sysctl context.
>> 
>> One suggestion I have is to move the register definition structures to a header file like bcm2835_cpufreq.h.
>> 
> 
> Huh, and I would recommend just the opposite, including a need to clean
> up many of our existing drivers.  If it's only used by one source file,
> it doesn't need to be in a header file, which is implicitly for sharing
> information between multiple source files.  The worst is when you have
> foo_driverreg.h with like 4 #defines in it; that's so annoying.  (A
> valid exception to the "only if it needs to be shared" concept might be
> a file that #defines hundreds-to-thousands of values.)

I’d peg it closer to ‘dozens’ rather than ‘hundreds’. More than a few
dozen lines of register definitions needs their own file. That’s the
point they become a distraction. It is well short of ‘hundreds’ let alone
thousands.

Though I’ve done it in the past in reg.h files (have just a few defines),
a few defines can easily live at the top of the driver. Most devices are
complicated enough that the convention arose. It was only when we
started having dozens of devices with a few registers and a few bits
that it became annoying.

Warner
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-arm/attachments/20141029/7748fac3/attachment.sig>


More information about the freebsd-arm mailing list