<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-openbsd/sys/arch/sgi/include/autoconf.h, branch jd/queueboosts</title>
<subtitle>WireGuard implementation for the OpenBSD kernel</subtitle>
<id>https://git.zx2c4.com/wireguard-openbsd/atom/sys/arch/sgi/include/autoconf.h?h=jd%2Fqueueboosts</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-openbsd/atom/sys/arch/sgi/include/autoconf.h?h=jd%2Fqueueboosts'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/'/>
<updated>2015-12-25T08:34:50Z</updated>
<entry>
<title>Make interrupt masking MP-aware. Linux IP27 and IP35 ports served as a</title>
<updated>2015-12-25T08:34:50Z</updated>
<author>
<name>visa</name>
<email>visa@openbsd.org</email>
</author>
<published>2015-12-25T08:34:50Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=c2f58995dcb0fe595b6b111d094f3eca2e4aa024'/>
<id>urn:sha1:c2f58995dcb0fe595b6b111d094f3eca2e4aa024</id>
<content type='text'>
substitute for hardware documentation.
</content>
</entry>
<entry>
<title>Add cache operation functions pointers to struct cpu_info; the various</title>
<updated>2012-06-24T16:26:02Z</updated>
<author>
<name>miod</name>
<email>miod@openbsd.org</email>
</author>
<published>2012-06-24T16:26:02Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=875430868ae1408f28a7fb9f99a075ee6d75ec63'/>
<id>urn:sha1:875430868ae1408f28a7fb9f99a075ee6d75ec63</id>
<content type='text'>
cache lines and sizes are already there, after all.

The ConfigCache cache routine is responsible for filling these function
pointers; cache routine invocation macros are updated to use the cpu_info
fields, but may still be overriden in &lt;machine/cpu.h&gt; on platforms where
only one set of cache routines is used.
</content>
</entry>
<entry>
<title>Make it possible to disable the Sync-on-Green signal by setting the</title>
<updated>2012-05-29T17:37:09Z</updated>
<author>
<name>mikeb</name>
<email>mikeb@openbsd.org</email>
</author>
<published>2012-05-29T17:37:09Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=ddea66514b9fb1ca5dd4609614b4d016d7924140'/>
<id>urn:sha1:ddea66514b9fb1ca5dd4609614b4d016d7924140</id>
<content type='text'>
ARCBios environment variable OSLoadOptions to "nosog".  Now everyone
can enjoy running O2 without an SGI monitor and don't turn vegetarian
afterwards.  All the essential bits come from NetBSD's crmfb driver
except they've chosen to use a "SyncOnGreen" variable not saved by
the ARCS.  Pointers and corrections from and ok miod, jsing
</content>
</entry>
<entry>
<title>Proper support for the so-called `fast mode' of the Indigo2 ECC memory</title>
<updated>2012-05-27T14:27:08Z</updated>
<author>
<name>miod</name>
<email>miod@openbsd.org</email>
</author>
<published>2012-05-27T14:27:08Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=3e1330b5b1836473f532c736d33fc927f44ea6fc'/>
<id>urn:sha1:3e1330b5b1836473f532c736d33fc927f44ea6fc</id>
<content type='text'>
controller. In this mode, access to physical memory are not allowed to
bypass the cache, and this allows the memory subsystem to run faster.

Of course, some device drivers will require uncached memory access (e.g.
for proper HPC DMA descriptor operation).

New ip22-specific functions to switch between `fast mode' and `slow mode'
are introduced.

hpc(4) now provides read and write routines to fetch a dma descriptor from
uncached memory into a local copy, and update it from said modified copy.
On systems without the ECC MC, these will do nothing and operation will
continue to access the uncached memory directly. On systems with the ECC MC,
they will perform a copy, and the writeback will be done in slow mode.

bus_dmamem_map() requests for DMA memory with BUS_DMA_COHERENT set in flags,
which would return uncached memory, will now always fail on systems with
the ECC memory controller. Drivers which really need uncached memory, and
are aware of this particular setup, will now pass
BUS_DMA_COHERENT | BUS_DMA_BUS1, which will let the request succeed.

sq(4) will use all of the above to work mostly unmodified on ECC MC systems
in fast mode.

Finally, fast mode is enabled after autoconf.

Tested on IP22 and IP28.
</content>
</entry>
<entry>
<title>Rework the signature of the cache handling routines again. It makes more sense</title>
<updated>2012-04-21T12:20:30Z</updated>
<author>
<name>miod</name>
<email>miod@openbsd.org</email>
</author>
<published>2012-04-21T12:20:30Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=b94f5bc55b27044860ce98464ed855a66733c4ba'/>
<id>urn:sha1:b94f5bc55b27044860ce98464ed855a66733c4ba</id>
<content type='text'>
to pass both the virtual and physical addresses of the page to clean to
SyncDCachePage, which is the only routine using `Index' operations on the data
cache, which might be virtually indexed at some levels but physically indexed
at others. On the other hand, it does not make any sense to pass a physical
address to routines using `Hit' operations (and they were discarding them
anyway).

