Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v8 4/5] arm64: Define Documentation/arm64/tagged-address-abi.rst
From: Catalin Marinas @ 2019-08-15 15:44 UTC (permalink / raw)
  To: linux-arm-kernel, linux-mm
  Cc: linux-arch, linux-doc, Szabolcs Nagy, Andrey Konovalov,
	Kevin Brodsky, Will Deacon, Dave Hansen, Andrew Morton,
	Vincenzo Frascino, Dave P Martin
In-Reply-To: <20190815154403.16473-1-catalin.marinas@arm.com>

From: Vincenzo Frascino <vincenzo.frascino@arm.com>

On AArch64 the TCR_EL1.TBI0 bit is set by default, allowing userspace
(EL0) to perform memory accesses through 64-bit pointers with a non-zero
top byte. Introduce the document describing the relaxation of the
syscall ABI that allows userspace to pass certain tagged pointers to
kernel syscalls.

Cc: Will Deacon <will.deacon@arm.com>
Cc: Andrey Konovalov <andreyknvl@google.com>
Cc: Szabolcs Nagy <szabolcs.nagy@arm.com>
Cc: Kevin Brodsky <kevin.brodsky@arm.com>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Co-developed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
---
 Documentation/arm64/tagged-address-abi.rst | 155 +++++++++++++++++++++
 1 file changed, 155 insertions(+)
 create mode 100644 Documentation/arm64/tagged-address-abi.rst

