Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Mar 2023 11:53:29 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        Andrew Turner <andrew@fubar.geek.nz>
Cc:        freebsd-arm <freebsd-arm@freebsd.org>
Subject:   Re: git: 3473f2832284 - main - Switch the arm64 VM_MEMATTR_DEVICE to nGnRE
Message-ID:  <FE7710C9-99B4-48FC-A7DB-614FE6D56EAB@yahoo.com>
In-Reply-To: <402C0A31-BAE8-4A2C-87DB-C52813D62F5F@fubar.geek.nz>
References:  <202303161646.32GGkB3A022273@gitrepo.freebsd.org> <402C0A31-BAE8-4A2C-87DB-C52813D62F5F@fubar.geek.nz>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mar 16, 2023, at 09:53, Andrew Turner <andrew@fubar.geek.nz> wrote:

> I=E2=80=99ve pushed a change to relax the default device memory type =
on arm64. This is now equivalent to the device memory type used on arm.
>=20
> Because of this I expect most devices to just work, however if you are =
seeing strange issues you can set kern.force_nonposted=3D1 in =
loader.conf to revert to the previous memory type globally, or =
hint.<device>.<unit>.force_nonposted=3D1 to disable it for a specific =
device. For example to disable it for xhci0 you would use =
hint.xhci.0.force_nonposted=3D1.
>=20
> If you do find this fixes an issue please report it so we can fix the =
driver.

A probably unfortunate issue relative to some types of
testing is that drm-515-kmod and drm-510-kmod fail to
build for aarch64 (arm64). (drm-510-kmod might not be
reasonable for aarch64 for alll I know.)

The current problem for drm-515-kmod is lack of
in_interrupt via lack of sufficient
#include <linux/preempt.h> use (that provides the
macro definition involved):

error: call to undeclared function 'in_interrupt'

(I'm guessing that amd64 works only via some amd64
specific header polution that aarch64 does not get.)

My vague understanding of issues that exist in
Linux land may suggest that Cortex-A72's may have
additional issues shown via video card use. An
example is the video-related activity for the
HoneyComb to avoid the issues.

> Andrew
>=20
>> Begin forwarded message:
>>=20
>> From: Andrew Turner <andrew@FreeBSD.org>
>> Subject: git: 3473f2832284 - main - Switch the arm64 =
VM_MEMATTR_DEVICE to nGnRE
>> Date: 16 March 2023 at 16:46:11 GMT
>> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, =
dev-commits-src-main@FreeBSD.org
>>=20
>> The branch main has been updated by andrew:
>>=20
>> URL: =
https://cgit.FreeBSD.org/src/commit/?id=3D3473f283228401ba585044ac6dea8c8e=
b27237a5
>>=20
>> commit 3473f283228401ba585044ac6dea8c8eb27237a5
>> Author:     Andrew Turner <andrew@FreeBSD.org>
>> AuthorDate: 2023-03-16 15:36:06 +0000
>> Commit:     Andrew Turner <andrew@FreeBSD.org>
>> CommitDate: 2023-03-16 16:45:42 +0000
>>=20
>>    Switch the arm64 VM_MEMATTR_DEVICE to nGnRE
>>=20
>>    Move device memory to a weaker type. The new device memory type =
allows
>>    the system to acknowledge a write to a device before the write has
>>    completed. This is inline with VM_MEMATTR_DEVICE on armv6/armv7.
>>=20
>>    Sponsored by:   Arm Ltd
>>    Differential Revision:  https://reviews.freebsd.org/D38945
>> ---
>> sys/arm64/include/vm.h | 6 +-----
>> 1 file changed, 1 insertion(+), 5 deletions(-)
>>=20
>> diff --git a/sys/arm64/include/vm.h b/sys/arm64/include/vm.h
>> index e479aab52e26..a8c1ea97b513 100644
>> --- a/sys/arm64/include/vm.h
>> +++ b/sys/arm64/include/vm.h
>> @@ -36,11 +36,7 @@
>> #define VM_MEMATTR_WRITE_THROUGH 3
>> #define VM_MEMATTR_DEVICE_nGnRE 4
>>=20
>> -/*
>> - * VM_MEMATTR_DEVICE can be changed to VM_MEMATTR_DEVICE_nGnRE when
>> - * the PCI drivers use VM_MEMATTR_DEVICE_NP for their config space.
>> - */
>> -#define VM_MEMATTR_DEVICE VM_MEMATTR_DEVICE_nGnRnE
>> +#define VM_MEMATTR_DEVICE VM_MEMATTR_DEVICE_nGnRE
>> #define VM_MEMATTR_DEVICE_NP VM_MEMATTR_DEVICE_nGnRnE
>>=20
>> #ifdef _KERNEL
>>=20
>=20

=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FE7710C9-99B4-48FC-A7DB-614FE6D56EAB>