linux-efi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] ARM: decompressor: use by-VA cache maintenance for v7 cores
@ 2020-02-19  9:43 Ard Biesheuvel
  2020-02-19  9:43 ` [PATCH v2 1/4] efi/arm: work around missing cache maintenance in decompressor handover Ard Biesheuvel
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Ard Biesheuvel @ 2020-02-19  9:43 UTC (permalink / raw)
  To: linux-efi
  Cc: linux-arm-kernel, Ard Biesheuvel, Russell King, Marc Zyngier,
	Nicolas Pitre, Catalin Marinas, Tony Lindgren

While making changes to the EFI stub startup code, I noticed that we are
still doing set/way maintenance on the caches when booting on v7 cores.
This works today on VMs by virtue of the fact that KVM traps set/way ops
and cleans the whole address space by VA on behalf of the guest, and on
most v7 hardware, the set/way ops are in fact sufficient when only one
core is running, as there usually is no system cache. But on systems
like SynQuacer, for which 32-bit firmware is available, the current cache
maintenance only pushes the data out to the L3 system cache, where it
is not visible to the CPU once it turns the MMU and caches off.

So instead, switch to the by-VA cache maintenance that the architecture
requires for v7 and later (and ARM1176, as a side effect).

Changes since v1:
- include the EFI patch that was sent out separately before (#1)
- split the preparatory work to pass the region to clean in r0/r1 in a EFI
  specific one and one for the decompressor - this way, the first two patches
  can go on a stable branch that is shared between the ARM tree and the EFI
  tree
- document the meaning of the values in r0/r1 upon entry to cache_clean_flush
- take care to treat the region end address as exclusive
- switch to clean+invalidate to align with the other implementations
- drop some code that manages the stack pointer value before calling 
  cache_clean_flush(), which is no longer necessary
- take care to clean the entire region that is covered by the relocated zImage
  if it needs to relocate itself before decompressing

https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=arm32-efi-cache-ops

Cc: Russell King <linux@armlinux.org.uk>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Nicolas Pitre <nico@fluxnic.net>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Tony Lindgren <tony@atomide.com>

Ard Biesheuvel (4):
  efi/arm: work around missing cache maintenance in decompressor
    handover
  efi/arm: pass start and end addresses to cache_clean_flush()
  ARM: decompressor: prepare cache_clean_flush for doing by-VA
    maintenance
  ARM: decompressor: switch to by-VA cache maintenance for v7 cores

 arch/arm/boot/compressed/head.S | 133 +++++++++++---------
 1 file changed, 74 insertions(+), 59 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 1/4] efi/arm: work around missing cache maintenance in decompressor handover
  2020-02-19  9:43 [PATCH v2 0/4] ARM: decompressor: use by-VA cache maintenance for v7 cores Ard Biesheuvel
@ 2020-02-19  9:43 ` Ard Biesheuvel
  2020-02-19  9:43 ` [PATCH v2 2/4] efi/arm: pass start and end addresses to cache_clean_flush() Ard Biesheuvel
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 11+ messages in thread
From: Ard Biesheuvel @ 2020-02-19  9:43 UTC (permalink / raw)
  To: linux-efi
  Cc: linux-arm-kernel, Ard Biesheuvel, Russell King, Marc Zyngier,
	Nicolas Pitre, Catalin Marinas, Tony Lindgren

The EFI stub executes within the context of the zImage as it was
loaded by the firmware, which means it is treated as an ordinary
PE/COFF executable, which is loaded into memory, and cleaned to
the PoU to ensure that it can be executed safely while the MMU
and caches are on.

When the EFI stub hands over to the decompressor, we clean the caches
by set/way and disable the MMU and D-cache, to comply with the Linux
boot protocol for ARM. However, cache maintenance by set/way is not
sufficient to ensure that subsequent instruction fetches and data
accesses done with the MMU off see the correct data. This means that
proceeding as we do currently is not safe, especially since we also
perform data accesses with the MMU off, from a literal pool as well as
the stack.

So let's kick this can down the road a bit, and jump into the relocated
zImage before disabling the caches. This removes the requirement to
perform any by-VA cache maintenance on the original PE/COFF executable,
but it does require that the relocated zImage is cleaned to the PoC,
which is currently not the case. This will be addressed in a subsequent
patch.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
 arch/arm/boot/compressed/head.S | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 088b0a060876..6c98d3d2de2f 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -1461,6 +1461,19 @@ ENTRY(efi_stub_entry)
 		@ Preserve return value of efi_entry() in r4
 		mov	r4, r0
 		bl	cache_clean_flush
+
+		@ The PE/COFF loader might not have cleaned the code we are
+		@ running beyond the PoU, and so calling cache_off below from
+		@ inside the PE/COFF loader allocated region is unsafe. Let's
+		@ assume our own zImage relocation code did a better job, and
+		@ jump into its version of this routine before proceeding.
+		ldr	r0, [sp]			@ relocated zImage
+		ldr	r1, 0f
+		sub	r1, r0, r1
+		mov	pc, r1				@ no mode switch
+		.align	2
+0:		.long	start - (. + 4)
+
 		bl	cache_off
 
 		@ Set parameters for booting zImage according to boot protocol
@@ -1469,12 +1482,7 @@ ENTRY(efi_stub_entry)
 		mov	r0, #0
 		mov	r1, #0xFFFFFFFF
 		mov	r2, r4
-
-		@ Branch to (possibly) relocated zImage that is in [sp]
-		ldr	lr, [sp]
-		ldr	ip, =start_offset
-		add	lr, lr, ip
-		mov	pc, lr				@ no mode switch
+		b	__efi_start
 
 efi_load_fail:
 		@ Return EFI_LOAD_ERROR to EFI firmware on error.
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 2/4] efi/arm: pass start and end addresses to cache_clean_flush()
  2020-02-19  9:43 [PATCH v2 0/4] ARM: decompressor: use by-VA cache maintenance for v7 cores Ard Biesheuvel
  2020-02-19  9:43 ` [PATCH v2 1/4] efi/arm: work around missing cache maintenance in decompressor handover Ard Biesheuvel
@ 2020-02-19  9:43 ` Ard Biesheuvel
  2020-02-19  9:43 ` [PATCH v2 3/4] ARM: decompressor: prepare cache_clean_flush for doing by-VA maintenance Ard Biesheuvel
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 11+ messages in thread
From: Ard Biesheuvel @ 2020-02-19  9:43 UTC (permalink / raw)
  To: linux-efi
  Cc: linux-arm-kernel, Ard Biesheuvel, Russell King, Marc Zyngier,
	Nicolas Pitre, Catalin Marinas, Tony Lindgren

In preparation for turning the decompressor's cache clean/flush
operations into proper by-VA maintenance for v7 cores, pass the
start and end addresses of the regions that need cache maintenance
into cache_clean_flush in registers r0 and r1.

Currently, all implementations of cache_clean_flush ignore these
values, so no functional change is expected as a result of this
patch.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
 arch/arm/boot/compressed/head.S | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 6c98d3d2de2f..c11b1b0a3ac6 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -1460,6 +1460,13 @@ ENTRY(efi_stub_entry)
 
 		@ Preserve return value of efi_entry() in r4
 		mov	r4, r0
+		add	r1, r4, #SZ_2M			@ DT end
+		bl	cache_clean_flush
+
+		ldr	r0, [sp]			@ relocated zImage
+		adr	r2, __edata
+		ldr	r1, [r2]
+		add	r1, r1, r2			@ end of image
 		bl	cache_clean_flush
 
 		@ The PE/COFF loader might not have cleaned the code we are
@@ -1489,6 +1496,8 @@ efi_load_fail:
 		ldr	r0, =0x80000001
 		ldmfd	sp!, {ip, pc}
 ENDPROC(efi_stub_entry)
+		.align	2
+__edata:	.long	_edata - .
 #endif
 
 		.align
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 3/4] ARM: decompressor: prepare cache_clean_flush for doing by-VA maintenance
  2020-02-19  9:43 [PATCH v2 0/4] ARM: decompressor: use by-VA cache maintenance for v7 cores Ard Biesheuvel
  2020-02-19  9:43 ` [PATCH v2 1/4] efi/arm: work around missing cache maintenance in decompressor handover Ard Biesheuvel
  2020-02-19  9:43 ` [PATCH v2 2/4] efi/arm: pass start and end addresses to cache_clean_flush() Ard Biesheuvel
@ 2020-02-19  9:43 ` Ard Biesheuvel
  2020-02-19  9:43 ` [PATCH v2 4/4] ARM: decompressor: switch to by-VA cache maintenance for v7 cores Ard Biesheuvel
  2020-02-20 18:08 ` [PATCH v2 0/4] ARM: decompressor: use " Ard Biesheuvel
  4 siblings, 0 replies; 11+ messages in thread
From: Ard Biesheuvel @ 2020-02-19  9:43 UTC (permalink / raw)
  To: linux-efi
  Cc: linux-arm-kernel, Ard Biesheuvel, Russell King, Marc Zyngier,
	Nicolas Pitre, Catalin Marinas, Tony Lindgren

In preparation for turning the decompressor's cache clean/flush
operations into proper by-VA maintenance for v7 cores, pass the
start and end addresses of the regions that need cache maintenance
into cache_clean_flush in registers r0 and r1.

Currently, all implementations of cache_clean_flush ignore these
values, so no functional change is expected as a result of this
patch.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
 arch/arm/boot/compressed/head.S | 21 ++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index c11b1b0a3ac6..5060a623e0d7 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -498,6 +498,7 @@ dtb_check_done:
 		bic	r9, r9, #31		@ ... of 32 bytes
 		add	r6, r9, r5
 		add	r9, r9, r10
+		stmdb	sp!, {r9 - r10}		@ preserve target region address
 
 #ifdef DEBUG
 		sub     r10, r6, r5
@@ -521,6 +522,8 @@ dtb_check_done:
 		/* Preserve offset to relocated code. */
 		sub	r6, r9, r6
 
+		ldr	r1, [sp], #4		@ end of target region
+		ldr	r0, [sp], #4		@ start of target region
 #ifndef CONFIG_ZBOOT_ROM
 		/* cache_clean_flush may use the stack, so relocate it */
 		add	sp, sp, r6
@@ -622,6 +625,21 @@ not_relocated:	mov	r0, #0
 		add	r2, sp, #0x10000	@ 64k max
 		mov	r3, r7
 		bl	decompress_kernel
+
+		mov	r0, r4			@ base of inflated image
+		adr	r1, LC0			@ actual LC0
+		ldr	r2, [r1]		@ linktime LC0
+		sub	r2, r1, r2		@ LC0 delta
+		ldr	r1, [r1, #16]		@ link time inflated size offset
+		ldr	r1, [r1, r2]		@ actual inflated size (LE)
+#ifdef __ARMEB__
+		/* convert to big endian */
+		eor	r2, r1, r1, ror #16
+		bic	r2, r2, #0x00ff0000
+		mov	r1, r1, ror #8
+		eor	r1, r1, r2, lsr #8
+#endif
+		add	r1, r1, r0		@ end of inflated image
 		bl	cache_clean_flush
 		bl	cache_off
 
@@ -1173,6 +1191,9 @@ __armv7_mmu_cache_off:
 /*
  * Clean and flush the cache to maintain consistency.
  *
+ * On entry,
+ *  r0 = start address
+ *  r1 = end address (exclusive)
  * On exit,
  *  r1, r2, r3, r9, r10, r11, r12 corrupted
  * This routine must preserve:
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 4/4] ARM: decompressor: switch to by-VA cache maintenance for v7 cores
  2020-02-19  9:43 [PATCH v2 0/4] ARM: decompressor: use by-VA cache maintenance for v7 cores Ard Biesheuvel
                   ` (2 preceding siblings ...)
  2020-02-19  9:43 ` [PATCH v2 3/4] ARM: decompressor: prepare cache_clean_flush for doing by-VA maintenance Ard Biesheuvel
@ 2020-02-19  9:43 ` Ard Biesheuvel
  2020-02-20 18:08 ` [PATCH v2 0/4] ARM: decompressor: use " Ard Biesheuvel
  4 siblings, 0 replies; 11+ messages in thread
From: Ard Biesheuvel @ 2020-02-19  9:43 UTC (permalink / raw)
  To: linux-efi
  Cc: linux-arm-kernel, Ard Biesheuvel, Russell King, Marc Zyngier,
	Nicolas Pitre, Catalin Marinas, Tony Lindgren

Update the v7 cache_clean_flush routine to take into account the
memory range passed in r0/r1, and perform cache maintenance by
virtual address on this range instead of set/way maintenance, which
is inappropriate for the purpose of maintaining the cached state of
memory contents.

Since this removes any use of the stack in the implementation of
cache_clean_flush(), we can also drop some code that manages the
value of the stack pointer before calling it.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
 arch/arm/boot/compressed/head.S | 83 +++++++-------------
 1 file changed, 30 insertions(+), 53 deletions(-)

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 5060a623e0d7..90de5404f402 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -524,11 +524,6 @@ dtb_check_done:
 
 		ldr	r1, [sp], #4		@ end of target region
 		ldr	r0, [sp], #4		@ start of target region
-#ifndef CONFIG_ZBOOT_ROM
-		/* cache_clean_flush may use the stack, so relocate it */
-		add	sp, sp, r6
-#endif
-
 		bl	cache_clean_flush
 
 		badr	r0, restart
@@ -685,6 +680,24 @@ params:		ldr	r0, =0x10000100		@ params_phys for RPC
 		.align
 #endif
 
+/*
+ * dcache_line_size - get the minimum D-cache line size from the CTR register
+ * on ARMv7.
+ */
+	.macro	dcache_line_size, reg, tmp
+#ifdef CONFIG_CPU_V7M
+	movw	\tmp, #:lower16:BASEADDR_V7M_SCB + V7M_SCB_CTR
+	movt	\tmp, #:upper16:BASEADDR_V7M_SCB + V7M_SCB_CTR
+	ldr     \tmp, [\tmp]
+#else
+	mrc	p15, 0, \tmp, c0, c0, 1		@ read ctr
+#endif
+	lsr	\tmp, \tmp, #16
+	and	\tmp, \tmp, #0xf		@ cache line size encoding
+	mov	\reg, #4			@ bytes per word
+	mov	\reg, \reg, lsl \tmp		@ actual cache line size
+	.endm
+
 /*
  * Turn on the cache.  We need to setup some page tables so that we
  * can have both the I and D caches on.
@@ -1177,8 +1190,6 @@ __armv7_mmu_cache_off:
 		bic	r0, r0, #0x000c
 #endif
 		mcr	p15, 0, r0, c1, c0	@ turn MMU and cache off
-		mov	r12, lr
-		bl	__armv7_mmu_cache_flush
 		mov	r0, #0
 #ifdef CONFIG_MMU
 		mcr	p15, 0, r0, c8, c7, 0	@ invalidate whole TLB
@@ -1186,7 +1197,7 @@ __armv7_mmu_cache_off:
 		mcr	p15, 0, r0, c7, c5, 6	@ invalidate BTC
 		mcr	p15, 0, r0, c7, c10, 4	@ DSB
 		mcr	p15, 0, r0, c7, c5, 4	@ ISB
-		mov	pc, r12
+		mov	pc, lr
 
 /*
  * Clean and flush the cache to maintain consistency.
@@ -1202,6 +1213,7 @@ __armv7_mmu_cache_off:
 		.align	5
 cache_clean_flush:
 		mov	r3, #16
+		mov	r11, r1
 		b	call_cache_fn
 
 __armv4_mpu_cache_flush:
@@ -1252,51 +1264,16 @@ __armv7_mmu_cache_flush:
 		mcr	p15, 0, r10, c7, c14, 0	@ clean+invalidate D
 		b	iflush
 hierarchical:
-		mcr	p15, 0, r10, c7, c10, 5	@ DMB
-		stmfd	sp!, {r0-r7, r9-r11}
-		mrc	p15, 1, r0, c0, c0, 1	@ read clidr
-		ands	r3, r0, #0x7000000	@ extract loc from clidr
-		mov	r3, r3, lsr #23		@ left align loc bit field
-		beq	finished		@ if loc is 0, then no need to clean
-		mov	r10, #0			@ start clean at cache level 0
-loop1:
-		add	r2, r10, r10, lsr #1	@ work out 3x current cache level
-		mov	r1, r0, lsr r2		@ extract cache type bits from clidr
-		and	r1, r1, #7		@ mask of the bits for current cache only
-		cmp	r1, #2			@ see what cache we have at this level
-		blt	skip			@ skip if no cache, or just i-cache
-		mcr	p15, 2, r10, c0, c0, 0	@ select current cache level in cssr
-		mcr	p15, 0, r10, c7, c5, 4	@ isb to sych the new cssr&csidr
-		mrc	p15, 1, r1, c0, c0, 0	@ read the new csidr
-		and	r2, r1, #7		@ extract the length of the cache lines
-		add	r2, r2, #4		@ add 4 (line length offset)
-		ldr	r4, =0x3ff
-		ands	r4, r4, r1, lsr #3	@ find maximum number on the way size
-		clz	r5, r4			@ find bit position of way size increment
-		ldr	r7, =0x7fff
-		ands	r7, r7, r1, lsr #13	@ extract max number of the index size
-loop2:
-		mov	r9, r4			@ create working copy of max way size
-loop3:
- ARM(		orr	r11, r10, r9, lsl r5	) @ factor way and cache number into r11
- ARM(		orr	r11, r11, r7, lsl r2	) @ factor index number into r11
- THUMB(		lsl	r6, r9, r5		)
- THUMB(		orr	r11, r10, r6		) @ factor way and cache number into r11
- THUMB(		lsl	r6, r7, r2		)
- THUMB(		orr	r11, r11, r6		) @ factor index number into r11
-		mcr	p15, 0, r11, c7, c14, 2	@ clean & invalidate by set/way
-		subs	r9, r9, #1		@ decrement the way
-		bge	loop3
-		subs	r7, r7, #1		@ decrement the index
-		bge	loop2
-skip:
-		add	r10, r10, #2		@ increment cache number
-		cmp	r3, r10
-		bgt	loop1
-finished:
-		ldmfd	sp!, {r0-r7, r9-r11}
-		mov	r10, #0			@ switch back to cache level 0
-		mcr	p15, 2, r10, c0, c0, 0	@ select current cache level in cssr
+		dcache_line_size r1, r2		@ r1 := dcache min line size
+		sub	r2, r1, #1		@ r2 := line size mask
+		bic	r0, r0, r2		@ round down start to line size
+		sub	r11, r11, #1		@ end address is exclusive
+		bic	r11, r11, r2		@ round down end to line size
+0:		cmp	r0, r11			@ finished?
+		bgt	iflush
+		mcr	p15, 0, r0, c7, c14, 1	@ Dcache clean/invalidate by VA
+		add	r0, r0, r1
+		b	0b
 iflush:
 		mcr	p15, 0, r10, c7, c10, 4	@ DSB
 		mcr	p15, 0, r10, c7, c5, 0	@ invalidate I+BTB
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/4] ARM: decompressor: use by-VA cache maintenance for v7 cores
  2020-02-19  9:43 [PATCH v2 0/4] ARM: decompressor: use by-VA cache maintenance for v7 cores Ard Biesheuvel
                   ` (3 preceding siblings ...)
  2020-02-19  9:43 ` [PATCH v2 4/4] ARM: decompressor: switch to by-VA cache maintenance for v7 cores Ard Biesheuvel
@ 2020-02-20 18:08 ` Ard Biesheuvel
  2020-02-21 13:35   ` Robin Murphy
  4 siblings, 1 reply; 11+ messages in thread
From: Ard Biesheuvel @ 2020-02-20 18:08 UTC (permalink / raw)
  To: linux-efi, Arnd Bergmann
  Cc: linux-arm-kernel, Russell King, Marc Zyngier, Nicolas Pitre,
	Catalin Marinas, Tony Lindgren

(+ Arnd)

On Wed, 19 Feb 2020 at 10:43, Ard Biesheuvel <ardb@kernel.org> wrote:
>
> While making changes to the EFI stub startup code, I noticed that we are
> still doing set/way maintenance on the caches when booting on v7 cores.
> This works today on VMs by virtue of the fact that KVM traps set/way ops
> and cleans the whole address space by VA on behalf of the guest, and on
> most v7 hardware, the set/way ops are in fact sufficient when only one
> core is running, as there usually is no system cache. But on systems
> like SynQuacer, for which 32-bit firmware is available, the current cache
> maintenance only pushes the data out to the L3 system cache, where it
> is not visible to the CPU once it turns the MMU and caches off.
>
> So instead, switch to the by-VA cache maintenance that the architecture
> requires for v7 and later (and ARM1176, as a side effect).
>
> Changes since v1:
> - include the EFI patch that was sent out separately before (#1)
> - split the preparatory work to pass the region to clean in r0/r1 in a EFI
>   specific one and one for the decompressor - this way, the first two patches
>   can go on a stable branch that is shared between the ARM tree and the EFI
>   tree
> - document the meaning of the values in r0/r1 upon entry to cache_clean_flush
> - take care to treat the region end address as exclusive
> - switch to clean+invalidate to align with the other implementations
> - drop some code that manages the stack pointer value before calling
>   cache_clean_flush(), which is no longer necessary
> - take care to clean the entire region that is covered by the relocated zImage
>   if it needs to relocate itself before decompressing
>
> https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=arm32-efi-cache-ops
>

Adding my own data point here: with these patches, I can reproducibly
boot on the SynQuacer platform (24x Cortex-A53 + GICv3 + L3 system
cache) until the point where /init is loaded, after which it hangs
(see below), whereas without them, it always crashes early with weird,
unreproducible errors, if it even makes it far enough through the
decompressor to produce any earlycon output.

There is some other weird stuff going on, but this is unlikely to be
related to cache maintenance:
- multiple occurrences of
   OF: translation of DMA address(0) to CPU address failed node(...)
- /cpus/cpu@0: unsupported enable-method property: psci

Then, there is not enough vmalloc space to map the config space of
both PCIe RCs.

Also, due to the fact that this platform sadly honours the ARM
recommendation on memory maps, it seems there is no way to make useful
use of any memory beyond 2 GB, given that the hole between the lower 2
GB and the upper <30 GB eats up all the lowmem by being covered by the
memmap[] array. (Note that this platform supports up to 64 GB, in
which case another hole of 480 GB is created, so there is no way we
can even boot with that much memory reported to the kernel)


Shell> initrd initrd.gz
Shell> zImage
EFI stub: Booting Linux Kernel...
EFI stub: Using DTB from configuration table
EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
EFI stub: Exiting boot services and installing virtual address map...
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.6.0-rc1-00084-g8602a0ff0200-dirty
(ardbie01@e123331-lin) (gcc version 7.4.0 (Ubuntu/Linaro
7.4.0-1ubuntu1~18.04.1)) #286 SMP Thu Feb 20 17:49:59 CET 2020
[    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=70c5383d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
instruction cache
[    0.000000] OF: fdt: Machine model: Socionext Developer Box
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] efi: EFI v2.70 by EDK II
[    0.000000] efi:  SMBIOS 3.0=0xffa1c000  MEMATTR=0xfd0b4010
ESRT=0xfdfbb910  MEMRESERVE=0xf8f2d010
[    0.000000] OF: fdt: Ignoring memory block 0x880000000 - 0x1000000000
[    0.000000] esrt: Reserving ESRT space from 0x00000000fdfbb910 to
0x00000000fdfbb948.
[    0.000000] cma: Reserved 64 MiB at 0x00000000f9000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.0
[    0.000000] percpu: Embedded 20 pages/cpu s49356 r8192 d24372 u81920
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 522368
[    0.000000] Kernel command line: zImage
[    0.000000] printk: log_buf_len individual max cpu contribution: 4096 bytes
[    0.000000] printk: log_buf_len total cpu_extra contributions: 94208 bytes
[    0.000000] printk: log_buf_len min size: 131072 bytes
[    0.000000] printk: log_buf_len: 262144 bytes
[    0.000000] printk: early log buf free: 128828(98%)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7,
524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144
bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0xaa90c000-0xae90c000] (64MB)
[    0.000000] Memory: 1886672K/2097152K available (10240K kernel
code, 1811K rwdata, 5392K rodata, 2048K init, 414K bss, 144944K
reserved, 65536K cma-reserved, 1233168K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=24, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay
is 10 jiffies.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GICv3: 640 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: no VLPI support, no direct LPI support, no RVPEID support
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000030400000
[    0.000000] ITS [mem 0x30020000-0x3003ffff]
[    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
[    0.000000] ITS@0x0000000030020000: allocated 524288 Devices
@aa400000 (flat, esz 8, psz 64K, shr 0)
[    0.000000] ITS: using cache flushing for cmd queue
[    0.000000] GICv3: using LPI property table @0x00000000aa080000
[    0.000000] GIC: using cache flushing for LPI property table
[    0.000000] GICv3: CPU0: using allocated LPI pending table
@0x00000000aa090000
[    0.000000] random: get_random_bytes called from
start_kernel+0x469/0x5ca with crng_init=0
[    0.000000] arch_timer: cp15 and mmio timer(s) running at 100.00MHz
(virt/phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff
max_cycles: 0x171024e7e0, max_idle_ns: 440795205315 ns
[    0.000004] sched_clock: 56 bits at 100MHz, resolution 10ns, wraps
every 4398046511100ns
[    0.000013] Switching to timer-based delay loop, resolution 10ns
[    0.000890] Console: colour dummy device 80x30
[    0.001344] printk: console [tty0] enabled
[    0.001389] Calibrating delay loop (skipped), value calculated
using timer frequency.. 200.00 BogoMIPS (lpj=1000000)
[    0.001410] pid_max: default: 32768 minimum: 301
[    0.001561] Mount-cache hash table entries: 2048 (order: 1, 8192
bytes, linear)
[    0.001581] Mountpoint-cache hash table entries: 2048 (order: 1,
8192 bytes, linear)
[    0.002112] CPU: Testing write buffer coherency: ok
[    0.002637] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.002926] Setting up static identity map for 0x80400000 - 0x80400160
[    0.003448] rcu: Hierarchical SRCU implementation.
[    0.003601] Platform MSI: gic-its@30020000 domain created
[    0.003669] PCI/MSI:
/interrupt-controller@30000000/gic-its@30020000 domain created
[    0.004751] Remapping and enabling EFI services.
[    0.005305] smp: Bringing up secondary CPUs ...
[    0.005895] GICv3: CPU1: found redistributor 1 region 0:0x0000000030420000
[    0.005919] GICv3: CPU1: using allocated LPI pending table
@0x00000000aa0a0000
[    0.005940] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.011149] GICv3: CPU2: found redistributor 100 region 0:0x0000000030440000
[    0.011179] GICv3: CPU2: using allocated LPI pending table
@0x00000000aa0b0000
[    0.011203] CPU2: thread -1, cpu 0, socket 1, mpidr 80000100
[    0.014242] GICv3: CPU3: found redistributor 101 region 0:0x0000000030460000
[    0.014264] GICv3: CPU3: using allocated LPI pending table
@0x00000000aa0c0000
[    0.014284] CPU3: thread -1, cpu 1, socket 1, mpidr 80000101
[    0.019622] GICv3: CPU4: found redistributor 200 region 0:0x0000000030480000
[    0.019650] GICv3: CPU4: using allocated LPI pending table
@0x00000000aa0d0000
[    0.019675] CPU4: thread -1, cpu 0, socket 2, mpidr 80000200
[    0.022737] GICv3: CPU5: found redistributor 201 region 0:0x00000000304a0000
[    0.022759] GICv3: CPU5: using allocated LPI pending table
@0x00000000aa0e0000
[    0.022777] CPU5: thread -1, cpu 1, socket 2, mpidr 80000201
[    0.028146] GICv3: CPU6: found redistributor 300 region 0:0x00000000304c0000
[    0.028174] GICv3: CPU6: using allocated LPI pending table
@0x00000000aa0f0000
[    0.028196] CPU6: thread -1, cpu 0, socket 3, mpidr 80000300
[    0.031213] GICv3: CPU7: found redistributor 301 region 0:0x00000000304e0000
[    0.031239] GICv3: CPU7: using allocated LPI pending table
@0x00000000aa100000
[    0.031256] CPU7: thread -1, cpu 1, socket 3, mpidr 80000301
[    0.036606] GICv3: CPU8: found redistributor 400 region 0:0x0000000030500000
[    0.036634] GICv3: CPU8: using allocated LPI pending table
@0x00000000aa110000
[    0.036657] CPU8: thread -1, cpu 0, socket 4, mpidr 80000400
[    0.039719] GICv3: CPU9: found redistributor 401 region 0:0x0000000030520000
[    0.039740] GICv3: CPU9: using allocated LPI pending table
@0x00000000aa120000
[    0.039757] CPU9: thread -1, cpu 1, socket 4, mpidr 80000401
[    0.045156] GICv3: CPU10: found redistributor 500 region 0:0x0000000030540000
[    0.045187] GICv3: CPU10: using allocated LPI pending table
@0x00000000aa130000
[    0.045210] CPU10: thread -1, cpu 0, socket 5, mpidr 80000500
[    0.048241] GICv3: CPU11: found redistributor 501 region 0:0x0000000030560000
[    0.048263] GICv3: CPU11: using allocated LPI pending table
@0x00000000aa140000
[    0.048282] CPU11: thread -1, cpu 1, socket 5, mpidr 80000501
[    0.053651] GICv3: CPU12: found redistributor 600 region 0:0x0000000030580000
[    0.053681] GICv3: CPU12: using allocated LPI pending table
@0x00000000aa150000
[    0.053706] CPU12: thread -1, cpu 0, socket 6, mpidr 80000600
[    0.056742] GICv3: CPU13: found redistributor 601 region 0:0x00000000305a0000
[    0.056765] GICv3: CPU13: using allocated LPI pending table
@0x00000000aa160000
[    0.056785] CPU13: thread -1, cpu 1, socket 6, mpidr 80000601
[    0.062113] GICv3: CPU14: found redistributor 700 region 0:0x00000000305c0000
[    0.062144] GICv3: CPU14: using allocated LPI pending table
@0x00000000aa170000
[    0.062166] CPU14: thread -1, cpu 0, socket 7, mpidr 80000700
[    0.065238] GICv3: CPU15: found redistributor 701 region 0:0x00000000305e0000
[    0.065263] GICv3: CPU15: using allocated LPI pending table
@0x00000000aa180000
[    0.065282] CPU15: thread -1, cpu 1, socket 7, mpidr 80000701
[    0.070661] GICv3: CPU16: found redistributor 800 region 0:0x0000000030600000
[    0.070691] GICv3: CPU16: using allocated LPI pending table
@0x00000000aa190000
[    0.070716] CPU16: thread -1, cpu 0, socket 8, mpidr 80000800
[    0.073748] GICv3: CPU17: found redistributor 801 region 0:0x0000000030620000
[    0.073774] GICv3: CPU17: using allocated LPI pending table
@0x00000000aa1a0000
[    0.073794] CPU17: thread -1, cpu 1, socket 8, mpidr 80000801
[    0.079132] GICv3: CPU18: found redistributor 900 region 0:0x0000000030640000
[    0.079163] GICv3: CPU18: using allocated LPI pending table
@0x00000000aa1b0000
[    0.079187] CPU18: thread -1, cpu 0, socket 9, mpidr 80000900
[    0.082216] GICv3: CPU19: found redistributor 901 region 0:0x0000000030660000
[    0.082239] GICv3: CPU19: using allocated LPI pending table
@0x00000000aa1c0000
[    0.082257] CPU19: thread -1, cpu 1, socket 9, mpidr 80000901
[    0.087755] GICv3: CPU20: found redistributor a00 region 0:0x0000000030680000
[    0.087788] GICv3: CPU20: using allocated LPI pending table
@0x00000000aa1d0000
[    0.087811] CPU20: thread -1, cpu 0, socket 10, mpidr 80000a00
[    0.090897] GICv3: CPU21: found redistributor a01 region 0:0x00000000306a0000
[    0.090922] GICv3: CPU21: using allocated LPI pending table
@0x00000000aa1e0000
[    0.090939] CPU21: thread -1, cpu 1, socket 10, mpidr 80000a01
[    0.096296] GICv3: CPU22: found redistributor b00 region 0:0x00000000306c0000
[    0.096329] GICv3: CPU22: using allocated LPI pending table
@0x00000000aa1f0000
[    0.096353] CPU22: thread -1, cpu 0, socket 11, mpidr 80000b00
[    0.099356] GICv3: CPU23: found redistributor b01 region 0:0x00000000306e0000
[    0.099381] GICv3: CPU23: using allocated LPI pending table
@0x00000000aa200000
[    0.099400] CPU23: thread -1, cpu 1, socket 11, mpidr 80000b01
[    0.099506] smp: Brought up 1 node, 24 CPUs
[    0.100163] SMP: Total of 24 processors activated (4800.00 BogoMIPS).
[    0.100175] CPU: All CPU(s) started in SVC mode.
[    0.101193] devtmpfs: initialized
[    0.103698] VFP support v0.3: implementor 41 architecture 3 part 40
variant 3 rev 4
[    0.103980] clocksource: jiffies: mask: 0xffffffff max_cycles:
0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.104009] futex hash table entries: 8192 (order: 7, 524288 bytes, linear)
[    0.106670] pinctrl core: initialized pinctrl subsystem
[    0.107566] thermal_sys: Registered thermal governor 'step_wise'
[    0.107754] SMBIOS 3.3.0 present.
[    0.107788] DMI: Socionext SynQuacer E-series DeveloperBox, BIOS
build #1 Feb 20 2020
[    0.108185] NET: Registered protocol family 16
[    0.109556] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.110957] cpuidle: using governor menu
[    0.111063] No ATAGs?
[    0.111467] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4
watchpoint registers.
[    0.111490] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.112874] Serial: AMBA PL011 UART driver
[    0.114349] OF: translation of DMA address(0) to CPU address failed
node(/uart@2a400000)
[    0.114421] 2a400000.uart: ttyAMA0 at MMIO 0x2a400000 (irq = 22,
base_baud = 0) is a PL011 rev3
[    1.117194] printk: console [ttyAMA0] enabled
[    1.135592] AT91: Could not find identification node
[    1.136261] iommu: Default domain type: Translated
[    1.146225] vgaarb: loaded
[    1.149407] SCSI subsystem initialized
[    1.153506] usbcore: registered new interface driver usbfs
[    1.159042] usbcore: registered new interface driver hub
[    1.164477] usbcore: registered new device driver usb
[    1.169950] pps_core: LinuxPPS API ver. 1 registered
[    1.174911] pps_core: Software ver. 5.3.6 - Copyright 2005-2007
Rodolfo Giometti <giometti@linux.it>
[    1.184062] PTP clock support registered
[    1.188042] EDAC MC: Ver: 3.0.0
[    1.191660] Registered efivars operations
[    1.196838] clocksource: Switched to clocksource arch_sys_counter
[    2.103835] NET: Registered protocol family 2
[    2.108658] tcp_listen_portaddr_hash hash table entries: 512
(order: 0, 6144 bytes, linear)
[    2.117044] TCP established hash table entries: 8192 (order: 3,
32768 bytes, linear)
[    2.124854] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    2.132103] TCP: Hash tables configured (established 8192 bind 8192)
[    2.138585] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    2.145223] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    2.152446] NET: Registered protocol family 1
[    2.157108] RPC: Registered named UNIX socket transport module.
[    2.163026] RPC: Registered udp transport module.
[    2.167746] RPC: Registered tcp transport module.
[    2.172445] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    2.178897] PCI: CLS 0 bytes, default 64
[    2.183052] Trying to unpack rootfs image as initramfs...
[    3.413006] Freeing initrd memory: 22816K
[    3.418665] Initialise system trusted keyrings
[    3.423276] workingset: timestamp_bits=30 max_order=19 bucket_order=0
[    3.434628] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    3.441097] NFS: Registering the id_resolver key type
[    3.446175] Key type id_resolver registered
[    3.450375] Key type id_legacy registered
[    3.454388] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    3.461111] ntfs: driver 2.1.32 [Flags: R/O].
[    3.465747] Key type asymmetric registered
[    3.469857] Asymmetric key parser 'x509' registered
[    3.474765] bounce: pool size: 64 pages
[    3.478629] Block layer SCSI generic (bsg) driver version 0.4
loaded (major 247)
[    3.486027] io scheduler mq-deadline registered
[    3.490564] io scheduler kyber registered
[    3.500170] OF: translation of DMA address(0) to CPU address failed
node(/pcie@60000000)
[    3.508318] pci-host-generic 60000000.pcie: host bridge
/pcie@60000000 ranges:
[    3.515556] pci-host-generic 60000000.pcie:       IO
0x0067f00000..0x0067f0ffff -> 0x0000000000
[    3.524276] pci-host-generic 60000000.pcie:      MEM
0x0068000000..0x006fffffff -> 0x0068000000
[    3.532987] pci-host-generic 60000000.pcie:      MEM
0x3e00000000..0x3effffffff -> 0x3e00000000
[    3.543045] pci-host-generic 60000000.pcie: ECAM at [mem
0x60000000-0x67efffff] for [bus 00-7e]
[    3.551873] pci-host-generic 60000000.pcie: PCI host bridge to bus 0000:00
[    3.558764] pci_bus 0000:00: root bus resource [bus 00-7e]
[    3.564250] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    3.570438] pci_bus 0000:00: root bus resource [mem 0x68000000-0x6fffffff]
[    3.577322] pci_bus 0000:00: root bus resource [mem
0x3e00000000-0x3effffffff]
[    3.584574] pci 0000:00:00.0: [1b21:1184] type 01 class 0x060400
[    3.590646] pci 0000:00:00.0: enabling Extended Tags
[    3.595677] pci 0000:00:00.0: PME# supported from D0 D3hot D3cold
[    3.602874] PCI: bus0: Fast back to back transfers disabled
[    3.608585] pci 0000:01:01.0: [1b21:1184] type 01 class 0x060400
[    3.614645] pci 0000:01:01.0: enabling Extended Tags
[    3.619672] pci 0000:01:01.0: PME# supported from D0 D3hot D3cold
[    3.625969] pci 0000:01:03.0: [1b21:1184] type 01 class 0x060400
[    3.632040] pci 0000:01:03.0: enabling Extended Tags
[    3.637066] pci 0000:01:03.0: PME# supported from D0 D3hot D3cold
[    3.643363] pci 0000:01:05.0: [1b21:1184] type 01 class 0x060400
[    3.649431] pci 0000:01:05.0: enabling Extended Tags
[    3.654449] pci 0000:01:05.0: PME# supported from D0 D3hot D3cold
[    3.660753] pci 0000:01:07.0: [1b21:1184] type 01 class 0x060400
[    3.666822] pci 0000:01:07.0: enabling Extended Tags
[    3.671844] pci 0000:01:07.0: PME# supported from D0 D3hot D3cold
[    3.678832] PCI: bus1: Fast back to back transfers disabled
[    3.684517] pci 0000:02:00.0: [1b21:0612] type 00 class 0x010601
[    3.690564] pci 0000:02:00.0: reg 0x10: [io  0x0028-0x002f]
[    3.696147] pci 0000:02:00.0: reg 0x14: [io  0x0034-0x0037]
[    3.701738] pci 0000:02:00.0: reg 0x18: [io  0x0020-0x0027]
[    3.707329] pci 0000:02:00.0: reg 0x1c: [io  0x0030-0x0033]
[    3.712912] pci 0000:02:00.0: reg 0x20: [io  0x0000-0x001f]
[    3.718503] pci 0000:02:00.0: reg 0x24: [mem 0x68100000-0x681001ff]
[    3.724781] pci 0000:02:00.0: reg 0x30: [mem 0xffff0000-0xffffffff pref]
[    3.732590] PCI: bus2: Fast back to back transfers disabled
[    3.738174] pci_bus 0000:02: busn_res: [bus 02-7e] end is updated to 02
[    3.745751] PCI: bus3: Fast back to back transfers enabled
[    3.751247] pci_bus 0000:03: busn_res: [bus 03-7e] end is updated to 03
[    3.757969] pci 0000:04:00.0: [1912:0014] type 00 class 0x0c0330
[    3.764012] pci 0000:04:00.0: reg 0x10: [mem 0x68000000-0x68001fff 64bit]
[    3.770943] pci 0000:04:00.0: PME# supported from D0 D3hot D3cold
[    3.807778] PCI: bus4: Fast back to back transfers disabled
[    3.813353] pci_bus 0000:04: busn_res: [bus 04-7e] end is updated to 04
[    3.820943] PCI: bus5: Fast back to back transfers enabled
[    3.826430] pci_bus 0000:05: busn_res: [bus 05-7e] end is updated to 05
[    3.833058] pci_bus 0000:01: busn_res: [bus 01-7e] end is updated to 05
[    3.839709] pci 0000:00:00.0: BAR 8: assigned [mem 0x68000000-0x681fffff]
[    3.846498] pci 0000:00:00.0: BAR 7: assigned [io  0x1000-0x1fff]
[    3.852603] pci 0000:01:01.0: BAR 8: assigned [mem 0x68000000-0x680fffff]
[    3.859402] pci 0000:01:05.0: BAR 8: assigned [mem 0x68100000-0x681fffff]
[    3.866190] pci 0000:01:01.0: BAR 7: assigned [io  0x1000-0x1fff]
[    3.872294] pci 0000:02:00.0: BAR 6: assigned [mem
0x68000000-0x6800ffff pref]
[    3.879529] pci 0000:02:00.0: BAR 5: assigned [mem 0x68010000-0x680101ff]
[    3.886321] pci 0000:02:00.0: BAR 4: assigned [io  0x1000-0x101f]
[    3.892425] pci 0000:02:00.0: BAR 0: assigned [io  0x1020-0x1027]
[    3.898529] pci 0000:02:00.0: BAR 2: assigned [io  0x1028-0x102f]
[    3.904627] pci 0000:02:00.0: BAR 1: assigned [io  0x1030-0x1033]
[    3.910730] pci 0000:02:00.0: BAR 3: assigned [io  0x1034-0x1037]
[    3.916834] pci 0000:01:01.0: PCI bridge to [bus 02]
[    3.921799] pci 0000:01:01.0:   bridge window [io  0x1000-0x1fff]
[    3.927903] pci 0000:01:01.0:   bridge window [mem 0x68000000-0x680fffff]
[    3.934697] pci 0000:01:03.0: PCI bridge to [bus 03]
[    3.939682] pci 0000:04:00.0: BAR 0: assigned [mem
0x68100000-0x68101fff 64bit]
[    3.947012] pci 0000:01:05.0: PCI bridge to [bus 04]
[    3.951979] pci 0000:01:05.0:   bridge window [mem 0x68100000-0x681fffff]
[    3.958780] pci 0000:01:07.0: PCI bridge to [bus 05]
[    3.963754] pci 0000:00:00.0: PCI bridge to [bus 01-05]
[    3.968985] pci 0000:00:00.0:   bridge window [io  0x1000-0x1fff]
[    3.975081] pci 0000:00:00.0:   bridge window [mem 0x68000000-0x681fffff]
[    3.981914] OF: translation of DMA address(0) to CPU address failed
node(/pcie@60000000)
[    3.990313] OF: translation of DMA address(0) to CPU address failed
node(/pcie@60000000)
[    3.998662] OF: translation of DMA address(0) to CPU address failed
node(/pcie@60000000)
[    4.007005] OF: translation of DMA address(0) to CPU address failed
node(/pcie@60000000)
[    4.015339] OF: translation of DMA address(0) to CPU address failed
node(/pcie@60000000)
[    4.023694] pci 0000:04:00.0: enabling device (0140 -> 0142)
[    4.029447] OF: translation of DMA address(0) to CPU address failed
node(/pcie@70000000)
[    4.037570] pci-host-generic 70000000.pcie: host bridge
/pcie@70000000 ranges:
[    4.044805] pci-host-generic 70000000.pcie:       IO
0x0077f00000..0x0077f0ffff -> 0x0000000000
[    4.053523] pci-host-generic 70000000.pcie:      MEM
0x0078000000..0x007fffffff -> 0x0078000000
[    4.062236] pci-host-generic 70000000.pcie:      MEM
0x3f00000000..0x3fffffffff -> 0x3f00000000
[    4.071308] vmap allocation for size 1052672 failed: use
vmalloc=<size> to increase size
[    4.079411] pci-host-generic 70000000.pcie: ECAM ioremap failed
[    4.085525] pci-host-generic: probe of 70000000.pcie failed with error -12
[    4.126494] Serial: 8250/16550 driver, 5 ports, IRQ sharing enabled
[    4.134170] OF: translation of DMA address(0) to CPU address failed
node(/uart@51040000)
[    4.142748] 51040000.uart: ttyS1 at MMIO 0x51040000 (irq = 23,
base_baud = 3906250) is a 16550A
[    4.152099] SuperH (H)SCI(F) driver initialized
[    4.156953] msm_serial: driver initialized
[    4.161103] STMicroelectronics ASC driver initialized
[    4.166594] STM32 USART driver initialized
[    4.178363] brd: module loaded
[    4.192943] loop: module loaded
[    4.197009] OF: translation of DMA address(0) to CPU address failed
node(/pcie@60000000)
[    4.205330] ahci 0000:02:00.0: SSS flag set, parallel bus scan disabled
[    4.212015] ahci 0000:02:00.0: AHCI 0001.0200 32 slots 2 ports 6
Gbps 0x3 impl SATA mode
[    4.220122] ahci 0000:02:00.0: flags: 64bit ncq sntf stag led clo
pmp pio slum part ccc sxs
[    4.229431] scsi host0: ahci
[    4.232675] scsi host1: ahci
[    4.235694] ata1: SATA max UDMA/133 abar m512@0x68010000 port
0x68010100 irq 35
[    4.243033] ata2: SATA max UDMA/133 abar m512@0x68010000 port
0x68010180 irq 35
[    4.253906] libphy: Fixed MDIO Bus: probed
[    4.258796] CAN device driver interface
[    4.262933] bgmac_bcma: Broadcom 47xx GBit MAC driver loaded
[    4.268942] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[    4.274772] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    4.280739] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.6.0-k
[    4.287707] igb: Copyright (c) 2007-2014 Intel Corporation.
[    4.294603] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB
Ethernet driver
[    4.302042] usbcore: registered new interface driver pegasus
[    4.307736] usbcore: registered new interface driver asix
[    4.313150] usbcore: registered new interface driver ax88179_178a
[    4.319267] usbcore: registered new interface driver cdc_ether
[    4.325122] usbcore: registered new interface driver smsc75xx
[    4.330901] usbcore: registered new interface driver smsc95xx
[    4.336663] usbcore: registered new interface driver net1080
[    4.342350] usbcore: registered new interface driver cdc_subset
[    4.348295] usbcore: registered new interface driver zaurus
[    4.353894] usbcore: registered new interface driver cdc_ncm
[    4.360347] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.366891] ehci-pci: EHCI PCI platform driver
[    4.371359] ehci-platform: EHCI generic platform driver
[    4.376646] ehci-orion: EHCI orion driver
[    4.380714] SPEAr-ehci: EHCI SPEAr driver
[    4.384767] ehci-st: EHCI STMicroelectronics driver
[    4.389704] ehci-exynos: EHCI Exynos driver
[    4.393931] ehci-atmel: EHCI Atmel driver
[    4.397991] tegra-ehci: Tegra EHCI driver
[    4.402048] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    4.408245] ohci-pci: OHCI PCI platform driver
[    4.412714] ohci-platform: OHCI generic platform driver
[    4.418003] SPEAr-ohci: OHCI SPEAr driver
[    4.422057] ohci-st: OHCI STMicroelectronics driver
[    4.426995] ohci-atmel: OHCI Atmel driver
[    4.431085] OF: translation of DMA address(0) to CPU address failed
node(/pcie@60000000)
[    4.439259] xhci_hcd 0000:04:00.0: xHCI Host Controller
[    4.444497] xhci_hcd 0000:04:00.0: new USB bus registered, assigned
bus number 1
[    4.457324] xhci_hcd 0000:04:00.0: hcc params 0x014051cf hci
version 0x100 quirks 0x0000000100000410
[    4.467671] hub 1-0:1.0: USB hub found
[    4.471449] hub 1-0:1.0: 4 ports detected
[    4.475927] xhci_hcd 0000:04:00.0: xHCI Host Controller
[    4.481175] xhci_hcd 0000:04:00.0: new USB bus registered, assigned
bus number 2
[    4.488585] xhci_hcd 0000:04:00.0: Host supports USB 3.0 SuperSpeed
[    4.494924] usb usb2: We don't know the algorithms for LPM for this
host, disabling LPM.
[    4.503372] hub 2-0:1.0: USB hub found
[    4.507155] hub 2-0:1.0: 4 ports detected
[    4.511847] usbcore: registered new interface driver usb-storage
[    4.519900] i2c /dev entries driver
[    4.528493] /cpus/cpu@0: unsupported enable-method property: psci
[    4.537114] sdhci: Secure Digital Host Controller Interface driver
[    4.543297] sdhci: Copyright(c) Pierre Ossman
[    4.548328] Synopsys Designware Multimedia Card Interface Driver
[    4.554829] sdhci-pltfm: SDHCI platform and OF driver helper
[    4.562104] ledtrig-cpu: registered to indicate activity on CPUs
[    4.568594] usbcore: registered new interface driver usbhid
[    4.574168] usbhid: USB HID core driver
[    4.579546] drop_monitor: Initializing network drop monitor service
[    4.586552] NET: Registered protocol family 10
[    4.591887] Segment Routing with IPv6
[    4.595614] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    4.602085] NET: Registered protocol family 17
[    4.606537] can: controller area network core (rev 20170425 abi 9)
[    4.612780] NET: Registered protocol family 29
[    4.617248] can: raw protocol (rev 20170425)
[    4.621524] can: broadcast manager protocol (rev 20170425 t)
[    4.627198] can: netlink gateway (rev 20190810) max_hops=1
[    4.632967] Key type dns_resolver registered
[    4.637328] Registering SWP/SWPB emulation handler
[    4.642410] Loading compiled-in X.509 certificates
[    4.688987] OF: translation of DMA address(0) to CPU address failed
node(/gpio-keys)
[    4.696780] irq: no irq domain found for interrupt-controller@510c0000 !
[    4.703556] gpio-keys gpio-keys: Found button without gpio or irq
[    4.709673] gpio-keys: probe of gpio-keys failed with error -22
[    4.715621] hctosys: unable to open rtc device (rtc0)
[    4.721044] uart-pl011 2a400000.uart: no DMA platform data
[    4.746912] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    4.754022] ata1.00: ATA-10: WDC WD10EZEX-22MFCA0, 01.01A01, max UDMA/133
[    4.760826] ata1.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 32), AA
[    4.768960] ata1.00: configured for UDMA/133
[    4.773637] scsi 0:0:0:0: Direct-Access     ATA      WDC
WD10EZEX-22M 1A01 PQ: 0 ANSI: 5
[    4.782675] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks:
(1.00 TB/932 GiB)
[    4.790362] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    4.795635] sd 0:0:0:0: [sda] Write Protect is off
[    4.800505] sd 0:0:0:0: [sda] Write cache: enabled, read cache:
enabled, doesn't support DPO or FUA
[    4.846916] usb 1-3: new high-speed USB device number 2 using xhci_hcd
[    4.865348]  sda: sda1 sda2 sda3 sda4
[    4.871475] sd 0:0:0:0: [sda] Attached SCSI disk
[    4.887962] usb-storage 1-3:1.0: USB Mass Storage device detected
[    4.894715] scsi host2: usb-storage 1-3:1.0
[    5.109059] ata2: SATA link down (SStatus 0 SControl 300)
[    5.117814] Freeing unused kernel memory: 2048K
[    5.122861] Run /init as init process

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/4] ARM: decompressor: use by-VA cache maintenance for v7 cores
  2020-02-20 18:08 ` [PATCH v2 0/4] ARM: decompressor: use " Ard Biesheuvel