diff --git a/Documentation/arm64/tagged-address-abi.rst b/Documentation/arm64/tagged-address-abi.rst
new file mode 100644
index 000000000000..8808337775d6
--- /dev/null
+++ b/Documentation/arm64/tagged-address-abi.rst
@@ -0,0 +1,155 @@
+==========================
+AArch64 TAGGED ADDRESS ABI
+==========================
+
+Authors: Vincenzo Frascino <vincenzo.frascino@arm.com>
+         Catalin Marinas <catalin.marinas@arm.com>
+
+Date: 15 August 2019
+
+This document describes the usage and semantics of the Tagged Address
+ABI on AArch64 Linux.
+
+1. Introduction
+---------------
+
+On AArch64 the TCR_EL1.TBI0 bit is set by default, allowing userspace
+(EL0) to perform memory accesses through 64-bit pointers with a non-zero
+top byte. This document describes the relaxation of the syscall ABI that
+allows userspace to pass certain tagged pointers to kernel syscalls.
+
+2. AArch64 Tagged Address ABI
+-----------------------------
+
+From the kernel syscall interface perspective and for the purposes of
+this document, a "valid tagged pointer" is a pointer with a potentially
+non-zero top-byte that references an address in the user process address
+space obtained in one of the following ways:
+
+- mmap() done by the process itself (or its parent), where either:
+
+  - flags have the **MAP_ANONYMOUS** bit set
+  - the file descriptor refers to a regular file (including those
+    returned by memfd_create()) or **/dev/zero**
+
+- brk() system call done by the process itself (i.e. the heap area
+  between the initial location of the program break at process creation
+  and its current location).
+
+- any memory mapped by the kernel in the address space of the process
+  during creation and with the same restrictions as for mmap() above
+  (e.g. data, bss, stack).
+
+The AArch64 Tagged Address ABI has two stages of relaxation depending
+how the user addresses are used by the kernel:
+
+1. User addresses not accessed by the kernel but used for address space
+   management (e.g. mmap(), mprotect(), madvise()). The use of valid
+   tagged pointers in this context is always allowed.
+
+2. User addresses accessed by the kernel (e.g. write()). This ABI
+   relaxation is disabled by default and the application thread needs to
+   explicitly enable it via **prctl()** as follows:
+
+   - **PR_SET_TAGGED_ADDR_CTRL**: enable or disable the AArch64 Tagged
+     Address ABI for the calling thread.
+
+     The (unsigned int) arg2 argument is a bit mask describing the
+     control mode used:
+
+     - **PR_TAGGED_ADDR_ENABLE**: enable AArch64 Tagged Address ABI.
+       Default status is disabled.
+
+     Arguments arg3, arg4, and arg5 must be 0.
+
+   - **PR_GET_TAGGED_ADDR_CTRL**: get the status of the AArch64 Tagged
+     Address ABI for the calling thread.
+
+     Arguments arg2, arg3, arg4, and arg5 must be 0.
+
+   The ABI properties described above are thread-scoped, inherited on
+   clone() and fork() and cleared on exec().
+
+   Calling prctl(PR_SET_TAGGED_ADDR_CTRL, PR_TAGGED_ADDR_ENABLE, 0, 0, 0)
+   returns -EINVAL if the AArch64 Tagged Address ABI is globally disabled
+   by sysctl abi.tagged_addr_disabled=1. The default sysctl
+   abi.tagged_addr_disabled configuration is 0.
+
+When the AArch64 Tagged Address ABI is enabled for a thread, the
+following behaviours are guaranteed:
+
+- All syscalls except the cases mentioned in section 3 can accept any
+  valid tagged pointer.
+
+- The syscall behaviour is undefined for invalid tagged pointers: it may
+  result in an error code being returned, a (fatal) signal being raised,
+  or other modes of failure.
+
+- A valid tagged pointer has the same semantics as the corresponding
+  untagged pointer.
+
+A definition of the meaning of tagged pointers on AArch64 can be found
+in Documentation/arm64/tagged-pointers.rst.
+
+3. AArch64 Tagged Address ABI Exceptions
+-----------------------------------------
+
+The following system call parameters must be untagged regardless of the
+ABI relaxation:
+
+- prctl() other than arguments pointing to user structures to be
+  accessed by the kernel.
+
+- ioctl() other than arguments pointing to user structures to be
+  accessed by the kernel.
+
+- shmat() and shmdt().
+
+Any attempt to use non-zero tagged pointers may result in an error code
+being returned, a (fatal) signal being raised, or other modes of
+failure.
+
+4. Example of correct usage
+---------------------------
+.. code-block:: c
+
+   #include <stdlib.h>
+   #include <string.h>
+   #include <unistd.h>
+   #include <sys/mman.h>
+   #include <sys/prctl.h>
+   
+   #define PR_SET_TAGGED_ADDR_CTRL	55
+   #define PR_TAGGED_ADDR_ENABLE	(1UL << 0)
+   
+   #define TAG_SHIFT		56
+   
+   int main(void)
+   {
+   	int tbi_enabled = 0;
+   	unsigned long tag = 0;
+   	char *ptr;
+   
+   	/* check/enable the tagged address ABI */
+   	if (!prctl(PR_SET_TAGGED_ADDR_CTRL, PR_TAGGED_ADDR_ENABLE, 0, 0, 0))
+   		tbi_enabled = 1;
+   
+   	/* memory allocation */
+   	ptr = mmap(NULL, sysconf(_SC_PAGE_SIZE), PROT_READ | PROT_WRITE,
+   		   MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+   	if (ptr == MAP_FAILED)
+   		return 1;
+   
+   	/* set a non-zero tag if the ABI is available */
+   	if (tbi_enabled)
+   		tag = rand() & 0xff;
+   	ptr = (char *)((unsigned long)ptr | (tag << TAG_SHIFT));
+   
+   	/* memory access to a tagged address */
+   	strcpy(ptr, "tagged pointer\n");
+   
+   	/* syscall with a tagged pointer */
+   	write(1, ptr, strlen(ptr));
+   
+   	return 0;
+   }

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related

* [PATCH v8 5/5] arm64: Relax Documentation/arm64/tagged-pointers.rst
From: Catalin Marinas @ 2019-08-15 15:44 UTC (permalink / raw)
  To: linux-arm-kernel, linux-mm
  Cc: linux-arch, linux-doc, Szabolcs Nagy, Andrey Konovalov,
	Kevin Brodsky, Will Deacon, Dave Hansen, Andrew Morton,
	Vincenzo Frascino, Dave P Martin
In-Reply-To: <20190815154403.16473-1-catalin.marinas@arm.com>

From: Vincenzo Frascino <vincenzo.frascino@arm.com>

On AArch64 the TCR_EL1.TBI0 bit is set by default, allowing userspace
(EL0) to perform memory accesses through 64-bit pointers with a non-zero
top byte. However, such pointers were not allowed at the user-kernel
syscall ABI boundary.

With the Tagged Address ABI patchset, it is now possible to pass tagged
pointers to the syscalls. Relax the requirements described in
tagged-pointers.rst to be compliant with the behaviours guaranteed by
the AArch64 Tagged Address ABI.

Cc: Will Deacon <will.deacon@arm.com>
Cc: Andrey Konovalov <andreyknvl@google.com>
Cc: Szabolcs Nagy <szabolcs.nagy@arm.com>
Cc: Kevin Brodsky <kevin.brodsky@arm.com>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Co-developed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
---
 Documentation/arm64/tagged-pointers.rst | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/Documentation/arm64/tagged-pointers.rst b/Documentation/arm64/tagged-pointers.rst
index 2acdec3ebbeb..fd5306019e91 100644
--- a/Documentation/arm64/tagged-pointers.rst
+++ b/Documentation/arm64/tagged-pointers.rst
@@ -20,7 +20,9 @@ Passing tagged addresses to the kernel
 --------------------------------------
 
 All interpretation of userspace memory addresses by the kernel assumes
-an address tag of 0x00.
+an address tag of 0x00, unless the application enables the AArch64
+Tagged Address ABI explicitly
+(Documentation/arm64/tagged-address-abi.rst).
 
 This includes, but is not limited to, addresses found in:
 
@@ -33,13 +35,15 @@ This includes, but is not limited to, addresses found in:
  - the frame pointer (x29) and frame records, e.g. when interpreting
    them to generate a backtrace or call graph.
 
-Using non-zero address tags in any of these locations may result in an
-error code being returned, a (fatal) signal being raised, or other modes
-of failure.
+Using non-zero address tags in any of these locations when the
+userspace application did not enable the AArch64 Tagged Address ABI may
+result in an error code being returned, a (fatal) signal being raised,
+or other modes of failure.
 
-For these reasons, passing non-zero address tags to the kernel via
-system calls is forbidden, and using a non-zero address tag for sp is
-strongly discouraged.
+For these reasons, when the AArch64 Tagged Address ABI is disabled,
+passing non-zero address tags to the kernel via system calls is
+forbidden, and using a non-zero address tag for sp is strongly
+discouraged.
 
 Programs maintaining a frame pointer and frame records that use non-zero
 address tags may suffer impaired or inaccurate debug and profiling
@@ -59,6 +63,11 @@ be preserved.
 The architecture prevents the use of a tagged PC, so the upper byte will
 be set to a sign-extension of bit 55 on exception return.
 
+This behaviour is maintained when the AArch64 Tagged Address ABI is
+enabled. In addition, with the exceptions above, the kernel will
+preserve any non-zero tags passed by the user via syscalls and stored in
+kernel data structures (e.g. set_robust_list(), sigaltstack()).
+
 
 Other considerations
 --------------------

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related

* [PATCH v8 3/5] arm64: Change the tagged_addr sysctl control semantics to only prevent the opt-in
From: Catalin Marinas @ 2019-08-15 15:44 UTC (permalink / raw)
  To: linux-arm-kernel, linux-mm
  Cc: linux-arch, linux-doc, Szabolcs Nagy, Andrey Konovalov,
	Kevin Brodsky, Will Deacon, Dave Hansen, Andrew Morton,
	Vincenzo Frascino, Dave P Martin
In-Reply-To: <20190815154403.16473-1-catalin.marinas@arm.com>

First rename the sysctl control to abi.tagged_addr_disabled and make it
default off (zero). When abi.tagged_addr_disabled == 1, only block the
enabling of the TBI ABI via prctl(PR_SET_TAGGED_ADDR_CTRL, PR_TAGGED_ADDR_ENABLE).
Getting the status of the ABI or disabling it is still allowed.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
---
 arch/arm64/kernel/process.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
index 76b7c55026aa..03689c0beb34 100644
--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -579,17 +579,22 @@ void arch_setup_new_exec(void)
 /*
  * Control the relaxed ABI allowing tagged user addresses into the kernel.
  */
-static unsigned int tagged_addr_prctl_allowed = 1;
+static unsigned int tagged_addr_disabled;
 
 long set_tagged_addr_ctrl(unsigned long arg)
 {
-	if (!tagged_addr_prctl_allowed)
-		return -EINVAL;
 	if (is_compat_task())
 		return -EINVAL;
 	if (arg & ~PR_TAGGED_ADDR_ENABLE)
 		return -EINVAL;
 
+	/*
+	 * Do not allow the enabling of the tagged address ABI if globally
+	 * disabled via sysctl abi.tagged_addr_disabled.
+	 */
+	if (arg & PR_TAGGED_ADDR_ENABLE && tagged_addr_disabled)
+		return -EINVAL;
+
 	update_thread_flag(TIF_TAGGED_ADDR, arg & PR_TAGGED_ADDR_ENABLE);
 
 	return 0;
@@ -597,8 +602,6 @@ long set_tagged_addr_ctrl(unsigned long arg)
 
 long get_tagged_addr_ctrl(void)
 {
-	if (!tagged_addr_prctl_allowed)
-		return -EINVAL;
 	if (is_compat_task())
 		return -EINVAL;
 
@@ -618,9 +621,9 @@ static int one = 1;
 
 static struct ctl_table tagged_addr_sysctl_table[] = {
 	{
-		.procname	= "tagged_addr",
+		.procname	= "tagged_addr_disabled",
 		.mode		= 0644,
-		.data		= &tagged_addr_prctl_allowed,
+		.data		= &tagged_addr_disabled,
 		.maxlen		= sizeof(int),
 		.proc_handler	= proc_dointvec_minmax,
 		.extra1		= &zero,

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related

* [PATCH v8 2/5] arm64: Tighten the PR_{SET, GET}_TAGGED_ADDR_CTRL prctl() unused arguments
From: Catalin Marinas @ 2019-08-15 15:44 UTC (permalink / raw)
  To: linux-arm-kernel, linux-mm
  Cc: linux-arch, linux-doc, Szabolcs Nagy, Andrey Konovalov,
	Kevin Brodsky, Will Deacon, Dave Hansen, Andrew Morton,
	Vincenzo Frascino, Dave P Martin
In-Reply-To: <20190815154403.16473-1-catalin.marinas@arm.com>

Require that arg{3,4,5} of the PR_{SET,GET}_TAGGED_ADDR_CTRL prctl and
arg2 of the PR_GET_TAGGED_ADDR_CTRL prctl() are zero rather than ignored
for future extensions.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
---
 kernel/sys.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/kernel/sys.c b/kernel/sys.c
index c6c4d5358bd3..ec48396b4943 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -2499,9 +2499,13 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
 		error = PAC_RESET_KEYS(me, arg2);
 		break;
 	case PR_SET_TAGGED_ADDR_CTRL:
+		if (arg3 || arg4 || arg5)
+			return -EINVAL;
 		error = SET_TAGGED_ADDR_CTRL(arg2);
 		break;
 	case PR_GET_TAGGED_ADDR_CTRL:
+		if (arg2 || arg3 || arg4 || arg5)
+			return -EINVAL;
 		error = GET_TAGGED_ADDR_CTRL();
 		break;
 	default:

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related

* [PATCH v8 1/5] mm: untag user pointers in mmap/munmap/mremap/brk
From: Catalin Marinas @ 2019-08-15 15:43 UTC (permalink / raw)
  To: linux-arm-kernel, linux-mm
  Cc: linux-arch, linux-doc, Szabolcs Nagy, Andrey Konovalov,
	Kevin Brodsky, Will Deacon, Dave Hansen, Andrew Morton,
	Vincenzo Frascino, Dave P Martin
In-Reply-To: <20190815154403.16473-1-catalin.marinas@arm.com>

There isn't a good reason to differentiate between the user address
space layout modification syscalls and the other memory
permission/attributes ones (e.g. mprotect, madvise) w.r.t. the tagged
address ABI. Untag the user addresses on entry to these functions.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
---
 mm/mmap.c   | 5 +++++
 mm/mremap.c | 6 +-----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/mm/mmap.c b/mm/mmap.c
index 7e8c3e8ae75f..b766b633b7ae 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -201,6 +201,8 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
 	bool downgraded = false;
 	LIST_HEAD(uf);
 
+	brk = untagged_addr(brk);
+
 	if (down_write_killable(&mm->mmap_sem))
 		return -EINTR;
 
@@ -1573,6 +1575,8 @@ unsigned long ksys_mmap_pgoff(unsigned long addr, unsigned long len,
 	struct file *file = NULL;
 	unsigned long retval;
 
+	addr = untagged_addr(addr);
+
 	if (!(flags & MAP_ANONYMOUS)) {
 		audit_mmap_fd(fd, flags);
 		file = fget(fd);
@@ -2874,6 +2878,7 @@ EXPORT_SYMBOL(vm_munmap);
 
 SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len)
 {
+	addr = untagged_addr(addr);
 	profile_munmap(addr);
 	return __vm_munmap(addr, len, true);
 }
diff --git a/mm/mremap.c b/mm/mremap.c
index 64c9a3b8be0a..1fc8a29fbe3f 100644
--- a/mm/mremap.c
+++ b/mm/mremap.c
@@ -606,12 +606,8 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
 	LIST_HEAD(uf_unmap_early);
 	LIST_HEAD(uf_unmap);
 
-	/*
-	 * Architectures may interpret the tag passed to mmap as a background
-	 * colour for the corresponding vma. For mremap we don't allow tagged
-	 * new_addr to preserve similar behaviour to mmap.
-	 */
 	addr = untagged_addr(addr);
+	new_addr = untagged_addr(new_addr);
 
 	if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE))
 		return ret;

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related

* [PATCH v8 0/2] arm64 tagged address ABI
From: Catalin Marinas @ 2019-08-15 15:43 UTC (permalink / raw)
  To: linux-arm-kernel, linux-mm
  Cc: linux-arch, linux-doc, Szabolcs Nagy, Andrey Konovalov,
	Kevin Brodsky, Will Deacon, Dave Hansen, Andrew Morton,
	Vincenzo Frascino, Dave P Martin

Hi,

This series contains an update to the arm64 tagged address ABI
documentation posted here (v7):

http://lkml.kernel.org/r/20190807155321.9648-1-catalin.marinas@arm.com

together some adjustments to Andrey's patches (already queued through
different trees) following the discussions on the ABI documents:

http://lkml.kernel.org/r/cover.1563904656.git.andreyknvl@google.com

If there are not objections, I propose that that patch 1 (mm: untag user
pointers in mmap...) goes via the mm tree while the other 4 are routed
via the arm64 tree.

Changes in v8:

- removed mmap/munmap/mremap/brk from the list of syscalls not accepting
  tagged pointers

- added ioctl() to the list of syscalls not accepting tagged pointers

- added shmat/shmdt to a list of syscalls not accepting tagged pointers

- prctl() now requires all unused arguments to be 0

- note about two-stage ABI relaxation since even without the prctl()
  opt-in, the tag is still ignored on a few syscalls (untagged_addr() in
  the kernel is unconditional)

- compilable example code together with syscall use

- added a note on tag preservation in the tagged-pointers.rst document

- various rewordings and cleanups


Catalin Marinas (3):
  mm: untag user pointers in mmap/munmap/mremap/brk
  arm64: Tighten the PR_{SET,GET}_TAGGED_ADDR_CTRL prctl() unused
    arguments
  arm64: Change the tagged_addr sysctl control semantics to only prevent
    the opt-in

Vincenzo Frascino (2):
  arm64: Define Documentation/arm64/tagged-address-abi.rst
  arm64: Relax Documentation/arm64/tagged-pointers.rst

 Documentation/arm64/tagged-address-abi.rst | 155 +++++++++++++++++++++
 Documentation/arm64/tagged-pointers.rst    |  23 ++-
 arch/arm64/kernel/process.c                |  17 ++-
 kernel/sys.c                               |   4 +
 mm/mmap.c                                  |   5 +
 mm/mremap.c                                |   6 +-
 6 files changed, 191 insertions(+), 19 deletions(-)
 create mode 100644 Documentation/arm64/tagged-address-abi.rst


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: [PATCH v3 1/2] iommu/io-pgtable-arm: Add support for ARM_ADRENO_GPU_LPAE io-pgtable format
From: Jordan Crouse @ 2019-08-15 15:35 UTC (permalink / raw)
  To: freedreno
  Cc: Rob Herring, Will Deacon, jean-philippe.brucker, linux-arm-msm,
	Joerg Roedel, linux-kernel, iommu, Zhen Lei, robin.murphy,
	linux-arm-kernel
In-Reply-To: <1565216500-28506-2-git-send-email-jcrouse@codeaurora.org>

On Wed, Aug 07, 2019 at 04:21:39PM -0600, Jordan Crouse wrote:
> Add a new sub-format ARM_ADRENO_GPU_LPAE to set up TTBR0 and TTBR1 for
> use by the Adreno GPU. This will allow The GPU driver to map global
> buffers in the TTBR1 and leave the TTBR0 configured but unset and
> free to be changed dynamically by the GPU.

It would take a bit of code rework and un-static-ifying a few functions but I'm
wondering if it would be cleaner to add the Adreno GPU pagetable format in a new
file, such as io-pgtable-adreno.c. 

Jordan

> Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
> ---
> 
>  drivers/iommu/io-pgtable-arm.c | 214 ++++++++++++++++++++++++++++++++++++++---
>  drivers/iommu/io-pgtable.c     |   1 +
>  include/linux/io-pgtable.h     |   2 +
>  3 files changed, 202 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c
> index 161a7d5..8eb0dbb 100644
> --- a/drivers/iommu/io-pgtable-arm.c
> +++ b/drivers/iommu/io-pgtable-arm.c
> @@ -112,13 +112,19 @@
>  #define ARM_32_LPAE_TCR_EAE		(1 << 31)
>  #define ARM_64_LPAE_S2_TCR_RES1		(1 << 31)
>  
> +#define ARM_LPAE_TCR_EPD0		(1 << 7)
>  #define ARM_LPAE_TCR_EPD1		(1 << 23)
>  
>  #define ARM_LPAE_TCR_TG0_4K		(0 << 14)
>  #define ARM_LPAE_TCR_TG0_64K		(1 << 14)
>  #define ARM_LPAE_TCR_TG0_16K		(2 << 14)
>  
> +#define ARM_LPAE_TCR_TG1_4K		(0 << 30)
> +#define ARM_LPAE_TCR_TG1_64K		(1 << 30)
> +#define ARM_LPAE_TCR_TG1_16K		(2 << 30)
> +
>  #define ARM_LPAE_TCR_SH0_SHIFT		12
> +#define ARM_LPAE_TCR_SH1_SHIFT		28
>  #define ARM_LPAE_TCR_SH0_MASK		0x3
>  #define ARM_LPAE_TCR_SH_NS		0
>  #define ARM_LPAE_TCR_SH_OS		2
> @@ -126,6 +132,8 @@
>  
>  #define ARM_LPAE_TCR_ORGN0_SHIFT	10
>  #define ARM_LPAE_TCR_IRGN0_SHIFT	8
> +#define ARM_LPAE_TCR_ORGN1_SHIFT	26
> +#define ARM_LPAE_TCR_IRGN1_SHIFT	24
>  #define ARM_LPAE_TCR_RGN_MASK		0x3
>  #define ARM_LPAE_TCR_RGN_NC		0
>  #define ARM_LPAE_TCR_RGN_WBWA		1
> @@ -136,6 +144,7 @@
>  #define ARM_LPAE_TCR_SL0_MASK		0x3
>  
>  #define ARM_LPAE_TCR_T0SZ_SHIFT		0
> +#define ARM_LPAE_TCR_T1SZ_SHIFT		16
>  #define ARM_LPAE_TCR_SZ_MASK		0xf
>  
>  #define ARM_LPAE_TCR_PS_SHIFT		16
> @@ -152,6 +161,14 @@
>  #define ARM_LPAE_TCR_PS_48_BIT		0x5ULL
>  #define ARM_LPAE_TCR_PS_52_BIT		0x6ULL
>  
> +#define ARM_LPAE_TCR_SEP_SHIFT		47
> +#define ARM_LPAE_TCR_SEP_31		(0x0ULL << ARM_LPAE_TCR_SEP_SHIFT)
> +#define ARM_LPAE_TCR_SEP_35		(0x1ULL << ARM_LPAE_TCR_SEP_SHIFT)
> +#define ARM_LPAE_TCR_SEP_39		(0x2ULL << ARM_LPAE_TCR_SEP_SHIFT)
> +#define ARM_LPAE_TCR_SEP_41		(0x3ULL << ARM_LPAE_TCR_SEP_SHIFT)
> +#define ARM_LPAE_TCR_SEP_43		(0x4ULL << ARM_LPAE_TCR_SEP_SHIFT)
> +#define ARM_LPAE_TCR_SEP_UPSTREAM	(0x7ULL << ARM_LPAE_TCR_SEP_SHIFT)
> +
>  #define ARM_LPAE_MAIR_ATTR_SHIFT(n)	((n) << 3)
>  #define ARM_LPAE_MAIR_ATTR_MASK		0xff
>  #define ARM_LPAE_MAIR_ATTR_DEVICE	0x04
> @@ -426,7 +443,8 @@ static arm_lpae_iopte arm_lpae_prot_to_pte(struct arm_lpae_io_pgtable *data,
>  	arm_lpae_iopte pte;
>  
>  	if (data->iop.fmt == ARM_64_LPAE_S1 ||
> -	    data->iop.fmt == ARM_32_LPAE_S1) {
> +	    data->iop.fmt == ARM_32_LPAE_S1 ||
> +	    data->iop.fmt == ARM_ADRENO_GPU_LPAE) {
>  		pte = ARM_LPAE_PTE_nG;
>  		if (!(prot & IOMMU_WRITE) && (prot & IOMMU_READ))
>  			pte |= ARM_LPAE_PTE_AP_RDONLY;
> @@ -497,6 +515,21 @@ static int arm_lpae_map(struct io_pgtable_ops *ops, unsigned long iova,
>  	return ret;
>  }
>  
> +static int arm_adreno_gpu_lpae_map(struct io_pgtable_ops *ops,
> +		unsigned long iova, phys_addr_t paddr, size_t size,
> +		int iommu_prot)
> +{
> +	struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
> +	unsigned long mask = 1UL << data->iop.cfg.ias;
> +
> +	/* This configuration expects all iova addresses to be in TTBR1 */
> +	if (WARN_ON(iova & mask))
> +		return -ERANGE;
> +
> +	/* Mask off the sign extended bits and map as usual */
> +	return arm_lpae_map(ops, iova & (mask - 1), paddr, size, iommu_prot);
> +}
> +
>  static void __arm_lpae_free_pgtable(struct arm_lpae_io_pgtable *data, int lvl,
>  				    arm_lpae_iopte *ptep)
>  {
> @@ -643,6 +676,22 @@ static size_t __arm_lpae_unmap(struct arm_lpae_io_pgtable *data,
>  	return __arm_lpae_unmap(data, iova, size, lvl + 1, ptep);
>  }
>  
> +static size_t arm_adreno_gpu_lpae_unmap(struct io_pgtable_ops *ops,
> +				   unsigned long iova, size_t size)
> +{
> +	struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
> +	arm_lpae_iopte *ptep = data->pgd;
> +	int lvl = ARM_LPAE_START_LVL(data);
> +	unsigned long mask = 1UL << data->iop.cfg.ias;
> +
> +	/* Make sure the sign extend bit is set in the iova */
> +	if (WARN_ON(!(iova & mask)))
> +		return 0;
> +
> +	/* Mask off the sign extended bits before unmapping */
> +	return __arm_lpae_unmap(data, iova & (mask - 1), size, lvl, ptep);
> +}
> +
>  static size_t arm_lpae_unmap(struct io_pgtable_ops *ops, unsigned long iova,
>  			     size_t size)
>  {
> @@ -692,6 +741,17 @@ static phys_addr_t arm_lpae_iova_to_phys(struct io_pgtable_ops *ops,
>  	return iopte_to_paddr(pte, data) | iova;
>  }
>  
> +
> +static phys_addr_t arm_adreno_gpu_lpae_iova_to_phys(struct io_pgtable_ops *ops,
> +					       unsigned long iova)
> +{
> +	struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
> +	unsigned long mask = 1UL << data->iop.cfg.ias;
> +
> +	/* Mask off the sign extended bits before translating */
> +	return arm_lpae_iova_to_phys(ops, iova & (mask - 1));
> +}
> +
>  static void arm_lpae_restrict_pgsizes(struct io_pgtable_cfg *cfg)
>  {
>  	unsigned long granule, page_sizes;
> @@ -771,17 +831,16 @@ arm_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg)
>  	pgd_bits = va_bits - (data->bits_per_level * (data->levels - 1));
>  	data->pgd_size = 1UL << (pgd_bits + ilog2(sizeof(arm_lpae_iopte)));
>  
> -	data->iop.ops = (struct io_pgtable_ops) {
> -		.map		= arm_lpae_map,
> -		.unmap		= arm_lpae_unmap,
> -		.iova_to_phys	= arm_lpae_iova_to_phys,
> -	};
>  
>  	return data;
>  }
>  
> -static struct io_pgtable *
> -arm_64_lpae_alloc_pgtable_s1(struct io_pgtable_cfg *cfg, void *cookie)
> +/*
> + * Common allocation function for S1 pagetables.  Set up the TTBR0 region and
> + * allocate a default pagetable
> + */
> +static struct arm_lpae_io_pgtable *
> +_arm_64_lpae_alloc_pgtable_s1_common(struct io_pgtable_cfg *cfg)
>  {
>  	u64 reg;
>  	struct arm_lpae_io_pgtable *data;
> @@ -845,8 +904,6 @@ arm_64_lpae_alloc_pgtable_s1(struct io_pgtable_cfg *cfg, void *cookie)
>  
>  	reg |= (64ULL - cfg->ias) << ARM_LPAE_TCR_T0SZ_SHIFT;
>  
> -	/* Disable speculative walks through TTBR1 */
> -	reg |= ARM_LPAE_TCR_EPD1;
>  	cfg->arm_lpae_s1_cfg.tcr = reg;
>  
>  	/* MAIRs */
> @@ -870,16 +927,131 @@ arm_64_lpae_alloc_pgtable_s1(struct io_pgtable_cfg *cfg, void *cookie)
>  	/* Ensure the empty pgd is visible before any actual TTBR write */
>  	wmb();
>  
> -	/* TTBRs */
> -	cfg->arm_lpae_s1_cfg.ttbr[0] = virt_to_phys(data->pgd);
> -	cfg->arm_lpae_s1_cfg.ttbr[1] = 0;
> -	return &data->iop;
> -
> +	return data;
>  out_free_data:
>  	kfree(data);
>  	return NULL;
>  }
>  
> +
> +static struct io_pgtable *
> +arm_adreno_gpu_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg, void *cookie)
> +{
> +	struct arm_lpae_io_pgtable *data;
> +	u64 reg;
> +
> +	/*
> +	 * Make sure the ias aligns with the available options for the sign
> +	 * extension bit
> +	 */
> +	switch (cfg->ias) {
> +	case 32:
> +	case 36:
> +	case 40:
> +	case 42:
> +	case 44:
> +		/*
> +		 * The SEP will be the highest available bit so adjust the data
> +		 * size by one to accommodate it
> +		 */
> +		cfg->ias--;
> +		break;
> +	case 48:
> +		/*
> +		 * IAS of 48 is a special case, it has a dedicated sign
> +		 * extension bit so we can use the full IAS size
> +		 */
> +		break;
> +	default:
> +		/* The ias doesn't work for the available SEP options */
> +		return NULL;
> +	}
> +
> +	data = _arm_64_lpae_alloc_pgtable_s1_common(cfg);
> +	if (!data)
> +		return NULL;
> +
> +	reg = (ARM_LPAE_TCR_SH_IS << ARM_LPAE_TCR_SH1_SHIFT) |
> +	      (ARM_LPAE_TCR_RGN_WBWA << ARM_LPAE_TCR_IRGN1_SHIFT) |
> +	      (ARM_LPAE_TCR_RGN_WBWA << ARM_LPAE_TCR_ORGN1_SHIFT);
> +
> +	switch (ARM_LPAE_GRANULE(data)) {
> +	case SZ_4K:
> +		reg |= ARM_LPAE_TCR_TG1_4K;
> +		break;
> +	case SZ_16K:
> +		reg |= ARM_LPAE_TCR_TG1_16K;
> +		break;
> +	case SZ_64K:
> +		reg |= ARM_LPAE_TCR_TG1_64K;
> +		break;
> +	}
> +
> +	reg |= (64ULL - cfg->ias) << ARM_LPAE_TCR_T1SZ_SHIFT;
> +
> +	/* Set the sign extension bit */
> +	switch (cfg->ias) {
> +	case 31:
> +		reg |= ARM_LPAE_TCR_SEP_31;
> +		break;
> +	case 35:
> +		reg |= ARM_LPAE_TCR_SEP_35;
> +		break;
> +	case 39:
> +		reg |= ARM_LPAE_TCR_SEP_39;
> +		break;
> +	case 41:
> +		reg |= ARM_LPAE_TCR_SEP_41;
> +		break;
> +	case 43:
> +		reg |= ARM_LPAE_TCR_SEP_43;
> +		break;
> +	case 48:
> +		reg |= ARM_LPAE_TCR_SEP_UPSTREAM;
> +		break;
> +	}
> +
> +	cfg->arm_lpae_s1_cfg.tcr |= reg;
> +
> +	/* Set the allocated pgd to ttbr1 and leave ttbr0 empty */
> +	cfg->arm_lpae_s1_cfg.ttbr[0] = 0;
> +	cfg->arm_lpae_s1_cfg.ttbr[1] = virt_to_phys(data->pgd);
> +
> +	/* Set use case specific pgtable helpers */
> +	data->iop.ops = (struct io_pgtable_ops) {
> +		.map		= arm_adreno_gpu_lpae_map,
> +		.unmap		= arm_adreno_gpu_lpae_unmap,
> +		.iova_to_phys	= arm_adreno_gpu_lpae_iova_to_phys,
> +	};
> +
> +	return &data->iop;
> +}
> +
> +static struct io_pgtable *
> +arm_64_lpae_alloc_pgtable_s1(struct io_pgtable_cfg *cfg, void *cookie)
> +{
> +	struct arm_lpae_io_pgtable *data;
> +
> +	data = _arm_64_lpae_alloc_pgtable_s1_common(cfg);
> +	if (!data)
> +		return NULL;
> +
> +	/* Disable speculative walks through TTBR1 */
> +	cfg->arm_lpae_s1_cfg.tcr |= ARM_LPAE_TCR_EPD1;
> +
> +	/* Set the pgd to TTBR0 */
> +	cfg->arm_lpae_s1_cfg.ttbr[0] = virt_to_phys(data->pgd);
> +	cfg->arm_lpae_s1_cfg.ttbr[1] = 0;
> +
> +	data->iop.ops = (struct io_pgtable_ops) {
> +		.map		= arm_lpae_map,
> +		.unmap		= arm_lpae_unmap,
> +		.iova_to_phys	= arm_lpae_iova_to_phys,
> +	};
> +
> +	return &data->iop;
> +}
> +
>  static struct io_pgtable *
>  arm_64_lpae_alloc_pgtable_s2(struct io_pgtable_cfg *cfg, void *cookie)
>  {
> @@ -894,6 +1066,12 @@ arm_64_lpae_alloc_pgtable_s2(struct io_pgtable_cfg *cfg, void *cookie)
>  	if (!data)
>  		return NULL;
>  
> +	data->iop.ops = (struct io_pgtable_ops) {
> +		.map		= arm_lpae_map,
> +		.unmap		= arm_lpae_unmap,
> +		.iova_to_phys	= arm_lpae_iova_to_phys,
> +	};
> +
>  	/*
>  	 * Concatenate PGDs at level 1 if possible in order to reduce
>  	 * the depth of the stage-2 walk.
> @@ -1041,6 +1219,11 @@ struct io_pgtable_init_fns io_pgtable_arm_64_lpae_s1_init_fns = {
>  	.free	= arm_lpae_free_pgtable,
>  };
>  
> +struct io_pgtable_init_fns io_pgtable_arm_adreno_gpu_lpae_init_fns = {
> +	.alloc	= arm_adreno_gpu_lpae_alloc_pgtable,
> +	.free	= arm_lpae_free_pgtable,
> +};
> +
>  struct io_pgtable_init_fns io_pgtable_arm_64_lpae_s2_init_fns = {
>  	.alloc	= arm_64_lpae_alloc_pgtable_s2,
>  	.free	= arm_lpae_free_pgtable,
> @@ -1112,6 +1295,7 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
>  	static const enum io_pgtable_fmt fmts[] = {
>  		ARM_64_LPAE_S1,
>  		ARM_64_LPAE_S2,
> +		ARM_64_LPAE_TTBR1_S1,
>  	};
>  
>  	int i, j;
> diff --git a/drivers/iommu/io-pgtable.c b/drivers/iommu/io-pgtable.c
> index ced53e5..e47ed2d 100644
> --- a/drivers/iommu/io-pgtable.c
> +++ b/drivers/iommu/io-pgtable.c
> @@ -20,6 +20,7 @@ io_pgtable_init_table[IO_PGTABLE_NUM_FMTS] = {
>  	[ARM_64_LPAE_S1] = &io_pgtable_arm_64_lpae_s1_init_fns,
>  	[ARM_64_LPAE_S2] = &io_pgtable_arm_64_lpae_s2_init_fns,
>  	[ARM_MALI_LPAE] = &io_pgtable_arm_mali_lpae_init_fns,
> +	[ARM_ADRENO_GPU_LPAE] = &io_pgtable_arm_adreno_gpu_lpae_init_fns,
>  #endif
>  #ifdef CONFIG_IOMMU_IO_PGTABLE_ARMV7S
>  	[ARM_V7S] = &io_pgtable_arm_v7s_init_fns,
> diff --git a/include/linux/io-pgtable.h b/include/linux/io-pgtable.h
> index b5a450a..4871e85 100644
> --- a/include/linux/io-pgtable.h
> +++ b/include/linux/io-pgtable.h
> @@ -13,6 +13,7 @@ enum io_pgtable_fmt {
>  	ARM_64_LPAE_S2,
>  	ARM_V7S,
>  	ARM_MALI_LPAE,
> +	ARM_ADRENO_GPU_LPAE,
>  	IO_PGTABLE_NUM_FMTS,
>  };
>  
> @@ -213,5 +214,6 @@ extern struct io_pgtable_init_fns io_pgtable_arm_64_lpae_s1_init_fns;
>  extern struct io_pgtable_init_fns io_pgtable_arm_64_lpae_s2_init_fns;
>  extern struct io_pgtable_init_fns io_pgtable_arm_v7s_init_fns;
>  extern struct io_pgtable_init_fns io_pgtable_arm_mali_lpae_init_fns;
> +extern struct io_pgtable_init_fns io_pgtable_arm_adreno_gpu_lpae_init_fns;
>  
>  #endif /* __IO_PGTABLE_H */
> -- 
> 2.7.4
> 

-- 
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: [Freedreno] [PATCH v3 0/2] iommu/arm-smmu: Split pagetable support
From: Jordan Crouse @ 2019-08-15 15:33 UTC (permalink / raw)
  To: freedreno
  Cc: Rob Herring, jean-philippe.brucker, linux-arm-msm, Joerg Roedel,
	linux-kernel, iommu, Zhen Lei, Will Deacon, linux-arm-kernel,
	robin.murphy
In-Reply-To: <1565216500-28506-1-git-send-email-jcrouse@codeaurora.org>

On Wed, Aug 07, 2019 at 04:21:38PM -0600, Jordan Crouse wrote:
> (Sigh, resend. I freaked out my SMTP server)
> 
> This is part of an ongoing evolution for enabling split pagetable support for
> arm-smmu. Previous versions can be found [1].
> 
> In the discussion for v2 Robin pointed out that this is a very Adreno specific
> use case and that is exactly true. Not only do we want to configure and use a
> pagetable in the TTBR1 space, we also want to configure the TTBR0 region but
> not allocate a pagetable for it or touch it until the GPU hardware does so. As
> much as I want it to be a generic concept it really isn't.
> 
> This revision leans into that idea. Most of the same io-pgtable code is there
> but now it is wrapped as an Adreno GPU specific format that is selected by the
> compatible string in the arm-smmu device.
> 
> Additionally, per Robin's suggestion we are skipping creating a TTBR0 pagetable
> to save on wasted memory.
> 
> This isn't as clean as I would like it to be but I think that this is a better
> direction than trying to pretend that the generic format would work.
> 
> I'm tempting fate by posting this and then taking some time off, but I wanted
> to try to kick off a conversation or at least get some flames so I can try to
> refine this again next week. Please take a look and give some advice on the
> direction.

Will, Robin -

Modulo the impl changes from Robin, do you think that using a dedicated
pagetable format is the right approach for supporting split pagetables for the
Adreno GPU?

If so, then is adding the changes to io-pgtable-arm.c possible for 5.4 and then
add the implementation specific code on top of Robin's stack later or do you
feel they should come as part of a package deal?

Jordan

> Jordan Crouse (2):
>   iommu/io-pgtable-arm: Add support for ARM_ADRENO_GPU_LPAE io-pgtable
>     format
>   iommu/arm-smmu: Add support for Adreno GPU pagetable formats
> 
>  drivers/iommu/arm-smmu.c       |   8 +-
>  drivers/iommu/io-pgtable-arm.c | 214 ++++++++++++++++++++++++++++++++++++++---
>  drivers/iommu/io-pgtable.c     |   1 +
>  include/linux/io-pgtable.h     |   2 +
>  4 files changed, 209 insertions(+), 16 deletions(-)
> 
> -- 
> 2.7.4
> 
> _______________________________________________
> Freedreno mailing list
> Freedreno@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/freedreno

-- 
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: [PATCH v2 2/2] iommu/arm-smmu-v3: add nr_ats_masters for quickly check
From: Will Deacon @ 2019-08-15 15:23 UTC (permalink / raw)
  To: Zhen Lei
  Cc: Jean-Philippe Brucker, Jean-Philippe Brucker, Joerg Roedel,
	John Garry, linux-kernel, iommu, Robin Murphy, linux-arm-kernel
In-Reply-To: <20190815054439.30652-3-thunder.leizhen@huawei.com>

On Thu, Aug 15, 2019 at 01:44:39PM +0800, Zhen Lei wrote:
> When (smmu_domain->smmu->features & ARM_SMMU_FEAT_ATS) is true, even if a
> smmu domain does not contain any ats master, the operations of
> arm_smmu_atc_inv_to_cmd() and lock protection in arm_smmu_atc_inv_domain()
> are always executed. This will impact performance, especially in
> multi-core and stress scenarios. For my FIO test scenario, about 8%
> performance reduced.
> 
> In fact, we can use a struct member to record how many ats masters that
> the smmu contains. And check that without traverse the list and check all
> masters one by one in the lock protection.
> 
> Fixes: 9ce27afc0830 ("iommu/arm-smmu-v3: Add support for PCI ATS")
> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
> ---
>  drivers/iommu/arm-smmu-v3.c | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
> index 29056d9bb12aa01..154334d3310c9b8 100644
> --- a/drivers/iommu/arm-smmu-v3.c
> +++ b/drivers/iommu/arm-smmu-v3.c
> @@ -631,6 +631,7 @@ struct arm_smmu_domain {
>  
>  	struct io_pgtable_ops		*pgtbl_ops;
>  	bool				non_strict;
> +	int				nr_ats_masters;
>  
>  	enum arm_smmu_domain_stage	stage;
>  	union {
> @@ -1531,7 +1532,16 @@ static int arm_smmu_atc_inv_domain(struct arm_smmu_domain *smmu_domain,
>  	struct arm_smmu_cmdq_ent cmd;
>  	struct arm_smmu_master *master;
>  
> -	if (!(smmu_domain->smmu->features & ARM_SMMU_FEAT_ATS))
> +	/*
> +	 * The protectiom of spinlock(&iommu_domain->devices_lock) is omitted.
> +	 * Because for a given master, its map/unmap operations should only be
> +	 * happened after it has been attached and before it has been detached.
> +	 * So that, if at least one master need to be atc invalidated, the
> +	 * value of smmu_domain->nr_ats_masters can not be zero.
> +	 *
> +	 * This can alleviate performance loss in multi-core scenarios.
> +	 */

I find this reasoning pretty dubious, since I think you're assuming that
an endpoint cannot issue speculative ATS translation requests once its
ATS capability is enabled. That said, I think it also means we should enable
ATS in the STE *before* enabling it in the endpoint -- the current logic
looks like it's the wrong way round to me (including in detach()).

Anyway, these speculative translations could race with a concurrent unmap()
call and end up with the ATC containing translations for unmapped pages,
which I think we should try to avoid.

Did the RCU approach not work out? You could use an rwlock instead as a
temporary bodge if the performance doesn't hurt too much.

Alternatively... maybe we could change the attach flow to do something
like:

	enable_ats_in_ste(master);
	enable_ats_at_pcie_endpoint(master);
	spin_lock(devices_lock)
	add_to_device_list(master);
	nr_ats_masters++;
	spin_unlock(devices_lock);
	invalidate_atc(master);

in which case, the concurrent unmapper will be doing something like:

	issue_tlbi();
	smp_mb();
	if (READ_ONCE(nr_ats_masters)) {
		...
	}

and I *think* that means that either the unmapper will see the
nr_ats_masters update and perform the invalidation, or they'll miss
the update but the attach will invalidate the ATC /after/ the TLBI
in the command queue.

Also, John's idea of converting this stuff over to my command batching
mechanism should help a lot if we can defer this to sync time using the
gather structure. Maybe an rwlock would be alright for that. Dunno.

Will

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: [PATCH 15/15] iommu/arm-smmu: Add context init implementation hook
From: Jordan Crouse @ 2019-08-15 15:09 UTC (permalink / raw)
  To: Robin Murphy
  Cc: iommu, Will Deacon, gregory.clement, linux-arm-kernel,
	bjorn.andersson
In-Reply-To: <7acdf5fb-3516-efbb-7c8c-7f84c02faad7@arm.com>

On Thu, Aug 15, 2019 at 01:09:07PM +0100, Robin Murphy wrote:
> On 15/08/2019 11:56, Will Deacon wrote:
> >On Fri, Aug 09, 2019 at 06:07:52PM +0100, Robin Murphy wrote:
> >>Allocating and initialising a context for a domain is another point
> >>where certain implementations are known to want special behaviour.
> >>Currently the other half of the Cavium workaround comes into play here,
> >>so let's finish the job to get the whole thing right out of the way.
> >>
> >>Signed-off-by: Robin Murphy <robin.murphy@arm.com>
> >>---
> >>  drivers/iommu/arm-smmu-impl.c | 39 +++++++++++++++++++++++++--
> >>  drivers/iommu/arm-smmu.c      | 51 +++++++----------------------------
> >>  drivers/iommu/arm-smmu.h      | 42 +++++++++++++++++++++++++++--
> >>  3 files changed, 86 insertions(+), 46 deletions(-)
> >>
> >>diff --git a/drivers/iommu/arm-smmu-impl.c b/drivers/iommu/arm-smmu-impl.c
> >>index c8904da08354..7a657d47b6ec 100644
> >>--- a/drivers/iommu/arm-smmu-impl.c
> >>+++ b/drivers/iommu/arm-smmu-impl.c
> >>@@ -48,6 +48,12 @@ const struct arm_smmu_impl calxeda_impl = {
> >>  };
> >>+struct cavium_smmu {
> >>+	struct arm_smmu_device smmu;
> >>+	u32 id_base;
> >>+};
> >>+#define to_csmmu(s)	container_of(s, struct cavium_smmu, smmu)
> >
> >To be honest with you, I'd just use container_of directly for the two
> >callsites that need it. "to_csmmu" isn't a great name when we're also got
> >the calxeda thing in here.
> 
> Sure, by this point I was mostly just going for completeness in terms of
> sketching out an example for subclassing arm_smmu_device. The Tegra patches
> will now serve as a more complete example anyway, so indeed we can live
> without it here.
> 
> >>  static int cavium_cfg_probe(struct arm_smmu_device *smmu)
> >>  {
> >>  	static atomic_t context_count = ATOMIC_INIT(0);
> >>@@ -56,17 +62,46 @@ static int cavium_cfg_probe(struct arm_smmu_device *smmu)
> >>  	 * Ensure ASID and VMID allocation is unique across all SMMUs in
> >>  	 * the system.
> >>  	 */
> >>-	smmu->cavium_id_base = atomic_fetch_add(smmu->num_context_banks,
> >>+	to_csmmu(smmu)->id_base = atomic_fetch_add(smmu->num_context_banks,
> >>  						   &context_count);
> >>  	dev_notice(smmu->dev, "\tenabling workaround for Cavium erratum 27704\n");
> >>  	return 0;
> >>  }
> >>+int cavium_init_context(struct arm_smmu_domain *smmu_domain)
> >>+{
> >>+	u32 id_base = to_csmmu(smmu_domain->smmu)->id_base;
> >>+
> >>+	if (smmu_domain->stage == ARM_SMMU_DOMAIN_S2)
> >>+		smmu_domain->cfg.vmid += id_base;
> >>+	else
> >>+		smmu_domain->cfg.asid += id_base;
> >>+
> >>+	return 0;
> >>+}
> >>+
> >>  const struct arm_smmu_impl cavium_impl = {
> >>  	.cfg_probe = cavium_cfg_probe,
> >>+	.init_context = cavium_init_context,
> >>  };
> >>+struct arm_smmu_device *cavium_smmu_impl_init(struct arm_smmu_device *smmu)
> >>+{
> >>+	struct cavium_smmu *csmmu;
> >>+
> >>+	csmmu = devm_kzalloc(smmu->dev, sizeof(*csmmu), GFP_KERNEL);
> >>+	if (!csmmu)
> >>+		return ERR_PTR(-ENOMEM);
> >>+
> >>+	csmmu->smmu = *smmu;
> >>+	csmmu->smmu.impl = &cavium_impl;
> >>+
> >>+	devm_kfree(smmu->dev, smmu);
> >>+
> >>+	return &csmmu->smmu;
> >>+}
> >>+
> >>  #define ARM_MMU500_ACTLR_CPRE		(1 << 1)
> >>@@ -121,7 +156,7 @@ struct arm_smmu_device *arm_smmu_impl_init(struct arm_smmu_device *smmu)
> >>  		smmu->impl = &calxeda_impl;
> >>  	if (smmu->model == CAVIUM_SMMUV2)
> >>-		smmu->impl = &cavium_impl;
> >>+		return cavium_smmu_impl_init(smmu);
> >>  	if (smmu->model == ARM_MMU500)
> >>  		smmu->impl = &arm_mmu500_impl;
> >
> >Maybe rework this so we do the calxeda detection first (and return if we
> >match), followed by a switch on smmu->model to make it crystal clear that
> >we match only one?
> 
> As I see it, "match only one" is really only a short-term thing, though, so
> I didn't want to get *too* hung up on it. Ultimately we're going to have
> cases where we need to combine e.g. MMU-500 implementation quirks with
> platform integration quirks - I've been mostly planning on coming back to
> think about that (and potentially rework this whole logic) later, but I
> guess it wouldn't hurt to plan out a bit more structure from the start.

I was going to ask something similar. I'm guessing that the intent is that
we'll eventually we'll have a couple of arm-smmu-<vendor>.c files
and we'll need some sort of centralized place to set up the smmu->impl pointer.
I had figured that it would be table based or something, but you make a good
point about mixing and matching different workarounds. I don't really have 
a solution, just something I'm pondering while I'm thinking about how to start
merging some of the qcom stuff into this.

Jordan 

-- 
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: [PATCH v3 3/4] perf: Use CAP_SYSLOG with kptr_restrict checks
From: Mathieu Poirier @ 2019-08-15 15:01 UTC (permalink / raw)
  To: Lubashev, Igor
  Cc: Suzuki K Poulose, Peter Zijlstra, Alexey Budankov,
	Arnaldo Carvalho de Melo, Linux Kernel Mailing List,
	Alexander Shishkin, Ingo Molnar, Namhyung Kim, James Morris,
	Jiri Olsa, linux-arm-kernel
In-Reply-To: <23f7b8c7616a467c93ee2c77e8ffd3cf@usma1ex-dag1mb6.msg.corp.akamai.com>

On Wed, 14 Aug 2019 at 14:02, Lubashev, Igor <ilubashe@akamai.com> wrote:
>
> > On Wed, August 14, 2019 at 2:52 PM Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote:
> > Em Wed, Aug 14, 2019 at 03:48:14PM -0300, Arnaldo Carvalho de Melo
> > escreveu:
> > > Em Wed, Aug 14, 2019 at 12:04:33PM -0600, Mathieu Poirier escreveu:
> > > > # echo 0 > /proc/sys/kernel/kptr_restrict # ./tools/perf/perf record
> > > > -e instructions:k uname
> > > > perf: Segmentation fault
> > > > Obtained 10 stack frames.
> > > > ./tools/perf/perf(sighandler_dump_stack+0x44) [0x55af9e5da5d4]
> > > > /lib/x86_64-linux-gnu/libc.so.6(+0x3ef20) [0x7fd31efb6f20]
> > > > ./tools/perf/perf(perf_event__synthesize_kernel_mmap+0xa7)
> > > > [0x55af9e590337]
> > > > ./tools/perf/perf(+0x1cf5be) [0x55af9e50c5be]
> > > > ./tools/perf/perf(cmd_record+0x1022) [0x55af9e50dff2]
> > > > ./tools/perf/perf(+0x23f98d) [0x55af9e57c98d]
> > > > ./tools/perf/perf(+0x23fc9e) [0x55af9e57cc9e]
> > > > ./tools/perf/perf(main+0x369) [0x55af9e4f6bc9]
> > > > /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)
> > > > [0x7fd31ef99b97]
> > > > ./tools/perf/perf(_start+0x2a) [0x55af9e4f704a] Segmentation fault
> > > >
> > > > I can reproduce this on both x86 and ARM64.
> > >
> > > I don't see this with these two csets removed:
> > >
> > > 7ff5b5911144 perf symbols: Use CAP_SYSLOG with kptr_restrict checks
> > > d7604b66102e perf tools: Use CAP_SYS_ADMIN with perf_event_paranoid
> > > checks
> > >
> > > Which were the ones I guessed were related to the problem you
> > > reported, so they are out of my ongoing perf/core pull request to
> > > Ingo/Thomas, now trying with these applied and your instructions...
> >
> > Can't repro:
> >
> > [root@quaco ~]# cat /proc/sys/kernel/kptr_restrict
> > 0
> > [root@quaco ~]# perf record -e instructions:k uname Linux [ perf record:
> > Woken up 1 times to write data ] [ perf record: Captured and wrote 0.024 MB
> > perf.data (1 samples) ] [root@quaco ~]# echo 1 >
> > /proc/sys/kernel/kptr_restrict [root@quaco ~]# perf record -e instructions:k
> > uname Linux [ perf record: Woken up 1 times to write data ] [ perf record:
> > Captured and wrote 0.024 MB perf.data (1 samples) ] [root@quaco ~]# echo
> > 0 > /proc/sys/kernel/kptr_restrict [root@quaco ~]# perf record -e
> > instructions:k uname Linux [ perf record: Woken up 1 times to write data ] [
> > perf record: Captured and wrote 0.024 MB perf.data (1 samples) ]
> > [root@quaco ~]#
> >
> > [acme@quaco perf]$ git log --oneline --author Lubashev tools/
> > 7ff5b5911144 (HEAD -> perf/cap, acme.korg/tmp.perf/cap,
> > acme.korg/perf/cap) perf symbols: Use CAP_SYSLOG with kptr_restrict
> > checks d7604b66102e perf tools: Use CAP_SYS_ADMIN with
> > perf_event_paranoid checks c766f3df635d perf ftrace: Use CAP_SYS_ADMIN
> > instead of euid==0 c22e150e3afa perf tools: Add helpers to use capabilities if
> > present
> > 74d5f3d06f70 tools build: Add capability-related feature detection perf
> > version 5.3.rc4.g7ff5b5911144 [acme@quaco perf]$
>
> I got an ARM64 cloud VM, but I cannot reproduce.
> # cat /proc/sys/kernel/kptr_restrict
> 0
>
> Perf trace works fine (does not die):
> # ./perf trace -a
>
> Here is my setup:
> Repo: git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git
> Branch: tmp.perf/cap
> Commit: 7ff5b5911 "perf symbols: Use CAP_SYSLOG with kptr_restrict checks"
> gcc --version: gcc (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) 7.4.0
> uname -a: Linux arm-4-par-1 4.9.93-mainline-rev1 #1 SMP Tue Apr 10 09:54:46 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
> lsb_release -a: Ubuntu 18.04.3 LTS
>
> Auto-detecting system features:
> ...                         dwarf: [ on  ]
> ...            dwarf_getlocations: [ on  ]
> ...                         glibc: [ on  ]
> ...                          gtk2: [ on  ]
> ...                      libaudit: [ on  ]
> ...                        libbfd: [ on  ]
> ...                        libcap: [ on  ]
> ...                        libelf: [ on  ]
> ...                       libnuma: [ on  ]
> ...        numa_num_possible_cpus: [ on  ]
> ...                       libperl: [ on  ]
> ...                     libpython: [ on  ]
> ...                     libcrypto: [ on  ]
> ...                     libunwind: [ on  ]
> ...            libdw-dwarf-unwind: [ on  ]
> ...                          zlib: [ on  ]
> ...                          lzma: [ on  ]
> ...                     get_cpuid: [ OFF ]
> ...                           bpf: [ on  ]
> ...                        libaio: [ on  ]
> ...                       libzstd: [ on  ]
> ...        disassembler-four-args: [ on  ]

Thank you for posting your configuration.  I will see where things are
different with mine.

>
> I also could not reproduce on x86:
> lsb_release -a: Ubuntu 18.04.1 LTS
> gcc --version: gcc (Ubuntu 7.4.0-1ubuntu1~18.04aka10.0.0) 7.4.0
> uname -r: 4.4.0-154-generic

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: next take at setting up a dma mask by default for platform devices
From: Alan Stern @ 2019-08-15 14:39 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Gavin Li, Shawn Guo, Fabio Estevam, linux-arch, Michal Simek,
	Maxime Chevallier, NXP Linux Team, Mathias Nyman, Sascha Hauer,
	Minas Harutyunyan, Olav Kongas, Bin Liu, linux-arm-kernel,
	Laurentiu Tudor, Geoff Levand, Greg Kroah-Hartman, linux-usb,
	linux-kernel, Tony Prisk, iommu, Pengutronix Kernel Team,
	linuxppc-dev
In-Reply-To: <20190815132531.GA12036@lst.de>

On Thu, 15 Aug 2019, Christoph Hellwig wrote:

> On Thu, Aug 15, 2019 at 03:23:18PM +0200, Greg Kroah-Hartman wrote:
> > I've taken the first 2 patches for 5.3-final.  Given that patch 3 needs
> > to be fixed, I'll wait for a respin of these before considering them.
> 
> I have a respun version ready, but I'd really like to hear some
> comments from usb developers about the approach before spamming
> everyone again..

I didn't see any problems with your approach at first glance; it looked 
like a good idea.

Alan Stern


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: [PATCH 1/6] arm64: dts: imx8mn-ddr4-evk: Add i2c1 support
From: Leonard Crestez @ 2019-08-15 14:12 UTC (permalink / raw)
  To: Anson Huang, shawnguo@kernel.org, sboyd@kernel.org,
	viresh.kumar@linaro.org
  Cc: mark.rutland@arm.com, devicetree@vger.kernel.org, Abel Vesa,
	linux-pm@vger.kernel.org, s.hauer@pengutronix.de,
	rjw@rjwysocki.net, linux-kernel@vger.kernel.org,
	linux-clk@vger.kernel.org, robh+dt@kernel.org, dl-linux-imx,
	kernel@pengutronix.de, festevam@gmail.com,
	mturquette@baylibre.com, linux-arm-kernel@lists.infradead.org
In-Reply-To: <1565866783-19672-1-git-send-email-Anson.Huang@nxp.com>

On 15.08.2019 14:18, Anson.Huang@nxp.com wrote:
> From: Anson Huang <Anson.Huang@nxp.com>
> 
> Enable i2c1 on i.MX8MN DDR4 EVK board.
> 
> Signed-off-by: Anson Huang <Anson.Huang@nxp.com>

Didn't see a cover letter but all 6 patches look good:

Reviewed-by: Leonard Crestez <leonard.crestez@nxp.com>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: next take at setting up a dma mask by default for platform devices
From: Greg Kroah-Hartman @ 2019-08-15 14:05 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Gavin Li, Fabio Estevam, linux-arch, Michal Simek,
	Maxime Chevallier, Alan Stern, NXP Linux Team, Mathias Nyman,
	Sascha Hauer, Minas Harutyunyan, Olav Kongas, Bin Liu,
	linux-arm-kernel, Laurentiu Tudor, Geoff Levand, Shawn Guo,
	linux-usb, linux-kernel, Tony Prisk, iommu,
	Pengutronix Kernel Team, linuxppc-dev
In-Reply-To: <20190815132531.GA12036@lst.de>

On Thu, Aug 15, 2019 at 03:25:31PM +0200, Christoph Hellwig wrote:
> On Thu, Aug 15, 2019 at 03:23:18PM +0200, Greg Kroah-Hartman wrote:
> > I've taken the first 2 patches for 5.3-final.  Given that patch 3 needs
> > to be fixed, I'll wait for a respin of these before considering them.
> 
> I have a respun version ready, but I'd really like to hear some
> comments from usb developers about the approach before spamming
> everyone again..

Spam away, we can take it :)

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: [PATCH 6/6] driver core: initialize a default DMA mask for platform device
From: Greg Kroah-Hartman @ 2019-08-15 14:05 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Gavin Li, Fabio Estevam, linux-arch, Michal Simek,
	Maxime Chevallier, Alan Stern, NXP Linux Team, Mathias Nyman,
	Sascha Hauer, Minas Harutyunyan, Olav Kongas, Bin Liu,
	linux-arm-kernel, Laurentiu Tudor, Geoff Levand, Shawn Guo,
	linux-usb, linux-kernel, Tony Prisk, iommu,
	Pengutronix Kernel Team, linuxppc-dev
In-Reply-To: <20190815133812.GF12036@lst.de>

On Thu, Aug 15, 2019 at 03:38:12PM +0200, Christoph Hellwig wrote:
> On Thu, Aug 15, 2019 at 03:03:25PM +0200, Greg Kroah-Hartman wrote:
> > > --- a/include/linux/platform_device.h
> > > +++ b/include/linux/platform_device.h
> > > @@ -24,6 +24,7 @@ struct platform_device {
> > >  	int		id;
> > >  	bool		id_auto;
> > >  	struct device	dev;
> > > +	u64		dma_mask;
> > 
> > Why is the dma_mask in 'struct device' which is part of this structure,
> > not sufficient here?  Shouldn't the "platform" be setting that up
> > correctly already in the "archdata" type callback?
> 
> Becaus the dma_mask in struct device is a pointer that needs to point
> to something, and this is the best space we can allocate for 'something'.
> m68k and powerpc currently do something roughly equivalent at the moment,
> while everyone else just has horrible, horrible hacks.  As mentioned in
> the changelog the intent of this patch is that we treat platform devices
> like any other bus, where the bus allocates the space for the dma_mask.
> The long term plan is to eventually kill that weird pointer indirection
> that doesn't help anyone, but for that we need to sort out the basics
> first.

Ah, missed that, sorry.  Ok, no objection from me.  Might as well respin
this series and I can queue it up after 5.3-rc5 is out (which will have
your first 2 patches in it.)

thanks,

greg k-h

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: aarch64 Kernel Panic Asynchronous SError Interrupt on large file IO
From: Robin Murphy @ 2019-08-15 13:59 UTC (permalink / raw)
  To: Will Deacon, Philipp Richter
  Cc: heiko, catalin.marinas, vicencb, linux-rockchip, andre.przywara,
	linux-arm-kernel
In-Reply-To: <20190815122151.bg7it6ptxwcn2vif@willie-the-truck>

On 15/08/2019 13:21, Will Deacon wrote:
> On Tue, Aug 13, 2019 at 03:36:00PM +0200, Philipp Richter wrote:
>> this my first bug kernel bug report I think, so I hope I got the right
>> contacts.
> 
> Almost: I'm adding Heiko, Vicente and linux-rockchip to see if they have
> a better idea since this sounds SoC-specific to me and eerily similar to
> some kexec issues Vicente has been seeing recently.

Hmm, I'm not so sure - we're talking different SoCs here, and the kexec 
problem does look to be specific to kexec (DMA left running after the 
first kernel shuts down). According to the SError dump, that's an AXI 
slave error on an external access, which is definitely not something I'd 
expect to see part-way through a copy_from_user() operation.

 From the boot log, it looks like the disks might be connected to the 
USB 3.0 port - it's worth noting that USB 3.0 on RK3328 isn't strictly 
supported by mainline yet, and Arch are carrying their own patch to 
enable it on Rock64. Is this still reproducible using USB 2.0 (or even 
SD/eMMC)?

Robin.

> 
> Will
> 
> --->8
> 
>> I've been getting "Kernel panic - not syncing: Asynchronous SError
>> Interrupt" while transferring large files from and to my rock64 arm
>> board.
>> I am using btrfs as filesystem but an error seems to be triggered from
>> "__arch_copy_from_user". It's a bit difficult for me right now to test
>> with another filesystem but seems to be a troubleshooting option to
>> keep in mind.
>>
>> A reproducible test is to write a big file with dd to disk using
>> /dev/urandom for instance :
>>
>> sudo dd if=/dev/urandom of=/mnt/glassvault/out bs=1M count=8192 status=progress
>> 2789212160 bytes (2.8 GB, 2.6 GiB) copied, 70 s, 39.8 MB/s
>>
>> So here the system panicked at around 2.8GB written of a 8GB file.
>>
>> Backing up the root filesystem or using the external storage panics
>> the system after a while. Smaller file copies at around 1GB do not
>> trigger it.
>>
>> The error output caught via serial console :
>>
>> [  334.414128] SError Interrupt on CPU0, code 0xbf000002 -- SError
>> [  334.414136] CPU: 0 PID: 1774 Comm: dd Tainted: G           O
>> 5.2.8-1-ARCH #1
>> [  334.414137] Hardware name: Pine64 Rock64 (DT)
>> [  334.414139] pstate: 20000005 (nzCv daif -PAN -UAO)
>> [  334.414141] pc : __arch_copy_from_user+0x1bc/0x240
>> [  334.414142] lr : copyin+0x54/0x68
>> [  334.414144] sp : ffff000013523aa0
>> [  334.414145] x29: ffff000013523aa0 x28: 0000000000001000
>> [  334.414149] x27: ffff8000e112ec00 x26: 0000000000000005
>> [  334.414152] x25: ffff000013523d50 x24: 0000000000005000
>> [  334.414155] x23: 0000000000001000 x22: ffff800009c02000
>> [  334.414158] x21: ffff000013523d40 x20: 00000000000d5000
>> [  334.414161] x19: 0000000000000000 x18: 0000000000000000
>> [  334.414164] x17: 0000000000000000 x16: 0000000000000000
>> [  334.414167] x15: 0000000000000000 x14: 268451e20def8ac3
>> [  334.414170] x13: e9bb458ce1212efb x12: 9f52f204714b75c4
>> [  334.414173] x11: 0e6bc7b591c2d6e4 x10: 40d3c7db468453cb
>> [  334.414176] x9 : 0d91295116253226 x8 : d0355f82a419091a
>> [  334.414179] x7 : 911b47420a1c00a2 x6 : ffff800009c01150
>> [  334.414182] x5 : ffff800009c02000 x4 : 0000000000000000
>> [  334.414185] x3 : 0000ffffbdbc4000 x2 : 0000000000000e40
>> [  334.414188] x1 : 0000ffffbdbc4190 x0 : ffff800009c01000
>> [  334.414191] Kernel panic - not syncing: Asynchronous SError Interrupt
>> [  334.414194] CPU: 0 PID: 1774 Comm: dd Tainted: G           O
>> 5.2.8-1-ARCH #1
>> [  334.414195] Hardware name: Pine64 Rock64 (DT)
>> [  334.414197] Call trace:
>> [  334.414198]  dump_backtrace+0x0/0x168
>> [  334.414199]  show_stack+0x24/0x30
>> [  334.414200]  dump_stack+0xa8/0xcc
>> [  334.414201]  panic+0x150/0x320
>> [  334.414203]  __stack_chk_fail+0x0/0x28
>> [  334.414204]  arm64_serror_panic+0x80/0x8c
>> [  334.414206]  do_serror+0x11c/0x120
>> [  334.414207]  el1_error+0x84/0xf8
>> [  334.414208]  __arch_copy_from_user+0x1bc/0x240
>> [  334.414210]  iov_iter_copy_from_user_atomic+0xe4/0x390
>> [  334.414212]  btrfs_copy_from_user+0x68/0x120 [btrfs]
>> [  334.414213]  btrfs_buffered_write.isra.5+0x354/0x638 [btrfs]
>> [  334.414214]  btrfs_file_write_iter+0x3b0/0x4e0 [btrfs]
>> [  334.414216]  new_sync_write+0x110/0x198
>> [  334.414217]  __vfs_write+0x74/0x90
>> [  334.414218]  vfs_write+0xac/0x1b8
>> [  334.414219]  ksys_write+0x74/0xf8
>> [  334.414221]  __arm64_sys_write+0x24/0x30
>> [  334.414222]  el0_svc_handler+0xa4/0x180
>> [  334.414223]  el0_svc+0x8/0xc
>> [  334.414252] SMP: stopping secondary CPUs
>> [  334.414253] Kernel Offset: disabled
>> [  334.414254] CPU features: 0x0002,20002000
>> [  334.414256] Memory Limit: none
>>
>> My system specifications :
>> This is happening on my rock64 board :
>> - https://www.pine64.org/devices/single-board-computers/rock64/
>> - https://wiki.pine64.org/index.php/ROCK64_Main_Page
>>
>> lscpu output :
>> Architecture:                    aarch64
>> CPU op-mode(s):                  32-bit, 64-bit
>> Byte Order:                      Little Endian
>> CPU(s):                          4
>> On-line CPU(s) list:             0-3
>> Thread(s) per core:              1
>> Core(s) per socket:              4
>> Socket(s):                       1
>> Vendor ID:                       ARM
>> Model:                           4
>> Model name:                      Cortex-A53
>> Stepping:                        r0p4
>> CPU max MHz:                     1296.0000
>> CPU min MHz:                     408.0000
>> BogoMIPS:                        48.00
>> Vulnerability L1tf:              Not affected
>> Vulnerability Mds:               Not affected
>> Vulnerability Meltdown:          Not affected
>> Vulnerability Spec store bypass: Not affected
>> Vulnerability Spectre v1:        Mitigation; __user pointer sanitization
>> Vulnerability Spectre v2:        Not affected
>> Flags:                           fp asimd evtstrm aes pmull sha1 sha2
>> crc32 cpuid
>>
>> uname -a :
>> Linux rock64 5.2.8-1-ARCH #1 SMP Fri Aug 9 23:49:35 UTC 2019 aarch64 GNU/Linux
>>
>> Using the archlinux arm image :
>> https://archlinuxarm.org/platforms/armv8/rockchip/rock64
>>
>> Attached is the complete system log captured with the serial console.
>>
>> I wonder if this could be a hardware issue ?
>>
>> Thank you for your consideration.
>>
>> Best Regards,
>> Philipp Richter
> 
>> INFO:    PSCI Power Domain Map:
>> INFO:      Domain Node : Level 2, parent_node -1, State ON (0x0)
>> INFO:      Domain Node : Level 1, parent_node 0, State ON (0x0)
>> INFO:      Domain Node : Level 0, parent_node 0, State ON (0x0)
>> INFO:      Domain Node : Level 0, parent_node 0, State ON (0x0)
>> INFO:      CPU Node : MPID 0x0, parent_node 1, State ON (0x0)
>> INFO:      CPU Node : MPID 0x1, parent_node 1, State ON (0x0)
>> INFO:      CPU Node : MPID 0x2, parent_node 1, State ON (0x0)
>> INFO:      CPU Node : MPID 0x3, parent_node 1, State ON (0x0)
>> DDR version 1.16 20190528
>> ID:0x805 N
>> In
>> SRX
>> LPDDR3
>> 333MHz
>> Bus Width=32 Col=11 Bank=8 Row=15/15 CS=2 Die Bus-Width=32 Size=4096MB
>> ddrconfig:7
>> OUT
>> Boot1 Release Time: May 13 2019 17:34:36, version: 2.50
>> ChipType = 0x11, 316
>> mmc2:cmd19,100
>> SdmmcInit=2 0
>> BootCapSize=2000
>> UserCapSize=29820MB
>> FwPartOffset=2000 , 2000
>> SdmmcInit=0 NOT PRESENT
>> StorageInit ok = 210392
>> Raw SecureMode = 0
>> SecureInit read PBA: 0x4
>> SecureInit read PBA: 0x404
>> SecureInit read PBA: 0x804
>> SecureInit read PBA: 0xc04
>> SecureInit read PBA: 0x1004
>> SecureInit ret = 0, SecureMode = 0
>> atags_set_bootdev: ret:(0)
>> GPT 0x337a9f0 signature is wrong
>> recovery gpt...
>> GPT 0x337a9f0 signature is wrong
>> recovery gpt fail!
>> LoadTrust Addr:0x4000
>> No find bl30.bin
>> Load uboot, ReadLba = 2000
>> Load OK, addr=0x200000, size=0x9a864
>> RunBL31 0x10000
>> NOTICE:  BL31: v1.3(debug):0eba775
>> NOTICE:  BL31: Built : 12:11:32, Nov 23 2018
>> NOTICE:  BL31:Rockchip release version: v1.3
>> INFO:    ARM GICv2 driver initialized
>> INFO:    Using opteed sec cpu_context!
>> INFO:    boot cpu mask: 1
>> INFO:    plat_rockchip_pmu_init: pd status 0xe
>> INFO:    BL31: Initializing runtime services
>> INFO:    BL31: Initializing BL32
>> INF [0x0] TEE-CORE:init_primary_helper:337: Initializing (1.1.0-221-gda2bcfdc #137 Mon Jun 17 03:00:04 UTC 2019 aarch64)
>>
>> INF [0x0] TEE-CORE:init_primary_helper:338: Release version: 1.4
>>
>> INF [0x0] TEE-CORE:init_teecore:83: teecore inits done
>> INFO:    BL31: Preparing for EL3 exit to normal world
>> INFO:    Entry point address = 0x200000
>> INFO:    SPSR = 0x3c9
>>
>>
>> U-Boot 2019.07-1 (Aug 10 2019 - 10:47:59 +0000) Arch Linux ARM
>>
>> Model: Rockchip RK3328 EVB
>> DRAM:  4 GiB
>> MMC:   rksdmmc@ff500000: 1, rksdmmc@ff520000: 0
>> Loading Environment from MMC... Card did not respond to voltage select!
>> *** Warning - No block device, using default environment
>>
>> In:    serial@ff130000
>> Out:   serial@ff130000
>> Err:   serial@ff130000
>> Model: Rockchip RK3328 EVB
>> Net:
>> Warning: ethernet@ff540000 (eth0) using random MAC address - be:c7:d6:3e:93:7b
>> eth0: ethernet@ff540000
>> Hit any key to stop autoboot:  2 \b\b\b 1 \b\b\b 0
>> switch to partitions #0, OK
>> mmc0(part 0) is current device
>> Scanning mmc 0:1...
>> Found U-Boot script /boot.scr
>> 1133 bytes read in 5 ms (220.7 KiB/s)
>> ## Executing script at 00500000
>> 26501632 bytes read in 628 ms (40.2 MiB/s)
>> 49338 bytes read in 10 ms (4.7 MiB/s)
>> 10033777 bytes read in 241 ms (39.7 MiB/s)
>> ## Flattened Device Tree blob at 01f00000
>>     Booting using the fdt blob at 0x1f00000
>>     Loading Ramdisk to fc59b000, end fcf2ca71 ... OK
>>     Loading Device Tree to 00000000fc58b000, end 00000000fc59afff ... OK
>>
>> Starting kernel ...
>>
>> [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
>> [    0.000000] Linux version 5.2.8-1-ARCH (builduser@leming) (gcc version 8.3.0 (GCC)) #1 SMP Fri Aug 9 23:49:35 UTC 2019
>> [    0.000000] Machine model: Pine64 Rock64
>> [    0.000000] earlycon: uart8250 at MMIO32 0x00000000ff130000 (options '')
>> [    0.000000] printk: bootconsole [uart8250] enabled
>> [    0.000000] printk: debug: ignoring loglevel setting.
>> [    0.000000] efi: Getting EFI parameters from FDT:
>> [    0.000000] efi: UEFI not found.
>> [    0.000000] cma: Reserved 64 MiB at 0x00000000f8400000
>> [    0.000000] On node 0 totalpages: 1043968
>> [    0.000000]   DMA32 zone: 16312 pages used for memmap
>> [    0.000000]   DMA32 zone: 0 pages reserved
>> [    0.000000]   DMA32 zone: 1043968 pages, LIFO batch:63
>> [    0.000000] psci: probing for conduit method from DT.
>> [    0.000000] psci: PSCIv1.0 detected in firmware.
>> [    0.000000] psci: Using standard PSCI v0.2 function IDs
>> [    0.000000] psci: Trusted OS migration not required
>> [    0.000000] psci: SMC Calling Convention v1.0
>> [    0.000000] percpu: Embedded 31 pages/cpu s89496 r8192 d29288 u126976
>> [    0.000000] pcpu-alloc: s89496 r8192 d29288 u126976 alloc=31*4096
>> [    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
>> [    0.000000] Detected VIPT I-cache on CPU0
>> [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1027656
>> [    0.000000] Kernel command line: console=ttyS2,1500000 ip=192.168.0.20::192.168.0.1:255.255.255.0::eth0:none cryptdevice=UUID=70b4d35b-a2e5-446d-b317-8ef53698beb6:cryptroot root=UUID=0250489f-2c3d-499e-9ff1-8f85451622e7 rootfstype=btrfs rootflags=subvol=@rootvol rw rootwait earlycon=uart8250,mmio32,0xff130000 fsck.mode=force md_mod.start_ro=1 debug ignore_loglevel log_buf_len=16M
>> [    0.000000] printk: log_buf_len: 16777216 bytes
>> [    0.000000] printk: early log buf free: 260348(99%)
>> [    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
>> [    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
>> [    0.000000] Memory: 3976792K/4175872K available (14588K kernel code, 2648K rwdata, 6688K rodata, 1920K init, 825K bss, 133544K reserved, 65536K cma-reserved)
>> [    0.000000] random: get_random_u64 called from cache_random_seq_create+0x88/0x158 with crng_init=0
>> [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
>> [    0.000000] ftrace: allocating 50612 entries in 198 pages
>> [    0.000000] rcu: Hierarchical RCU implementation.
>> [    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
>> [    0.000000] 	Tasks RCU enabled.
>> [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
>> [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
>> [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
>> [    0.000000] GIC: Using split EOI/Deactivate mode
>> [    0.000000] rockchip_mmc_get_phase: invalid clk rate
>> [    0.000000] rockchip_mmc_get_phase: invalid clk rate
>> [    0.000000] rockchip_mmc_get_phase: invalid clk rate
>> [    0.000000] rockchip_mmc_get_phase: invalid clk rate
>> [    0.000000] rockchip_mmc_get_phase: invalid clk rate
>> [    0.000000] rockchip_mmc_get_phase: invalid clk rate
>> [    0.000000] rockchip_mmc_get_phase: invalid clk rate
>> [    0.000000] rockchip_mmc_get_phase: invalid clk rate
>> [    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
>> [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
>> [    0.000007] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
>> [    0.002544] Console: colour dummy device 80x25
>> [    0.003022] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
>> [    0.004007] pid_max: default: 32768 minimum: 301
>> [    0.004710] LSM: Security Framework initializing
>> [    0.005168] Yama: becoming mindful.
>> [    0.005630] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes)
>> [    0.006300] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes)
>> [    0.007747] *** VALIDATE proc ***
>> [    0.008498] *** VALIDATE cgroup1 ***
>> [    0.008846] *** VALIDATE cgroup2 ***
>> [    0.010336] ASID allocator initialised with 32768 entries
>> [    0.010979] rcu: Hierarchical SRCU implementation.
>> [    0.016902] EFI services will not be available.
>> [    0.018071] smp: Bringing up secondary CPUs ...
>> [    0.019320] Detected VIPT I-cache on CPU1
>> [    0.019410] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
>> [    0.020336] Detected VIPT I-cache on CPU2
>> [    0.020412] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
>> [    0.021274] Detected VIPT I-cache on CPU3
>> [    0.021345] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
>> [    0.021488] smp: Brought up 1 node, 4 CPUs
>> [    0.024854] SMP: Total of 4 processors activated.
>> [    0.025305] CPU features: detected: 32-bit EL0 Support
>> [    0.025795] CPU features: detected: CRC32 instructions
>> [    0.026879] CPU: All CPU(s) started at EL2
>> [    0.027293] alternatives: patching kernel code
>> [    0.031870] devtmpfs: initialized
>> [    0.047224] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
>> [    0.048180] futex hash table entries: 1024 (order: 4, 65536 bytes)
>> [    0.052616] pinctrl core: initialized pinctrl subsystem
>> [    0.054646] DMI not present or invalid.
>> [    0.055662] NET: Registered protocol family 16
>> [    0.057142] audit: initializing netlink subsys (disabled)
>> [    0.057904] audit: type=2000 audit(0.050:1): state=initialized audit_enabled=0 res=1
>> [    0.059460] cpuidle: using governor ladder
>> [    0.059878] cpuidle: using governor menu
>> [    0.061077] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
>> [    0.064111] DMA: preallocated 256 KiB pool for atomic allocations
>> [    0.065680] Serial: AMBA PL011 UART driver
>> [    0.106380] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
>> [    0.107028] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
>> [    0.107664] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
>> [    0.108300] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
>> [    2.273837] cryptd: max_cpu_qlen set to 1000
>> [    2.291370] alg: No test for lzo-rle (lzo-rle-generic)
>> [    2.292198] alg: No test for lzo-rle (lzo-rle-scomp)
>> [    2.313901] ACPI: Interpreter disabled.
>> [    2.314870] sdmmc-regulator GPIO handle specifies active low - ignored
>> [    2.316511] vcc-host1-5v-regulator GPIO handle specifies active low - ignored
>> [    2.319734] vgaarb: loaded
>> [    2.321353] SCSI subsystem initialized
>> [    2.322016] libata version 3.00 loaded.
>> [    2.322896] usbcore: registered new interface driver usbfs
>> [    2.323483] usbcore: registered new interface driver hub
>> [    2.324116] usbcore: registered new device driver usb
>> [    2.325345] pps_core: LinuxPPS API ver. 1 registered
>> [    2.325818] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
>> [    2.326699] PTP clock support registered
>> [    2.327442] EDAC MC: Ver: 3.0.0
>> [    2.329247] Advanced Linux Sound Architecture Driver Initialized.
>> [    2.330598] NetLabel: Initializing
>> [    2.330926] NetLabel:  domain hash size = 128
>> [    2.331372] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
>> [    2.332002] NetLabel:  unlabeled traffic allowed by default
>> [    2.333538] clocksource: Switched to clocksource arch_sys_counter
>> [    3.536137] VFS: Disk quotas dquot_6.6.0
>> [    3.536616] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
>> [    3.537405] *** VALIDATE hugetlbfs ***
>> [    3.538306] pnp: PnP ACPI: disabled
>> [    3.548776] NET: Registered protocol family 2
>> [    3.550155] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes)
>> [    3.550985] TCP established hash table entries: 32768 (order: 6, 262144 bytes)
>> [    3.552071] TCP bind hash table entries: 32768 (order: 7, 524288 bytes)
>> [    3.553440] TCP: Hash tables configured (established 32768 bind 32768)
>> [    3.554654] UDP hash table entries: 2048 (order: 4, 65536 bytes)
>> [    3.555373] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes)
>> [    3.556426] NET: Registered protocol family 1
>> [    3.557771] RPC: Registered named UNIX socket transport module.
>> [    3.558342] RPC: Registered udp transport module.
>> [    3.558789] RPC: Registered tcp transport module.
>> [    3.559236] RPC: Registered tcp NFSv4.1 backchannel transport module.
>> [    3.559856] PCI: CLS 0 bytes, default 64
>> [    3.560479] Trying to unpack rootfs image as initramfs...
>> [    4.390556] Freeing initrd memory: 9796K
>> [    4.392765] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
>> [    4.394010] kvm [1]: IPA Size Limit: 40bits
>> [    4.396049] kvm [1]: vgic interrupt IRQ1
>> [    4.396592] kvm [1]: Hyp mode initialized successfully
>> [    5.273872] Initialise system trusted keyrings
>> [    5.274576] workingset: timestamp_bits=46 max_order=20 bucket_order=0
>> [    5.284456] zbud: loaded
>> [    5.288244] NFS: Registering the id_resolver key type
>> [    5.288758] Key type id_resolver registered
>> [    5.289160] Key type id_legacy registered
>> [    5.289554] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
>> [    5.290478] SGI XFS with ACLs, security attributes, no debug enabled
>> [    5.304919] NET: Registered protocol family 38
>> [    5.305369] Key type asymmetric registered
>> [    5.305760] Asymmetric key parser 'x509' registered
>> [    5.306314] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 242)
>> [    5.307274] io scheduler mq-deadline registered
>> [    5.307709] io scheduler kyber registered
>> [    5.308386] io scheduler bfq registered
>> [    5.319920] gpio-syscon ff100000.syscon:grf-gpio: can't read the data register offset!
>> [    5.323397] IPMI message handler: version 39.2
>> [    5.333151] dma-pl330 ff1f0000.dmac: Loaded driver for PL330 DMAC-241330
>> [    5.333850] dma-pl330 ff1f0000.dmac: 	DBUFF-128x8bytes Num_Chans-8 Num_Peri-20 Num_Events-16
>> [    5.341290] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
>> [    5.345288] printk: console [ttyS2] disabled
>> [    5.345780] ff130000.serial: ttyS2 at MMIO 0xff130000 (irq = 14, base_baud = 1500000) is a 16550A
>> [    5.346693] printk: console [ttyS2] enabled
>> [    5.346693] printk: console [ttyS2] enabled
>> [    5.347462] printk: bootconsole [uart8250] disabled
>> [    5.347462] printk: bootconsole [uart8250] disabled
>> [    5.350235] msm_serial: driver initialized
>> [    5.362453] m25p80 spi0.0: gd25q128 (16384 Kbytes)
>> [    5.381313] libphy: Fixed MDIO Bus: probed
>> [    5.385044] dwc3 ff600000.dwc3: Failed to get clk 'ref': -2
>> [    5.388071] dwc2 ff580000.usb: ff580000.usb supply vusb_d not found, using dummy regulator
>> [    5.388903] dwc2 ff580000.usb: ff580000.usb supply vusb_a not found, using dummy regulator
>> [    5.404393] dwc2 ff580000.usb: DWC OTG Controller
>> [    5.404854] dwc2 ff580000.usb: new USB bus registered, assigned bus number 1
>> [    5.405525] dwc2 ff580000.usb: irq 33, io mem 0xff580000
>> [    5.406281] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.02
>> [    5.407012] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
>> [    5.407651] usb usb1: Product: DWC OTG Controller
>> [    5.408070] usb usb1: Manufacturer: Linux 5.2.8-1-ARCH dwc2_hsotg
>> [    5.408608] usb usb1: SerialNumber: ff580000.usb
>> [    5.409766] hub 1-0:1.0: USB hub found
>> [    5.410144] hub 1-0:1.0: 1 port detected
>> [    5.412668] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
>> [    5.413270] ehci-pci: EHCI PCI platform driver
>> [    5.413787] ehci-platform: EHCI generic platform driver
>> [    5.416868] ehci-platform ff5c0000.usb: EHCI Host Controller
>> [    5.417712] ehci-platform ff5c0000.usb: new USB bus registered, assigned bus number 2
>> [    5.419084] ehci-platform ff5c0000.usb: irq 34, io mem 0xff5c0000
>> [    5.443576] ehci-platform ff5c0000.usb: USB 2.0 started, EHCI 1.00
>> [    5.444442] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.02
>> [    5.445173] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
>> [    5.445811] usb usb2: Product: EHCI Host Controller
>> [    5.446245] usb usb2: Manufacturer: Linux 5.2.8-1-ARCH ehci_hcd
>> [    5.446768] usb usb2: SerialNumber: ff5c0000.usb
>> [    5.447967] hub 2-0:1.0: USB hub found
>> [    5.448346] hub 2-0:1.0: 1 port detected
>> [    5.449303] ehci-orion: EHCI orion driver
>> [    5.449985] tegra-ehci: Tegra EHCI driver
>> [    5.450528] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
>> [    5.451156] ohci-pci: OHCI PCI platform driver
>> [    5.451648] ohci-platform: OHCI generic platform driver
>> [    5.452515] ohci-platform ff5d0000.usb: Generic Platform OHCI controller
>> [    5.453442] ohci-platform ff5d0000.usb: new USB bus registered, assigned bus number 3
>> [    5.454760] ohci-platform ff5d0000.usb: irq 35, io mem 0xff5d0000
>> [    5.527889] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.02
>> [    5.528622] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
>> [    5.529261] usb usb3: Product: Generic Platform OHCI controller
>> [    5.529785] usb usb3: Manufacturer: Linux 5.2.8-1-ARCH ohci_hcd
>> [    5.530307] usb usb3: SerialNumber: ff5d0000.usb
>> [    5.531477] hub 3-0:1.0: USB hub found
>> [    5.531857] hub 3-0:1.0: 1 port detected
>> [    5.532794] uhci_hcd: USB Universal Host Controller Interface driver
>> [    5.534443] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
>> [    5.535234] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 4
>> [    5.536870] xhci-hcd xhci-hcd.0.auto: hcc params 0x0220fe64 hci version 0x110 quirks 0x0000000002010010
>> [    5.537764] xhci-hcd xhci-hcd.0.auto: irq 169, io mem 0xff600000
>> [    5.538874] usb usb4: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.02
>> [    5.539606] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
>> [    5.540244] usb usb4: Product: xHCI Host Controller
>> [    5.540679] usb usb4: Manufacturer: Linux 5.2.8-1-ARCH xhci-hcd
>> [    5.541202] usb usb4: SerialNumber: xhci-hcd.0.auto
>> [    5.542407] hub 4-0:1.0: USB hub found
>> [    5.542788] hub 4-0:1.0: 1 port detected
>> [    5.543652] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
>> [    5.544430] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 5
>> [    5.545124] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed
>> [    5.545803] usb usb5: We don't know the algorithms for LPM for this host, disabling LPM.
>> [    5.546676] usb usb5: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.02
>> [    5.547406] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
>> [    5.548045] usb usb5: Product: xHCI Host Controller
>> [    5.548479] usb usb5: Manufacturer: Linux 5.2.8-1-ARCH xhci-hcd
>> [    5.549002] usb usb5: SerialNumber: xhci-hcd.0.auto
>> [    5.550079] hub 5-0:1.0: USB hub found
>> [    5.550457] hub 5-0:1.0: 1 port detected
>> [    5.552054] usbcore: registered new interface driver uas
>> [    5.552740] usbcore: registered new interface driver usb-storage
>> [    5.553315] usbcore: registered new interface driver ums-alauda
>> [    5.554711] usbcore: registered new interface driver ums-cypress
>> [    5.555303] usbcore: registered new interface driver ums-datafab
>> [    5.555873] usbcore: registered new interface driver ums_eneub6250
>> [    5.556458] usbcore: registered new interface driver ums-freecom
>> [    5.557031] usbcore: registered new interface driver ums-isd200
>> [    5.557590] usbcore: registered new interface driver ums-jumpshot
>> [    5.558168] usbcore: registered new interface driver ums-karma
>> [    5.558723] usbcore: registered new interface driver ums-onetouch
>> [    5.559329] usbcore: registered new interface driver ums-realtek
>> [    5.559901] usbcore: registered new interface driver ums-sddr09
>> [    5.560465] usbcore: registered new interface driver ums-sddr55
>> [    5.561034] usbcore: registered new interface driver ums-usbat
>> [    5.561679] usbcore: registered new interface driver usbserial_generic
>> [    5.562286] usbserial: USB Serial support registered for generic
>> [    5.565340] mousedev: PS/2 mouse device common for all mice
>> [    5.570721] rk808 1-0018: chip id: 0x8050
>> [    5.578919] rk808-regulator rk808-regulator: there is no dvs0 gpio
>> [    5.579506] rk808-regulator rk808-regulator: there is no dvs1 gpio
>> [    5.580138] DCDC_REG1: supplied by vcc_sys
>> [    5.582764] vcc_host_5v: supplied by vcc_sys
>> [    5.583213] vcc_host1_5v: supplied by vcc_sys
>> [    5.583790] DCDC_REG2: supplied by vcc_sys
>> [    5.585461] DCDC_REG3: supplied by vcc_sys
>> [    5.586122] DCDC_REG4: supplied by vcc_sys
>> [    5.587749] LDO_REG1: supplied by vcc_io
>> [    5.591165] LDO_REG2: supplied by vcc_io
>> [    5.594577] LDO_REG3: supplied by vcc_sys
>> [    5.605089] device-mapper: uevent: version 1.0.3
>> [    5.606034] device-mapper: ioctl: 4.40.0-ioctl (2019-01-18) initialised: dm-devel@redhat.com
>> [    5.611360] sdhci: Secure Digital Host Controller Interface driver
>> [    5.611911] sdhci: Copyright(c) Pierre Ossman
>> [    5.612853] Synopsys Designware Multimedia Card Interface Driver
>> [    5.614406] dwmmc_rockchip ff500000.dwmmc: IDMAC supports 32-bit address mode.
>> [    5.615304] dwmmc_rockchip ff500000.dwmmc: Using internal DMA controller.
>> [    5.615904] dwmmc_rockchip ff500000.dwmmc: Version ID is 270a
>> [    5.616484] dwmmc_rockchip ff500000.dwmmc: DW MMC controller at irq 30,32 bit host data width,256 deep fifo
>> [    5.617390] vcc_sd: supplied by vcc_io
>> [    5.630692] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
>> [    5.644352] dwmmc_rockchip ff520000.dwmmc: IDMAC supports 32-bit address mode.
>> [    5.645240] dwmmc_rockchip ff520000.dwmmc: Using internal DMA controller.
>> [    5.645844] dwmmc_rockchip ff520000.dwmmc: Version ID is 270a
>> [    5.646395] dwmmc_rockchip ff520000.dwmmc: DW MMC controller at irq 31,32 bit host data width,256 deep fifo
>> [    5.647984] mmc_host mmc1: card is non-removable.
>> [    5.661232] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
>> [    5.675543] sdhci-pltfm: SDHCI platform and OF driver helper
>> [    5.678483] ledtrig-cpu: registered to indicate activity on CPUs
>> [    5.679960] hidraw: raw HID events driver (C) Jiri Kosina
>> [    5.680611] usbcore: registered new interface driver usbhid
>> [    5.681121] usbhid: USB HID core driver
>> [    5.686302] drop_monitor: Initializing network drop monitor service
>> [    5.687106] Initializing XFRM netlink socket
>> [    5.688036] NET: Registered protocol family 10
>> [    5.722101] Segment Routing with IPv6
>> [    5.722539] mip6: Mobile IPv6
>> [    5.722809] NET: Registered protocol family 17
>> [    5.723440] Key type dns_resolver registered
>> [    5.724677] registered taskstats version 1
>> [    5.725045] Loading compiled-in X.509 certificates
>> [    5.725592] zswap: loaded using pool lzo/zbud
>> [    5.726195] Key type big_key registered
>> [    5.742637] Key type encrypted registered
>> [    5.756585] hctosys: unable to open rtc device (rtc0)
>> [    5.758243] vcc_sd: disabling
>> [    5.758524] ALSA device list:
>> [    5.758789]   No soundcards found.
>> [    5.763938] random: fast init done
>> [    5.764394] Freeing unused kernel memory: 1920K
>> [    5.823591] Run /init as init process
>> :: running early hook [udev]
>> [    5.859765] mmc_host mmc1: Bus speed (slot 0) = 200000000Hz (slot req 200000000Hz, actual 200000000HZ div = 0)
>> [    5.866872] dwmmc_rockchip ff520000.dwmmc: Successfully tuned phase to 278
>> [    5.867852] mmc1: new HS200 MMC card at address 0001
>> [    5.870126] mmcblk1: mmc1:0001 SDW32G 29.1 GiB
>> [    5.871837] mmcblk1boot0: mmc1:0001 SDW32G partition 1 4.00 MiB
>> [    5.873811] mmcblk1boot1: mmc1:0001 SDW32G partition 2 4.00 MiB
>> [    5.874678] mmcblk1rpmb: mmc1:0001 SDW32G partition 3 4.00 MiB, chardev (235:0)
>> [    5.876990]  mmcblk1: p1 p2
>> Looking for configuration files in (higher priority first):
>> 	/etc/tmpfiles.d
>> 	/run/tmpfiles.d
>> 	/usr/local/lib/tmpfiles.d
>> 	/usr/lib/tmpfiles.d
>> Reading config file "/run/tmpfiles.d/kmod.conf"ÔÇŽ
>> Entry "/dev/btrfs-control" matches include prefix "/dev".
>> Failed to determine whether '/dev/btrfs-control' is below autofs, ignoring: No such file or directory
>> Running create action for entry c /dev/btrfs-control
>> Created char device node "/dev/btrfs-control" 1:128.
>> "/dev/btrfs-control" has correct mode 20600 already.
>> [    5.913716] usb 5-1: new SuperSpeed Gen 1 USB device number 2 using xhci-hcd
>> Starting version 242.84-1-arch
>> :: running hook [udev]
>> :: Triggering uevents...
>> [    5.944464] usb 5-1: New USB device found, idVendor=152d, idProduct=0567, bcdDevice= 2.00
>> [    5.945191] usb 5-1: New USB device strings: Mfr=10, Product=11, SerialNumber=5
>> [    5.945830] usb 5-1: Product: USB to ATA/ATAPI Bridge
>> [    5.946271] usb 5-1: Manufacturer: JMicron
>> [    5.946631] usb 5-1: SerialNumber: 152D00539000
>> [    5.949430] usb-storage 5-1:1.0: USB Mass Storage device detected
>> [    5.952289] usb-storage 5-1:1.0: Quirks match for vid 152d pid 0567: 5000000
>> [    5.953139] scsi host0: usb-storage 5-1:1.0
>> [    6.322668] force_sf_dma_mode is ignored if force_thresh_dma_mode is set.
>> [    6.322721] rk_gmac-dwmac ff540000.ethernet: PTP uses main clock
>> [    6.324301] rk_gmac-dwmac ff540000.ethernet: clock input or output? (input).
>> [    6.324950] rk_gmac-dwmac ff540000.ethernet: TX delay(0x24).
>> [    6.325456] rk_gmac-dwmac ff540000.ethernet: RX delay(0x18).
>> [    6.325965] rk_gmac-dwmac ff540000.ethernet: integrated PHY? (no).
>> [    6.327146] rk_gmac-dwmac ff540000.ethernet: cannot get clock clk_mac_speed
>> [    6.327783] rk_gmac-dwmac ff540000.ethernet: clock input from PHY
>> [    6.333394] rk_gmac-dwmac ff540000.ethernet: init for RGMII
>> [    6.334445] rk_gmac-dwmac ff540000.ethernet: User ID: 0x10, Synopsys ID: 0x35
>> [    6.335103] rk_gmac-dwmac ff540000.ethernet: 	DWMAC1000
>> [    6.335573] rk_gmac-dwmac ff540000.ethernet: DMA HW capability register supported
>> [    6.336231] rk_gmac-dwmac ff540000.ethernet: RX Checksum Offload Engine supported
>> [    6.336887] rk_gmac-dwmac ff540000.ethernet: COE Type 2
>> [    6.337347] rk_gmac-dwmac ff540000.ethernet: Wake-Up On Lan supported
>> [    6.337960] rk_gmac-dwmac ff540000.ethernet: Normal descriptors
>> [    6.338486] rk_gmac-dwmac ff540000.ethernet: Ring mode enabled
>> [    6.339002] rk_gmac-dwmac ff540000.ethernet: Enable RX Mitigation via HW Watchdog Timer
>> [    6.458371] libphy: stmmac: probed
>> [    6.458699] mdio_bus stmmac-0:00: attached PHY driver [unbound] (mii_bus:phy_addr=stmmac-0:00, irq=POLL)
>> [    6.459527] mdio_bus stmmac-0:01: attached PHY driver [unbound] (mii_bus:phy_addr=stmmac-0:01, irq=POLL)
>> :: running hook [netconf]
>> [    6.490371] Generic PHY stmmac-0:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=stmmac-0:00, irq=POLL)
>> [    6.512069] rk_gmac-dwmac ff540000.ethernet eth0: No Safety Features support found
>> [    6.512758] rk_gmac-dwmac ff540000.ethernet eth0: PTP not supported by HW
>> IP-Config: eth0: 192.168.0.20/255.255.255.0
>> IP-Config: eth0: gw: 192.168.0.1    dns0: 0.0.0.0    dns1: 0.0.0.0
>> :: running hook [tinyssh]
>> Starting tinyssh
>> :: running hook [encryptssh]
>> [    6.603123] random: cryptsetup: uninitialized urandom read (4 bytes read)
>>
>> A password is required to access the cryptroot volume:
>> [    6.624945] random: cryptsetup: uninitialized urandom read (4 bytes read)
>> Enter passphrase for /dev/mmcblk1p2: [    6.964242] scsi 0:0:0:0: Direct-Access     SAMSUNG  HD154UI          0520 PQ: 0 ANSI: 6
>> [    6.965390] scsi 0:0:0:1: Direct-Access     Hitachi  HDS721010CLA332  0520 PQ: 0 ANSI: 6
>> [    6.966471] scsi 0:0:0:2: Direct-Access     SAMSUNG  HD321KJ          0520 PQ: 0 ANSI: 6
>> [    6.967557] scsi 0:0:0:3: Direct-Access     HGST HTS 545050A7E680     0520 PQ: 0 ANSI: 6
>> [    6.969619] sd 0:0:0:0: Attached scsi generic sg0 type 0
>> [    6.971662] sd 0:0:0:1: Attached scsi generic sg1 type 0
>> [    6.971955] sd 0:0:0:0: [sda] 2930277168 512-byte logical blocks: (1.50 TB/1.36 TiB)
>> [    6.975507] sd 0:0:0:0: [sda] Write Protect is off
>> [    6.975954] sd 0:0:0:0: [sda] Mode Sense: 67 00 10 08
>> [    6.977060] sd 0:0:0:2: Attached scsi generic sg2 type 0
>> [    6.977164] sd 0:0:0:1: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
>> [    6.978816] sd 0:0:0:0: [sda] Disabling FUA
>> [    6.979219] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
>> [    6.981187] sd 0:0:0:1: [sdb] Write Protect is off
>> [    6.981639] sd 0:0:0:1: [sdb] Mode Sense: 67 00 10 08
>> [    6.982610] sd 0:0:0:2: [sdc] 625142448 512-byte logical blocks: (320 GB/298 GiB)
>> [    6.982836] sd 0:0:0:3: Attached scsi generic sg3 type 0
>> [    6.984522] sd 0:0:0:1: [sdb] Disabling FUA
>> [    6.984923] sd 0:0:0:1: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
>> [    6.986197] sd 0:0:0:2: [sdc] Write Protect is off
>> [    6.986641] sd 0:0:0:2: [sdc] Mode Sense: 67 00 10 08
>> [    6.988359] sd 0:0:0:2: [sdc] Disabling FUA
>> [    6.988750] sd 0:0:0:2: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
>> [    6.989906] sd 0:0:0:3: [sdd] 976773168 512-byte logical blocks: (500 GB/466 GiB)
>> [    6.990982] sd 0:0:0:3: [sdd] Write Protect is off
>> [    6.991423] sd 0:0:0:3: [sdd] Mode Sense: 67 00 10 08
>> [    6.992280] sd 0:0:0:3: [sdd] Disabling FUA
>> [    6.992665] sd 0:0:0:3: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
>> [    8.892160]  sdb: sdb1
>> [    8.893001]  sda: sda1 sda2
>> [    8.900058] sd 0:0:0:1: [sdb] Attached SCSI disk
>> [    8.901265]  sdc: sdc1
>> [    8.904861]  sdd: sdd1 sdd2
>> [    8.909043] sd 0:0:0:0: [sda] Attached SCSI disk
>> [    8.910990] sd 0:0:0:2: [sdc] Attached SCSI disk
>> [    8.912434] sd 0:0:0:3: [sdd] Attached SCSI disk
>> [   11.684439] rk_gmac-dwmac ff540000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
>> [   11.685233] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
>> [   18.069675] random: tinysshd: uninitialized urandom read (32 bytes read)
>> [   18.070281] random: tinysshd: uninitialized urandom read (32 bytes read)
>> [   18.070869] random: tinysshd: uninitialized urandom read (32 bytes read)
>> tinysshd: Sp4K1mMd: info: connection from 192.168.0.101:49174 {main_tinysshd.c:106}
>> tinysshd: Sp4K1mMd: info: auth: root: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHMqaXwhM3qPqU0hiTeYybGyMCocfqCT6GlLzgYSkkNG accepted {packet_auth.c:155}
>> [   38.083543] raid6: neonx8   gen()  1662 MB/s
>> [   38.253541] raid6: neonx8   xor()  1584 MB/s
>> [   38.423553] raid6: neonx4   gen()  1605 MB/s
>> [   38.593539] raid6: neonx4   xor()  1544 MB/s
>> [   38.763531] raid6: neonx2   gen()  1226 MB/s
>> [   38.933530] raid6: neonx2   xor()  1280 MB/s
>> [   39.103541] raid6: neonx1   gen()   819 MB/s
>> [   39.273544] raid6: neonx1   xor()   964 MB/s
>> [   39.443555] raid6: int64x8  gen()  1258 MB/s
>> [   39.613525] raid6: int64x8  xor()   822 MB/s
>> [   39.783558] raid6: int64x4  gen()  1061 MB/s
>> [   39.953523] raid6: int64x4  xor()   800 MB/s
>> [   40.123545] raid6: int64x2  gen()   732 MB/s
>> [   40.293536] raid6: int64x2  xor()   651 MB/s
>> [   40.463529] raid6: int64x1  gen()   476 MB/s
>> [   40.633545] raid6: int64x1  xor()   495 MB/s
>> [   40.633920] raid6: using algorithm neonx8 gen() 1662 MB/s
>> [   40.634390] raid6: .... xor() 1584 MB/s, rmw enabled
>> [   40.634825] raid6: using neon recovery algorithm
>> [   40.640476] xor: measuring software checksum speed
>> [   40.733529]    8regs     :  2551.200 MB/sec
>> [   40.833521]    32regs    :  2921.600 MB/sec
>> [   40.933517]    arm64_neon:  2579.200 MB/sec
>> [   40.933883] xor: using function: 32regs (2921.600 MB/sec)
>> [   41.000114] Btrfs loaded, crc32c=crc32c-generic
>> [   41.004168] BTRFS: device label Root devid 1 transid 7598 /dev/dm-0
>> Error reading passphrase from terminal.
>> tinysshd: Sp4K1mMd: info: finished {main_tinysshd.c:287}
>> :: performing fsck on '/dev/mapper/cryptroot'
>> :: mounting '/dev/mapper/cryptroot' on real root
>> [   41.155941] BTRFS info (device dm-0): disk space caching is enabled
>> [   41.156513] BTRFS info (device dm-0): has skinny extents
>> [   41.168464] BTRFS info (device dm-0): enabling ssd optimizations
>> :: running cleanup hook [tinyssh]
>> :: running cleanup hook [netconf]
>> [   41.203478] rk_gmac-dwmac ff540000.ethernet eth0: Link is Down
>> :: running cleanup hook [udev]
>> [   41.615555] systemd[1]: System time before build time, advancing clock.
>> [   41.624867] systemd[1]: systemd 242.84-1-arch running in system mode. (+PAM +AUDIT -SELINUX -IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid)
>> [   41.626865] systemd[1]: No virtualization found in DMI
>> [   41.627321] systemd[1]: No virtualization found in CPUID
>> [   41.627819] systemd[1]: Virtualization XEN not found, /proc/xen does not exist
>> [   41.628668] systemd[1]: No virtualization found in /proc/device-tree/*
>> [   41.629421] systemd[1]: UML virtualization not found in /proc/cpuinfo.
>> [   41.630004] systemd[1]: This platform does not support /proc/sysinfo
>> [   41.630566] systemd[1]: Found VM virtualization none
>> [   41.631012] systemd[1]: Detected architecture arm64.
>> [   41.633743] systemd[1]: Mounting cgroup to /sys/fs/cgroup/hugetlb of type cgroup with options hugetlb.
>>
>> Welcome to Arch Linux ARM!
>>
>> [   41.872853] systemd-gpt-auto-generator[657]: mmcblk1p2: Root device /dev/mmcblk1.
>> [   41.878670] systemd-bless-boot-generator[652]: Skipping generator, not an EFI boot.
>> [   41.882360] systemd-getty-generator[656]: Automatically adding serial getty for /dev/ttyS2.
>> [   41.889365] systemd-hibernate-resume-generator[658]: Not running in an initrd, quitting.
>> [   41.896703] systemd-fstab-generator[655]: Parsing /etc/fstab...
>> [   41.898123] systemd-fstab-generator[655]: Found entry what=/dev/disk/by-uuid/0250489f-2c3d-499e-9ff1-8f85451622e7 where=/ type=btrfs makefs=no growfs=no noauto=no nofail=no
>> [   41.900379] systemd-fstab-generator[655]: Found entry what=/dev/disk/by-uuid/0250489f-2c3d-499e-9ff1-8f85451622e7 where=/var type=btrfs makefs=no growfs=no noauto=no nofail=no
>> [   41.902542] systemd-fstab-generator[655]: Found entry what=/dev/disk/by-uuid/0250489f-2c3d-499e-9ff1-8f85451622e7 where=/home type=btrfs makefs=no growfs=no noauto=no nofail=no
>> [   41.904857] systemd-fstab-generator[655]: Found entry what=/dev/disk/by-uuid/01b27405-03cc-47e4-9171-aa221f71efaf where=/boot type=ext4 makefs=no growfs=no noauto=no nofail=no
>> [   41.911126] systemd-gpt-auto-generator[657]: No suitable partition table found, ignoring.
>> [   41.912724] systemd-fstab-generator[655]: Found entry what=proc where=/proc type=proc makefs=no growfs=no noauto=no nofail=no
>> [   41.915293] systemd-fstab-generator[655]: Found entry what=/dev/disk/by-uuid/0250489f-2c3d-499e-9ff1-8f85451622e7 where=/mnt/system type=btrfs makefs=no growfs=no noauto=no nofail=no
>> [   41.918223] systemd-fstab-generator[655]: Found entry what=/dev/disk/by-uuid/0250489f-2c3d-499e-9ff1-8f85451622e7 where=/mnt/btrfs type=btrfs makefs=no growfs=no noauto=yes nofail=no
>> [   41.921076] systemd-fstab-generator[655]: Found entry what=/dev/disk/by-uuid/ff2c0deb-7819-4b85-a6d3-5d6c1b1cfb99 where=/mnt/glassvault type=btrfs makefs=no growfs=no noauto=yes nofail=yes
>> [   41.924026] systemd-fstab-generator[655]: Found entry what=/mnt/glassvault where=/srv/nfs/glassvault type=none makefs=no growfs=no noauto=yes nofail=yes
>> [  OK  ] Started Dispatch Password ÔÇŽts to Console Directory Watch.
>> [  OK  ] Created slice system-serial\x2dgetty.slice.
>> [  OK  ] Set up automount ArbitraryÔÇŽs File System Automount Point.
>> [  OK  ] Listening on initctl Compatibility Named Pipe.
>> [  OK  ] Listening on Journal Socket (/dev/log).
>> [  OK  ] Listening on Process Core Dump Socket.
>> [  OK  ] Listening on LVM2 poll daemon socket.
>> [  OK  ] Created slice system-shadoÔÇŽocks\x2dlibev\x2dserver.slice.
>> [  OK  ] Listening on Network Service Netlink Socket.
>> [  OK  ] Listening on Device-mapper event daemon FIFOs.
>> [  OK  ] Listening on Journal Audit Socket.
>> [  OK  ] Listening on LVM2 metadata daemon socket.
>> [  OK  ] Listening on RPCbind Server Activation Socket.
>> [  OK  ] Reached target RPC Port Mapper.
>> [  OK  ] Created slice User and Session Slice.
>> [  OK  ] Reached target Slices.
>> [  OK  ] Reached target Remote File Systems.
>> [  OK  ] Started Forward Password RÔÇŽuests to Wall Directory Watch.
>> [  OK  ] Reached target Local Encrypted Volumes.
>> [  OK  ] Listening on Journal Socket.
>>           Starting Create list of reÔÇŽodes for the current kernel...
>>           Starting Journal Service...
>> [   42.851473] systemd[669]: Operating on architecture: arm
>> [   42.865047] systemd[669]: Operating on architecture: arm64
>> [   42.869802] systemd[669]: Operating on architecture: arm
>> [   42.870570] systemd[669]: Operating on architecture: arm64
>> [   42.871225] systemd[669]: Operating on architecture: arm
>> [   42.871892] systemd[669]: Operating on architecture: arm64
>> [   42.873964] systemd[669]: Failed to add filter for chmod: Numerical argument out of domain
>> [   42.874837] systemd[669]: Failed to add filter for mkdir: Numerical argument out of domain
>> [   42.875724] systemd[669]: Failed to add filter for mknod: Numerical argument out of domain
>> [   42.876602] systemd[669]: Failed to add filter for creat: Numerical argument out of domain
>> [   42.877493] systemd[669]: Failed to add filter for chmod: Numerical argument out of domain
>> [   42.878417] systemd[669]: Failed to add filter for mkdir: Numerical argument out of domain
>> [   42.879461] systemd[669]: Failed to add filter for mknod: Numerical argument out of domain
>>           Mounting POSIX Message [Queue File System...   42.880441] systemd[669]: Failed to add filter for creat: Numerical argument out of domain
>>
>> [   42.881994] systemd[669]: Restricting namespace to: .
>> [   42.882560] systemd[669]: Operating on architecture: arm
>> [   42.883205] systemd[669]: Blocking cgroup.
>> [   42.883835] systemd[669]: Blocking ipc.
>> [   42.884441] systemd[669]: Blocking net.
>> [   42.885071] systemd[669]: Blocking mnt.
>> [   42.885718] systemd[669]: Blocking pid.
>> [   42.886470] systemd[669]: Blocking user.
>> [   42.887266] systemd[669]: Blocking uts.
>> [   42.888473] systemd[669]: Operating on architecture: arm64
>> [   42.889217] systemd[669]: Blocking cgroup.
>>           Mounting NFSD configuration filesystem...[   42.889759] systemd[669]: Blocking ipc.
>>
>> [   42.890695] systemd[669]: Blocking net.
>> [   42.891278] systemd[669]: Blocking mnt.
>> [   42.891883] systemd[669]: Blocking pid.
>> [   42.892515] systemd[669]: Blocking user.
>> [   42.893131] systemd[669]: Blocking uts.
>> [   42.894839] systemd[669]: Operating on architecture: arm
>>           Starting Remount Root and Kernel File Systems...
>>           Starting Monitoring of LVMÔÇŽmeventd or progress polling...
>>           Mounting Huge Pages File System...
>>           Mounting Kernel Debug File System...
>>           Starting Load Kernel Modules...
>> [  OK  ] Reached target Paths.
>> [  OK  ] Created slice system-getty.slice.
>> [  OK  ] Created slice system-systemd\x2dfsck.slice.
>> [   43.019560] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
>> [  OK  ] Reached target Swap.
>> [   43.061827] random: crng init done
>> [   43.062147] random: 5 urandom warning(s) missed due to ratelimiting
>>           Mounting Temporary Directory (/tmp)...
>> [  OK  ] Listening on udev Kernel Socket.
>> [  OK  ] Listening on udev Control Socket.
>>           Starting udev Coldplug all Devices...
>> [  OK  ] Started Create list of reqÔÇŽ nodes for the current kernel.
>> [  OK  ] Mounted POSIX Message Queue File System.
>> [  OK  ] Mounted NFSD configuration filesystem.
>> [  OK  ] Mounted Huge Pages File System.
>> [  OK  ] Mounted Kernel Debug File System.
>> [  OK  ] Mounted Temporary Directory (/tmp).
>> [  OK  ] Started LVM2 metadata daemon.
>> [  OK  ] Started Load Kernel Modules.
>> [   43.379747] BTRFS info (device dm-0): force zstd compression, level 3
>> [   43.380343] BTRFS info (device dm-0): enabling auto defrag
>> [   43.380831] BTRFS info (device dm-0): disk space caching is enabled
>> [  OK  ] Started Remount Root and Kernel File Systems.
>>           Starting Create Static Device Nodes in /dev...
>> [   43.456422] systemd[669]: Operating on architecture: arm64
>>           Mounting Kernel Configuration File System...
>>           Starting Apply Kernel Variables...
>> [  OK  ] Started Create Static Device Nodes in /dev.
>> [  OK  ] Mounted Kernel Configuration File System.
>>           Starting udev Kernel Device Manager...
>> [   43.560384] systemd[689]: Applying namespace mount on /run/systemd/unit-root/proc/sys/kernel/domainname
>> [   43.562423] systemd[689]: Successfully mounted /run/systemd/unit-root/proc/sys/kernel/domainname to /run/systemd/unit-root/proc/sys/kernel/domainname
>> [   43.564229] systemd[689]: Applying namespace mount on /run/systemd/unit-root/proc/sys/kernel/hostname
>> [   43.565938] systemd[689]: Successfully mounted /run/systemd/unit-root/proc/sys/kernel/hostname to /run/systemd/unit-root/proc/sys/kernel/hostname
>> [   43.569970] systemd[689]: Remounted /run/systemd/unit-root/proc/sys/kernel/domainname read-only.
>> [  OK  ] Started Apply Kernel Variables.
>> [   43.577304] systemd[689]: Remounted /run/systemd/unit-root/proc/sys/kernel/hostname read-only.
>> [   43.581074] systemd[689]: Operating on architecture: arm
>> [   43.594152] systemd[689]: Operating on architecture: arm64
>> [   43.598579] systemd[689]: Operating on architecture: arm
>> [   43.599557] systemd[689]: Operating on architecture: arm64
>> [   43.600430] systemd[689]: Operating on architecture: arm
>> [   43.601341] systemd[689]: Operating on architecture: arm64
>> [   43.603628] systemd[689]: Failed to add filter for chmod: Numerical argument out of domain
>> [   43.604547] systemd[689]: Failed to add filter for mkdir: Numerical argument out of domain
>> [   43.605441] systemd[689]: Failed to add filter for mknod: Numerical argument out of domain
>> [   43.606350] systemd[689]: Failed to add filter for creat: Numerical argument out of domain
>> [   43.607264] systemd[689]: Failed to add filter for chmod: Numerical argument out of domain
>> [   43.608214] systemd[689]: Failed to add filter for mkdir: Numerical argument out of domain
>> [   43.609135] systemd[689]: Failed to add filter for mknod: Numerical argument out of domain
>> [   43.610102] systemd[689]: Failed to add filter for creat: Numerical argument out of domain
>> [   43.611583] systemd[689]: Operating on architecture: arm
>> [   43.616441] systemd-journald[669]: Found cgroup2 on /sys/fs/cgroup/unified, unified hierarchy for systemd controller
>> [   43.620916] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   43.622158] systemd-journald[669]: Fixed min_use=1.0M max_use=197.9M max_size=24.7M min_size=512.0K keep_free=296.9M n_max_files=100
>> [   43.630406] systemd-journald[669]: Reserving 45048 entries in hash table.
>> [   43.632304] systemd-journald[669]: Vacuuming...
>> [   43.632849] systemd-journald[669]: Vacuuming done, freed 0B of archived journals from /run/log/journal/efd1758296a94bd09cc2ba3f0bb50427.
>> [   43.634519] systemd-journald[669]: Flushing /dev/kmsg...
>> [  OK  ] Started udev Coldplug all Devices.
>> [   43.739307] audit: type=1130 audit(1563803537.110:2): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-udev-trigger comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [   43.791517] systemd-journald[669]: systemd-journald running as pid 669
>> [   43.793456] systemd-journald[669]: Sent READY=1 notification.
>> [  OK  ] Started Journal Service.
>> [   43.795061] systemd-journald[669]: Sent WATCHDOG=1 notification.
>> [   43.824274] audit: type=1130 audit(1563803537.200:3): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-journald comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [   44.076504] systemd[689]: Operating on architecture: arm64
>> [  OK  ] Started udev Kernel Device Manager.
>> [   44.252653] audit: type=1130 audit(1563803537.620:4): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-udevd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [   44.648398] dw_wdt: probe of ff1a0000.watchdog failed with error -2
>> [  OK  ] Found device /dev/ttyS2.
>> [   44.757081] rk3328-codec ff410000.codec: spk_depop_time use default value.
>> [   44.790519] lima ff300000.gpu: bus rate = 163840000
>> [   44.790972] lima ff300000.gpu: mod rate = 163840000
>> [   44.794707] lima ff300000.gpu: gp - mali450 version major 0 minor 0
>> [   44.795567] lima ff300000.gpu: pp0 - mali450 version major 0 minor 0
>> [   44.796240] lima ff300000.gpu: pp1 - mali450 version major 0 minor 0
>> [   44.796902] lima ff300000.gpu: l2 cache 8K, 4-way, 64byte cache line, 128bit external bus
>> [   44.797632] lima ff300000.gpu: l2 cache 64K, 4-way, 64byte cache line, 128bit external bus
>> [   44.809584] [drm] Initialized lima 1.0.0 20190217 for ff300000.gpu on minor 0
>> [   44.825769] Registered IR keymap rc-empty
>> [   44.826345] rc rc0: gpio_ir_recv as /devices/platform/ir-receiver/rc/rc0
>> [   44.827194] input: gpio_ir_recv as /devices/platform/ir-receiver/rc/rc0/input0
>> [   44.834847] rc rc0: lirc_dev: driver gpio_ir_recv registered at minor = 0, raw IR receiver, no transmitter
>> [   44.854765] rk808-rtc rk808-rtc: registered as rtc0
>> [   44.890633] rockchip-vop ff370000.vop: Adding to iommu group 0
>> [   44.928197] rockchip-drm display-subsystem: bound ff370000.vop (ops vop_component_ops [rockchipdrm])
>> [   44.929475] dwhdmi-rockchip ff3c0000.hdmi: Detected HDMI TX controller v2.11a with HDCP (inno_dw_hdmi_phy2)
>> [   44.947455] dwhdmi-rockchip ff3c0000.hdmi: registered DesignWare HDMI I2C bus driver
>> [   44.949808] rockchip-drm display-subsystem: bound ff3c0000.hdmi (ops dw_hdmi_rockchip_ops [rockchipdrm])
>> [   44.950657] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
>> [   44.951237] [drm] No driver support for vblank timestamp query.
>> [   44.951834] [drm] Cannot find any crtc or sizes
>> [   44.973910] [drm] Initialized rockchip 1.0.0 20140818 for display-subsystem on minor 1
>> [  OK  ] Found device /dev/disk/by-ÔÇŽ5-03cc-47e4-9171-aa221f71efaf.
>> [   45.224367] BTRFS info (device dm-0): device fsid 0250489f-2c3d-499e-9ff1-8f85451622e7 devid 1 moved old:/dev/mapper/cryptroot new:/dev/dm-0
>> [   45.228575] BTRFS info (device dm-0): device fsid 0250489f-2c3d-499e-9ff1-8f85451622e7 devid 1 moved old:/dev/dm-0 new:/dev/mapper/cryptroot
>> [   45.353655] Registered IR keymap rc-cec
>> [   45.354235] rc rc1: dw_hdmi as /devices/platform/ff3c0000.hdmi/rc/rc1
>> [   45.355089] input: dw_hdmi as /devices/platform/ff3c0000.hdmi/rc/rc1/input1
>> [  OK  ] Found device /dev/disk/by-ÔÇŽf-2c3d-499e-9ff1-8f85451622e7.
>> [   46.003691] [drm] Cannot find any crtc or sizes
>> [   46.396387] md127: detected capacity change from 0 to 1106309687296
>> [   46.398853] md126: detected capacity change from 0 to 1106444953600
>> [   46.476618] async_tx: api initialized (async)
>> [   46.506798] md/raid:md125: not clean -- starting background reconstruction
>> [   46.507534] md/raid:md125: device md127 operational as raid disk 1
>> [   46.508087] md/raid:md125: device md126 operational as raid disk 2
>> [   46.508628] md/raid:md125: device sda1 operational as raid disk 0
>> [   46.511127] md/raid:md125: raid level 5 active with 3 out of 3 devices, algorithm 2
>> [   46.544057] md125: detected capacity change from 0 to 2212348559360
>>           Starting MD array monitor...
>> [  OK  ] Started MD array monitor.
>> [   46.704045] audit: type=1130 audit(1563803540.080:5): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=mdmonitor comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [  OK  ] Started Monitoring of LVM2ÔÇŽ dmeventd or progress polling.
>> [   46.883882] audit: type=1130 audit(1563803540.260:6): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=lvm2-monitor comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [  OK  ] Reached target Local File Systems (Pre).
>>           Starting File System CheckÔÇŽ03cc-47e4-9171-aa221f71efaf...
>>           Mounting /home...
>>           Mounting /var...
>>           Mounting /mnt/system...
>> [  OK  ] Mounted /home.
>> [  OK  ] Mounted /var.
>> [  OK  ] Mounted /mnt/system.
>>           Starting Load/Save Random Seed...
>>           Starting Flush Journal to Persistent Storage...
>> [  OK  ] Started Load/Save Random Seed.
>> [   47.060046] audit: type=1130 audit(1563803540.430:7): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-random-seed comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> Boot: fsck 0.0% complete...                             [  OK  ] Started File System Check ÔÇŽ5-03cc-47e4-9171-aa221f71efaf.
>> [   47.194761] audit: type=1130 audit(1563803540.570:8): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-fsck@dev-disk-by\x2duuid-01b27405\x2d03cc\x2d47e4\x2d9171\x2daa221f71efaf comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>           Mounting /boot...
>> [   47.225323] EXT4-fs (mmcblk1p1): mounted filesystem with ordered data mode. Opts: (null)
>> [  OK  ] Mounted /boot.
>> [  OK  ] Reached target Local File Systems.
>> [  OK  ] Started Flush Journal to Persistent Storage.
>> [   47.553975] audit: type=1130 audit(1563803540.930:9): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-journal-flush comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>           Starting Create Volatile Files and Directories...
>> [  OK  ] Started Create Volatile Files and Directories.
>> [   47.684031] audit: type=1130 audit(1563803541.060:10): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-tmpfiles-setup comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>           Starting Update UTMP about System Boot/Shutdown...
>>           Starting Network Time Synchronization...
>>           Starting Entropy Harvesting Daemon...
>>           Mounting RPC Pipe File System...
>> [  OK  ] Mounted RPC Pipe File System.
>> [   47.759423] audit: type=1127 audit(1563803541.130:11): pid=773 uid=0 auid=4294967295 ses=4294967295 msg=' comm="systemd-update-utmp" exe="/usr/lib/systemd/systemd-update-utmp" hostname=? addr=? terminal=? res=success'
>> [  OK  ] Started Entropy Harvesting Daemon.
>> [  OK  ] Reached target rpc_pipefs.target.
>>           Starting NFSv4 ID-name mapping service...
>>           Starting NFSv4 Client Tracking Daemon...
>> [  OK  ] Started Update UTMP about System Boot/Shutdown.
>> [  OK  ] Started NFSv4 Client Tracking Daemon.
>> [  OK  ] Started NFSv4 ID-name mapping service.
>> [  OK  ] Started Network Time Synchronization.
>> [  OK  ] Reached target System Time Set.
>> [  OK  ] Reached target System Time Synchronized.
>> [  OK  ] Reached target System Initialization.
>> [   48.644114] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  OK  ] Started Daily Cleanup of Snapper Sna[pshots.
>>     48.645438] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   48.646953] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  OK  ] Started ;39mRun root.hints monthly.
>>    48.648291] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   48.649862] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  OK  ] Started Discard unused blocks once a[ week.
>>     48.651343] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   48.652826] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  OK  ] Listening on D-Bus System Message Bus Socket.
>> [   48.654536] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   48.656126] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   48.657259] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  OK  ] Reached target Sockets.
>> [  OK  ] Started Monthly Btrfs scrub on /mnt/glassvault.
>> [  OK  ] Started Daily man-db regeneration.
>> [  OK  ] Started Daily Cleanup of Temporary Directories.
>> [  OK  ] Started Daily reset of dnsmasq/pi-hole query log.
>> [  OK  ] Started Daily renewal of acme.sh certificates.
>> [  OK  ] Reached target Basic System.
>> [  OK  ] Started irqbalance daemon.
>> [   48.894079] kauditd_printk_skb: 6 callbacks suppressed
>> [   48.894086] audit: type=1130 audit(1565697884.849:18): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=irqbalance comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [  OK  ] Started Manage swap spacesÔÇŽn zram, files and partitions..
>> [   48.933669] audit: type=1130 audit(1565697884.879:19): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-swap comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [  OK  ] Started D-Bus System Message Bus.
>> [   48.955601] audit: type=1130 audit(1565697884.909:20): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=dbus comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [  OK  ] Started DNSCrypt-proxy client.
>> [   48.969499] audit: type=1130 audit(1565697884.919:21): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=dnscrypt-proxy comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>           Starting Netfilter Tables...
>>           Starting GSSAPI Proxy Daemon...
>>           Starting Self Monitoring aÔÇŽg Technology (SMART) Daemon...
>>           Starting IPv4 Packet Filtering Framework...
>>           Starting Login Service...
>> [  OK  ] Started Timeline of Snapper Snapshots.
>>           Starting USBGuard daemon...
>> [  OK  ] Started Pi-hole FTLDNS engine.
>> [   49.072725] audit: type=1130 audit(1565697885.019:22): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=pihole-FTL comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [  OK  ] Started Run periodic raid volume scrub.
>> [  OK  ] Started Daily rotation of log files.
>>           Starting Restore system tiÔÇŽoot and save it on shutdown...
>> [  OK  ] Started Daily verification of password and group files.
>> [  OK  ] Started Weekly ad-serving domains gathering.
>> [   49.209107] bpfilter: Loaded bpfilter_umh pid 801
>> Started bpfilter
>> [  OK  ] Started Netfilter Tables.
>> [   49.223993] audit: type=1130 audit(1565697885.179:23): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=nftables comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [   49.257418] audit: type=1325 audit(1565697885.209:24): table=mangle family=2 entries=0
>> [   49.298437] audit: type=1325 audit(1565697885.249:25): table=mangle family=2 entries=6
>> [   49.324654] audit: type=1325 audit(1565697885.269:26): table=nat family=2 entries=0
>> [   49.365322] audit: type=1325 audit(1565697885.319:27): table=nat family=2 entries=5
>> [  OK  ] Started Restore system timÔÇŽ boot and save it on shutdown.
>> [  OK  ] Started Periodically saves system time to file timer.
>> [  OK  ] Reached target Timers.
>> [  OK  ] Started IPv4 Packet Filtering Framework.
>> [  OK  ] Reached target Network (Pre).
>>           Starting Network Service...
>> [  OK  ] Started SSHGuard - blocks brute-force login attempts.
>> [  OK  ] Started GSSAPI Proxy Daemon.
>> [  OK  ] Started USBGuard daemon.
>> [  OK  ] Started Login Service.
>> [   50.956002] wireguard: loading out-of-tree module taints kernel.
>> [   50.961332] wireguard: WireGuard 0.0.20190702 loaded. See www.wireguard.com for information.
>> [   50.962091] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
>> [  OK  ] Started Network Service.
>> [  OK  ] Reached target Network.
>>           Starting The PHP FastCGI Process Manager...
>> [  OK  ] Started DNS-over-HTTPS Server.
>>           Starting Sets the firmwareÔÇŽr sslh transparent proxying...
>> [  OK  ] Started SSL/SSH multiplexer (fork mode).
>>           Starting Permit User Sessions...
>> [  OK  ] Started Unbound DNS Resolver.
>> [  OK  ] Reached target Host and Network Name Lookups.
>> [  OK  ] Started OpenSSH Daemon.
>>           Starting Wait for Network to be Configured...
>> [   51.172034] Generic PHY stmmac-0:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=stmmac-0:00, irq=POLL)
>> [   51.195007] rk_gmac-dwmac ff540000.ethernet eth0: No Safety Features support found
>> [   51.195723] rk_gmac-dwmac ff540000.ethernet eth0: PTP not supported by HW
>> [  OK  ] Started Permit User Sessions.
>> [  OK  ] Started Serial Getty on ttyS2.
>> [  OK  ] Started Getty on tty1.
>> [  OK  ] Reached target Login Prompts.
>> [  OK  ] Started Sets the firmware ÔÇŽfor sslh transparent proxying.
>> [  OK  ] Started The PHP FastCGI Process Manager.
>> [   53.826878] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   53.828624] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   53.831031] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   53.832480] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   53.833946] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   53.835131] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   53.837031] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   53.838244] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   54.055881] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   54.324463] rk_gmac-dwmac ff540000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
>> [   54.325250] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
>> [   54.327569] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  OK  ] Started Self Monitoring anÔÇŽing Technology (SMART) Daemon.
>> [   55.385487] kauditd_printk_skb: 21 callbacks suppressed
>> [   55.385497] audit: type=1130 audit(1565697891.339:49): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=smartd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>
>> Arch Linux 5.2.8-1-ARCH (ttyS2)
>>
>> rock64 login: [   59.214222] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   62.238720] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   62.240107] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   62.241259] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   62.243201] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   62.244906] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   66.989756] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   67.454244] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   67.455689] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   67.457426] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   67.459017] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   67.460459] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   67.463440] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   67.465034] audit: type=1130 audit(1565697903.419:50): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-networkd-wait-online comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [   67.465737] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   67.468255] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   67.469798] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   67.494954] audit: type=1130 audit(1565697903.449:51): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=shadowsocks-libev-server@main comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [   67.520464] audit: type=1130 audit(1565697903.469:52): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=badvpn-udpgw comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [   67.786151] audit: type=1130 audit(1565697903.739:53): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=rpcbind comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [   67.902328] audit: type=1130 audit(1565697903.849:54): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=nfs-mountd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [   67.936170] audit: type=1130 audit(1565697903.889:55): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=rpc-statd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [   68.641217] audit: type=1006 audit(1565697976.049:56): pid=946 uid=0 old-auid=4294967295 auid=1000 tty=(none) old-ses=4294967295 ses=1 res=1
>> [   68.840807] audit: type=1130 audit(1565697976.249:57): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=user-runtime-dir@1000 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [   68.893470] audit: type=1006 audit(1565697976.299:58): pid=949 uid=0 old-auid=4294967295 auid=1000 tty=(none) old-ses=4294967295 ses=2 res=1
>> [   69.213378] audit: type=1130 audit(1565697976.619:59): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=user@1000 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [   69.243287] NFSD: Using UMH upcall client tracking operations.
>> [   69.244017] NFSD: starting 90-second grace period (net f0000041)
>> [   72.241052] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   72.244099] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   72.245874] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   72.249252] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   72.251023] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   73.124974] kauditd_printk_skb: 3 callbacks suppressed
>> [   73.124983] audit: type=1130 audit(1565697980.539:63): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=nginx comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> [   73.130861] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   73.133510] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   73.135056] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   73.136624] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   73.138327] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   82.242506] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   82.244715] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   82.246099] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   82.248165] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   82.249761] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   83.139292] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   83.634981] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   83.636562] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   83.644113] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   83.645561] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   92.243757] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   92.245343] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   92.246621] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   92.248712] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   92.250083] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   92.305936] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   92.307542] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   96.087683] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   96.089672] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   99.992391] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [   99.995134] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  100.009809] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  100.011427] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  100.012874] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  100.014582] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  100.016023] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  100.017451] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  100.018886] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  100.020424] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  110.453073] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  112.246751] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  112.248255] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  112.249536] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  112.251623] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  112.253373] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  116.789143] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  116.791332] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  122.247692] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  122.249305] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  122.250627] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  122.252881] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  122.254487] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  127.256164] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  132.134131] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  132.135900] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  132.138645] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  132.140302] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  132.248524] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  132.250121] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  132.251465] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  132.254046] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  132.255420] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  137.266628] systemd-journald[669]: Sent WATCHDOG=1 notification.
>> [  137.268381] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  137.270070] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  137.271736] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  140.616211] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  140.618868] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  142.251132] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  142.252867] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  142.254303] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  142.256375] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  145.655478] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  145.657011] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  145.658262] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  145.659373] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  145.660429] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  145.661573] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  147.393139] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  149.843874] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  149.845490] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  149.857427] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  152.252266] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  152.253929] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  152.255227] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  152.257368] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  152.258795] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  152.260030] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  162.254157] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  162.255578] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  162.256922] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  162.259009] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  162.260384] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  164.241031] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  164.243650] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  164.256993] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  164.258552] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  164.259879] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  172.260227] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  172.262468] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  172.264983] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  172.268760] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  172.270888] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  177.744261] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  181.790879] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  181.793721] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  181.795819] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  181.797566] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  181.799157] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  181.800686] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  181.802208] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  181.804161] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  181.805651] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  181.853499] BTRFS: device label glassvault devid 1 transid 158 /dev/dm-1
>> [  182.016417] BTRFS info (device dm-1): use zstd compression, level 3
>> [  182.016994] BTRFS info (device dm-1): enabling auto defrag
>> [  182.017480] BTRFS info (device dm-1): using free space tree
>> [  182.017969] BTRFS info (device dm-1): has skinny extents
>> [  185.985238] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  185.987454] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  192.259719] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  192.261283] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  192.262602] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  192.264842] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  192.266418] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  198.948770] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  198.950491] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  198.962249] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  198.965024] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  198.969102] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  202.262706] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  202.264077] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  202.265752] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  202.267791] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  202.269168] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  207.655433] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  207.657304] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  207.664183] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  207.665886] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  207.667129] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  207.668288] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  212.264137] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  212.265989] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  212.267535] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  212.269706] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  222.266006] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  222.267594] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  222.269130] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  222.271555] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  222.273052] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  232.266074] systemd-journald[669]: Sent WATCHDOG=1 notification.
>> [  232.268564] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  232.270050] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  232.271344] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  232.272535] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  232.274607] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  232.276380] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  232.638382] md: resync of RAID array md125
>> [  232.645139] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  242.269536] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  242.271637] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  242.273298] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  242.276092] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  242.277783] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  243.626042] md: md125: resync done.
>> [  243.635245] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  252.269905] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  252.271477] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  252.272766] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  252.274817] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  252.276595] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  252.277902] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  262.271635] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  262.273186] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  262.274456] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  262.276997] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  262.278409] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  264.246527] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  264.248184] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  264.259992] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  264.262711] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  269.676730] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  269.679255] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  269.681054] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  269.682571] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  269.683821] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  269.684918] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  269.689241] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  272.273301] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  272.275635] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  272.277416] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  276.946561] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  282.273887] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  282.275672] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  282.277647] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  282.281113] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  282.282677] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  292.275830] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  292.278158] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  292.279919] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  292.282723] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  292.284537] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  292.493843] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  292.497018] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  292.510796] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  292.512356] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  292.514254] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  297.744948] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  302.276998] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  302.278991] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  302.280379] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  302.282442] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  302.284106] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  302.285505] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  312.280762] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  312.283020] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  312.284825] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  312.288147] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  312.294199] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  320.099648] systemd-journald[669]: Sent WATCHDOG=1 notification.
>> [  320.101231] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  320.103946] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  320.105550] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  322.311538] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  322.314402] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  322.316094] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  322.320394] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  322.322165] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  331.675338] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  331.677478] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  331.683766] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  331.685182] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  331.686379] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  331.688101] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  332.306306] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  332.308445] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  332.310098] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  332.316364] systemd-journald[669]: Journal effective settings seal=no compress=yes compress_threshold_bytes=512B
>> [  334.414128] SError Interrupt on CPU0, code 0xbf000002 -- SError
>> [  334.414136] CPU: 0 PID: 1774 Comm: dd Tainted: G           O      5.2.8-1-ARCH #1
>> [  334.414137] Hardware name: Pine64 Rock64 (DT)
>> [  334.414139] pstate: 20000005 (nzCv daif -PAN -UAO)
>> [  334.414141] pc : __arch_copy_from_user+0x1bc/0x240
>> [  334.414142] lr : copyin+0x54/0x68
>> [  334.414144] sp : ffff000013523aa0
>> [  334.414145] x29: ffff000013523aa0 x28: 0000000000001000
>> [  334.414149] x27: ffff8000e112ec00 x26: 0000000000000005
>> [  334.414152] x25: ffff000013523d50 x24: 0000000000005000
>> [  334.414155] x23: 0000000000001000 x22: ffff800009c02000
>> [  334.414158] x21: ffff000013523d40 x20: 00000000000d5000
>> [  334.414161] x19: 0000000000000000 x18: 0000000000000000
>> [  334.414164] x17: 0000000000000000 x16: 0000000000000000
>> [  334.414167] x15: 0000000000000000 x14: 268451e20def8ac3
>> [  334.414170] x13: e9bb458ce1212efb x12: 9f52f204714b75c4
>> [  334.414173] x11: 0e6bc7b591c2d6e4 x10: 40d3c7db468453cb
>> [  334.414176] x9 : 0d91295116253226 x8 : d0355f82a419091a
>> [  334.414179] x7 : 911b47420a1c00a2 x6 : ffff800009c01150
>> [  334.414182] x5 : ffff800009c02000 x4 : 0000000000000000
>> [  334.414185] x3 : 0000ffffbdbc4000 x2 : 0000000000000e40
>> [  334.414188] x1 : 0000ffffbdbc4190 x0 : ffff800009c01000
>> [  334.414191] Kernel panic - not syncing: Asynchronous SError Interrupt
>> [  334.414194] CPU: 0 PID: 1774 Comm: dd Tainted: G           O      5.2.8-1-ARCH #1
>> [  334.414195] Hardware name: Pine64 Rock64 (DT)
>> [  334.414197] Call trace:
>> [  334.414198]  dump_backtrace+0x0/0x168
>> [  334.414199]  show_stack+0x24/0x30
>> [  334.414200]  dump_stack+0xa8/0xcc
>> [  334.414201]  panic+0x150/0x320
>> [  334.414203]  __stack_chk_fail+0x0/0x28
>> [  334.414204]  arm64_serror_panic+0x80/0x8c
>> [  334.414206]  do_serror+0x11c/0x120
>> [  334.414207]  el1_error+0x84/0xf8
>> [  334.414208]  __arch_copy_from_user+0x1bc/0x240
>> [  334.414210]  iov_iter_copy_from_user_atomic+0xe4/0x390
>> [  334.414212]  btrfs_copy_from_user+0x68/0x120 [btrfs]
>> [  334.414213]  btrfs_buffered_write.isra.5+0x354/0x638 [btrfs]
>> [  334.414214]  btrfs_file_write_iter+0x3b0/0x4e0 [btrfs]
>> [  334.414216]  new_sync_write+0x110/0x198
>> [  334.414217]  __vfs_write+0x74/0x90
>> [  334.414218]  vfs_write+0xac/0x1b8
>> [  334.414219]  ksys_write+0x74/0xf8
>> [  334.414221]  __arm64_sys_write+0x24/0x30
>> [  334.414222]  el0_svc_handler+0xa4/0x180
>> [  334.414223]  el0_svc+0x8/0xc
>> [  334.414252] SMP: stopping secondary CPUs
>> [  334.414253] Kernel Offset: disabled
>> [  334.414254] CPU features: 0x0002,20002000
>> [  334.414256] Memory Limit: none
> 
> 
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* coresight: ACPI hook for funnel on ThunderX2
From: Tanmay Vilas Kumar Jagdale @ 2019-08-15 13:58 UTC (permalink / raw)
  To: mathieu.poirier@linaro.org
  Cc: Ganapatrao Kulkarni, Tomasz Nowicki, suzuki.poulose@arm.com,
	Jayachandran Chandrasekharan Nair, Tanmay Vilas Kumar Jagdale,
	linux-arm-kernel@lists.infradead.org

Coresight topology on Marvell's ThunderX2 Processor is as follows:

 ETM0 _                                                   _ TPIU
 ...   \    Static      Dynamic                          /
 ...    --> FUNNEL0 --> FUNNEL1 --> ETF --> REPLICATOR --
ETM127_/            |                                    \_ ETR
                    |
            ETM128--|
                    /
           Others--/

To support this topology add ACPI hook for Static Funnel0.

Signed-off-by: Tanmay Jagdale <tanmay@marvell.com>
---
 drivers/hwtracing/coresight/coresight-funnel.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/hwtracing/coresight/coresight-funnel.c b/drivers/hwtracing/coresight/coresight-funnel.c
index fa97cb9ab4f9..315691fd6f4b 100644
--- a/drivers/hwtracing/coresight/coresight-funnel.c
+++ b/drivers/hwtracing/coresight/coresight-funnel.c
@@ -5,6 +5,7 @@
  * Description: CoreSight Funnel driver
  */
 
+#include <linux/acpi.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/types.h>
@@ -297,6 +298,11 @@ static int static_funnel_probe(struct platform_device *pdev)
 	return ret;
 }
 
+static const struct acpi_device_id static_funnel_acpi_ids[] = {
+	{ "CAV901A" },
+	{},
+};
+
 static const struct of_device_id static_funnel_match[] = {
 	{.compatible = "arm,coresight-static-funnel"},
 	{}
@@ -306,6 +312,7 @@ static struct platform_driver static_funnel_driver = {
 	.probe          = static_funnel_probe,
 	.driver         = {
 		.name   = "coresight-static-funnel",
+		.acpi_match_table = ACPI_PTR(static_funnel_acpi_ids),
 		.of_match_table = static_funnel_match,
 		.pm	= &funnel_dev_pm_ops,
 		.suppress_bind_attrs = true,
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related

* Re: [PATCH v8 14/14] MAINTAINERS: add entry for Rockchip ISP1 driver
From: Laurent Pinchart @ 2019-08-15 13:56 UTC (permalink / raw)
  To: Helen Koike
  Cc: devicetree, eddie.cai.linux, kernel, heiko, jacob2.chen,
	jeffy.chen, zyc, linux-kernel, tfiga, linux-rockchip,
	hans.verkuil, sakari.ailus, zhengsq, mchehab, ezequiel,
	linux-arm-kernel, linux-media
In-Reply-To: <20190730184256.30338-15-helen.koike@collabora.com>

Hi Helen,

Thank you for the patch.

On Tue, Jul 30, 2019 at 03:42:56PM -0300, Helen Koike wrote:
> Add MAINTAINERS entry for the rockchip isp1 driver.
> 
> Signed-off-by: Helen Koike <helen.koike@collabora.com>
> ---
> 
> Changes in v8: None
> Changes in v7: None
> 
>  MAINTAINERS | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 6426db5198f0..7f38abcb4114 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -13743,6 +13743,14 @@ F:	drivers/hid/hid-roccat*
>  F:	include/linux/hid-roccat*
>  F:	Documentation/ABI/*/sysfs-driver-hid-roccat*
>  
> +ROCKCHIP ISP V1 DRIVER
> +M:	Helen Koike <helen.koike@collabora.com>
> +L:	linux-media@vger.kernel.org
> +S:	Maintained
> +F:	drivers/media/platform/rockchip/isp1/
> +F:	Documentation/devicetree/bindings/media/rockchip-isp1.txt
> +F:	Documentation/devicetree/bindings/media/rockchip-mipi-dphy.txt

This is missing the include/ files and the custom format documentation.
Apart from that, I'm happy to see that you will maintain this driver :-)

> +
>  ROCKCHIP RASTER 2D GRAPHIC ACCELERATION UNIT DRIVER
>  M:	Jacob chen <jacob2.chen@rock-chips.com>
>  L:	linux-media@vger.kernel.org

-- 
Regards,

Laurent Pinchart

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: [PATCH 0/6] drm+dma: cache support for arm, etc
From: Rob Clark @ 2019-08-15 13:54 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Kate Stewart, Masayoshi Mizuma, Maciej W. Rozycki, Eric Biggers,
	Catalin Marinas, Imre Deak, dri-devel, Chris Wilson,
	Masahiro Yamada, Benjamin Gaignard, Mauro Carvalho Chehab,
	Will Deacon, Emil Velikov, Deepak Sharma, Michael Ellerman,
	Paul Burton, Mike Rapoport, Geert Uytterhoeven,
	moderated list:ARM64 PORT (AARCH64 ARCHITECTURE), Daniel Vetter,
	open list:MIPS, Linus Walleij, Robin Murphy,
	open list:DRM DRIVER FOR MSM ADRENO GPU, Joerg Roedel,
	Arnd Bergmann, Anshuman Khandual, Hauke Mehrtens,
	Jesper Dangaard Brouer, Wolfram Sang (Renesas),
	open list:LINUX FOR POWERPC (32-BIT AND 64-BIT), Alexios Zavras,
	Russell King, Doug Anderson, Thomas Gleixner, Sean Paul,
	Allison Randal, Christophe Leroy, Enrico Weigelt, Ard Biesheuvel,
	Greg Kroah-Hartman, open list, Rob Clark, Souptick Joarder,
	Andrew Morton, open list:DRM DRIVER FOR MSM ADRENO GPU
In-Reply-To: <20190815065117.GA23761@lst.de>

On Wed, Aug 14, 2019 at 11:51 PM Christoph Hellwig <hch@lst.de> wrote:
>
> As said before I don't think these low-level helpers are the
> right API to export, but even if they did you'd just cover a tiny
> subset of the architectures.

Are you thinking instead something like:

void dma_sync_sg_for_{cpu,device}(struct device *dev, struct scatterlist *sgl,
                                  int nents, enum dma_data_direction dir)
{
    for_each_sg(sgl, sg, nents, i) {
        arch_sync_dma_for_..(dev, sg_phys(sg), sg->length, dir);
    }
}
EXPORT_SYMBOL_GPL(dma_sync_sg_for_..)

or did you have something else in mind?

I guess something like this would avoid figuring out *which* archs
actually build drm..


> Also to distil the previous thread - if you remap memory to uncached
> the helper to use is arch_dma_prep_coherent, which does a writeback+
> invalidate everywhere, and there is no need to clean up after a
> long-term uncached mapping.  We might still get speculations into
> that area, if we don't remap the direct mapping, but it isn't like
> invalidting that just before freeing the memory is going to help
> anyone.

hmm, IIUC the aarch64 cache instructions, what I'm doing now is equiv
to what I would get with dma_map_sg(DMA_BIDIRECTIONAL) and
arch_dma_prep_coherent() is equiv to what I'd get w/ DMA_FROM_DEVICE
(but a single pass instead of separate inv+clean passes)..

but I can respin this with a single dma_prep_coherent_sg() which uses
arch_dma_prep_coherent()..

> Also it seems like patches 5 and 6 are missing in my inbox.

Hmm, not entirely sure why.. you should be on the cc list for each
individual patch.

But here is the patchwork link if you want to see them:

https://patchwork.freedesktop.org/series/65211/

BR,
-R

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* coresight: Add ETM4.1 support for ThunderX2
From: Tanmay Vilas Kumar Jagdale @ 2019-08-15 13:53 UTC (permalink / raw)
  To: mathieu.poirier@linaro.org
  Cc: Ganapatrao Kulkarni, Tomasz Nowicki, suzuki.poulose@arm.com,
	Jayachandran Chandrasekharan Nair, Tanmay Vilas Kumar Jagdale,
	linux-arm-kernel@lists.infradead.org

Add ETM4.1 periperhal ID for Marvell's ThunderX2 chip.

Signed-off-by: Tanmay Jagdale <tanmay@marvell.com>
---
 drivers/hwtracing/coresight/coresight-etm4x.c | 2 ++
 drivers/hwtracing/coresight/coresight-etm4x.h | 1 +
 2 files changed, 3 insertions(+)

diff --git a/drivers/hwtracing/coresight/coresight-etm4x.c b/drivers/hwtracing/coresight/coresight-etm4x.c
index 7bcac8896fc1..ac3bd617907b 100644
--- a/drivers/hwtracing/coresight/coresight-etm4x.c
+++ b/drivers/hwtracing/coresight/coresight-etm4x.c
@@ -58,6 +58,7 @@ static bool etm4_arch_supported(u8 arch)
 	/* Mask out the minor version number */
 	switch (arch & 0xf0) {
 	case ETM_ARCH_V4:
+	case ETM_ARCH_V4_1:
 		break;
 	default:
 		return false;
@@ -1196,6 +1197,7 @@ static const struct amba_id etm4_ids[] = {
 	CS_AMBA_ID(0x000bb95e),		/* Cortex-A57 */
 	CS_AMBA_ID(0x000bb95a),		/* Cortex-A72 */
 	CS_AMBA_ID(0x000bb959),		/* Cortex-A73 */
+	CS_AMBA_ID(0x000cc0af),		/* Marvell ThunderX2 */
 	CS_AMBA_UCI_ID(0x000bb9da, uci_id_etm4),	/* Cortex-A35 */
 	{},
 };
diff --git a/drivers/hwtracing/coresight/coresight-etm4x.h b/drivers/hwtracing/coresight/coresight-etm4x.h
index 4523f10ddd0f..03369e56b2eb 100644
--- a/drivers/hwtracing/coresight/coresight-etm4x.h
+++ b/drivers/hwtracing/coresight/coresight-etm4x.h
@@ -137,6 +137,7 @@
 #define ETM_MAX_SS_CMP			8
 
 #define ETM_ARCH_V4			0x40
+#define ETM_ARCH_V4_1			0x41
 #define ETMv4_SYNC_MASK			0x1F
 #define ETM_CYC_THRESHOLD_MASK		0xFFF
 #define ETM_CYC_THRESHOLD_DEFAULT       0x100
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related

* Re: [PATCH v4 02/21] ARM: dts: imx7-colibri: disable HS400
From: Oleksandr Suvorov @ 2019-08-15 13:52 UTC (permalink / raw)
  To: Philippe Schenker
  Cc: Mark Rutland, devicetree@vger.kernel.org, Michal Vokáč,
	Pengutronix Kernel Team, Stefan Agner, Marcel Ziswiler,
	Fabio Estevam, Sascha Hauer, linux-kernel@vger.kernel.org,
	stefan@agner.ch, Rob Herring, NXP Linux Team, Max Krummenacher,
	Shawn Guo, linux-arm-kernel@lists.infradead.org
In-Reply-To: <20190812142105.1995-3-philippe.schenker@toradex.com>

On Mon, Aug 12, 2019 at 5:23 PM Philippe Schenker
<philippe.schenker@toradex.com> wrote:
>
> From: Stefan Agner <stefan.agner@toradex.com>
>
> Force HS200 by masking bit 63 of the SDHCI capability register.
> The i.MX ESDHC driver uses SDHCI_QUIRK2_CAPS_BIT63_FOR_HS400. With
> that the stack checks bit 63 to descide whether HS400 is available.
> Using sdhci-caps-mask allows to mask bit 63. The stack then selects
> HS200 as operating mode.
>
> This prevents rare communication errors with minimal effect on
> performance:
>         sdhci-esdhc-imx 30b60000.usdhc: warning! HS400 strobe DLL
>                 status REF not lock!
>
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>

Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>

> ---
>
> Changes in v4: None
> Changes in v3: None
> Changes in v2: None
>
>  arch/arm/boot/dts/imx7-colibri.dtsi | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/boot/dts/imx7-colibri.dtsi b/arch/arm/boot/dts/imx7-colibri.dtsi
> index f1c1971f2160..f7c9ce5bed47 100644
> --- a/arch/arm/boot/dts/imx7-colibri.dtsi
> +++ b/arch/arm/boot/dts/imx7-colibri.dtsi
> @@ -325,6 +325,7 @@
>         vmmc-supply = <&reg_module_3v3>;
>         vqmmc-supply = <&reg_DCDC3>;
>         non-removable;
> +       sdhci-caps-mask = <0x80000000 0x0>;
>  };
>
>  &iomuxc {
> --
> 2.22.0
>


-- 
Best regards
Oleksandr Suvorov

Toradex AG
Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500
4800 (main line)
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: [PATCH v8 02/14] media: doc: add document for rkisp1 meta buffer format
From: Laurent Pinchart @ 2019-08-15 13:51 UTC (permalink / raw)
  To: Helen Koike
  Cc: devicetree, eddie.cai.linux, kernel, heiko, Jacob Chen,
	jacob2.chen, jeffy.chen, zyc, linux-kernel, tfiga, linux-rockchip,
	hans.verkuil, sakari.ailus, zhengsq, mchehab, ezequiel,
	linux-arm-kernel, linux-media
In-Reply-To: <20190730184256.30338-3-helen.koike@collabora.com>

Hi Helen,

Thank you for the patch.

On Tue, Jul 30, 2019 at 03:42:44PM -0300, Helen Koike wrote:
> From: Jacob Chen <jacob2.chen@rock-chips.com>
> 
> This commit add document for rkisp1 meta buffer format
> 
> Signed-off-by: Jacob Chen <jacob-chen@rock-chips.com>
> Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
> [update for upstream]
> Signed-off-by: Helen Koike <helen.koike@collabora.com>
> 
> ---
> 
> Changes in v8:
> - Add SPDX in the header
> - Remove emacs configs
> - Fix doc style
> 
> Changes in v7:
> - s/correspond/corresponding
> - s/use/uses
> - s/docuemnt/document
> 
>  Documentation/media/uapi/v4l/meta-formats.rst |  2 ++
>  .../uapi/v4l/pixfmt-meta-rkisp1-params.rst    | 23 +++++++++++++++++++
>  .../uapi/v4l/pixfmt-meta-rkisp1-stat.rst      | 22 ++++++++++++++++++
>  3 files changed, 47 insertions(+)
>  create mode 100644 Documentation/media/uapi/v4l/pixfmt-meta-rkisp1-params.rst
>  create mode 100644 Documentation/media/uapi/v4l/pixfmt-meta-rkisp1-stat.rst
> 
> diff --git a/Documentation/media/uapi/v4l/meta-formats.rst b/Documentation/media/uapi/v4l/meta-formats.rst
> index b10ca9ee3968..5de621fea3cc 100644
> --- a/Documentation/media/uapi/v4l/meta-formats.rst
> +++ b/Documentation/media/uapi/v4l/meta-formats.rst
> @@ -24,3 +24,5 @@ These formats are used for the :ref:`metadata` interface only.
>      pixfmt-meta-uvc
>      pixfmt-meta-vsp1-hgo
>      pixfmt-meta-vsp1-hgt
> +    pixfmt-meta-rkisp1-params
> +    pixfmt-meta-rkisp1-stat
> diff --git a/Documentation/media/uapi/v4l/pixfmt-meta-rkisp1-params.rst b/Documentation/media/uapi/v4l/pixfmt-meta-rkisp1-params.rst
> new file mode 100644
> index 000000000000..103b5cb79b7c
> --- /dev/null
> +++ b/Documentation/media/uapi/v4l/pixfmt-meta-rkisp1-params.rst
> @@ -0,0 +1,23 @@
> +.. SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +
> +.. _v4l2-meta-fmt-rkisp1-params:
> +
> +============================
> +V4L2_META_FMT_RK_ISP1_PARAMS
> +============================
> +
> +Rockchip ISP1 Parameters Data
> +
> +Description
> +===========
> +
> +This format describes input parameters for the Rockchip ISP1.
> +
> +It uses c-struct :c:type:`rkisp1_isp_params_cfg`, which is defined in
> +the ``linux/rkisp1-config.h`` header file.

I would say that

"The buffer contains a single instance of the C structure
:c:type:`rkisp1_isp_params_cfg`, defined in the
``linux/rkisp1-config.h`` header file."

And add a sentence to explain what the alignment requirements are.

> +
> +The parameters consist of multiple modules.
> +The module won't be updated if the corresponding bit was not set in module_*_update.

Doesn't this belong to rkisp1-config.h ? I would group all the
information related to fields of the structure in the header file, and
only have here the information related to the buffer layout (this mainly
referencing the structure and talking about alignment/padding).

> +
> +.. kernel-doc:: include/uapi/linux/rkisp1-config.h
> +   :functions: rkisp1_isp_params_cfg
> diff --git a/Documentation/media/uapi/v4l/pixfmt-meta-rkisp1-stat.rst b/Documentation/media/uapi/v4l/pixfmt-meta-rkisp1-stat.rst
> new file mode 100644
> index 000000000000..4ad303f96421
> --- /dev/null
> +++ b/Documentation/media/uapi/v4l/pixfmt-meta-rkisp1-stat.rst
> @@ -0,0 +1,22 @@
> +.. SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +
> +.. _v4l2-meta-fmt-rkisp1-stat:
> +
> +=============================
> +V4L2_META_FMT_RK_ISP1_STAT_3A
> +=============================
> +
> +
> +Rockchip ISP1 Statistics Data
> +
> +Description
> +===========
> +
> +This format describes image color statistics information generated by the Rockchip
> +ISP1.
> +
> +It uses c-struct :c:type:`rkisp1_stat_buffer`, which is defined in
> +the ``linux/rkisp1-config.h`` header file.

Same comment here, I think we need to document alignment/padding
constraints.

> +
> +.. kernel-doc:: include/uapi/linux/rkisp1-config.h
> +   :functions: rkisp1_stat_buffer

-- 
Regards,

Laurent Pinchart

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: [PATCH v4 18/21] ARM: dts: imx6ull-colibri: Add general wakeup key used on Colibri
From: Oleksandr Suvorov @ 2019-08-15 13:50 UTC (permalink / raw)
  To: Philippe Schenker
  Cc: Mark Rutland, devicetree@vger.kernel.org, Michal Vokáč,
	Pengutronix Kernel Team, Marcel Ziswiler, Fabio Estevam,
	Sascha Hauer, linux-kernel@vger.kernel.org, stefan@agner.ch,
	Rob Herring, NXP Linux Team, Max Krummenacher, Shawn Guo,
	linux-arm-kernel@lists.infradead.org
In-Reply-To: <20190812142105.1995-19-philippe.schenker@toradex.com>

On Mon, Aug 12, 2019 at 5:23 PM Philippe Schenker
<philippe.schenker@toradex.com> wrote:
>
> This adds the possibility to wake the module with an external signal
> as defined in the Colibri standard
>
> Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>

>
> ---
>
> Changes in v4:
> - Add Marcel Ziswiler's Ack
>
> Changes in v3: None
> Changes in v2: None
>
>  arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
>
> diff --git a/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi b/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi
> index b6147c76d159..a78849fd2afa 100644
> --- a/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi
> +++ b/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi
> @@ -8,6 +8,20 @@
>                 stdout-path = "serial0:115200n8";
>         };
>
> +       gpio-keys {
> +               compatible = "gpio-keys";
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&pinctrl_snvs_gpiokeys>;
> +
> +               power {
> +                       label = "Wake-Up";
> +                       gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
> +                       linux,code = <KEY_WAKEUP>;
> +                       debounce-interval = <10>;
> +                       wakeup-source;
> +               };
> +       };
> +
>         /* fixed crystal dedicated to mcp2515 */
>         clk16m: clk16m {
>                 compatible = "fixed-clock";
> --
> 2.22.0
>


-- 
Best regards
Oleksandr Suvorov

Toradex AG
Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500
4800 (main line)
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: [PATCH v6 5/8] clk: mediatek: Add MT6765 clock support
From: Greg KH @ 2019-08-15 13:44 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: devicetree, Ryder Lee, wsd_upstream, Marc Zyngier, Sean Wang,
	Loda Chou, linux-kernel, Rob Herring, Mars Cheng, Macpaul Lin,
	linux-serial, Matthias Brugger, linux-mediatek, Owen Chen,
	CC Hwang, linux-clk, linux-arm-kernel
In-Reply-To: <20190815002721.A71C72083B@mail.kernel.org>

On Wed, Aug 14, 2019 at 05:27:20PM -0700, Stephen Boyd wrote:
> Quoting Macpaul Lin (2019-07-12 02:43:41)
> > diff --git a/drivers/clk/mediatek/clk-mt6765-audio.c b/drivers/clk/mediatek/clk-mt6765-audio.c
> > new file mode 100644
> > index 000000000000..41f19343dfb9
> > --- /dev/null
> > +++ b/drivers/clk/mediatek/clk-mt6765-audio.c
> > @@ -0,0 +1,109 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/*
> > + * Copyright (c) 2018 MediaTek Inc.
> > + * Author: Owen Chen <owen.chen@mediatek.com>
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License version 2 as
> > + * published by the Free Software Foundation.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > + * GNU General Public License for more details.
> 
> Please use SPDX tags.

To be specific, _only_ the SPDX tag.  There is an SPDX tag on this file,
and the others, it's just that the license text is no longer needed with
that.

thanks,

greg k-h

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply

* Re: [PATCH 1/2] dt-bindings: arm: fsl: Add PHYTEC i.MX6 UL/ULL devicetree bindings
From: Rob Herring @ 2019-08-15 13:43 UTC (permalink / raw)
  To: Stefan Riedmüller
  Cc: Mark Rutland, devicetree, Andrew Smirnov, Fabio Estevam,
	Sascha Hauer, linux-kernel@vger.kernel.org, NXP Linux Team,
	Manivannan Sadhasivam, Shawn Guo,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE
In-Reply-To: <073f9466-9dd3-a22c-e000-e9f4c60f90a0@phytec.de>

On Thu, Aug 15, 2019 at 4:55 AM Stefan Riedmüller
<s.riedmueller@phytec.de> wrote:
>
> Hi Rob,
>
> On 13.08.19 18:04, Rob Herring wrote:
> > On Wed, Jul 24, 2019 at 09:49:32AM +0200, Stefan Riedmueller wrote:
> >> Add devicetree bindings for i.MX6 UL/ULL based phyCORE-i.MX6 UL/ULL and
> >> phyBOARD-Segin.
> >>
> >> Signed-off-by: Stefan Riedmueller <s.riedmueller@phytec.de>
> >> ---
> >>   Documentation/devicetree/bindings/arm/fsl.yaml | 8 ++++++++
> >>   1 file changed, 8 insertions(+)
> >>
> >> diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
> >> index 7294ac36f4c0..40f007859092 100644
> >> --- a/Documentation/devicetree/bindings/arm/fsl.yaml
> >> +++ b/Documentation/devicetree/bindings/arm/fsl.yaml
> >> @@ -161,12 +161,20 @@ properties:
> >>           items:
> >>             - enum:
> >>                 - fsl,imx6ul-14x14-evk      # i.MX6 UltraLite 14x14 EVK Board
> >> +              - phytec,imx6ul-pbacd10     # PHYTEC phyBOARD-Segin with i.MX6 UL
> >> +              - phytec,imx6ul-pbacd10-emmc  # PHYTEC phyBOARD-Segin eMMC Kit
> >> +              - phytec,imx6ul-pbacd10-nand  # PHYTEC phyBOARD-Segin NAND Kit
> >> +              - phytec,imx6ul-pcl063      # PHYTEC phyCORE-i.MX 6UL
> >
> > This doesn't match what is in the dts files:
> >
> > arch/arm/boot/dts/imx6ul-phytec-pcl063.dtsi:    compatible = "phytec,imx6ul-pcl063", "fsl,imx6ul";
> > arch/arm/boot/dts/imx6ul-phytec-phyboard-segin-full.dts:      compatible = "phytec,imx6ul-pbacd10", "phytec,imx6ul-pcl063",
> > "fsl,imx6ul";
> > arch/arm/boot/dts/imx6ul-phytec-phyboard-segin.dtsi:    compatible = "phytec,imx6ul-pbacd-10", "phytec,imx6ul-pcl063",
> > "fsl,imx6ul";
>
> Shawn already applied my patches which rename the compatibles, see
> https://lkml.org/lkml/2019/7/23/42

In any case, it still doesn't match. For example, from those patches:

+ model = "PHYTEC phyBOARD-Segin i.MX6 ULL Full Featured with eMMC";
+ compatible = "phytec,imx6ull-pbacd10-emmc", "phytec,imx6ull-pbacd10",
+     "phytec,imx6ull-pcl063","fsl,imx6ull";

The correct schema for this would be:

items:
  - const: phytec,imx6ull-pbacd10-emmc
  - const: phytec,imx6ull-pbacd10
  - const: phytec,imx6ull-pcl063
  - const: fsl,imx6ull

This defines how many entries (4), what they are, and the order of
them. Maybe the first entry can be an enum with the -nand compatible
if those are 2 options.

Run 'make dtbs_check' and make sure there aren't warnings for the root node.

Rob

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox