<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/arm/include, branch release/13.2.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F13.2.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F13.2.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2022-11-01T00:44:40Z</updated>
<entry>
<title>arm, arm64: tweak hard-coded load addresses for PIE binaries</title>
<updated>2022-11-01T00:44:40Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2022-10-22T10:58:43Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=68be9f4ea1dbd5ae644de3bfa663c68b7df30196'/>
<id>urn:sha1:68be9f4ea1dbd5ae644de3bfa663c68b7df30196</id>
<content type='text'>
(cherry picked from commit ca18304ea491263389b8b1239e9b5b21d80da7f5)
</content>
</entry>
<entry>
<title>Store mpidr as a 64-bit value on arm64</title>
<updated>2022-09-21T09:45:52Z</updated>
<author>
<name>Andrew Turner</name>
<email>andrew@FreeBSD.org</email>
</author>
<published>2022-08-25T08:28:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b3e05bc282b65e08ad34d734cee8f1af087f38d8'/>
<id>urn:sha1:b3e05bc282b65e08ad34d734cee8f1af087f38d8</id>
<content type='text'>
The mpidr register is 64 bit on arm64 and 32 bit on arm. Fix this by
extending the arm64 definition to include the top 32 bits.

To preserve KBI when MFCing split the value into two 32 bit values.
This will be cleaned up later only on main.

Reviewed by:	bz
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D36346

(cherry picked from commit 544f047f894046a68c373f55ddd072e91bcfbf38)
</content>
</entry>
<entry>
<title>Create sys/reg.h for the common code previously in machine/reg.h</title>
<updated>2022-05-12T22:12:59Z</updated>
<author>
<name>Andrew Turner</name>
<email>andrew@FreeBSD.org</email>
</author>
<published>2021-08-27T09:38:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e5e2c7ffa0f7d9ba0874b95924f4d977b116f45b'/>
<id>urn:sha1:e5e2c7ffa0f7d9ba0874b95924f4d977b116f45b</id>
<content type='text'>
Move the common kernel function signatures from machine/reg.h to a new
sys/reg.h. This is in preperation for adding PT_GETREGSET to ptrace(2).

Reviewed by:	imp, markj
Sponsored by:	DARPA, AFRL (original work)
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D19830

(cherry picked from commit b792434150d66b9b2356fb9a7548f4c7f0a0f16c)
</content>
</entry>
<entry>
<title>Simplify swi for bus_dma.</title>
<updated>2022-04-29T21:27:47Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2021-12-28T21:51:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5159d50a1e0690d2bf46c49f83112a756bd6fb47'/>
<id>urn:sha1:5159d50a1e0690d2bf46c49f83112a756bd6fb47</id>
<content type='text'>
When a DMA request using bounce pages completes, a swi is triggered to
schedule pending DMA requests using the just-freed bounce pages.  For
a long time this bus_dma swi has been tied to a "virtual memory" swi
(swi_vm).  However, all of the swi_vm implementations are the same and
consist of checking a flag (busdma_swi_pending) which is always true
and if set calling busdma_swi.  I suspect this dates back to the
pre-SMPng days and that the intention was for swi_vm to serve as a
mux.  However, in the current scheme there's no need for the mux.

Instead, remove swi_vm and vm_ih.  Each bus_dma implementation that
uses bounce pages is responsible for creating its own swi (busdma_ih)
which it now schedules directly.  This swi invokes busdma_swi directly
removing the need for busdma_swi_pending.

One consequence is that the swi now works on RISC-V which had previously
failed to invoke busdma_swi from swi_vm.

Reviewed by:	imp, kib
Sponsored by:	Netflix
Differential Revision:	https://reviews.freebsd.org/D33447

(cherry picked from commit 254e4e5b77d7788c46333ae35d5e9f347e22c746)
</content>
</entry>
<entry>
<title>Add &lt;machine/tls.h&gt; header to hold MD constants and helpers for TLS.</title>
<updated>2022-04-29T20:50:05Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2021-12-09T21:17:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=25f14b19c6ec7a1a0c1f7a6d9080152eb0e71a16'/>
<id>urn:sha1:25f14b19c6ec7a1a0c1f7a6d9080152eb0e71a16</id>
<content type='text'>
The header exports the following:

- Definition of struct tcb.
- Helpers to get/set the tcb for the current thread.
- TLS_TCB_SIZE (size of TCB)
- TLS_TCB_ALIGN (alignment of TCB)
- TLS_VARIANT_I or TLS_VARIANT_II
- TLS_DTV_OFFSET (bias of pointers in dtv[])
- TLS_TP_OFFSET (bias of "thread pointer" relative to TCB)

Note that TLS_TP_OFFSET does not account for if the unbiased thread
pointer points to the start of the TCB (arm and x86) or the end of the
TCB (MIPS, PowerPC, and RISC-V).

Note also that for amd64, the struct tcb does not include the unused
tcb_spare field included in the current structure in libthr.  libthr
does not use this field, and the existing calls in libc and rtld that
allocate a TCB for amd64 assume it is the size of 3 Elf_Addr's (and
thus do not allocate room for tcb_spare).