@ 2020-02-21 13:35   ` Robin Murphy
  2020-02-21 13:42     ` Ard Biesheuvel
  0 siblings, 1 reply; 11+ messages in thread
From: Robin Murphy @ 2020-02-21 13:35 UTC (permalink / raw)
  To: Ard Biesheuvel, linux-efi, Arnd Bergmann
  Cc: Nicolas Pitre, Tony Lindgren, Marc Zyngier, Russell King,
	Catalin Marinas, linux-arm-kernel

On 20/02/2020 6:08 pm, Ard Biesheuvel wrote:
> (+ Arnd)
> 
> On Wed, 19 Feb 2020 at 10:43, Ard Biesheuvel <ardb@kernel.org> wrote:
>>
>> While making changes to the EFI stub startup code, I noticed that we are
>> still doing set/way maintenance on the caches when booting on v7 cores.
>> This works today on VMs by virtue of the fact that KVM traps set/way ops
>> and cleans the whole address space by VA on behalf of the guest, and on
>> most v7 hardware, the set/way ops are in fact sufficient when only one
>> core is running, as there usually is no system cache. But on systems
>> like SynQuacer, for which 32-bit firmware is available, the current cache
>> maintenance only pushes the data out to the L3 system cache, where it
>> is not visible to the CPU once it turns the MMU and caches off.
>>
>> So instead, switch to the by-VA cache maintenance that the architecture
>> requires for v7 and later (and ARM1176, as a side effect).
>>
>> Changes since v1:
>> - include the EFI patch that was sent out separately before (#1)
>> - split the preparatory work to pass the region to clean in r0/r1 in a EFI
>>    specific one and one for the decompressor - this way, the first two patches
>>    can go on a stable branch that is shared between the ARM tree and the EFI
>>    tree
>> - document the meaning of the values in r0/r1 upon entry to cache_clean_flush
>> - take care to treat the region end address as exclusive
>> - switch to clean+invalidate to align with the other implementations
>> - drop some code that manages the stack pointer value before calling
>>    cache_clean_flush(), which is no longer necessary
>> - take care to clean the entire region that is covered by the relocated zImage
>>    if it needs to relocate itself before decompressing
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=arm32-efi-cache-ops
>>
> 
> Adding my own data point here: with these patches, I can reproducibly
> boot on the SynQuacer platform (24x Cortex-A53 + GICv3 + L3 system
> cache) until the point where /init is loaded, after which it hangs
> (see below), whereas without them, it always crashes early with weird,
> unreproducible errors, if it even makes it far enough through the
> decompressor to produce any earlycon output.
> 
> There is some other weird stuff going on, but this is unlikely to be
> related to cache maintenance:
> - multiple occurrences of
>     OF: translation of DMA address(0) to CPU address failed node(...)

FWIW that implies a "dma-ranges" property in the wrong place in the DT - 
if you copied the now-gone Juno example of placing one directly in the 
root node, that was bogus, sorry.

> - /cpus/cpu@0: unsupported enable-method property: psci

Missing CONFIG_ARM_PSCI_CPUIDLE? That's caught me out on more than one 
occasion since 5.4.

Robin.

> Then, there is not enough vmalloc space to map the config space of
> both PCIe RCs.
> 
> Also, due to the fact that this platform sadly honours the ARM
> recommendation on memory maps, it seems there is no way to make useful
> use of any memory beyond 2 GB, given that the hole between the lower 2
> GB and the upper <30 GB eats up all the lowmem by being covered by the
> memmap[] array. (Note that this platform supports up to 64 GB, in
> which case another hole of 480 GB is created, so there is no way we
> can even boot with that much memory reported to the kernel)
> 
> 
> Shell> initrd initrd.gz
> Shell> zImage
> EFI stub: Booting Linux Kernel...
> EFI stub: Using DTB from configuration table
> EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
> EFI stub: Exiting boot services and installing virtual address map...
> [    0.000000] Booting Linux on physical CPU 0x0
> [    0.000000] Linux version 5.6.0-rc1-00084-g8602a0ff0200-dirty
> (ardbie01@e123331-lin) (gcc version 7.4.0 (Ubuntu/Linaro
> 7.4.0-1ubuntu1~18.04.1)) #286 SMP Thu Feb 20 17:49:59 CET 2020
> [    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=70c5383d
> [    0.000000] CPU: div instructions available: patching division code
> [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
> instruction cache
> [    0.000000] OF: fdt: Machine model: Socionext Developer Box
> [    0.000000] Memory policy: Data cache writealloc
> [    0.000000] efi: EFI v2.70 by EDK II
> [    0.000000] efi:  SMBIOS 3.0=0xffa1c000  MEMATTR=0xfd0b4010
> ESRT=0xfdfbb910  MEMRESERVE=0xf8f2d010
> [    0.000000] OF: fdt: Ignoring memory block 0x880000000 - 0x1000000000
> [    0.000000] esrt: Reserving ESRT space from 0x00000000fdfbb910 to
> 0x00000000fdfbb948.
> [    0.000000] cma: Reserved 64 MiB at 0x00000000f9000000
> [    0.000000] psci: probing for conduit method from DT.
> [    0.000000] psci: PSCIv1.1 detected in firmware.
> [    0.000000] psci: Using standard PSCI v0.2 function IDs
> [    0.000000] psci: MIGRATE_INFO_TYPE not supported.
> [    0.000000] psci: SMC Calling Convention v1.0
> [    0.000000] percpu: Embedded 20 pages/cpu s49356 r8192 d24372 u81920
> [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 522368
> [    0.000000] Kernel command line: zImage
> [    0.000000] printk: log_buf_len individual max cpu contribution: 4096 bytes
> [    0.000000] printk: log_buf_len total cpu_extra contributions: 94208 bytes
> [    0.000000] printk: log_buf_len min size: 131072 bytes
> [    0.000000] printk: log_buf_len: 262144 bytes
> [    0.000000] printk: early log buf free: 128828(98%)
> [    0.000000] Dentry cache hash table entries: 131072 (order: 7,
> 524288 bytes, linear)
> [    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144
> bytes, linear)
> [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
> [    0.000000] software IO TLB: mapped [mem 0xaa90c000-0xae90c000] (64MB)
> [    0.000000] Memory: 1886672K/2097152K available (10240K kernel
> code, 1811K rwdata, 5392K rodata, 2048K init, 414K bss, 144944K
> reserved, 65536K cma-reserved, 1233168K highmem)
> [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=24, Nodes=1
> [    0.000000] rcu: Hierarchical RCU implementation.
> [    0.000000] rcu:     RCU event tracing is enabled.
> [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay
> is 10 jiffies.
> [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
> [    0.000000] GICv3: 640 SPIs implemented
> [    0.000000] GICv3: 0 Extended SPIs implemented
> [    0.000000] GICv3: Distributor has no Range Selector support
> [    0.000000] GICv3: 16 PPIs implemented
> [    0.000000] GICv3: no VLPI support, no direct LPI support, no RVPEID support
> [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000030400000
> [    0.000000] ITS [mem 0x30020000-0x3003ffff]
> [    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
> [    0.000000] ITS@0x0000000030020000: allocated 524288 Devices
> @aa400000 (flat, esz 8, psz 64K, shr 0)
> [    0.000000] ITS: using cache flushing for cmd queue
> [    0.000000] GICv3: using LPI property table @0x00000000aa080000
> [    0.000000] GIC: using cache flushing for LPI property table
> [    0.000000] GICv3: CPU0: using allocated LPI pending table
> @0x00000000aa090000
> [    0.000000] random: get_random_bytes called from
> start_kernel+0x469/0x5ca with crng_init=0
> [    0.000000] arch_timer: cp15 and mmio timer(s) running at 100.00MHz
> (virt/phys).
> [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff
> max_cycles: 0x171024e7e0, max_idle_ns: 440795205315 ns
> [    0.000004] sched_clock: 56 bits at 100MHz, resolution 10ns, wraps
> every 4398046511100ns
> [    0.000013] Switching to timer-based delay loop, resolution 10ns
> [    0.000890] Console: colour dummy device 80x30
> [    0.001344] printk: console [tty0] enabled
> [    0.001389] Calibrating delay loop (skipped), value calculated
> using timer frequency.. 200.00 BogoMIPS (lpj=1000000)
> [    0.001410] pid_max: default: 32768 minimum: 301
> [    0.001561] Mount-cache hash table entries: 2048 (order: 1, 8192
> bytes, linear)
> [    0.001581] Mountpoint-cache hash table entries: 2048 (order: 1,
> 8192 bytes, linear)
> [    0.002112] CPU: Testing write buffer coherency: ok
> [    0.002637] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
> [    0.002926] Setting up static identity map for 0x80400000 - 0x80400160
> [    0.003448] rcu: Hierarchical SRCU implementation.
> [    0.003601] Platform MSI: gic-its@30020000 domain created
> [    0.003669] PCI/MSI:
> /interrupt-controller@30000000/gic-its@30020000 domain created
> [    0.004751] Remapping and enabling EFI services.
> [    0.005305] smp: Bringing up secondary CPUs ...
> [    0.005895] GICv3: CPU1: found redistributor 1 region 0:0x0000000030420000
> [    0.005919] GICv3: CPU1: using allocated LPI pending table
> @0x00000000aa0a0000
> [    0.005940] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
> [    0.011149] GICv3: CPU2: found redistributor 100 region 0:0x0000000030440000
> [    0.011179] GICv3: CPU2: using allocated LPI pending table
> @0x00000000aa0b0000
> [    0.011203] CPU2: thread -1, cpu 0, socket 1, mpidr 80000100
> [    0.014242] GICv3: CPU3: found redistributor 101 region 0:0x0000000030460000
> [    0.014264] GICv3: CPU3: using allocated LPI pending table
> @0x00000000aa0c0000
> [    0.014284] CPU3: thread -1, cpu 1, socket 1, mpidr 80000101
> [    0.019622] GICv3: CPU4: found redistributor 200 region 0:0x0000000030480000
> [    0.019650] GICv3: CPU4: using allocated LPI pending table
> @0x00000000aa0d0000
> [    0.019675] CPU4: thread -1, cpu 0, socket 2, mpidr 80000200
> [    0.022737] GICv3: CPU5: found redistributor 201 region 0:0x00000000304a0000
> [    0.022759] GICv3: CPU5: using allocated LPI pending table
> @0x00000000aa0e0000
> [    0.022777] CPU5: thread -1, cpu 1, socket 2, mpidr 80000201
> [    0.028146] GICv3: CPU6: found redistributor 300 region 0:0x00000000304c0000
> [    0.028174] GICv3: CPU6: using allocated LPI pending table
> @0x00000000aa0f0000
> [    0.028196] CPU6: thread -1, cpu 0, socket 3, mpidr 80000300
> [    0.031213] GICv3: CPU7: found redistributor 301 region 0:0x00000000304e0000
> [    0.031239] GICv3: CPU7: using allocated LPI pending table
> @0x00000000aa100000
> [    0.031256] CPU7: thread -1, cpu 1, socket 3, mpidr 80000301
> [    0.036606] GICv3: CPU8: found redistributor 400 region 0:0x0000000030500000
> [    0.036634] GICv3: CPU8: using allocated LPI pending table
> @0x00000000aa110000
> [    0.036657] CPU8: thread -1, cpu 0, socket 4, mpidr 80000400
> [    0.039719] GICv3: CPU9: found redistributor 401 region 0:0x0000000030520000
> [    0.039740] GICv3: CPU9: using allocated LPI pending table
> @0x00000000aa120000
> [    0.039757] CPU9: thread -1, cpu 1, socket 4, mpidr 80000401
> [    0.045156] GICv3: CPU10: found redistributor 500 region 0:0x0000000030540000
> [    0.045187] GICv3: CPU10: using allocated LPI pending table
> @0x00000000aa130000
> [    0.045210] CPU10: thread -1, cpu 0, socket 5, mpidr 80000500
> [    0.048241] GICv3: CPU11: found redistributor 501 region 0:0x0000000030560000
> [    0.048263] GICv3: CPU11: using allocated LPI pending table
> @0x00000000aa140000
> [    0.048282] CPU11: thread -1, cpu 1, socket 5, mpidr 80000501
> [    0.053651] GICv3: CPU12: found redistributor 600 region 0:0x0000000030580000
> [    0.053681] GICv3: CPU12: using allocated LPI pending table
> @0x00000000aa150000
> [    0.053706] CPU12: thread -1, cpu 0, socket 6, mpidr 80000600
> [    0.056742] GICv3: CPU13: found redistributor 601 region 0:0x00000000305a0000
> [    0.056765] GICv3: CPU13: using allocated LPI pending table
> @0x00000000aa160000
> [    0.056785] CPU13: thread -1, cpu 1, socket 6, mpidr 80000601
> [    0.062113] GICv3: CPU14: found redistributor 700 region 0:0x00000000305c0000
> [    0.062144] GICv3: CPU14: using allocated LPI pending table
> @0x00000000aa170000
> [    0.062166] CPU14: thread -1, cpu 0, socket 7, mpidr 80000700
> [    0.065238] GICv3: CPU15: found redistributor 701 region 0:0x00000000305e0000
> [    0.065263] GICv3: CPU15: using allocated LPI pending table
> @0x00000000aa180000
> [    0.065282] CPU15: thread -1, cpu 1, socket 7, mpidr 80000701
> [    0.070661] GICv3: CPU16: found redistributor 800 region 0:0x0000000030600000
> [    0.070691] GICv3: CPU16: using allocated LPI pending table
> @0x00000000aa190000
> [    0.070716] CPU16: thread -1, cpu 0, socket 8, mpidr 80000800
> [    0.073748] GICv3: CPU17: found redistributor 801 region 0:0x0000000030620000
> [    0.073774] GICv3: CPU17: using allocated LPI pending table
> @0x00000000aa1a0000
> [    0.073794] CPU17: thread -1, cpu 1, socket 8, mpidr 80000801
> [    0.079132] GICv3: CPU18: found redistributor 900 region 0:0x0000000030640000
> [    0.079163] GICv3: CPU18: using allocated LPI pending table
> @0x00000000aa1b0000
> [    0.079187] CPU18: thread -1, cpu 0, socket 9, mpidr 80000900
> [    0.082216] GICv3: CPU19: found redistributor 901 region 0:0x0000000030660000
> [    0.082239] GICv3: CPU19: using allocated LPI pending table
> @0x00000000aa1c0000
> [    0.082257] CPU19: thread -1, cpu 1, socket 9, mpidr 80000901
> [    0.087755] GICv3: CPU20: found redistributor a00 region 0:0x0000000030680000
> [    0.087788] GICv3: CPU20: using allocated LPI pending table
> @0x00000000aa1d0000
> [    0.087811] CPU20: thread -1, cpu 0, socket 10, mpidr 80000a00
> [    0.090897] GICv3: CPU21: found redistributor a01 region 0:0x00000000306a0000
> [    0.090922] GICv3: CPU21: using allocated LPI pending table
> @0x00000000aa1e0000
> [    0.090939] CPU21: thread -1, cpu 1, socket 10, mpidr 80000a01
> [    0.096296] GICv3: CPU22: found redistributor b00 region 0:0x00000000306c0000
> [    0.096329] GICv3: CPU22: using allocated LPI pending table
> @0x00000000aa1f0000
> [    0.096353] CPU22: thread -1, cpu 0, socket 11, mpidr 80000b00
> [    0.099356] GICv3: CPU23: found redistributor b01 region 0:0x00000000306e0000
> [    0.099381] GICv3: CPU23: using allocated LPI pending table
> @0x00000000aa200000
> [    0.099400] CPU23: thread -1, cpu 1, socket 11, mpidr 80000b01
> [    0.099506] smp: Brought up 1 node, 24 CPUs
> [    0.100163] SMP: Total of 24 processors activated (4800.00 BogoMIPS).
> [    0.100175] CPU: All CPU(s) started in SVC mode.
> [    0.101193] devtmpfs: initialized
> [    0.103698] VFP support v0.3: implementor 41 architecture 3 part 40
> variant 3 rev 4
> [    0.103980] clocksource: jiffies: mask: 0xffffffff max_cycles:
> 0xffffffff, max_idle_ns: 19112604462750000 ns
> [    0.104009] futex hash table entries: 8192 (order: 7, 524288 bytes, linear)
> [    0.106670] pinctrl core: initialized pinctrl subsystem
> [    0.107566] thermal_sys: Registered thermal governor 'step_wise'
> [    0.107754] SMBIOS 3.3.0 present.
> [    0.107788] DMI: Socionext SynQuacer E-series DeveloperBox, BIOS
> build #1 Feb 20 2020
> [    0.108185] NET: Registered protocol family 16
> [    0.109556] DMA: preallocated 256 KiB pool for atomic coherent allocations
> [    0.110957] cpuidle: using governor menu
> [    0.111063] No ATAGs?
> [    0.111467] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4
> watchpoint registers.
> [    0.111490] hw-breakpoint: maximum watchpoint size is 8 bytes.
> [    0.112874] Serial: AMBA PL011 UART driver
> [    0.114349] OF: translation of DMA address(0) to CPU address failed
> node(/uart@2a400000)
> [    0.114421] 2a400000.uart: ttyAMA0 at MMIO 0x2a400000 (irq = 22,
> base_baud = 0) is a PL011 rev3
> [    1.117194] printk: console [ttyAMA0] enabled
> [    1.135592] AT91: Could not find identification node
> [    1.136261] iommu: Default domain type: Translated
> [    1.146225] vgaarb: loaded
> [    1.149407] SCSI subsystem initialized
> [    1.153506] usbcore: registered new interface driver usbfs
> [    1.159042] usbcore: registered new interface driver hub
> [    1.164477] usbcore: registered new device driver usb
> [    1.169950] pps_core: LinuxPPS API ver. 1 registered
> [    1.174911] pps_core: Software ver. 5.3.6 - Copyright 2005-2007
> Rodolfo Giometti <giometti@linux.it>
> [    1.184062] PTP clock support registered
> [    1.188042] EDAC MC: Ver: 3.0.0
> [    1.191660] Registered efivars operations
> [    1.196838] clocksource: Switched to clocksource arch_sys_counter
> [    2.103835] NET: Registered protocol family 2
> [    2.108658] tcp_listen_portaddr_hash hash table entries: 512
> (order: 0, 6144 bytes, linear)
> [    2.117044] TCP established hash table entries: 8192 (order: 3,
> 32768 bytes, linear)
> [    2.124854] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
> [    2.132103] TCP: Hash tables configured (established 8192 bind 8192)
> [    2.138585] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
> [    2.145223] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
> [    2.152446] NET: Registered protocol family 1
> [    2.157108] RPC: Registered named UNIX socket transport module.
> [    2.163026] RPC: Registered udp transport module.
> [    2.167746] RPC: Registered tcp transport module.
> [    2.172445] RPC: Registered tcp NFSv4.1 backchannel transport module.
> [    2.178897] PCI: CLS 0 bytes, default 64
> [    2.183052] Trying to unpack rootfs image as initramfs...
> [    3.413006] Freeing initrd memory: 22816K
> [    3.418665] Initialise system trusted keyrings
> [    3.423276] workingset: timestamp_bits=30 max_order=19 bucket_order=0
> [    3.434628] squashfs: version 4.0 (2009/01/31) Phillip Lougher
> [    3.441097] NFS: Registering the id_resolver key type
> [    3.446175] Key type id_resolver registered
> [    3.450375] Key type id_legacy registered
> [    3.454388] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
> [    3.461111] ntfs: driver 2.1.32 [Flags: R/O].
> [    3.465747] Key type asymmetric registered
> [    3.469857] Asymmetric key parser 'x509' registered
> [    3.474765] bounce: pool size: 64 pages
> [    3.478629] Block layer SCSI generic (bsg) driver version 0.4
> loaded (major 247)
> [    3.486027] io scheduler mq-deadline registered
> [    3.490564] io scheduler kyber registered
> [    3.500170] OF: translation of DMA address(0) to CPU address failed
> node(/pcie@60000000)
> [    3.508318] pci-host-generic 60000000.pcie: host bridge
> /pcie@60000000 ranges:
> [    3.515556] pci-host-generic 60000000.pcie:       IO
> 0x0067f00000..0x0067f0ffff -> 0x0000000000
> [    3.524276] pci-host-generic 60000000.pcie:      MEM
> 0x0068000000..0x006fffffff -> 0x0068000000
> [    3.532987] pci-host-generic 60000000.pcie:      MEM
> 0x3e00000000..0x3effffffff -> 0x3e00000000
> [    3.543045] pci-host-generic 60000000.pcie: ECAM at [mem
> 0x60000000-0x67efffff] for [bus 00-7e]
> [    3.551873] pci-host-generic 60000000.pcie: PCI host bridge to bus 0000:00
> [    3.558764] pci_bus 0000:00: root bus resource [bus 00-7e]
> [    3.564250] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
> [    3.570438] pci_bus 0000:00: root bus resource [mem 0x68000000-0x6fffffff]
> [    3.577322] pci_bus 0000:00: root bus resource [mem
> 0x3e00000000-0x3effffffff]
> [    3.584574] pci 0000:00:00.0: [1b21:1184] type 01 class 0x060400
> [    3.590646] pci 0000:00:00.0: enabling Extended Tags
> [    3.595677] pci 0000:00:00.0: PME# supported from D0 D3hot D3cold
> [    3.602874] PCI: bus0: Fast back to back transfers disabled
> [    3.608585] pci 0000:01:01.0: [1b21:1184] type 01 class 0x060400
> [    3.614645] pci 0000:01:01.0: enabling Extended Tags
> [    3.619672] pci 0000:01:01.0: PME# supported from D0 D3hot D3cold
> [    3.625969] pci 0000:01:03.0: [1b21:1184] type 01 class 0x060400
> [    3.632040] pci 0000:01:03.0: enabling Extended Tags
> [    3.637066] pci 0000:01:03.0: PME# supported from D0 D3hot D3cold
> [    3.643363] pci 0000:01:05.0: [1b21:1184] type 01 class 0x060400
> [    3.649431] pci 0000:01:05.0: enabling Extended Tags
> [    3.654449] pci 0000:01:05.0: PME# supported from D0 D3hot D3cold
> [    3.660753] pci 0000:01:07.0: [1b21:1184] type 01 class 0x060400
> [    3.666822] pci 0000:01:07.0: enabling Extended Tags
> [    3.671844] pci 0000:01:07.0: PME# supported from D0 D3hot D3cold
> [    3.678832] PCI: bus1: Fast back to back transfers disabled
> [    3.684517] pci 0000:02:00.0: [1b21:0612] type 00 class 0x010601
> [    3.690564] pci 0000:02:00.0: reg 0x10: [io  0x0028-0x002f]
> [    3.696147] pci 0000:02:00.0: reg 0x14: [io  0x0034-0x0037]
> [    3.701738] pci 0000:02:00.0: reg 0x18: [io  0x0020-0x0027]
> [    3.707329] pci 0000:02:00.0: reg 0x1c: [io  0x0030-0x0033]
> [    3.712912] pci 0000:02:00.0: reg 0x20: [io  0x0000-0x001f]
> [    3.718503] pci 0000:02:00.0: reg 0x24: [mem 0x68100000-0x681001ff]
> [    3.724781] pci 0000:02:00.0: reg 0x30: [mem 0xffff0000-0xffffffff pref]
> [    3.732590] PCI: bus2: Fast back to back transfers disabled
> [    3.738174] pci_bus 0000:02: busn_res: [bus 02-7e] end is updated to 02
> [    3.745751] PCI: bus3: Fast back to back transfers enabled
> [    3.751247] pci_bus 0000:03: busn_res: [bus 03-7e] end is updated to 03
> [    3.757969] pci 0000:04:00.0: [1912:0014] type 00 class 0x0c0330
> [    3.764012] pci 0000:04:00.0: reg 0x10: [mem 0x68000000-0x68001fff 64bit]
> [    3.770943] pci 0000:04:00.0: PME# supported from D0 D3hot D3cold
> [    3.807778] PCI: bus4: Fast back to back transfers disabled
> [    3.813353] pci_bus 0000:04: busn_res: [bus 04-7e] end is updated to 04
> [    3.820943] PCI: bus5: Fast back to back transfers enabled
> [    3.826430] pci_bus 0000:05: busn_res: [bus 05-7e] end is updated to 05
> [    3.833058] pci_bus 0000:01: busn_res: [bus 01-7e] end is updated to 05
> [    3.839709] pci 0000:00:00.0: BAR 8: assigned [mem 0x68000000-0x681fffff]
> [    3.846498] pci 0000:00:00.0: BAR 7: assigned [io  0x1000-0x1fff]
> [    3.852603] pci 0000:01:01.0: BAR 8: assigned [mem 0x68000000-0x680fffff]
> [    3.859402] pci 0000:01:05.0: BAR 8: assigned [mem 0x68100000-0x681fffff]
> [    3.866190] pci 0000:01:01.0: BAR 7: assigned [io  0x1000-0x1fff]
> [    3.872294] pci 0000:02:00.0: BAR 6: assigned [mem
> 0x68000000-0x6800ffff pref]
> [    3.879529] pci 0000:02:00.0: BAR 5: assigned [mem 0x68010000-0x680101ff]
> [    3.886321] pci 0000:02:00.0: BAR 4: assigned [io  0x1000-0x101f]
> [    3.892425] pci 0000:02:00.0: BAR 0: assigned [io  0x1020-0x1027]
> [    3.898529] pci 0000:02:00.0: BAR 2: assigned [io  0x1028-0x102f]
> [    3.904627] pci 0000:02:00.0: BAR 1: assigned [io  0x1030-0x1033]
> [    3.910730] pci 0000:02:00.0: BAR 3: assigned [io  0x1034-0x1037]
> [    3.916834] pci 0000:01:01.0: PCI bridge to [bus 02]
> [    3.921799] pci 0000:01:01.0:   bridge window [io  0x1000-0x1fff]
> [    3.927903] pci 0000:01:01.0:   bridge window [mem 0x68000000-0x680fffff]
> [    3.934697] pci 0000:01:03.0: PCI bridge to [bus 03]
> [    3.939682] pci 0000:04:00.0: BAR 0: assigned [mem
> 0x68100000-0x68101fff 64bit]
> [    3.947012] pci 0000:01:05.0: PCI bridge to [bus 04]
> [    3.951979] pci 0000:01:05.0:   bridge window [mem 0x68100000-0x681fffff]
> [    3.958780] pci 0000:01:07.0: PCI bridge to [bus 05]
> [    3.963754] pci 0000:00:00.0: PCI bridge to [bus 01-05]
> [    3.968985] pci 0000:00:00.0:   bridge window [io  0x1000-0x1fff]
> [    3.975081] pci 0000:00:00.0:   bridge window [mem 0x68000000-0x681fffff]
> [    3.981914] OF: translation of DMA address(0) to CPU address failed
> node(/pcie@60000000)
> [    3.990313] OF: translation of DMA address(0) to CPU address failed
> node(/pcie@60000000)
> [    3.998662] OF: translation of DMA address(0) to CPU address failed
> node(/pcie@60000000)
> [    4.007005] OF: translation of DMA address(0) to CPU address failed
> node(/pcie@60000000)
> [    4.015339] OF: translation of DMA address(0) to CPU address failed
> node(/pcie@60000000)
> [    4.023694] pci 0000:04:00.0: enabling device (0140 -> 0142)
> [    4.029447] OF: translation of DMA address(0) to CPU address failed
> node(/pcie@70000000)
> [    4.037570] pci-host-generic 70000000.pcie: host bridge
> /pcie@70000000 ranges:
> [    4.044805] pci-host-generic 70000000.pcie:       IO
> 0x0077f00000..0x0077f0ffff -> 0x0000000000
> [    4.053523] pci-host-generic 70000000.pcie:      MEM
> 0x0078000000..0x007fffffff -> 0x0078000000
> [    4.062236] pci-host-generic 70000000.pcie:      MEM
> 0x3f00000000..0x3fffffffff -> 0x3f00000000
> [    4.071308] vmap allocation for size 1052672 failed: use
> vmalloc=<size> to increase size
> [    4.079411] pci-host-generic 70000000.pcie: ECAM ioremap failed
> [    4.085525] pci-host-generic: probe of 70000000.pcie failed with error -12
> [    4.126494] Serial: 8250/16550 driver, 5 ports, IRQ sharing enabled
> [    4.134170] OF: translation of DMA address(0) to CPU address failed
> node(/uart@51040000)
> [    4.142748] 51040000.uart: ttyS1 at MMIO 0x51040000 (irq = 23,
> base_baud = 3906250) is a 16550A
> [    4.152099] SuperH (H)SCI(F) driver initialized
> [    4.156953] msm_serial: driver initialized
> [    4.161103] STMicroelectronics ASC driver initialized
> [    4.166594] STM32 USART driver initialized
> [    4.178363] brd: module loaded
> [    4.192943] loop: module loaded
> [    4.197009] OF: translation of DMA address(0) to CPU address failed
> node(/pcie@60000000)
> [    4.205330] ahci 0000:02:00.0: SSS flag set, parallel bus scan disabled
> [    4.212015] ahci 0000:02:00.0: AHCI 0001.0200 32 slots 2 ports 6
> Gbps 0x3 impl SATA mode
> [    4.220122] ahci 0000:02:00.0: flags: 64bit ncq sntf stag led clo
> pmp pio slum part ccc sxs
> [    4.229431] scsi host0: ahci
> [    4.232675] scsi host1: ahci
> [    4.235694] ata1: SATA max UDMA/133 abar m512@0x68010000 port
> 0x68010100 irq 35
> [    4.243033] ata2: SATA max UDMA/133 abar m512@0x68010000 port
> 0x68010180 irq 35
> [    4.253906] libphy: Fixed MDIO Bus: probed
> [    4.258796] CAN device driver interface
> [    4.262933] bgmac_bcma: Broadcom 47xx GBit MAC driver loaded
> [    4.268942] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
> [    4.274772] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
> [    4.280739] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.6.0-k
> [    4.287707] igb: Copyright (c) 2007-2014 Intel Corporation.
> [    4.294603] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB
> Ethernet driver
> [    4.302042] usbcore: registered new interface driver pegasus
> [    4.307736] usbcore: registered new interface driver asix
> [    4.313150] usbcore: registered new interface driver ax88179_178a
> [    4.319267] usbcore: registered new interface driver cdc_ether
> [    4.325122] usbcore: registered new interface driver smsc75xx
> [    4.330901] usbcore: registered new interface driver smsc95xx
> [    4.336663] usbcore: registered new interface driver net1080
> [    4.342350] usbcore: registered new interface driver cdc_subset
> [    4.348295] usbcore: registered new interface driver zaurus
> [    4.353894] usbcore: registered new interface driver cdc_ncm
> [    4.360347] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
> [    4.366891] ehci-pci: EHCI PCI platform driver
> [    4.371359] ehci-platform: EHCI generic platform driver
> [    4.376646] ehci-orion: EHCI orion driver
> [    4.380714] SPEAr-ehci: EHCI SPEAr driver
> [    4.384767] ehci-st: EHCI STMicroelectronics driver
> [    4.389704] ehci-exynos: EHCI Exynos driver
> [    4.393931] ehci-atmel: EHCI Atmel driver
> [    4.397991] tegra-ehci: Tegra EHCI driver
> [    4.402048] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
> [    4.408245] ohci-pci: OHCI PCI platform driver
> [    4.412714] ohci-platform: OHCI generic platform driver
> [    4.418003] SPEAr-ohci: OHCI SPEAr driver
> [    4.422057] ohci-st: OHCI STMicroelectronics driver
> [    4.426995] ohci-atmel: OHCI Atmel driver
> [    4.431085] OF: translation of DMA address(0) to CPU address failed
> node(/pcie@60000000)
> [    4.439259] xhci_hcd 0000:04:00.0: xHCI Host Controller
> [    4.444497] xhci_hcd 0000:04:00.0: new USB bus registered, assigned
> bus number 1
> [    4.457324] xhci_hcd 0000:04:00.0: hcc params 0x014051cf hci
> version 0x100 quirks 0x0000000100000410
> [    4.467671] hub 1-0:1.0: USB hub found
> [    4.471449] hub 1-0:1.0: 4 ports detected
> [    4.475927] xhci_hcd 0000:04:00.0: xHCI Host Controller
> [    4.481175] xhci_hcd 0000:04:00.0: new USB bus registered, assigned
> bus number 2
> [    4.488585] xhci_hcd 0000:04:00.0: Host supports USB 3.0 SuperSpeed
> [    4.494924] usb usb2: We don't know the algorithms for LPM for this
> host, disabling LPM.
> [    4.503372] hub 2-0:1.0: USB hub found
> [    4.507155] hub 2-0:1.0: 4 ports detected
> [    4.511847] usbcore: registered new interface driver usb-storage
> [    4.519900] i2c /dev entries driver
> [    4.528493] /cpus/cpu@0: unsupported enable-method property: psci
> [    4.537114] sdhci: Secure Digital Host Controller Interface driver
> [    4.543297] sdhci: Copyright(c) Pierre Ossman
> [    4.548328] Synopsys Designware Multimedia Card Interface Driver
> [    4.554829] sdhci-pltfm: SDHCI platform and OF driver helper
> [    4.562104] ledtrig-cpu: registered to indicate activity on CPUs
> [    4.568594] usbcore: registered new interface driver usbhid
> [    4.574168] usbhid: USB HID core driver
> [    4.579546] drop_monitor: Initializing network drop monitor service
> [    4.586552] NET: Registered protocol family 10
> [    4.591887] Segment Routing with IPv6
> [    4.595614] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
> [    4.602085] NET: Registered protocol family 17
> [    4.606537] can: controller area network core (rev 20170425 abi 9)
> [    4.612780] NET: Registered protocol family 29
> [    4.617248] can: raw protocol (rev 20170425)
> [    4.621524] can: broadcast manager protocol (rev 20170425 t)
> [    4.627198] can: netlink gateway (rev 20190810) max_hops=1
> [    4.632967] Key type dns_resolver registered
> [    4.637328] Registering SWP/SWPB emulation handler
> [    4.642410] Loading compiled-in X.509 certificates
> [    4.688987] OF: translation of DMA address(0) to CPU address failed
> node(/gpio-keys)
> [    4.696780] irq: no irq domain found for interrupt-controller@510c0000 !
> [    4.703556] gpio-keys gpio-keys: Found button without gpio or irq
> [    4.709673] gpio-keys: probe of gpio-keys failed with error -22
> [    4.715621] hctosys: unable to open rtc device (rtc0)
> [    4.721044] uart-pl011 2a400000.uart: no DMA platform data
> [    4.746912] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
> [    4.754022] ata1.00: ATA-10: WDC WD10EZEX-22MFCA0, 01.01A01, max UDMA/133
> [    4.760826] ata1.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 32), AA
> [    4.768960] ata1.00: configured for UDMA/133
> [    4.773637] scsi 0:0:0:0: Direct-Access     ATA      WDC
> WD10EZEX-22M 1A01 PQ: 0 ANSI: 5
> [    4.782675] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks:
> (1.00 TB/932 GiB)
> [    4.790362] sd 0:0:0:0: [sda] 4096-byte physical blocks
> [    4.795635] sd 0:0:0:0: [sda] Write Protect is off
> [    4.800505] sd 0:0:0:0: [sda] Write cache: enabled, read cache:
> enabled, doesn't support DPO or FUA
> [    4.846916] usb 1-3: new high-speed USB device number 2 using xhci_hcd
> [    4.865348]  sda: sda1 sda2 sda3 sda4
> [    4.871475] sd 0:0:0:0: [sda] Attached SCSI disk
> [    4.887962] usb-storage 1-3:1.0: USB Mass Storage device detected
> [    4.894715] scsi host2: usb-storage 1-3:1.0
> [    5.109059] ata2: SATA link down (SStatus 0 SControl 300)
> [    5.117814] Freeing unused kernel memory: 2048K
> [    5.122861] Run /init as init process
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/4] ARM: decompressor: use by-VA cache maintenance for v7 cores
  2020-02-21 13:35   ` Robin Murphy
@ 2020-02-21 13:42     ` Ard Biesheuvel
  2020-02-21 15:54       ` Ard Biesheuvel
  2020-02-21 16:09       ` Robin Murphy
  0 siblings, 2 replies; 11+ messages in thread
From: Ard Biesheuvel @ 2020-02-21 13:42 UTC (permalink / raw)
  To: Robin Murphy
  Cc: linux-efi, Arnd Bergmann, Nicolas Pitre, Tony Lindgren,
	Marc Zyngier, Russell King, Catalin Marinas, linux-arm-kernel

On Fri, 21 Feb 2020 at 14:35, Robin Murphy <robin.murphy@arm.com> wrote:
>
> On 20/02/2020 6:08 pm, Ard Biesheuvel wrote:
> > (+ Arnd)
> >
> > On Wed, 19 Feb 2020 at 10:43, Ard Biesheuvel <ardb@kernel.org> wrote:
> >>
> >> While making changes to the EFI stub startup code, I noticed that we are
> >> still doing set/way maintenance on the caches when booting on v7 cores.
> >> This works today on VMs by virtue of the fact that KVM traps set/way ops
> >> and cleans the whole address space by VA on behalf of the guest, and on
> >> most v7 hardware, the set/way ops are in fact sufficient when only one
> >> core is running, as there usually is no system cache. But on systems
> >> like SynQuacer, for which 32-bit firmware is available, the current cache
> >> maintenance only pushes the data out to the L3 system cache, where it
> >> is not visible to the CPU once it turns the MMU and caches off.
> >>
> >> So instead, switch to the by-VA cache maintenance that the architecture
> >> requires for v7 and later (and ARM1176, as a side effect).
> >>
> >> Changes since v1:
> >> - include the EFI patch that was sent out separately before (#1)
> >> - split the preparatory work to pass the region to clean in r0/r1 in a EFI
> >>    specific one and one for the decompressor - this way, the first two patches
> >>    can go on a stable branch that is shared between the ARM tree and the EFI
> >>    tree
> >> - document the meaning of the values in r0/r1 upon entry to cache_clean_flush
> >> - take care to treat the region end address as exclusive
> >> - switch to clean+invalidate to align with the other implementations
> >> - drop some code that manages the stack pointer value before calling
> >>    cache_clean_flush(), which is no longer necessary
> >> - take care to clean the entire region that is covered by the relocated zImage
> >>    if it needs to relocate itself before decompressing
> >>
> >> https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=arm32-efi-cache-ops
> >>
> >
> > Adding my own data point here: with these patches, I can reproducibly
> > boot on the SynQuacer platform (24x Cortex-A53 + GICv3 + L3 system
> > cache) until the point where /init is loaded, after which it hangs
> > (see below), whereas without them, it always crashes early with weird,
> > unreproducible errors, if it even makes it far enough through the
> > decompressor to produce any earlycon output.
> >
> > There is some other weird stuff going on, but this is unlikely to be
> > related to cache maintenance:
> > - multiple occurrences of
> >     OF: translation of DMA address(0) to CPU address failed node(...)
>
> FWIW that implies a "dma-ranges" property in the wrong place in the DT -
> if you copied the now-gone Juno example of placing one directly in the
> root node, that was bogus, sorry.
>

OK, so where should it be instead? Are you saying it is now required
to have a /soc or /smb node that contains all the device nodes?


> > - /cpus/cpu@0: unsupported enable-method property: psci
>
> Missing CONFIG_ARM_PSCI_CPUIDLE? That's caught me out on more than one
> occasion since 5.4.
>
> Robin.
>
> > Then, there is not enough vmalloc space to map the config space of
> > both PCIe RCs.
> >
> > Also, due to the fact that this platform sadly honours the ARM
> > recommendation on memory maps, it seems there is no way to make useful
> > use of any memory beyond 2 GB, given that the hole between the lower 2
> > GB and the upper <30 GB eats up all the lowmem by being covered by the
> > memmap[] array. (Note that this platform supports up to 64 GB, in
> > which case another hole of 480 GB is created, so there is no way we
> > can even boot with that much memory reported to the kernel)
> >
> >
> > Shell> initrd initrd.gz
> > Shell> zImage
> > EFI stub: Booting Linux Kernel...
> > EFI stub: Using DTB from configuration table
> > EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
> > EFI stub: Exiting boot services and installing virtual address map...
> > [    0.000000] Booting Linux on physical CPU 0x0
> > [    0.000000] Linux version 5.6.0-rc1-00084-g8602a0ff0200-dirty
> > (ardbie01@e123331-lin) (gcc version 7.4.0 (Ubuntu/Linaro
> > 7.4.0-1ubuntu1~18.04.1)) #286 SMP Thu Feb 20 17:49:59 CET 2020
> > [    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=70c5383d
> > [    0.000000] CPU: div instructions available: patching division code
> > [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
> > instruction cache
> > [    0.000000] OF: fdt: Machine model: Socionext Developer Box
> > [    0.000000] Memory policy: Data cache writealloc
> > [    0.000000] efi: EFI v2.70 by EDK II
> > [    0.000000] efi:  SMBIOS 3.0=0xffa1c000  MEMATTR=0xfd0b4010
> > ESRT=0xfdfbb910  MEMRESERVE=0xf8f2d010
> > [    0.000000] OF: fdt: Ignoring memory block 0x880000000 - 0x1000000000
> > [    0.000000] esrt: Reserving ESRT space from 0x00000000fdfbb910 to
> > 0x00000000fdfbb948.
> > [    0.000000] cma: Reserved 64 MiB at 0x00000000f9000000
> > [    0.000000] psci: probing for conduit method from DT.
> > [    0.000000] psci: PSCIv1.1 detected in firmware.
> > [    0.000000] psci: Using standard PSCI v0.2 function IDs
> > [    0.000000] psci: MIGRATE_INFO_TYPE not supported.
> > [    0.000000] psci: SMC Calling Convention v1.0
> > [    0.000000] percpu: Embedded 20 pages/cpu s49356 r8192 d24372 u81920
> > [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 522368
> > [    0.000000] Kernel command line: zImage
> > [    0.000000] printk: log_buf_len individual max cpu contribution: 4096 bytes
> > [    0.000000] printk: log_buf_len total cpu_extra contributions: 94208 bytes
> > [    0.000000] printk: log_buf_len min size: 131072 bytes
> > [    0.000000] printk: log_buf_len: 262144 bytes
> > [    0.000000] printk: early log buf free: 128828(98%)
> > [    0.000000] Dentry cache hash table entries: 131072 (order: 7,
> > 524288 bytes, linear)
> > [    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144
> > bytes, linear)
> > [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
> > [    0.000000] software IO TLB: mapped [mem 0xaa90c000-0xae90c000] (64MB)
> > [    0.000000] Memory: 1886672K/2097152K available (10240K kernel
> > code, 1811K rwdata, 5392K rodata, 2048K init, 414K bss, 144944K
> > reserved, 65536K cma-reserved, 1233168K highmem)
> > [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=24, Nodes=1
> > [    0.000000] rcu: Hierarchical RCU implementation.
> > [    0.000000] rcu:     RCU event tracing is enabled.
> > [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay
> > is 10 jiffies.
> > [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
> > [    0.000000] GICv3: 640 SPIs implemented
> > [    0.000000] GICv3: 0 Extended SPIs implemented
> > [    0.000000] GICv3: Distributor has no Range Selector support
> > [    0.000000] GICv3: 16 PPIs implemented
> > [    0.000000] GICv3: no VLPI support, no direct LPI support, no RVPEID support
> > [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000030400000
> > [    0.000000] ITS [mem 0x30020000-0x3003ffff]
> > [    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
> > [    0.000000] ITS@0x0000000030020000: allocated 524288 Devices
> > @aa400000 (flat, esz 8, psz 64K, shr 0)
> > [    0.000000] ITS: using cache flushing for cmd queue
> > [    0.000000] GICv3: using LPI property table @0x00000000aa080000
> > [    0.000000] GIC: using cache flushing for LPI property table
> > [    0.000000] GICv3: CPU0: using allocated LPI pending table
> > @0x00000000aa090000
> > [    0.000000] random: get_random_bytes called from
> > start_kernel+0x469/0x5ca with crng_init=0
> > [    0.000000] arch_timer: cp15 and mmio timer(s) running at 100.00MHz
> > (virt/phys).
> > [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff
> > max_cycles: 0x171024e7e0, max_idle_ns: 440795205315 ns
> > [    0.000004] sched_clock: 56 bits at 100MHz, resolution 10ns, wraps
> > every 4398046511100ns
> > [    0.000013] Switching to timer-based delay loop, resolution 10ns
> > [    0.000890] Console: colour dummy device 80x30
> > [    0.001344] printk: console [tty0] enabled
> > [    0.001389] Calibrating delay loop (skipped), value calculated
> > using timer frequency.. 200.00 BogoMIPS (lpj=1000000)
> > [    0.001410] pid_max: default: 32768 minimum: 301
> > [    0.001561] Mount-cache hash table entries: 2048 (order: 1, 8192
> > bytes, linear)
> > [    0.001581] Mountpoint-cache hash table entries: 2048 (order: 1,
> > 8192 bytes, linear)
> > [    0.002112] CPU: Testing write buffer coherency: ok
> > [    0.002637] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
> > [    0.002926] Setting up static identity map for 0x80400000 - 0x80400160
> > [    0.003448] rcu: Hierarchical SRCU implementation.
> > [    0.003601] Platform MSI: gic-its@30020000 domain created
> > [    0.003669] PCI/MSI:
> > /interrupt-controller@30000000/gic-its@30020000 domain created
> > [    0.004751] Remapping and enabling EFI services.
> > [    0.005305] smp: Bringing up secondary CPUs ...
> > [    0.005895] GICv3: CPU1: found redistributor 1 region 0:0x0000000030420000
> > [    0.005919] GICv3: CPU1: using allocated LPI pending table
> > @0x00000000aa0a0000
> > [    0.005940] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
> > [    0.011149] GICv3: CPU2: found redistributor 100 region 0:0x0000000030440000
> > [    0.011179] GICv3: CPU2: using allocated LPI pending table
> > @0x00000000aa0b0000
> > [    0.011203] CPU2: thread -1, cpu 0, socket 1, mpidr 80000100
> > [    0.014242] GICv3: CPU3: found redistributor 101 region 0:0x0000000030460000
> > [    0.014264] GICv3: CPU3: using allocated LPI pending table
> > @0x00000000aa0c0000
> > [    0.014284] CPU3: thread -1, cpu 1, socket 1, mpidr 80000101
> > [    0.019622] GICv3: CPU4: found redistributor 200 region 0:0x0000000030480000
> > [    0.019650] GICv3: CPU4: using allocated LPI pending table
> > @0x00000000aa0d0000
> > [    0.019675] CPU4: thread -1, cpu 0, socket 2, mpidr 80000200
> > [    0.022737] GICv3: CPU5: found redistributor 201 region 0:0x00000000304a0000
> > [    0.022759] GICv3: CPU5: using allocated LPI pending table
> > @0x00000000aa0e0000
> > [    0.022777] CPU5: thread -1, cpu 1, socket 2, mpidr 80000201
> > [    0.028146] GICv3: CPU6: found redistributor 300 region 0:0x00000000304c0000
> > [    0.028174] GICv3: CPU6: using allocated LPI pending table
> > @0x00000000aa0f0000
> > [    0.028196] CPU6: thread -1, cpu 0, socket 3, mpidr 80000300
> > [    0.031213] GICv3: CPU7: found redistributor 301 region 0:0x00000000304e0000
> > [    0.031239] GICv3: CPU7: using allocated LPI pending table
> > @0x00000000aa100000
> > [    0.031256] CPU7: thread -1, cpu 1, socket 3, mpidr 80000301
> > [    0.036606] GICv3: CPU8: found redistributor 400 region 0:0x0000000030500000
> > [    0.036634] GICv3: CPU8: using allocated LPI pending table
> > @0x00000000aa110000
> > [    0.036657] CPU8: thread -1, cpu 0, socket 4, mpidr 80000400
> > [    0.039719] GICv3: CPU9: found redistributor 401 region 0:0x0000000030520000
> > [    0.039740] GICv3: CPU9: using allocated LPI pending table
> > @0x00000000aa120000
> > [    0.039757] CPU9: thread -1, cpu 1, socket 4, mpidr 80000401
> > [    0.045156] GICv3: CPU10: found redistributor 500 region 0:0x0000000030540000
> > [    0.045187] GICv3: CPU10: using allocated LPI pending table
> > @0x00000000aa130000
> > [    0.045210] CPU10: thread -1, cpu 0, socket 5, mpidr 80000500
> > [    0.048241] GICv3: CPU11: found redistributor 501 region 0:0x0000000030560000
> > [    0.048263] GICv3: CPU11: using allocated LPI pending table
> > @0x00000000aa140000
> > [    0.048282] CPU11: thread -1, cpu 1, socket 5, mpidr 80000501
> > [    0.053651] GICv3: CPU12: found redistributor 600 region 0:0x0000000030580000
> > [    0.053681] GICv3: CPU12: using allocated LPI pending table
> > @0x00000000aa150000
> > [    0.053706] CPU12: thread -1, cpu 0, socket 6, mpidr 80000600
> > [    0.056742] GICv3: CPU13: found redistributor 601 region 0:0x00000000305a0000
> > [    0.056765] GICv3: CPU13: using allocated LPI pending table
> > @0x00000000aa160000
> > [    0.056785] CPU13: thread -1, cpu 1, socket 6, mpidr 80000601
> > [    0.062113] GICv3: CPU14: found redistributor 700 region 0:0x00000000305c0000
> > [    0.062144] GICv3: CPU14: using allocated LPI pending table
> > @0x00000000aa170000
> > [    0.062166] CPU14: thread -1, cpu 0, socket 7, mpidr 80000700
> > [    0.065238] GICv3: CPU15: found redistributor 701 region 0:0x00000000305e0000
> > [    0.065263] GICv3: CPU15: using allocated LPI pending table
> > @0x00000000aa180000
> > [    0.065282] CPU15: thread -1, cpu 1, socket 7, mpidr 80000701
> > [    0.070661] GICv3: CPU16: found redistributor 800 region 0:0x0000000030600000
> > [    0.070691] GICv3: CPU16: using allocated LPI pending table
> > @0x00000000aa190000
> > [    0.070716] CPU16: thread -1, cpu 0, socket 8, mpidr 80000800
> > [    0.073748] GICv3: CPU17: found redistributor 801 region 0:0x0000000030620000
> > [    0.073774] GICv3: CPU17: using allocated LPI pending table
> > @0x00000000aa1a0000
> > [    0.073794] CPU17: thread -1, cpu 1, socket 8, mpidr 80000801
> > [    0.079132] GICv3: CPU18: found redistributor 900 region 0:0x0000000030640000
> > [    0.079163] GICv3: CPU18: using allocated LPI pending table
> > @0x00000000aa1b0000
> > [    0.079187] CPU18: thread -1, cpu 0, socket 9, mpidr 80000900
> > [    0.082216] GICv3: CPU19: found redistributor 901 region 0:0x0000000030660000
> > [    0.082239] GICv3: CPU19: using allocated LPI pending table
> > @0x00000000aa1c0000
> > [    0.082257] CPU19: thread -1, cpu 1, socket 9, mpidr 80000901
> > [    0.087755] GICv3: CPU20: found redistributor a00 region 0:0x0000000030680000
> > [    0.087788] GICv3: CPU20: using allocated LPI pending table
> > @0x00000000aa1d0000
> > [    0.087811] CPU20: thread -1, cpu 0, socket 10, mpidr 80000a00
> > [    0.090897] GICv3: CPU21: found redistributor a01 region 0:0x00000000306a0000
> > [    0.090922] GICv3: CPU21: using allocated LPI pending table
> > @0x00000000aa1e0000
> > [    0.090939] CPU21: thread -1, cpu 1, socket 10, mpidr 80000a01
> > [    0.096296] GICv3: CPU22: found redistributor b00 region 0:0x00000000306c0000
> > [    0.096329] GICv3: CPU22: using allocated LPI pending table
> > @0x00000000aa1f0000
> > [    0.096353] CPU22: thread -1, cpu 0, socket 11, mpidr 80000b00
> > [    0.099356] GICv3: CPU23: found redistributor b01 region 0:0x00000000306e0000
> > [    0.099381] GICv3: CPU23: using allocated LPI pending table
> > @0x00000000aa200000
> > [    0.099400] CPU23: thread -1, cpu 1, socket 11, mpidr 80000b01
> > [    0.099506] smp: Brought up 1 node, 24 CPUs
> > [    0.100163] SMP: Total of 24 processors activated (4800.00 BogoMIPS).
> > [    0.100175] CPU: All CPU(s) started in SVC mode.
> > [    0.101193] devtmpfs: initialized
> > [    0.103698] VFP support v0.3: implementor 41 architecture 3 part 40
> > variant 3 rev 4
> > [    0.103980] clocksource: jiffies: mask: 0xffffffff max_cycles:
> > 0xffffffff, max_idle_ns: 19112604462750000 ns
> > [    0.104009] futex hash table entries: 8192 (order: 7, 524288 bytes, linear)
> > [    0.106670] pinctrl core: initialized pinctrl subsystem
> > [    0.107566] thermal_sys: Registered thermal governor 'step_wise'
> > [    0.107754] SMBIOS 3.3.0 present.
> > [    0.107788] DMI: Socionext SynQuacer E-series DeveloperBox, BIOS
> > build #1 Feb 20 2020
> > [    0.108185] NET: Registered protocol family 16
> > [    0.109556] DMA: preallocated 256 KiB pool for atomic coherent allocations
> > [    0.110957] cpuidle: using governor menu
> > [    0.111063] No ATAGs?
> > [    0.111467] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4
> > watchpoint registers.
> > [    0.111490] hw-breakpoint: maximum watchpoint size is 8 bytes.
> > [    0.112874] Serial: AMBA PL011 UART driver
> > [    0.114349] OF: translation of DMA address(0) to CPU address failed
> > node(/uart@2a400000)
> > [    0.114421] 2a400000.uart: ttyAMA0 at MMIO 0x2a400000 (irq = 22,
> > base_baud = 0) is a PL011 rev3
> > [    1.117194] printk: console [ttyAMA0] enabled
> > [    1.135592] AT91: Could not find identification node
> > [    1.136261] iommu: Default domain type: Translated
> > [    1.146225] vgaarb: loaded
> > [    1.149407] SCSI subsystem initialized
> > [    1.153506] usbcore: registered new interface driver usbfs
> > [    1.159042] usbcore: registered new interface driver hub
> > [    1.164477] usbcore: registered new device driver usb
> > [    1.169950] pps_core: LinuxPPS API ver. 1 registered
> > [    1.174911] pps_core: Software ver. 5.3.6 - Copyright 2005-2007
> > Rodolfo Giometti <giometti@linux.it>
> > [    1.184062] PTP clock support registered
> > [    1.188042] EDAC MC: Ver: 3.0.0
> > [    1.191660] Registered efivars operations
> > [    1.196838] clocksource: Switched to clocksource arch_sys_counter
> > [    2.103835] NET: Registered protocol family 2
> > [    2.108658] tcp_listen_portaddr_hash hash table entries: 512
> > (order: 0, 6144 bytes, linear)
> > [    2.117044] TCP established hash table entries: 8192 (order: 3,
> > 32768 bytes, linear)
> > [    2.124854] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
> > [    2.132103] TCP: Hash tables configured (established 8192 bind 8192)
> > [    2.138585] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
> > [    2.145223] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
> > [    2.152446] NET: Registered protocol family 1
> > [    2.157108] RPC: Registered named UNIX socket transport module.
> > [    2.163026] RPC: Registered udp transport module.
> > [    2.167746] RPC: Registered tcp transport module.
> > [    2.172445] RPC: Registered tcp NFSv4.1 backchannel transport module.
> > [    2.178897] PCI: CLS 0 bytes, default 64
> > [    2.183052] Trying to unpack rootfs image as initramfs...
> > [    3.413006] Freeing initrd memory: 22816K
> > [    3.418665] Initialise system trusted keyrings
> > [    3.423276] workingset: timestamp_bits=30 max_order=19 bucket_order=0
> > [    3.434628] squashfs: version 4.0 (2009/01/31) Phillip Lougher
> > [    3.441097] NFS: Registering the id_resolver key type
> > [    3.446175] Key type id_resolver registered
> > [    3.450375] Key type id_legacy registered
> > [    3.454388] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
> > [    3.461111] ntfs: driver 2.1.32 [Flags: R/O].
> > [    3.465747] Key type asymmetric registered
> > [    3.469857] Asymmetric key parser 'x509' registered
> > [    3.474765] bounce: pool size: 64 pages
> > [    3.478629] Block layer SCSI generic (bsg) driver version 0.4
> > loaded (major 247)
> > [    3.486027] io scheduler mq-deadline registered
> > [    3.490564] io scheduler kyber registered
> > [    3.500170] OF: translation of DMA address(0) to CPU address failed
> > node(/pcie@60000000)
> > [    3.508318] pci-host-generic 60000000.pcie: host bridge
> > /pcie@60000000 ranges:
> > [    3.515556] pci-host-generic 60000000.pcie:       IO
> > 0x0067f00000..0x0067f0ffff -> 0x0000000000
> > [    3.524276] pci-host-generic 60000000.pcie:      MEM
> > 0x0068000000..0x006fffffff -> 0x0068000000
> > [    3.532987] pci-host-generic 60000000.pcie:      MEM
> > 0x3e00000000..0x3effffffff -> 0x3e00000000
> > [    3.543045] pci-host-generic 60000000.pcie: ECAM at [mem
> > 0x60000000-0x67efffff] for [bus 00-7e]
> > [    3.551873] pci-host-generic 60000000.pcie: PCI host bridge to bus 0000:00
> > [    3.558764] pci_bus 0000:00: root bus resource [bus 00-7e]
> > [    3.564250] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
> > [    3.570438] pci_bus 0000:00: root bus resource [mem 0x68000000-0x6fffffff]
> > [    3.577322] pci_bus 0000:00: root bus resource [mem
> > 0x3e00000000-0x3effffffff]
> > [    3.584574] pci 0000:00:00.0: [1b21:1184] type 01 class 0x060400
> > [    3.590646] pci 0000:00:00.0: enabling Extended Tags
> > [    3.595677] pci 0000:00:00.0: PME# supported from D0 D3hot D3cold
> > [    3.602874] PCI: bus0: Fast back to back transfers disabled
> > [    3.608585] pci 0000:01:01.0: [1b21:1184] type 01 class 0x060400
> > [    3.614645] pci 0000:01:01.0: enabling Extended Tags
> > [    3.619672] pci 0000:01:01.0: PME# supported from D0 D3hot D3cold
> > [    3.625969] pci 0000:01:03.0: [1b21:1184] type 01 class 0x060400
> > [    3.632040] pci 0000:01:03.0: enabling Extended Tags
> > [    3.637066] pci 0000:01:03.0: PME# supported from D0 D3hot D3cold
> > [    3.643363] pci 0000:01:05.0: [1b21:1184] type 01 class 0x060400
> > [    3.649431] pci 0000:01:05.0: enabling Extended Tags
> > [    3.654449] pci 0000:01:05.0: PME# supported from D0 D3hot D3cold
> > [    3.660753] pci 0000:01:07.0: [1b21:1184] type 01 class 0x060400
> > [    3.666822] pci 0000:01:07.0: enabling Extended Tags
> > [    3.671844] pci 0000:01:07.0: PME# supported from D0 D3hot D3cold
> > [    3.678832] PCI: bus1: Fast back to back transfers disabled
> > [    3.684517] pci 0000:02:00.0: [1b21:0612] type 00 class 0x010601
> > [    3.690564] pci 0000:02:00.0: reg 0x10: [io  0x0028-0x002f]
> > [    3.696147] pci 0000:02:00.0: reg 0x14: [io  0x0034-0x0037]
> > [    3.701738] pci 0000:02:00.0: reg 0x18: [io  0x0020-0x0027]
> > [    3.707329] pci 0000:02:00.0: reg 0x1c: [io  0x0030-0x0033]
> > [    3.712912] pci 0000:02:00.0: reg 0x20: [io  0x0000-0x001f]
> > [    3.718503] pci 0000:02:00.0: reg 0x24: [mem 0x68100000-0x681001ff]
> > [    3.724781] pci 0000:02:00.0: reg 0x30: [mem 0xffff0000-0xffffffff pref]
> > [    3.732590] PCI: bus2: Fast back to back transfers disabled
> > [    3.738174] pci_bus 0000:02: busn_res: [bus 02-7e] end is updated to 02
> > [    3.745751] PCI: bus3: Fast back to back transfers enabled
> > [    3.751247] pci_bus 0000:03: busn_res: [bus 03-7e] end is updated to 03
> > [    3.757969] pci 0000:04:00.0: [1912:0014] type 00 class 0x0c0330
> > [    3.764012] pci 0000:04:00.0: reg 0x10: [mem 0x68000000-0x68001fff 64bit]
> > [    3.770943] pci 0000:04:00.0: PME# supported from D0 D3hot D3cold
> > [    3.807778] PCI: bus4: Fast back to back transfers disabled
> > [    3.813353] pci_bus 0000:04: busn_res: [bus 04-7e] end is updated to 04
> > [    3.820943] PCI: bus5: Fast back to back transfers enabled
> > [    3.826430] pci_bus 0000:05: busn_res: [bus 05-7e] end is updated to 05
> > [    3.833058] pci_bus 0000:01: busn_res: [bus 01-7e] end is updated to 05
> > [    3.839709] pci 0000:00:00.0: BAR 8: assigned [mem 0x68000000-0x681fffff]
> > [    3.846498] pci 0000:00:00.0: BAR 7: assigned [io  0x1000-0x1fff]
> > [    3.852603] pci 0000:01:01.0: BAR 8: assigned [mem 0x68000000-0x680fffff]
> > [    3.859402] pci 0000:01:05.0: BAR 8: assigned [mem 0x68100000-0x681fffff]
> > [    3.866190] pci 0000:01:01.0: BAR 7: assigned [io  0x1000-0x1fff]
> > [    3.872294] pci 0000:02:00.0: BAR 6: assigned [mem
> > 0x68000000-0x6800ffff pref]
> > [    3.879529] pci 0000:02:00.0: BAR 5: assigned [mem 0x68010000-0x680101ff]
> > [    3.886321] pci 0000:02:00.0: BAR 4: assigned [io  0x1000-0x101f]
> > [    3.892425] pci 0000:02:00.0: BAR 0: assigned [io  0x1020-0x1027]
> > [    3.898529] pci 0000:02:00.0: BAR 2: assigned [io  0x1028-0x102f]
> > [    3.904627] pci 0000:02:00.0: BAR 1: assigned [io  0x1030-0x1033]
> > [    3.910730] pci 0000:02:00.0: BAR 3: assigned [io  0x1034-0x1037]
> > [    3.916834] pci 0000:01:01.0: PCI bridge to [bus 02]
> > [    3.921799] pci 0000:01:01.0:   bridge window [io  0x1000-0x1fff]
> > [    3.927903] pci 0000:01:01.0:   bridge window [mem 0x68000000-0x680fffff]
> > [    3.934697] pci 0000:01:03.0: PCI bridge to [bus 03]
> > [    3.939682] pci 0000:04:00.0: BAR 0: assigned [mem
> > 0x68100000-0x68101fff 64bit]
> > [    3.947012] pci 0000:01:05.0: PCI bridge to [bus 04]
> > [    3.951979] pci 0000:01:05.0:   bridge window [mem 0x68100000-0x681fffff]
> > [    3.958780] pci 0000:01:07.0: PCI bridge to [bus 05]
> > [    3.963754] pci 0000:00:00.0: PCI bridge to [bus 01-05]
> > [    3.968985] pci 0000:00:00.0:   bridge window [io  0x1000-0x1fff]
> > [    3.975081] pci 0000:00:00.0:   bridge window [mem 0x68000000-0x681fffff]
> > [    3.981914] OF: translation of DMA address(0) to CPU address failed
> > node(/pcie@60000000)
> > [    3.990313] OF: translation of DMA address(0) to CPU address failed
> > node(/pcie@60000000)
> > [    3.998662] OF: translation of DMA address(0) to CPU address failed
> > node(/pcie@60000000)
> > [    4.007005] OF: translation of DMA address(0) to CPU address failed
> > node(/pcie@60000000)
> > [    4.015339] OF: translation of DMA address(0) to CPU address failed
> > node(/pcie@60000000)
> > [    4.023694] pci 0000:04:00.0: enabling device (0140 -> 0142)
> > [    4.029447] OF: translation of DMA address(0) to CPU address failed
> > node(/pcie@70000000)
> > [    4.037570] pci-host-generic 70000000.pcie: host bridge
> > /pcie@70000000 ranges:
> > [    4.044805] pci-host-generic 70000000.pcie:       IO
> > 0x0077f00000..0x0077f0ffff -> 0x0000000000
> > [    4.053523] pci-host-generic 70000000.pcie:      MEM
> > 0x0078000000..0x007fffffff -> 0x0078000000
> > [    4.062236] pci-host-generic 70000000.pcie:      MEM
> > 0x3f00000000..0x3fffffffff -> 0x3f00000000
> > [    4.071308] vmap allocation for size 1052672 failed: use
> > vmalloc=<size> to increase size
> > [    4.079411] pci-host-generic 70000000.pcie: ECAM ioremap failed
> > [    4.085525] pci-host-generic: probe of 70000000.pcie failed with error -12
> > [    4.126494] Serial: 8250/16550 driver, 5 ports, IRQ sharing enabled
> > [    4.134170] OF: translation of DMA address(0) to CPU address failed
> > node(/uart@51040000)
> > [    4.142748] 51040000.uart: ttyS1 at MMIO 0x51040000 (irq = 23,
> > base_baud = 3906250) is a 16550A
> > [    4.152099] SuperH (H)SCI(F) driver initialized
> > [    4.156953] msm_serial: driver initialized
> > [    4.161103] STMicroelectronics ASC driver initialized
> > [    4.166594] STM32 USART driver initialized
> > [    4.178363] brd: module loaded
> > [    4.192943] loop: module loaded
> > [    4.197009] OF: translation of DMA address(0) to CPU address failed
> > node(/pcie@60000000)
> > [    4.205330] ahci 0000:02:00.0: SSS flag set, parallel bus scan disabled
> > [    4.212015] ahci 0000:02:00.0: AHCI 0001.0200 32 slots 2 ports 6
> > Gbps 0x3 impl SATA mode
> > [    4.220122] ahci 0000:02:00.0: flags: 64bit ncq sntf stag led clo
> > pmp pio slum part ccc sxs
> > [    4.229431] scsi host0: ahci
> > [    4.232675] scsi host1: ahci
> > [    4.235694] ata1: SATA max UDMA/133 abar m512@0x68010000 port
> > 0x68010100 irq 35
> > [    4.243033] ata2: SATA max UDMA/133 abar m512@0x68010000 port
> > 0x68010180 irq 35
> > [    4.253906] libphy: Fixed MDIO Bus: probed
> > [    4.258796] CAN device driver interface
> > [    4.262933] bgmac_bcma: Broadcom 47xx GBit MAC driver loaded
> > [    4.268942] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
> > [    4.274772] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
> > [    4.280739] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.6.0-k
> > [    4.287707] igb: Copyright (c) 2007-2014 Intel Corporation.
> > [    4.294603] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB
> > Ethernet driver
> > [    4.302042] usbcore: registered new interface driver pegasus
> > [    4.307736] usbcore: registered new interface driver asix
> > [    4.313150] usbcore: registered new interface driver ax88179_178a
> > [    4.319267] usbcore: registered new interface driver cdc_ether
> > [    4.325122] usbcore: registered new interface driver smsc75xx
> > [    4.330901] usbcore: registered new interface driver smsc95xx
> > [    4.336663] usbcore: registered new interface driver net1080
> > [    4.342350] usbcore: registered new interface driver cdc_subset
> > [    4.348295] usbcore: registered new interface driver zaurus
> > [    4.353894] usbcore: registered new interface driver cdc_ncm
> > [    4.360347] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
> > [    4.366891] ehci-pci: EHCI PCI platform driver
> > [    4.371359] ehci-platform: EHCI generic platform driver
> > [    4.376646] ehci-orion: EHCI orion driver
> > [    4.380714] SPEAr-ehci: EHCI SPEAr driver
> > [    4.384767] ehci-st: EHCI STMicroelectronics driver
> > [    4.389704] ehci-exynos: EHCI Exynos driver
> > [    4.393931] ehci-atmel: EHCI Atmel driver
> > [    4.397991] tegra-ehci: Tegra EHCI driver
> > [    4.402048] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
> > [    4.408245] ohci-pci: OHCI PCI platform driver
> > [    4.412714] ohci-platform: OHCI generic platform driver
> > [    4.418003] SPEAr-ohci: OHCI SPEAr driver
> > [    4.422057] ohci-st: OHCI STMicroelectronics driver
> > [    4.426995] ohci-atmel: OHCI Atmel driver
> > [    4.431085] OF: translation of DMA address(0) to CPU address failed
> > node(/pcie@60000000)
> > [    4.439259] xhci_hcd 0000:04:00.0: xHCI Host Controller
> > [    4.444497] xhci_hcd 0000:04:00.0: new USB bus registered, assigned
> > bus number 1
> > [    4.457324] xhci_hcd 0000:04:00.0: hcc params 0x014051cf hci
> > version 0x100 quirks 0x0000000100000410
> > [    4.467671] hub 1-0:1.0: USB hub found
> > [    4.471449] hub 1-0:1.0: 4 ports detected
> > [    4.475927] xhci_hcd 0000:04:00.0: xHCI Host Controller
> > [    4.481175] xhci_hcd 0000:04:00.0: new USB bus registered, assigned
> > bus number 2
> > [    4.488585] xhci_hcd 0000:04:00.0: Host supports USB 3.0 SuperSpeed
> > [    4.494924] usb usb2: We don't know the algorithms for LPM for this
> > host, disabling LPM.
> > [    4.503372] hub 2-0:1.0: USB hub found
> > [    4.507155] hub 2-0:1.0: 4 ports detected
> > [    4.511847] usbcore: registered new interface driver usb-storage
> > [    4.519900] i2c /dev entries driver
> > [    4.528493] /cpus/cpu@0: unsupported enable-method property: psci
> > [    4.537114] sdhci: Secure Digital Host Controller Interface driver
> > [    4.543297] sdhci: Copyright(c) Pierre Ossman
> > [    4.548328] Synopsys Designware Multimedia Card Interface Driver
> > [    4.554829] sdhci-pltfm: SDHCI platform and OF driver helper
> > [    4.562104] ledtrig-cpu: registered to indicate activity on CPUs
> > [    4.568594] usbcore: registered new interface driver usbhid
> > [    4.574168] usbhid: USB HID core driver
> > [    4.579546] drop_monitor: Initializing network drop monitor service
> > [    4.586552] NET: Registered protocol family 10
> > [    4.591887] Segment Routing with IPv6
> > [    4.595614] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
> > [    4.602085] NET: Registered protocol family 17
> > [    4.606537] can: controller area network core (rev 20170425 abi 9)
> > [    4.612780] NET: Registered protocol family 29
> > [    4.617248] can: raw protocol (rev 20170425)
> > [    4.621524] can: broadcast manager protocol (rev 20170425 t)
> > [    4.627198] can: netlink gateway (rev 20190810) max_hops=1
> > [    4.632967] Key type dns_resolver registered
> > [    4.637328] Registering SWP/SWPB emulation handler
> > [    4.642410] Loading compiled-in X.509 certificates
> > [    4.688987] OF: translation of DMA address(0) to CPU address failed
> > node(/gpio-keys)
> > [    4.696780] irq: no irq domain found for interrupt-controller@510c0000 !
> > [    4.703556] gpio-keys gpio-keys: Found button without gpio or irq
> > [    4.709673] gpio-keys: probe of gpio-keys failed with error -22
> > [    4.715621] hctosys: unable to open rtc device (rtc0)
> > [    4.721044] uart-pl011 2a400000.uart: no DMA platform data
> > [    4.746912] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
> > [    4.754022] ata1.00: ATA-10: WDC WD10EZEX-22MFCA0, 01.01A01, max UDMA/133
> > [    4.760826] ata1.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 32), AA
> > [    4.768960] ata1.00: configured for UDMA/133
> > [    4.773637] scsi 0:0:0:0: Direct-Access     ATA      WDC
> > WD10EZEX-22M 1A01 PQ: 0 ANSI: 5
> > [    4.782675] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks:
> > (1.00 TB/932 GiB)
> > [    4.790362] sd 0:0:0:0: [sda] 4096-byte physical blocks
> > [    4.795635] sd 0:0:0:0: [sda] Write Protect is off
> > [    4.800505] sd 0:0:0:0: [sda] Write cache: enabled, read cache:
> > enabled, doesn't support DPO or FUA
> > [    4.846916] usb 1-3: new high-speed USB device number 2 using xhci_hcd
> > [    4.865348]  sda: sda1 sda2 sda3 sda4
> > [    4.871475] sd 0:0:0:0: [sda] Attached SCSI disk
> > [    4.887962] usb-storage 1-3:1.0: USB Mass Storage device detected
> > [    4.894715] scsi host2: usb-storage 1-3:1.0
> > [    5.109059] ata2: SATA link down (SStatus 0 SControl 300)
> > [    5.117814] Freeing unused kernel memory: 2048K
> > [    5.122861] Run /init as init process
> >
> > _______________________________________________
> > linux-arm-kernel mailing list
> > linux-arm-kernel@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> >

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/4] ARM: decompressor: use by-VA cache maintenance for v7 cores
  2020-02-21 13:42     ` Ard Biesheuvel
@ 2020-02-21 15:54       ` Ard Biesheuvel
  2020-02-21 16:09       ` Robin Murphy
  1 sibling, 0 replies; 11+ messages in thread
From: Ard Biesheuvel @ 2020-02-21 15:54 UTC (permalink / raw)
  To: Robin Murphy
  Cc: linux-efi, Arnd Bergmann, Nicolas Pitre, Tony Lindgren,
	Marc Zyngier, Russell King, Catalin Marinas, linux-arm-kernel

On Fri, 21 Feb 2020 at 14:42, Ard Biesheuvel <ardb@kernel.org> wrote:
>
> On Fri, 21 Feb 2020 at 14:35, Robin Murphy <robin.murphy@arm.com> wrote:
> >
> > On 20/02/2020 6:08 pm, Ard Biesheuvel wrote:
> > > (+ Arnd)
> > >
> > > On Wed, 19 Feb 2020 at 10:43, Ard Biesheuvel <ardb@kernel.org> wrote:
> > >>
> > >> While making changes to the EFI stub startup code, I noticed that we are
> > >> still doing set/way maintenance on the caches when booting on v7 cores.
> > >> This works today on VMs by virtue of the fact that KVM traps set/way ops
> > >> and cleans the whole address space by VA on behalf of the guest, and on
> > >> most v7 hardware, the set/way ops are in fact sufficient when only one
> > >> core is running, as there usually is no system cache. But on systems
> > >> like SynQuacer, for which 32-bit firmware is available, the current cache
> > >> maintenance only pushes the data out to the L3 system cache, where it
> > >> is not visible to the CPU once it turns the MMU and caches off.
> > >>
> > >> So instead, switch to the by-VA cache maintenance that the architecture
> > >> requires for v7 and later (and ARM1176, as a side effect).
> > >>
> > >> Changes since v1:
> > >> - include the EFI patch that was sent out separately before (#1)
> > >> - split the preparatory work to pass the region to clean in r0/r1 in a EFI
> > >>    specific one and one for the decompressor - this way, the first two patches
> > >>    can go on a stable branch that is shared between the ARM tree and the EFI
> > >>    tree
> > >> - document the meaning of the values in r0/r1 upon entry to cache_clean_flush
> > >> - take care to treat the region end address as exclusive
> > >> - switch to clean+invalidate to align with the other implementations
> > >> - drop some code that manages the stack pointer value before calling
> > >>    cache_clean_flush(), which is no longer necessary
> > >> - take care to clean the entire region that is covered by the relocated zImage
> > >>    if it needs to relocate itself before decompressing
> > >>
> > >> https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=arm32-efi-cache-ops
> > >>
> > >
> > > Adding my own data point here: with these patches, I can reproducibly
> > > boot on the SynQuacer platform (24x Cortex-A53 + GICv3 + L3 system
> > > cache) until the point where /init is loaded, after which it hangs
> > > (see below), whereas without them, it always crashes early with weird,
> > > unreproducible errors, if it even makes it far enough through the
> > > decompressor to produce any earlycon output.
> > >
> > > There is some other weird stuff going on, but this is unlikely to be
> > > related to cache maintenance:
> > > - multiple occurrences of
> > >     OF: translation of DMA address(0) to CPU address failed node(...)
> >
> > FWIW that implies a "dma-ranges" property in the wrong place in the DT -
> > if you copied the now-gone Juno example of placing one directly in the
> > root node, that was bogus, sorry.
> >
>
> OK, so where should it be instead? Are you saying it is now required
> to have a /soc or /smb node that contains all the device nodes?
>

Never mind - I'll just drop "dma-ranges" from the root node entirely.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/4] ARM: decompressor: use by-VA cache maintenance for v7 cores
  2020-02-21 13:42     ` Ard Biesheuvel
  2020-02-21 15:54       ` Ard Biesheuvel
@ 2020-02-21 16:09       ` Robin Murphy
  2020-02-22 23:38         ` Linus Walleij
  1 sibling, 1 reply; 11+ messages in thread
From: Robin Murphy @ 2020-02-21 16:09 UTC (permalink / raw)
  To: Ard Biesheuvel
  Cc: linux-efi, Arnd Bergmann, Nicolas Pitre, Tony Lindgren,
	Marc Zyngier, Russell King, Catalin Marinas, linux-arm-kernel

On 21/02/2020 1:42 pm, Ard Biesheuvel wrote:
> On Fri, 21 Feb 2020 at 14:35, Robin Murphy <robin.murphy@arm.com> wrote:
>>
>> On 20/02/2020 6:08 pm, Ard Biesheuvel wrote:
>>> (+ Arnd)
>>>
>>> On Wed, 19 Feb 2020 at 10:43, Ard Biesheuvel <ardb@kernel.org> wrote:
>>>>
>>>> While making changes to the EFI stub startup code, I noticed that we are
>>>> still doing set/way maintenance on the caches when booting on v7 cores.
>>>> This works today on VMs by virtue of the fact that KVM traps set/way ops
>>>> and cleans the whole address space by VA on behalf of the guest, and on
>>>> most v7 hardware, the set/way ops are in fact sufficient when only one
>>>> core is running, as there usually is no system cache. But on systems
>>>> like SynQuacer, for which 32-bit firmware is available, the current cache
>>>> maintenance only pushes the data out to the L3 system cache, where it
>>>> is not visible to the CPU once it turns the MMU and caches off.
>>>>
>>>> So instead, switch to the by-VA cache maintenance that the architecture
>>>> requires for v7 and later (and ARM1176, as a side effect).
>>>>
>>>> Changes since v1:
>>>> - include the EFI patch that was sent out separately before (#1)
>>>> - split the preparatory work to pass the region to clean in r0/r1 in a EFI
>>>>     specific one and one for the decompressor - this way, the first two patches
>>>>     can go on a stable branch that is shared between the ARM tree and the EFI
>>>>     tree
>>>> - document the meaning of the values in r0/r1 upon entry to cache_clean_flush
>>>> - take care to treat the region end address as exclusive
>>>> - switch to clean+invalidate to align with the other implementations
>>>> - drop some code that manages the stack pointer value before calling
>>>>     cache_clean_flush(), which is no longer necessary
>>>> - take care to clean the entire region that is covered by the relocated zImage
>>>>     if it needs to relocate itself before decompressing
>>>>
>>>> https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=arm32-efi-cache-ops
>>>>
>>>
>>> Adding my own data point here: with these patches, I can reproducibly
>>> boot on the SynQuacer platform (24x Cortex-A53 + GICv3 + L3 system
>>> cache) until the point where /init is loaded, after which it hangs
>>> (see below), whereas without them, it always crashes early with weird,
>>> unreproducible errors, if it even makes it far enough through the
>>> decompressor to produce any earlycon output.
>>>
>>> There is some other weird stuff going on, but this is unlikely to be
>>> related to cache maintenance:
>>> - multiple occurrences of
>>>      OF: translation of DMA address(0) to CPU address failed node(...)
>>
>> FWIW that implies a "dma-ranges" property in the wrong place in the DT -
>> if you copied the now-gone Juno example of placing one directly in the
>> root node, that was bogus, sorry.
>>
> 
> OK, so where should it be instead? Are you saying it is now required
> to have a /soc or /smb node that contains all the device nodes?

That is now my understanding, yes - if there is some property of the 
system interconnect which is not entirely transparent relative to the 
conceptual CPU-visible physical address space and needs to be described, 
then the only way to correctly encode that in DT is with an explicit 
level of 'bus' in the hierarchy to represent that interconnect. 
Otherwise these address translation properties quickly end up in 
philosophical conundrums over what the parent of the root node is.

Robin.

>>> - /cpus/cpu@0: unsupported enable-method property: psci
>>
>> Missing CONFIG_ARM_PSCI_CPUIDLE? That's caught me out on more than one
>> occasion since 5.4.
>>
>> Robin.
>>
>>> Then, there is not enough vmalloc space to map the config space of
>>> both PCIe RCs.
>>>
>>> Also, due to the fact that this platform sadly honours the ARM
>>> recommendation on memory maps, it seems there is no way to make useful
>>> use of any memory beyond 2 GB, given that the hole between the lower 2
>>> GB and the upper <30 GB eats up all the lowmem by being covered by the
>>> memmap[] array. (Note that this platform supports up to 64 GB, in
>>> which case another hole of 480 GB is created, so there is no way we
>>> can even boot with that much memory reported to the kernel)
>>>
>>>
>>> Shell> initrd initrd.gz
>>> Shell> zImage
>>> EFI stub: Booting Linux Kernel...
>>> EFI stub: Using DTB from configuration table
>>> EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
>>> EFI stub: Exiting boot services and installing virtual address map...
>>> [    0.000000] Booting Linux on physical CPU 0x0
>>> [    0.000000] Linux version 5.6.0-rc1-00084-g8602a0ff0200-dirty
>>> (ardbie01@e123331-lin) (gcc version 7.4.0 (Ubuntu/Linaro
>>> 7.4.0-1ubuntu1~18.04.1)) #286 SMP Thu Feb 20 17:49:59 CET 2020
>>> [    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=70c5383d
>>> [    0.000000] CPU: div instructions available: patching division code
>>> [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
>>> instruction cache
>>> [    0.000000] OF: fdt: Machine model: Socionext Developer Box
>>> [    0.000000] Memory policy: Data cache writealloc
>>> [    0.000000] efi: EFI v2.70 by EDK II
>>> [    0.000000] efi:  SMBIOS 3.0=0xffa1c000  MEMATTR=0xfd0b4010
>>> ESRT=0xfdfbb910  MEMRESERVE=0xf8f2d010
>>> [    0.000000] OF: fdt: Ignoring memory block 0x880000000 - 0x1000000000
>>> [    0.000000] esrt: Reserving ESRT space from 0x00000000fdfbb910 to
>>> 0x00000000fdfbb948.
>>> [    0.000000] cma: Reserved 64 MiB at 0x00000000f9000000
>>> [    0.000000] psci: probing for conduit method from DT.
>>> [    0.000000] psci: PSCIv1.1 detected in firmware.
>>> [    0.000000] psci: Using standard PSCI v0.2 function IDs
>>> [    0.000000] psci: MIGRATE_INFO_TYPE not supported.
>>> [    0.000000] psci: SMC Calling Convention v1.0
>>> [    0.000000] percpu: Embedded 20 pages/cpu s49356 r8192 d24372 u81920
>>> [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 522368
>>> [    0.000000] Kernel command line: zImage
>>> [    0.000000] printk: log_buf_len individual max cpu contribution: 4096 bytes
>>> [    0.000000] printk: log_buf_len total cpu_extra contributions: 94208 bytes
>>> [    0.000000] printk: log_buf_len min size: 131072 bytes
>>> [    0.000000] printk: log_buf_len: 262144 bytes
>>> [    0.000000] printk: early log buf free: 128828(98%)
>>> [    0.000000] Dentry cache hash table entries: 131072 (order: 7,
>>> 524288 bytes, linear)
>>> [    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144
>>> bytes, linear)
>>> [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
>>> [    0.000000] software IO TLB: mapped [mem 0xaa90c000-0xae90c000] (64MB)
>>> [    0.000000] Memory: 1886672K/2097152K available (10240K kernel
>>> code, 1811K rwdata, 5392K rodata, 2048K init, 414K bss, 144944K
>>> reserved, 65536K cma-reserved, 1233168K highmem)
>>> [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=24, Nodes=1
>>> [    0.000000] rcu: Hierarchical RCU implementation.
>>> [    0.000000] rcu:     RCU event tracing is enabled.
>>> [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay
>>> is 10 jiffies.
>>> [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
>>> [    0.000000] GICv3: 640 SPIs implemented
>>> [    0.000000] GICv3: 0 Extended SPIs implemented
>>> [    0.000000] GICv3: Distributor has no Range Selector support
>>> [    0.000000] GICv3: 16 PPIs implemented
>>> [    0.000000] GICv3: no VLPI support, no direct LPI support, no RVPEID support
>>> [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000030400000
>>> [    0.000000] ITS [mem 0x30020000-0x3003ffff]
>>> [    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
>>> [    0.000000] ITS@0x0000000030020000: allocated 524288 Devices
>>> @aa400000 (flat, esz 8, psz 64K, shr 0)
>>> [    0.000000] ITS: using cache flushing for cmd queue
>>> [    0.000000] GICv3: using LPI property table @0x00000000aa080000
>>> [    0.000000] GIC: using cache flushing for LPI property table
>>> [    0.000000] GICv3: CPU0: using allocated LPI pending table
>>> @0x00000000aa090000
>>> [    0.000000] random: get_random_bytes called from
>>> start_kernel+0x469/0x5ca with crng_init=0
>>> [    0.000000] arch_timer: cp15 and mmio timer(s) running at 100.00MHz
>>> (virt/phys).
>>> [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff
>>> max_cycles: 0x171024e7e0, max_idle_ns: 440795205315 ns
>>> [    0.000004] sched_clock: 56 bits at 100MHz, resolution 10ns, wraps
>>> every 4398046511100ns
>>> [    0.000013] Switching to timer-based delay loop, resolution 10ns
>>> [    0.000890] Console: colour dummy device 80x30
>>> [    0.001344] printk: console [tty0] enabled
>>> [    0.001389] Calibrating delay loop (skipped), value calculated
>>> using timer frequency.. 200.00 BogoMIPS (lpj=1000000)
>>> [    0.001410] pid_max: default: 32768 minimum: 301
>>> [    0.001561] Mount-cache hash table entries: 2048 (order: 1, 8192
>>> bytes, linear)
>>> [    0.001581] Mountpoint-cache hash table entries: 2048 (order: 1,
>>> 8192 bytes, linear)
>>> [    0.002112] CPU: Testing write buffer coherency: ok
>>> [    0.002637] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
>>> [    0.002926] Setting up static identity map for 0x80400000 - 0x80400160
>>> [    0.003448] rcu: Hierarchical SRCU implementation.
>>> [    0.003601] Platform MSI: gic-its@30020000 domain created
>>> [    0.003669] PCI/MSI:
>>> /interrupt-controller@30000000/gic-its@30020000 domain created
>>> [    0.004751] Remapping and enabling EFI services.
>>> [    0.005305] smp: Bringing up secondary CPUs ...
>>> [    0.005895] GICv3: CPU1: found redistributor 1 region 0:0x0000000030420000
>>> [    0.005919] GICv3: CPU1: using allocated LPI pending table
>>> @0x00000000aa0a0000
>>> [    0.005940] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
>>> [    0.011149] GICv3: CPU2: found redistributor 100 region 0:0x0000000030440000
>>> [    0.011179] GICv3: CPU2: using allocated LPI pending table
>>> @0x00000000aa0b0000
>>> [    0.011203] CPU2: thread -1, cpu 0, socket 1, mpidr 80000100
>>> [    0.014242] GICv3: CPU3: found redistributor 101 region 0:0x0000000030460000
>>> [    0.014264] GICv3: CPU3: using allocated LPI pending table
>>> @0x00000000aa0c0000
>>> [    0.014284] CPU3: thread -1, cpu 1, socket 1, mpidr 80000101
>>> [    0.019622] GICv3: CPU4: found redistributor 200 region 0:0x0000000030480000
>>> [    0.019650] GICv3: CPU4: using allocated LPI pending table
>>> @0x00000000aa0d0000
>>> [    0.019675] CPU4: thread -1, cpu 0, socket 2, mpidr 80000200
>>> [    0.022737] GICv3: CPU5: found redistributor 201 region 0:0x00000000304a0000
>>> [    0.022759] GICv3: CPU5: using allocated LPI pending table
>>> @0x00000000aa0e0000
>>> [    0.022777] CPU5: thread -1, cpu 1, socket 2, mpidr 80000201
>>> [    0.028146] GICv3: CPU6: found redistributor 300 region 0:0x00000000304c0000
>>> [    0.028174] GICv3: CPU6: using allocated LPI pending table
>>> @0x00000000aa0f0000
>>> [    0.028196] CPU6: thread -1, cpu 0, socket 3, mpidr 80000300
>>> [    0.031213] GICv3: CPU7: found redistributor 301 region 0:0x00000000304e0000
>>> [    0.031239] GICv3: CPU7: using allocated LPI pending table
>>> @0x00000000aa100000
>>> [    0.031256] CPU7: thread -1, cpu 1, socket 3, mpidr 80000301
>>> [    0.036606] GICv3: CPU8: found redistributor 400 region 0:0x0000000030500000
>>> [    0.036634] GICv3: CPU8: using allocated LPI pending table
>>> @0x00000000aa110000
>>> [    0.036657] CPU8: thread -1, cpu 0, socket 4, mpidr 80000400
>>> [    0.039719] GICv3: CPU9: found redistributor 401 region 0:0x0000000030520000
>>> [    0.039740] GICv3: CPU9: using allocated LPI pending table
>>> @0x00000000aa120000
>>> [    0.039757] CPU9: thread -1, cpu 1, socket 4, mpidr 80000401
>>> [    0.045156] GICv3: CPU10: found redistributor 500 region 0:0x0000000030540000
>>> [    0.045187] GICv3: CPU10: using allocated LPI pending table
>>> @0x00000000aa130000
>>> [    0.045210] CPU10: thread -1, cpu 0, socket 5, mpidr 80000500
>>> [    0.048241] GICv3: CPU11: found redistributor 501 region 0:0x0000000030560000
>>> [    0.048263] GICv3: CPU11: using allocated LPI pending table
>>> @0x00000000aa140000
>>> [    0.048282] CPU11: thread -1, cpu 1, socket 5, mpidr 80000501
>>> [    0.053651] GICv3: CPU12: found redistributor 600 region 0:0x0000000030580000
>>> [    0.053681] GICv3: CPU12: using allocated LPI pending table
>>> @0x00000000aa150000
>>> [    0.053706] CPU12: thread -1, cpu 0, socket 6, mpidr 80000600
>>> [    0.056742] GICv3: CPU13: found redistributor 601 region 0:0x00000000305a0000
>>> [    0.056765] GICv3: CPU13: using allocated LPI pending table
>>> @0x00000000aa160000
>>> [    0.056785] CPU13: thread -1, cpu 1, socket 6, mpidr 80000601
>>> [    0.062113] GICv3: CPU14: found redistributor 700 region 0:0x00000000305c0000
>>> [    0.062144] GICv3: CPU14: using allocated LPI pending table
>>> @0x00000000aa170000
>>> [    0.062166] CPU14: thread -1, cpu 0, socket 7, mpidr 80000700
>>> [    0.065238] GICv3: CPU15: found redistributor 701 region 0:0x00000000305e0000
>>> [    0.065263] GICv3: CPU15: using allocated LPI pending table
>>> @0x00000000aa180000
>>> [    0.065282] CPU15: thread -1, cpu 1, socket 7, mpidr 80000701
>>> [    0.070661] GICv3: CPU16: found redistributor 800 region 0:0x0000000030600000
>>> [    0.070691] GICv3: CPU16: using allocated LPI pending table
>>> @0x00000000aa190000
>>> [    0.070716] CPU16: thread -1, cpu 0, socket 8, mpidr 80000800
>>> [    0.073748] GICv3: CPU17: found redistributor 801 region 0:0x0000000030620000
>>> [    0.073774] GICv3: CPU17: using allocated LPI pending table
>>> @0x00000000aa1a0000
>>> [    0.073794] CPU17: thread -1, cpu 1, socket 8, mpidr 80000801
>>> [    0.079132] GICv3: CPU18: found redistributor 900 region 0:0x0000000030640000
>>> [    0.079163] GICv3: CPU18: using allocated LPI pending table
>>> @0x00000000aa1b0000
>>> [    0.079187] CPU18: thread -1, cpu 0, socket 9, mpidr 80000900
>>> [    0.082216] GICv3: CPU19: found redistributor 901 region 0:0x0000000030660000
>>> [    0.082239] GICv3: CPU19: using allocated LPI pending table
>>> @0x00000000aa1c0000
>>> [    0.082257] CPU19: thread -1, cpu 1, socket 9, mpidr 80000901
>>> [    0.087755] GICv3: CPU20: found redistributor a00 region 0:0x0000000030680000
>>> [    0.087788] GICv3: CPU20: using allocated LPI pending table
>>> @0x00000000aa1d0000
>>> [    0.087811] CPU20: thread -1, cpu 0, socket 10, mpidr 80000a00
>>> [    0.090897] GICv3: CPU21: found redistributor a01 region 0:0x00000000306a0000
>>> [    0.090922] GICv3: CPU21: using allocated LPI pending table
>>> @0x00000000aa1e0000
>>> [    0.090939] CPU21: thread -1, cpu 1, socket 10, mpidr 80000a01
>>> [    0.096296] GICv3: CPU22: found redistributor b00 region 0:0x00000000306c0000
>>> [    0.096329] GICv3: CPU22: using allocated LPI pending table
>>> @0x00000000aa1f0000
>>> [    0.096353] CPU22: thread -1, cpu 0, socket 11, mpidr 80000b00
>>> [    0.099356] GICv3: CPU23: found redistributor b01 region 0:0x00000000306e0000
>>> [    0.099381] GICv3: CPU23: using allocated LPI pending table
>>> @0x00000000aa200000
>>> [    0.099400] CPU23: thread -1, cpu 1, socket 11, mpidr 80000b01
>>> [    0.099506] smp: Brought up 1 node, 24 CPUs
>>> [    0.100163] SMP: Total of 24 processors activated (4800.00 BogoMIPS).
>>> [    0.100175] CPU: All CPU(s) started in SVC mode.
>>> [    0.101193] devtmpfs: initialized
>>> [    0.103698] VFP support v0.3: implementor 41 architecture 3 part 40
>>> variant 3 rev 4
>>> [    0.103980] clocksource: jiffies: mask: 0xffffffff max_cycles:
>>> 0xffffffff, max_idle_ns: 19112604462750000 ns
>>> [    0.104009] futex hash table entries: 8192 (order: 7, 524288 bytes, linear)
>>> [    0.106670] pinctrl core: initialized pinctrl subsystem
>>> [    0.107566] thermal_sys: Registered thermal governor 'step_wise'
>>> [    0.107754] SMBIOS 3.3.0 present.
>>> [    0.107788] DMI: Socionext SynQuacer E-series DeveloperBox, BIOS
>>> build #1 Feb 20 2020
>>> [    0.108185] NET: Registered protocol family 16
>>> [    0.109556] DMA: preallocated 256 KiB pool for atomic coherent allocations
>>> [    0.110957] cpuidle: using governor menu
>>> [    0.111063] No ATAGs?
>>> [    0.111467] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4
>>> watchpoint registers.
>>> [    0.111490] hw-breakpoint: maximum watchpoint size is 8 bytes.
>>> [    0.112874] Serial: AMBA PL011 UART driver
>>> [    0.114349] OF: translation of DMA address(0) to CPU address failed
>>> node(/uart@2a400000)
>>> [    0.114421] 2a400000.uart: ttyAMA0 at MMIO 0x2a400000 (irq = 22,
>>> base_baud = 0) is a PL011 rev3
>>> [    1.117194] printk: console [ttyAMA0] enabled
>>> [    1.135592] AT91: Could not find identification node
>>> [    1.136261] iommu: Default domain type: Translated
>>> [    1.146225] vgaarb: loaded
>>> [    1.149407] SCSI subsystem initialized
>>> [    1.153506] usbcore: registered new interface driver usbfs
>>> [    1.159042] usbcore: registered new interface driver hub
>>> [    1.164477] usbcore: registered new device driver usb
>>> [    1.169950] pps_core: LinuxPPS API ver. 1 registered
>>> [    1.174911] pps_core: Software ver. 5.3.6 - Copyright 2005-2007
>>> Rodolfo Giometti <giometti@linux.it>
>>> [    1.184062] PTP clock support registered
>>> [    1.188042] EDAC MC: Ver: 3.0.0
>>> [    1.191660] Registered efivars operations
>>> [    1.196838] clocksource: Switched to clocksource arch_sys_counter
>>> [    2.103835] NET: Registered protocol family 2
>>> [    2.108658] tcp_listen_portaddr_hash hash table entries: 512
>>> (order: 0, 6144 bytes, linear)
>>> [    2.117044] TCP established hash table entries: 8192 (order: 3,
>>> 32768 bytes, linear)
>>> [    2.124854] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
>>> [    2.132103] TCP: Hash tables configured (established 8192 bind 8192)
>>> [    2.138585] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
>>> [    2.145223] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
>>> [    2.152446] NET: Registered protocol family 1
>>> [    2.157108] RPC: Registered named UNIX socket transport module.
>>> [    2.163026] RPC: Registered udp transport module.
>>> [    2.167746] RPC: Registered tcp transport module.
>>> [    2.172445] RPC: Registered tcp NFSv4.1 backchannel transport module.
>>> [    2.178897] PCI: CLS 0 bytes, default 64
>>> [    2.183052] Trying to unpack rootfs image as initramfs...
>>> [    3.413006] Freeing initrd memory: 22816K
>>> [    3.418665] Initialise system trusted keyrings
>>> [    3.423276] workingset: timestamp_bits=30 max_order=19 bucket_order=0
>>> [    3.434628] squashfs: version 4.0 (2009/01/31) Phillip Lougher
>>> [    3.441097] NFS: Registering the id_resolver key type
>>> [    3.446175] Key type id_resolver registered
>>> [    3.450375] Key type id_legacy registered
>>> [    3.454388] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
>>> [    3.461111] ntfs: driver 2.1.32 [Flags: R/O].
>>> [    3.465747] Key type asymmetric registered
>>> [    3.469857] Asymmetric key parser 'x509' registered
>>> [    3.474765] bounce: pool size: 64 pages
>>> [    3.478629] Block layer SCSI generic (bsg) driver version 0.4
>>> loaded (major 247)
>>> [    3.486027] io scheduler mq-deadline registered
>>> [    3.490564] io scheduler kyber registered
>>> [    3.500170] OF: translation of DMA address(0) to CPU address failed
>>> node(/pcie@60000000)
>>> [    3.508318] pci-host-generic 60000000.pcie: host bridge
>>> /pcie@60000000 ranges:
>>> [    3.515556] pci-host-generic 60000000.pcie:       IO
>>> 0x0067f00000..0x0067f0ffff -> 0x0000000000
>>> [    3.524276] pci-host-generic 60000000.pcie:      MEM
>>> 0x0068000000..0x006fffffff -> 0x0068000000
>>> [    3.532987] pci-host-generic 60000000.pcie:      MEM
>>> 0x3e00000000..0x3effffffff -> 0x3e00000000
>>> [    3.543045] pci-host-generic 60000000.pcie: ECAM at [mem
>>> 0x60000000-0x67efffff] for [bus 00-7e]
>>> [    3.551873] pci-host-generic 60000000.pcie: PCI host bridge to bus 0000:00
>>> [    3.558764] pci_bus 0000:00: root bus resource [bus 00-7e]
>>> [    3.564250] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
>>> [    3.570438] pci_bus 0000:00: root bus resource [mem 0x68000000-0x6fffffff]
>>> [    3.577322] pci_bus 0000:00: root bus resource [mem
>>> 0x3e00000000-0x3effffffff]
>>> [    3.584574] pci 0000:00:00.0: [1b21:1184] type 01 class 0x060400
>>> [    3.590646] pci 0000:00:00.0: enabling Extended Tags
>>> [    3.595677] pci 0000:00:00.0: PME# supported from D0 D3hot D3cold
>>> [    3.602874] PCI: bus0: Fast back to back transfers disabled
>>> [    3.608585] pci 0000:01:01.0: [1b21:1184] type 01 class 0x060400
>>> [    3.614645] pci 0000:01:01.0: enabling Extended Tags
>>> [    3.619672] pci 0000:01:01.0: PME# supported from D0 D3hot D3cold
>>> [    3.625969] pci 0000:01:03.0: [1b21:1184] type 01 class 0x060400
>>> [    3.632040] pci 0000:01:03.0: enabling Extended Tags
>>> [    3.637066] pci 0000:01:03.0: PME# supported from D0 D3hot D3cold
>>> [    3.643363] pci 0000:01:05.0: [1b21:1184] type 01 class 0x060400
>>> [    3.649431] pci 0000:01:05.0: enabling Extended Tags
>>> [    3.654449] pci 0000:01:05.0: PME# supported from D0 D3hot D3cold
>>> [    3.660753] pci 0000:01:07.0: [1b21:1184] type 01 class 0x060400
>>> [    3.666822] pci 0000:01:07.0: enabling Extended Tags
>>> [    3.671844] pci 0000:01:07.0: PME# supported from D0 D3hot D3cold
>>> [    3.678832] PCI: bus1: Fast back to back transfers disabled
>>> [    3.684517] pci 0000:02:00.0: [1b21:0612] type 00 class 0x010601
>>> [    3.690564] pci 0000:02:00.0: reg 0x10: [io  0x0028-0x002f]
>>> [    3.696147] pci 0000:02:00.0: reg 0x14: [io  0x0034-0x0037]
>>> [    3.701738] pci 0000:02:00.0: reg 0x18: [io  0x0020-0x0027]
>>> [    3.707329] pci 0000:02:00.0: reg 0x1c: [io  0x0030-0x0033]
>>> [    3.712912] pci 0000:02:00.0: reg 0x20: [io  0x0000-0x001f]
>>> [    3.718503] pci 0000:02:00.0: reg 0x24: [mem 0x68100000-0x681001ff]
>>> [    3.724781] pci 0000:02:00.0: reg 0x30: [mem 0xffff0000-0xffffffff pref]
>>> [    3.732590] PCI: bus2: Fast back to back transfers disabled
>>> [    3.738174] pci_bus 0000:02: busn_res: [bus 02-7e] end is updated to 02
>>> [    3.745751] PCI: bus3: Fast back to back transfers enabled
>>> [    3.751247] pci_bus 0000:03: busn_res: [bus 03-7e] end is updated to 03
>>> [    3.757969] pci 0000:04:00.0: [1912:0014] type 00 class 0x0c0330
>>> [    3.764012] pci 0000:04:00.0: reg 0x10: [mem 0x68000000-0x68001fff 64bit]
>>> [    3.770943] pci 0000:04:00.0: PME# supported from D0 D3hot D3cold
>>> [    3.807778] PCI: bus4: Fast back to back transfers disabled
>>> [    3.813353] pci_bus 0000:04: busn_res: [bus 04-7e] end is updated to 04
>>> [    3.820943] PCI: bus5: Fast back to back transfers enabled
>>> [    3.826430] pci_bus 0000:05: busn_res: [bus 05-7e] end is updated to 05
>>> [    3.833058] pci_bus 0000:01: busn_res: [bus 01-7e] end is updated to 05
>>> [    3.839709] pci 0000:00:00.0: BAR 8: assigned [mem 0x68000000-0x681fffff]
>>> [    3.846498] pci 0000:00:00.0: BAR 7: assigned [io  0x1000-0x1fff]
>>> [    3.852603] pci 0000:01:01.0: BAR 8: assigned [mem 0x68000000-0x680fffff]
>>> [    3.859402] pci 0000:01:05.0: BAR 8: assigned [mem 0x68100000-0x681fffff]
>>> [    3.866190] pci 0000:01:01.0: BAR 7: assigned [io  0x1000-0x1fff]
>>> [    3.872294] pci 0000:02:00.0: BAR 6: assigned [mem
>>> 0x68000000-0x6800ffff pref]
>>> [    3.879529] pci 0000:02:00.0: BAR 5: assigned [mem 0x68010000-0x680101ff]
>>> [    3.886321] pci 0000:02:00.0: BAR 4: assigned [io  0x1000-0x101f]
>>> [    3.892425] pci 0000:02:00.0: BAR 0: assigned [io  0x1020-0x1027]
>>> [    3.898529] pci 0000:02:00.0: BAR 2: assigned [io  0x1028-0x102f]
>>> [    3.904627] pci 0000:02:00.0: BAR 1: assigned [io  0x1030-0x1033]
>>> [    3.910730] pci 0000:02:00.0: BAR 3: assigned [io  0x1034-0x1037]
>>> [    3.916834] pci 0000:01:01.0: PCI bridge to [bus 02]
>>> [    3.921799] pci 0000:01:01.0:   bridge window [io  0x1000-0x1fff]
>>> [    3.927903] pci 0000:01:01.0:   bridge window [mem 0x68000000-0x680fffff]
>>> [    3.934697] pci 0000:01:03.0: PCI bridge to [bus 03]
>>> [    3.939682] pci 0000:04:00.0: BAR 0: assigned [mem
>>> 0x68100000-0x68101fff 64bit]
>>> [    3.947012] pci 0000:01:05.0: PCI bridge to [bus 04]
>>> [    3.951979] pci 0000:01:05.0:   bridge window [mem 0x68100000-0x681fffff]
>>> [    3.958780] pci 0000:01:07.0: PCI bridge to [bus 05]
>>> [    3.963754] pci 0000:00:00.0: PCI bridge to [bus 01-05]
>>> [    3.968985] pci 0000:00:00.0:   bridge window [io  0x1000-0x1fff]
>>> [    3.975081] pci 0000:00:00.0:   bridge window [mem 0x68000000-0x681fffff]
>>> [    3.981914] OF: translation of DMA address(0) to CPU address failed
>>> node(/pcie@60000000)
>>> [    3.990313] OF: translation of DMA address(0) to CPU address failed
>>> node(/pcie@60000000)
>>> [    3.998662] OF: translation of DMA address(0) to CPU address failed
>>> node(/pcie@60000000)
>>> [    4.007005] OF: translation of DMA address(0) to CPU address failed
>>> node(/pcie@60000000)
>>> [    4.015339] OF: translation of DMA address(0) to CPU address failed
>>> node(/pcie@60000000)
>>> [    4.023694] pci 0000:04:00.0: enabling device (0140 -> 0142)
>>> [    4.029447] OF: translation of DMA address(0) to CPU address failed
>>> node(/pcie@70000000)
>>> [    4.037570] pci-host-generic 70000000.pcie: host bridge
>>> /pcie@70000000 ranges:
>>> [    4.044805] pci-host-generic 70000000.pcie:       IO
>>> 0x0077f00000..0x0077f0ffff -> 0x0000000000
>>> [    4.053523] pci-host-generic 70000000.pcie:      MEM
>>> 0x0078000000..0x007fffffff -> 0x0078000000
>>> [    4.062236] pci-host-generic 70000000.pcie:      MEM
>>> 0x3f00000000..0x3fffffffff -> 0x3f00000000
>>> [    4.071308] vmap allocation for size 1052672 failed: use
>>> vmalloc=<size> to increase size
>>> [    4.079411] pci-host-generic 70000000.pcie: ECAM ioremap failed
>>> [    4.085525] pci-host-generic: probe of 70000000.pcie failed with error -12
>>> [    4.126494] Serial: 8250/16550 driver, 5 ports, IRQ sharing enabled
>>> [    4.134170] OF: translation of DMA address(0) to CPU address failed
>>> node(/uart@51040000)
>>> [    4.142748] 51040000.uart: ttyS1 at MMIO 0x51040000 (irq = 23,
>>> base_baud = 3906250) is a 16550A
>>> [    4.152099] SuperH (H)SCI(F) driver initialized
>>> [    4.156953] msm_serial: driver initialized
>>> [    4.161103] STMicroelectronics ASC driver initialized
>>> [    4.166594] STM32 USART driver initialized
>>> [    4.178363] brd: module loaded
>>> [    4.192943] loop: module loaded
>>> [    4.197009] OF: translation of DMA address(0) to CPU address failed
>>> node(/pcie@60000000)
>>> [    4.205330] ahci 0000:02:00.0: SSS flag set, parallel bus scan disabled
>>> [    4.212015] ahci 0000:02:00.0: AHCI 0001.0200 32 slots 2 ports 6
>>> Gbps 0x3 impl SATA mode
>>> [    4.220122] ahci 0000:02:00.0: flags: 64bit ncq sntf stag led clo
>>> pmp pio slum part ccc sxs
>>> [    4.229431] scsi host0: ahci
>>> [    4.232675] scsi host1: ahci
>>> [    4.235694] ata1: SATA max UDMA/133 abar m512@0x68010000 port
>>> 0x68010100 irq 35
>>> [    4.243033] ata2: SATA max UDMA/133 abar m512@0x68010000 port
>>> 0x68010180 irq 35
>>> [    4.253906] libphy: Fixed MDIO Bus: probed
>>> [    4.258796] CAN device driver interface
>>> [    4.262933] bgmac_bcma: Broadcom 47xx GBit MAC driver loaded
>>> [    4.268942] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
>>> [    4.274772] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
>>> [    4.280739] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.6.0-k
>>> [    4.287707] igb: Copyright (c) 2007-2014 Intel Corporation.
>>> [    4.294603] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB
>>> Ethernet driver
>>> [    4.302042] usbcore: registered new interface driver pegasus
>>> [    4.307736] usbcore: registered new interface driver asix
>>> [    4.313150] usbcore: registered new interface driver ax88179_178a
>>> [    4.319267] usbcore: registered new interface driver cdc_ether
>>> [    4.325122] usbcore: registered new interface driver smsc75xx
>>> [    4.330901] usbcore: registered new interface driver smsc95xx
>>> [    4.336663] usbcore: registered new interface driver net1080
>>> [    4.342350] usbcore: registered new interface driver cdc_subset
>>> [    4.348295] usbcore: registered new interface driver zaurus
>>> [    4.353894] usbcore: registered new interface driver cdc_ncm
>>> [    4.360347] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
>>> [    4.366891] ehci-pci: EHCI PCI platform driver
>>> [    4.371359] ehci-platform: EHCI generic platform driver
>>> [    4.376646] ehci-orion: EHCI orion driver
>>> [    4.380714] SPEAr-ehci: EHCI SPEAr driver
>>> [    4.384767] ehci-st: EHCI STMicroelectronics driver
>>> [    4.389704] ehci-exynos: EHCI Exynos driver
>>> [    4.393931] ehci-atmel: EHCI Atmel driver
>>> [    4.397991] tegra-ehci: Tegra EHCI driver
>>> [    4.402048] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
>>> [    4.408245] ohci-pci: OHCI PCI platform driver
>>> [    4.412714] ohci-platform: OHCI generic platform driver
>>> [    4.418003] SPEAr-ohci: OHCI SPEAr driver
>>> [    4.422057] ohci-st: OHCI STMicroelectronics driver
>>> [    4.426995] ohci-atmel: OHCI Atmel driver
>>> [    4.431085] OF: translation of DMA address(0) to CPU address failed
>>> node(/pcie@60000000)
>>> [    4.439259] xhci_hcd 0000:04:00.0: xHCI Host Controller
>>> [    4.444497] xhci_hcd 0000:04:00.0: new USB bus registered, assigned
>>> bus number 1
>>> [    4.457324] xhci_hcd 0000:04:00.0: hcc params 0x014051cf hci
>>> version 0x100 quirks 0x0000000100000410
>>> [    4.467671] hub 1-0:1.0: USB hub found
>>> [    4.471449] hub 1-0:1.0: 4 ports detected
>>> [    4.475927] xhci_hcd 0000:04:00.0: xHCI Host Controller
>>> [    4.481175] xhci_hcd 0000:04:00.0: new USB bus registered, assigned
>>> bus number 2
>>> [    4.488585] xhci_hcd 0000:04:00.0: Host supports USB 3.0 SuperSpeed
>>> [    4.494924] usb usb2: We don't know the algorithms for LPM for this
>>> host, disabling LPM.
>>> [    4.503372] hub 2-0:1.0: USB hub found
>>> [    4.507155] hub 2-0:1.0: 4 ports detected
>>> [    4.511847] usbcore: registered new interface driver usb-storage
>>> [    4.519900] i2c /dev entries driver
>>> [    4.528493] /cpus/cpu@0: unsupported enable-method property: psci
>>> [    4.537114] sdhci: Secure Digital Host Controller Interface driver
>>> [    4.543297] sdhci: Copyright(c) Pierre Ossman
>>> [    4.548328] Synopsys Designware Multimedia Card Interface Driver
>>> [    4.554829] sdhci-pltfm: SDHCI platform and OF driver helper
>>> [    4.562104] ledtrig-cpu: registered to indicate activity on CPUs
>>> [    4.568594] usbcore: registered new interface driver usbhid
>>> [    4.574168] usbhid: USB HID core driver
>>> [    4.579546] drop_monitor: Initializing network drop monitor service
>>> [    4.586552] NET: Registered protocol family 10
>>> [    4.591887] Segment Routing with IPv6
>>> [    4.595614] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
>>> [    4.602085] NET: Registered protocol family 17
>>> [    4.606537] can: controller area network core (rev 20170425 abi 9)
>>> [    4.612780] NET: Registered protocol family 29
>>> [    4.617248] can: raw protocol (rev 20170425)
>>> [    4.621524] can: broadcast manager protocol (rev 20170425 t)
>>> [    4.627198] can: netlink gateway (rev 20190810) max_hops=1
>>> [    4.632967] Key type dns_resolver registered
>>> [    4.637328] Registering SWP/SWPB emulation handler
>>> [    4.642410] Loading compiled-in X.509 certificates
>>> [    4.688987] OF: translation of DMA address(0) to CPU address failed
>>> node(/gpio-keys)
>>> [    4.696780] irq: no irq domain found for interrupt-controller@510c0000 !
>>> [    4.703556] gpio-keys gpio-keys: Found button without gpio or irq
>>> [    4.709673] gpio-keys: probe of gpio-keys failed with error -22
>>> [    4.715621] hctosys: unable to open rtc device (rtc0)
>>> [    4.721044] uart-pl011 2a400000.uart: no DMA platform data
>>> [    4.746912] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
>>> [    4.754022] ata1.00: ATA-10: WDC WD10EZEX-22MFCA0, 01.01A01, max UDMA/133
>>> [    4.760826] ata1.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 32), AA
>>> [    4.768960] ata1.00: configured for UDMA/133
>>> [    4.773637] scsi 0:0:0:0: Direct-Access     ATA      WDC
>>> WD10EZEX-22M 1A01 PQ: 0 ANSI: 5
>>> [    4.782675] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks:
>>> (1.00 TB/932 GiB)
>>> [    4.790362] sd 0:0:0:0: [sda] 4096-byte physical blocks
>>> [    4.795635] sd 0:0:0:0: [sda] Write Protect is off
>>> [    4.800505] sd 0:0:0:0: [sda] Write cache: enabled, read cache:
>>> enabled, doesn't support DPO or FUA
>>> [    4.846916] usb 1-3: new high-speed USB device number 2 using xhci_hcd
>>> [    4.865348]  sda: sda1 sda2 sda3 sda4
>>> [    4.871475] sd 0:0:0:0: [sda] Attached SCSI disk
>>> [    4.887962] usb-storage 1-3:1.0: USB Mass Storage device detected
>>> [    4.894715] scsi host2: usb-storage 1-3:1.0
>>> [    5.109059] ata2: SATA link down (SStatus 0 SControl 300)
>>> [    5.117814] Freeing unused kernel memory: 2048K
>>> [    5.122861] Run /init as init process
>>>
>>> _______________________________________________
>>> linux-arm-kernel mailing list
>>> linux-arm-kernel@lists.infradead.org
>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>>>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/4] ARM: decompressor: use by-VA cache maintenance for v7 cores
  2020-02-21 16:09       ` Robin Murphy
@ 2020-02-22 23:38         ` Linus Walleij
  0 siblings, 0 replies; 11+ messages in thread
From: Linus Walleij @ 2020-02-22 23:38 UTC (permalink / raw)
  To: Robin Murphy
  Cc: Ard Biesheuvel, linux-efi, Arnd Bergmann, Nicolas Pitre,
	Tony Lindgren, Marc Zyngier, Russell King, Catalin Marinas,
	linux-arm-kernel

On Fri, Feb 21, 2020 at 5:09 PM Robin Murphy <robin.murphy@arm.com> wrote:
> On 21/02/2020 1:42 pm, Ard Biesheuvel wrote:

> > OK, so where should it be instead? Are you saying it is now required
> > to have a /soc or /smb node that contains all the device nodes?
>
> That is now my understanding, yes - if there is some property of the
> system interconnect which is not entirely transparent relative to the
> conceptual CPU-visible physical address space and needs to be described,
> then the only way to correctly encode that in DT is with an explicit
> level of 'bus' in the hierarchy to represent that interconnect.
> Otherwise these address translation properties quickly end up in
> philosophical conundrums over what the parent of the root node is.

This confirms my similar understanding. Rob sent a patch to
remove the root level dma-ranges from the ARM Integrator,
and I have since added it back below the logic module bus
after you pointed out that the dma-ranges was actually there
for that very bus.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-02-22 23:38 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-19  9:43 [PATCH v2 0/4] ARM: decompressor: use by-VA cache maintenance for v7 cores Ard Biesheuvel
2020-02-19  9:43 ` [PATCH v2 1/4] efi/arm: work around missing cache maintenance in decompressor handover Ard Biesheuvel
2020-02-19  9:43 ` [PATCH v2 2/4] efi/arm: pass start and end addresses to cache_clean_flush() Ard Biesheuvel
2020-02-19  9:43 ` [PATCH v2 3/4] ARM: decompressor: prepare cache_clean_flush for doing by-VA maintenance Ard Biesheuvel
2020-02-19  9:43 ` [PATCH v2 4/4] ARM: decompressor: switch to by-VA cache maintenance for v7 cores Ard Biesheuvel
2020-02-20 18:08 ` [PATCH v2 0/4] ARM: decompressor: use " Ard Biesheuvel
2020-02-21 13:35   ` Robin Murphy
2020-02-21 13:42     ` Ard Biesheuvel
2020-02-21 15:54       ` Ard Biesheuvel
2020-02-21 16:09       ` Robin Murphy
2020-02-22 23:38         ` Linus Walleij

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).