Fwd: git: 3473f2832284 - main - Switch the arm64 VM_MEMATTR_DEVICE to nGnRE

Andrew Turner <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]>
Hello,

I’ve pushed a change to relax the default device memory type on arm64. This is now equivalent to the device memory type used on arm.

Because of this I expect most devices to just work, however if you are seeing strange issues you can set kern.force_nonposted=1 in loader.conf to revert to the previous memory type globally, or hint.<device>.<unit>.force_nonposted=1 to disable it for a specific device. For example to disable it for xhci0 you would use hint.xhci.0.force_nonposted=1.

If you do find this fixes an issue please report it so we can fix the driver.

Andrew

> Begin forwarded message:
> 
> From: Andrew Turner <[email protected]>
> Subject: git: 3473f2832284 - main - Switch the arm64 VM_MEMATTR_DEVICE to nGnRE
> Date: 16 March 2023 at 16:46:11 GMT
> To: [email protected], [email protected], [email protected]
> 
> The branch main has been updated by andrew:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=3473f283228401ba585044ac6dea8c8eb27237a5
> 
> commit 3473f283228401ba585044ac6dea8c8eb27237a5
> Author:     Andrew Turner <[email protected]>
> AuthorDate: 2023-03-16 15:36:06 +0000
> Commit:     Andrew Turner <[email protected]>
> CommitDate: 2023-03-16 16:45:42 +0000
> 
>    Switch the arm64 VM_MEMATTR_DEVICE to nGnRE
> 
>    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.
> 
>    Sponsored by:   Arm Ltd
>    Differential Revision:  https://reviews.freebsd.org/D38945
> ---
> sys/arm64/include/vm.h | 6 +-----
> 1 file changed, 1 insertion(+), 5 deletions(-)
> 
> 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
> 
> -/*
> - * 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
> 
> #ifdef _KERNEL
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.