A &lt;sys/_tls_variant_i.h&gt; header is used by architectures using
Variant I TLS which uses a common struct tcb.

Reviewed by:	kib (older version of x86/tls.h), jrtc27
Sponsored by:	The University of Cambridge, Google Inc.
Differential Revision:	https://reviews.freebsd.org/D33351

For stable/13 only, sys/arm/include/tls.h includes support for
ARM_TP_ADDRESS which is not present in main.

(cherry picked from commit 1a62e9bc0046bfe20f4dd785561e469ff73fd508)
</content>
</entry>
<entry>
<title>Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights</title>
<updated>2022-02-08T20:00:55Z</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2021-08-08T14:38:01Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=94e6d1448863a8ccccec3c7e4e501761803cce0e'/>
<id>urn:sha1:94e6d1448863a8ccccec3c7e4e501761803cce0e</id>
<content type='text'>
These ones were unambiguous cases where the Foundation was the only
listed copyright holder (in the associated license block).

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 9feff969a01044c3083b552f06f7eb6416bc0524)
</content>
</entry>
<entry>
<title>Implement GET_STACK_USAGE on remaining archs</title>
<updated>2021-12-07T18:13:47Z</updated>
<author>
<name>Mitchell Horne</name>
<email>mhorne@FreeBSD.org</email>
</author>
<published>2021-11-25T16:01:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1d640e61358469c17fb0ce340f78104a50b26959'/>
<id>urn:sha1:1d640e61358469c17fb0ce340f78104a50b26959</id>
<content type='text'>
This definition enables callers to estimate remaining space on the
kstack, and take action on it. Notably, it enables optimizations in the
GEOM and netgraph subsystems to directly dispatch work items when there
is sufficient stack space, rather than queuing them for a worker thread.

Implement it for riscv, arm, and mips. Remove the #ifdefs, so it will
not go unimplemented elsewhere.

PR:		259157
Reviewed by:	mav, kib, markj (previous version)
MFC after:	1 week
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D32580

(cherry picked from commit 0d2224733e970aaa67a4e1af7b340044adda92f6)
</content>
</entry>
<entry>
<title>arm: Make machine/reg.h self-contained</title>
<updated>2021-12-06T15:55:56Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2021-11-24T00:49:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=59ad98cc3f55dbf4f202f4ab1189f16ee8ca2042'/>
<id>urn:sha1:59ad98cc3f55dbf4f202f4ab1189f16ee8ca2042</id>
<content type='text'>
Allow inclusion of sys/reg.h w/o pre-requisites by making arm's machine/reg.h
self-contained.

Sponsored by:		Netflix

(cherry picked from commit b57e0aa4ef4319334df8018bc60fd28a84b074cc)
</content>
</entry>
<entry>
<title>minidump: Parameterize minidumpsys()</title>
<updated>2021-12-03T14:02:03Z</updated>
<author>
<name>Mitchell Horne</name>
<email>mhorne@FreeBSD.org</email>
</author>
<published>2021-11-17T15:26:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=eb2ea57ef1f2f1a36953aa0aaa7c7522311a81f8'/>
<id>urn:sha1:eb2ea57ef1f2f1a36953aa0aaa7c7522311a81f8</id>
<content type='text'>
The minidump code is written assuming that certain global state will not
change, and rightly so, since it executes from a kernel debugger
context. In order to support taking minidumps of a live system, we
should allow copies of relevant global state that is likely to change to
be passed as parameters to the minidumpsys() function.

This patch does the work of parameterizing this function, by adding a
struct minidumpstate argument. For now, this struct allows for copies of
the kernel message buffer, and the bitset that tracks which pages should
be dumped (vm_page_dump). Follow-up changes will actually make use of
these arguments.

Notably, dump_avail[] does not need a snapshot, since it is not expected
to change after system initialization.

The existing minidumpsys() definitions are renamed, and a thin MI
wrapper is added to kern_dump.c, which handles the construction of
the state struct. Thus, calling minidumpsys() remains as simple as
before.

Reviewed by:	kib, markj, jhb
Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara, Inc.
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D31989

(cherry picked from commit 1adebe3cd6b1eb0973969e2c4c5d41f174caa304)
</content>
</entry>
<entry>
<title>netinet: Deduplicate most in_cksum() implementations</title>
<updated>2021-12-01T12:42:43Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2021-11-24T18:19:44Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1d250ec70748f9efb4d52d93bdd71eff6de057ee'/>
<id>urn:sha1:1d250ec70748f9efb4d52d93bdd71eff6de057ee</id>
<content type='text'>
in_cksum() and related routines are implemented separately for each
platform, but only i386 and arm have optimized versions.  Other
platforms' copies of in_cksum.c are identical except for style
differences and support for big-endian CPUs.

Deduplicate the implementations for the rest of the platforms.  This
will make it easier to implement in_cksum() for unmapped mbufs.  On arm
and i386, define HAVE_MD_IN_CKSUM to mean that the MI implementation is
not to be compiled.

No functional change intended.

Reviewed by:	kp, glebius
Sponsored by:	The FreeBSD Foundation

(cherry picked from commit ecbbe831445a4b94279e5932828d60076e4ca444)
</content>
</entry>
</feed>