In addition to making things cleaner, this fixes sporadic userland misbehaviour
(read: SIGSGEV) on RM7000 O2 systems.
</content>
</entry>
<entry>
<title>Default DMA-reachable address constraints to the whole address space, and</title>
<updated>2012-04-03T21:17:34Z</updated>
<author>
<name>miod</name>
<email>miod@openbsd.org</email>
</author>
<published>2012-04-03T21:17:34Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=594515fe7625b068c9b0a61c3bc0c009d75834fc'/>
<id>urn:sha1:594515fe7625b068c9b0a61c3bc0c009d75834fc</id>
<content type='text'>
narrow these in the various ipXX_machdep.c. On IP22-like systems, narrow
them to 28 bit physical addresses, but unpessimize this by extending this
to 32 bit after autoconf, if no 28-bit limited hpc(4) device has been found.
Since physical memory on these systems start at 128MB, this means that Indigo
systems with more than 128MB memory will behave correctly (and so will Indy
systems with E++ boards and more than 128MB memory).
</content>
</entry>
<entry>
<title>Work in progress support for the SGI Indigo, Indigo 2 and Indy systems</title>
<updated>2012-03-28T20:44:23Z</updated>
<author>
<name>miod</name>
<email>miod@openbsd.org</email>
</author>
<published>2012-03-28T20:44:23Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=89e78ff68dbb60985d19f72ea5384db19f165e9c'/>
<id>urn:sha1:89e78ff68dbb60985d19f72ea5384db19f165e9c</id>
<content type='text'>
(IP20, IP22, IP24) in 64-bit mode, adapated from NetBSD. Currently limited
to headless operation, input and video drivers will get ported soon.

Should work on all R4000, R4440 and R5000 based systems. L2 cache on R5000SC
Indy not supported yet (coming soon), R4600 not supported yet either (coming
soon as well).

Tested to boot multiuser on: Indigo2 R4000SC, Indy R4000PC, Indy R4000SC,
Indy R5000SC, Indigo2 R4400SC. There are still glitches in the Ethernet driver
which are being looked at.

Expansion support is limited to the GIO E++ board; GIO boards with PCI-GIO
bridges not ported yet due to the lack of hardware, and this kind of driver
does not port blindly.

Most of this work comes from NetBSD, polishing and integration work, as well
as putting as many ``R4x00 in 64-bit mode'' erratas as necessary, by yours
truly.

More work is coming, as well as trying to get some easy way to boot install
kernels (as older PROM can only boot ECOFF binaries, which won't do for the
kernel).
</content>
</entry>
<entry>
<title>Move cache handling routines related definitions to a dedicated header file,</title>
<updated>2012-03-25T13:52:52Z</updated>
<author>
<name>miod</name>
<email>miod@openbsd.org</email>
</author>
<published>2012-03-25T13:52:52Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=737df64e4556218c51a72ff0f578a34df468c175'/>
<id>urn:sha1:737df64e4556218c51a72ff0f578a34df468c175</id>
<content type='text'>
rather than abusing &lt;machine/cpu.h&gt;.
</content>
</entry>
<entry>
<title>Split the device_register() code responsible for boot path recognition into</title>
<updated>2010-04-06T19:15:26Z</updated>
<author>
<name>miod</name>
<email>miod@openbsd.org</email>
</author>
<published>2010-04-06T19:15:26Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=29c72cebec59d7effefce5ea07453651f691713b'/>
<id>urn:sha1:29c72cebec59d7effefce5ea07453651f691713b</id>
<content type='text'>
two distinct sets of routines: one for the ARCBios-compatible path used on
non-KL systems (such as O2 and Octane), and one for the KL system using
dksc() paths.

When trying to match a dksc() path, walk the KL configuration of the whole
system until the dksc controller is found; since the controller numbers are
not assigned sequentially and contiguously, the old code would not work on
complex systems (such as when booting from controller #6 when #3 to #5 are
unaffected).
</content>
</entry>
<entry>
<title>Introduce struct sgi_device_location to carry enough information to uniquely</title>
<updated>2010-04-06T19:06:04Z</updated>
<author>
<name>miod</name>
<email>miod@openbsd.org</email>
</author>
<published>2010-04-06T19:06:04Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=9e944dd7a3c77246919a75cc749032bac61835e3'/>
<id>urn:sha1:9e944dd7a3c77246919a75cc749032bac61835e3</id>
<content type='text'>
identify a given device by its physical connection, and add a lazy compare
routine. This will be used shortly.
</content>
</entry>
</feed>
