See <>


[ian] Add cpu_l2cache_drain_writebuf(), use it to implement 

On modern ARM SoCs the L2 cache controller sits between the CPU and the
AXI bus, and most on-chip memory-mapped devices are on the AXI bus.  We
map the device registers using the 'Device' memory attribute, which means
the memory is not cached, but writes to it are buffered.  Ensuring that a
write has made it all the way to a device may require that the L2
controller take some action.

There is currently only one implementation of the new function, for the
PL310 cache controller.  It invokes a function that the controller
manual calls "cache sync" but it actually has nothing to do with cache at
all, it triggers a drain of all pending store buffer writes and it blocks
until they complete.

The sheeva and xscale L2 controllers (which predate the concept of Device
memory) don't seem to have a corresponding function.  It appears that the
standard armv5 drain_writebuf function includes draining all the way
through the L2 controller.

[grehan] Enable SMP for Exynos-based platforms (i.e. Chromebook)

Reviewed by:    br

[nwhitehorn] Use vt(4) by default on 32-bit PowerPC now that it is fully 
functional and
fast. 64-bit PowerPC will follow along once the PS3 framebuffer driver is

[nwhitehorn] Port over mmap routine from syscons. This lets X11 work on PowerPC 
with vt.
The last obstacle to switching PowerPC entirely to vt is that the Playstation 3
framebuffer driver needs to be ported over. This only applies for powerpc64,

[nwhitehorn] Make ofwfb not be painfully slow. This reduces the time for a 
verbose boot
on my G4 iBook by more than half. Still 10% slower than syscons, but that's
much better than a factor of 2.

The slowness had to do with pathological write performance on 8-bit
framebuffers, which are almost universally used on Open Firmware systems.
Writing 1 byte at a time, potentially nonconsecutively, resulted in many
extra PCI write cycles. This patch, in the common case where it's writing
one or several characters in an 8x8 font, gangs the writes together into
a set of 32-bit writes. This is a port of r143830 to vt(4).

The EFI framebuffer is also extremely slow, probably for the same reason,
and the same patch will likely help there.

Started by upstream project "FreeBSD_HEAD" build number 645
originally caused by:
 Started by an SCM change
Building remotely on (FreeBSD-10) in workspace 
Updating svn:// at revision 
'2014-05-11T04:47:43.849 +0000'
U         arm/arm/cpufunc.c
U         arm/arm/pl310.c
U         arm/arm/bus_space_generic.c
U         arm/include/cpufunc.h
U         arm/conf/EXYNOS5250.common
U         powerpc/conf/GENERIC
U         dev/vt/hw/ofwfb/ofwfb.c
At revision 265870
Updating svn:// at revision 
'2014-05-11T04:47:43.849 +0000'
At revision 265870
no change for svn:// since the previous build
[FreeBSD_HEAD-modules] $ /bin/sh -xe /tmp/
+ export JFLAG=-j4
+ export 
+ cd 
+ echo '=== make cleandir ==='
=== make cleandir ===
+ make cleandir
===> aac (cleandir)
 line 24: Could not find ../../share/mk/
 line 38: Malformed conditional (${MK_FORMAT_EXTENSIONS} == "no")
make[1]: Fatal errors encountered -- cannot continue
make[1]: stopped in 
*** Error code 1

make: stopped in 
Build step 'Execute shell' marked build as failure
_______________________________________________ mailing list
To unsubscribe, send any mail to ""

Reply via email to