I've updated the 9pi kernels on 9p.io (in /n/sources/contrib/miller/9pi[24],
source in /n/sources/contrib/miller/9/bcm).  The main change is a kmap
implementation so that large Raspberry Pi 4 boards can use the full 4GB of RAM
with a 32-bit kernel.  I've also eliminated a coherence bug which would render
a Pi4 catatonic (ie no interrupt response) under heavy loads involving lots of
floating point.  This was a subtle problem with the dynamic generation of arm
coprocessor instructions borrowed from the teg2 port, which was inefficient
and fragile and didn't quite cope with the more aggressive out-of-order
execution of the cortex-a72.  My solution was to replace the whole of coproc.c
with a few hard-coded coprocessor access instructions in l.s; not many are
actually needed.

Two other changes affect all Raspberry Pi models: A *kernelpercent value can
be given in cmdline.txt (and the default is reduced to 10 from 20, with a
maximum of 256MB).  And a small tweak to the SD driver avoids floods of error
messages when you swap SD cards.

The 9pi.img.gz SD card image has also been updated.  Besides the new kernels,
and a long overdue rebuild of the lookman(1) index, I've included a full
go language distribution.  If you regard this as unwelcome bloatware, just
delete /sys/lib/go1.14 (and also /sys/lib/tls/ca.pem and /rc/bin/git, which
are required for the "go get" command to work).

The go command and packages have been built with GOARM=7 so they won't work
on the old first generation Raspberry Pi.  If this is a problem for anyone,
contact me off list for a set of GOARM=6 binaries.


------------------------------------------
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/Taa897d94ceabe83d-M3b7aa475c5c2e32f7adf7a81
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription

Reply via email to