[PATCH v2] of: Fix of platform build on powerpc due to bad of disaply code

Michal Suchanek posted 1 patch 2 years, 7 months ago
drivers/of/platform.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
[PATCH v2] of: Fix of platform build on powerpc due to bad of disaply code
Posted by Michal Suchanek 2 years, 7 months ago
The commit 2d681d6a23a1 ("of: Make of framebuffer devices unique")
breaks build because of wrong argument to snprintf. That certainly
avoids the runtime error but is not the intended outcome.

Also use standard device name format of-display.N for all created
devices.

Fixes: 2d681d6a23a1 ("of: Make of framebuffer devices unique")
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
---
v2: Update the device name format
---
 drivers/of/platform.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index f2a5d679a324..8c1b1de22036 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -525,7 +525,9 @@ static int __init of_platform_default_populate_init(void)
 	if (IS_ENABLED(CONFIG_PPC)) {
 		struct device_node *boot_display = NULL;
 		struct platform_device *dev;
-		int display_number = 1;
+		int display_number = 0;
+		char buf[14];
+		char *of_display_format = "of-display.%d";
 		int ret;
 
 		/* Check if we have a MacOS display without a node spec */
@@ -556,7 +558,10 @@ static int __init of_platform_default_populate_init(void)
 			if (!of_get_property(node, "linux,opened", NULL) ||
 			    !of_get_property(node, "linux,boot-display", NULL))
 				continue;
-			dev = of_platform_device_create(node, "of-display", NULL);
+			ret = snprintf(buf, sizeof(buf), of_display_format, display_number++);
+			if (ret >= sizeof(buf))
+				continue;
+			dev = of_platform_device_create(node, buf, NULL);
 			if (WARN_ON(!dev))
 				return -ENOMEM;
 			boot_display = node;
@@ -564,10 +569,9 @@ static int __init of_platform_default_populate_init(void)
 		}
 
 		for_each_node_by_type(node, "display") {
-			char *buf[14];
 			if (!of_get_property(node, "linux,opened", NULL) || node == boot_display)
 				continue;
-			ret = snprintf(buf, "of-display-%d", display_number++);
+			ret = snprintf(buf, sizeof(buf), of_display_format, display_number++);
 			if (ret >= sizeof(buf))
 				continue;
 			of_platform_device_create(node, buf, NULL);
-- 
2.35.3
Re: [PATCH v2] of: Fix of platform build on powerpc due to bad of disaply code
Posted by Rob Herring 2 years, 7 months ago
On Thu, Jan 19, 2023 at 3:53 AM Michal Suchanek <msuchanek@suse.de> wrote:
>
> The commit 2d681d6a23a1 ("of: Make of framebuffer devices unique")
> breaks build because of wrong argument to snprintf. That certainly
> avoids the runtime error but is not the intended outcome.
>
> Also use standard device name format of-display.N for all created
> devices.
>
> Fixes: 2d681d6a23a1 ("of: Make of framebuffer devices unique")
> Signed-off-by: Michal Suchanek <msuchanek@suse.de>
> ---
> v2: Update the device name format
> ---
>  drivers/of/platform.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> index f2a5d679a324..8c1b1de22036 100644
> --- a/drivers/of/platform.c
> +++ b/drivers/of/platform.c
> @@ -525,7 +525,9 @@ static int __init of_platform_default_populate_init(void)
>         if (IS_ENABLED(CONFIG_PPC)) {
>                 struct device_node *boot_display = NULL;
>                 struct platform_device *dev;
> -               int display_number = 1;
> +               int display_number = 0;
> +               char buf[14];
> +               char *of_display_format = "of-display.%d";

static const as suggested and can we just move on please...

>                 int ret;
>
>                 /* Check if we have a MacOS display without a node spec */
> @@ -556,7 +558,10 @@ static int __init of_platform_default_populate_init(void)
>                         if (!of_get_property(node, "linux,opened", NULL) ||
>                             !of_get_property(node, "linux,boot-display", NULL))
>                                 continue;
> -                       dev = of_platform_device_create(node, "of-display", NULL);
> +                       ret = snprintf(buf, sizeof(buf), of_display_format, display_number++);

The boot display is always "of-display.0". Just use the fixed string
here. Then we can get rid of the whole debate around static const.

> +                       if (ret >= sizeof(buf))
> +                               continue;

This only happens if display_number becomes too big. Why continue on?
The next iteration will fail too.

> +                       dev = of_platform_device_create(node, buf, NULL);
>                         if (WARN_ON(!dev))
>                                 return -ENOMEM;
>                         boot_display = node;
> @@ -564,10 +569,9 @@ static int __init of_platform_default_populate_init(void)
>                 }
>
>                 for_each_node_by_type(node, "display") {
> -                       char *buf[14];
>                         if (!of_get_property(node, "linux,opened", NULL) || node == boot_display)
>                                 continue;
> -                       ret = snprintf(buf, "of-display-%d", display_number++);
> +                       ret = snprintf(buf, sizeof(buf), of_display_format, display_number++);
>                         if (ret >= sizeof(buf))
>                                 continue;

Here too in the original change.

>                         of_platform_device_create(node, buf, NULL);
> --
> 2.35.3
>
Re: [PATCH v2] of: Fix of platform build on powerpc due to bad of disaply code
Posted by Michal Suchánek 2 years, 7 months ago
Hello,

On Fri, Jan 20, 2023 at 11:23:39AM -0600, Rob Herring wrote:
> On Thu, Jan 19, 2023 at 3:53 AM Michal Suchanek <msuchanek@suse.de> wrote:
> >
> > The commit 2d681d6a23a1 ("of: Make of framebuffer devices unique")
> > breaks build because of wrong argument to snprintf. That certainly
> > avoids the runtime error but is not the intended outcome.
> >
> > Also use standard device name format of-display.N for all created
> > devices.
> >
> > Fixes: 2d681d6a23a1 ("of: Make of framebuffer devices unique")
> > Signed-off-by: Michal Suchanek <msuchanek@suse.de>
> > ---
> > v2: Update the device name format
> > ---
> >  drivers/of/platform.c | 12 ++++++++----
> >  1 file changed, 8 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> > index f2a5d679a324..8c1b1de22036 100644
> > --- a/drivers/of/platform.c
> > +++ b/drivers/of/platform.c
> > @@ -525,7 +525,9 @@ static int __init of_platform_default_populate_init(void)
> >         if (IS_ENABLED(CONFIG_PPC)) {
> >                 struct device_node *boot_display = NULL;
> >                 struct platform_device *dev;
> > -               int display_number = 1;
> > +               int display_number = 0;
> > +               char buf[14];
> > +               char *of_display_format = "of-display.%d";
> 
> static const as suggested and can we just move on please...
Only const, static could be dodgy

> >                 int ret;
> >
> >                 /* Check if we have a MacOS display without a node spec */
> > @@ -556,7 +558,10 @@ static int __init of_platform_default_populate_init(void)
> >                         if (!of_get_property(node, "linux,opened", NULL) ||
> >                             !of_get_property(node, "linux,boot-display", NULL))
> >                                 continue;
> > -                       dev = of_platform_device_create(node, "of-display", NULL);
> > +                       ret = snprintf(buf, sizeof(buf), of_display_format, display_number++);
> 
> The boot display is always "of-display.0". Just use the fixed string
> here. Then we can get rid of the whole debate around static const.

I prefer to use the same format string when the names should be
consistent. Also it would resurrect the starting from 1 debate.

But if you really want to have two strings I do not care all that much.

> 
> > +                       if (ret >= sizeof(buf))
> > +                               continue;
> 
> This only happens if display_number becomes too big. Why continue on?
> The next iteration will fail too.

Yes, there is no need to continue with the loop.

Thanks

Michal

> 
> > +                       dev = of_platform_device_create(node, buf, NULL);
> >                         if (WARN_ON(!dev))
> >                                 return -ENOMEM;
> >                         boot_display = node;
> > @@ -564,10 +569,9 @@ static int __init of_platform_default_populate_init(void)
> >                 }
> >
> >                 for_each_node_by_type(node, "display") {
> > -                       char *buf[14];
> >                         if (!of_get_property(node, "linux,opened", NULL) || node == boot_display)
> >                                 continue;
> > -                       ret = snprintf(buf, "of-display-%d", display_number++);
> > +                       ret = snprintf(buf, sizeof(buf), of_display_format, display_number++);
> >                         if (ret >= sizeof(buf))
> >                                 continue;
> 
> Here too in the original change.
> 
> >                         of_platform_device_create(node, buf, NULL);
> > --
> > 2.35.3
> >
[PATCH v3] of: Make of framebuffer devices unique
Posted by Michal Suchanek 2 years, 7 months ago
Since Linux 5.19 this error is observed:

sysfs: cannot create duplicate filename '/devices/platform/of-display'

This is because multiple devices with the same name 'of-display' are
created on the same bus.

Update the code to create numbered device names for the non-boot
disaplay.

cc: linuxppc-dev@lists.ozlabs.org
References: https://bugzilla.kernel.org/show_bug.cgi?id=216095
Fixes: 52b1b46c39ae ("of: Create platform devices for OF framebuffers")
Reported-by: Erhard F. <erhard_f@mailbox.org>
Suggested-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
---
v3:
- merge fix into original patch
- Update the device name format
- add missing const
- do not continue with iterating display devices when formatting device
  name fails
---
 drivers/of/platform.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index 81c8c227ab6b..4d3a4d9f79f2 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -525,6 +525,9 @@ static int __init of_platform_default_populate_init(void)
 	if (IS_ENABLED(CONFIG_PPC)) {
 		struct device_node *boot_display = NULL;
 		struct platform_device *dev;
+		int display_number = 0;
+		char buf[14];
+		const char *of_display_format = "of-display.%d";
 		int ret;
 
 		/* Check if we have a MacOS display without a node spec */
@@ -555,7 +558,10 @@ static int __init of_platform_default_populate_init(void)
 			if (!of_get_property(node, "linux,opened", NULL) ||
 			    !of_get_property(node, "linux,boot-display", NULL))
 				continue;
-			dev = of_platform_device_create(node, "of-display", NULL);
+			ret = snprintf(buf, sizeof(buf), of_display_format, display_number++);
+			if (ret >= sizeof(buf))
+				return -EOVERFLOW;
+			dev = of_platform_device_create(node, buf, NULL);
 			if (WARN_ON(!dev))
 				return -ENOMEM;
 			boot_display = node;
@@ -564,7 +570,10 @@ static int __init of_platform_default_populate_init(void)
 		for_each_node_by_type(node, "display") {
 			if (!of_get_property(node, "linux,opened", NULL) || node == boot_display)
 				continue;
-			of_platform_device_create(node, "of-display", NULL);
+			ret = snprintf(buf, sizeof(buf), of_display_format, display_number++);
+			if (ret >= sizeof(buf))
+				break;
+			of_platform_device_create(node, buf, NULL);
 		}
 
 	} else {
-- 
2.35.3
Re: [PATCH v3] of: Make of framebuffer devices unique
Posted by Rob Herring 2 years, 7 months ago
On Fri, 20 Jan 2023 19:09:57 +0100, Michal Suchanek wrote:
> Since Linux 5.19 this error is observed:
> 
> sysfs: cannot create duplicate filename '/devices/platform/of-display'
> 
> This is because multiple devices with the same name 'of-display' are
> created on the same bus.
> 
> Update the code to create numbered device names for the non-boot
> disaplay.
> 
> cc: linuxppc-dev@lists.ozlabs.org
> References: https://bugzilla.kernel.org/show_bug.cgi?id=216095
> Fixes: 52b1b46c39ae ("of: Create platform devices for OF framebuffers")
> Reported-by: Erhard F. <erhard_f@mailbox.org>
> Suggested-by: Thomas Zimmermann <tzimmermann@suse.de>
> Signed-off-by: Michal Suchanek <msuchanek@suse.de>
> ---
> v3:
> - merge fix into original patch
> - Update the device name format
> - add missing const
> - do not continue with iterating display devices when formatting device
>   name fails
> ---
>  drivers/of/platform.c | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 

Applied, thanks!
Re: [PATCH v2] of: Fix of platform build on powerpc due to bad of disaply code
Posted by Rob Herring 2 years, 7 months ago
On Thu, Jan 19, 2023 at 3:53 AM Michal Suchanek <msuchanek@suse.de> wrote:
>
> The commit 2d681d6a23a1 ("of: Make of framebuffer devices unique")
> breaks build because of wrong argument to snprintf. That certainly
> avoids the runtime error but is not the intended outcome.
>
> Also use standard device name format of-display.N for all created
> devices.
>
> Fixes: 2d681d6a23a1 ("of: Make of framebuffer devices unique")
> Signed-off-by: Michal Suchanek <msuchanek@suse.de>
> ---
> v2: Update the device name format
> ---
>  drivers/of/platform.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)

As this is the only fix I have queued, if you respin, send the
original fix with fixes squashed.

Rob
Re: [PATCH v2] of: Fix of platform build on powerpc due to bad of disaply code
Posted by Erhard F. 2 years, 7 months ago
On Thu, 19 Jan 2023 10:53:23 +0100
Michal Suchanek <msuchanek@suse.de> wrote:

> The commit 2d681d6a23a1 ("of: Make of framebuffer devices unique")
> breaks build because of wrong argument to snprintf. That certainly
> avoids the runtime error but is not the intended outcome.
> 
> Also use standard device name format of-display.N for all created
> devices.
> 
> Fixes: 2d681d6a23a1 ("of: Make of framebuffer devices unique")
> Signed-off-by: Michal Suchanek <msuchanek@suse.de>
> ---
> v2: Update the device name format

Hi Michal!

Just tested your 'of: Make of framebuffer devices unique' + 'v2 of: Fix of platform build on powerpc due to bad of disaply code' on my G4 and can confirm they fix the original issue (https://bugzilla.kernel.org/show_bug.cgi?id=216095). Thanks!

Also ofdrm gets loaded now without error messages:
 # modprobe -v ofdrm
insmod /lib/modules/6.2.0-rc4-PMacG4+/kernel/drivers/video/fbdev/core/cfbcopyarea.ko 
insmod /lib/modules/6.2.0-rc4-PMacG4+/kernel/drivers/video/fbdev/core/sysimgblt.ko 
insmod /lib/modules/6.2.0-rc4-PMacG4+/kernel/drivers/video/fbdev/core/sysfillrect.ko 
insmod /lib/modules/6.2.0-rc4-PMacG4+/kernel/drivers/video/fbdev/core/cfbimgblt.ko 
insmod /lib/modules/6.2.0-rc4-PMacG4+/kernel/drivers/video/fbdev/core/syscopyarea.ko 
insmod /lib/modules/6.2.0-rc4-PMacG4+/kernel/drivers/video/fbdev/core/cfbfillrect.ko 
insmod /lib/modules/6.2.0-rc4-PMacG4+/kernel/drivers/gpu/drm/drm_kms_helper.ko 
insmod /lib/modules/6.2.0-rc4-PMacG4+/kernel/drivers/gpu/drm/drm_shmem_helper.ko 
insmod /lib/modules/6.2.0-rc4-PMacG4+/kernel/drivers/gpu/drm/tiny/ofdrm.ko 

However I get no monitor output yet, despite ofdrm is loaded:
 # lsmod | grep -i drm
ofdrm                   9736  0
drm_shmem_helper        5704  1 ofdrm
drm_kms_helper        101736  1 ofdrm
cfbfillrect             2896  1 drm_kms_helper
syscopyarea             2400  1 drm_kms_helper
cfbimgblt               2256  1 drm_kms_helper
sysfillrect             2920  1 drm_kms_helper
sysimgblt               2296  1 drm_kms_helper
cfbcopyarea             2376  1 drm_kms_helper
drm                   288960  3 drm_shmem_helper,ofdrm,drm_kms_helper
drm_panel_orientation_quirks       16  1 drm

I use DRM [=m], DRM_OFDRM [=m], DRM_RADEON [=n], DRM_FBDEV_EMULATION [=y], FB [=y] and FB_OF [=n] in my kernel test .config. As far as I understand  DRM_OFDRM and FB_OF would be mutually exclusive? Also does not seem to make a difference whether FB_SIMPLE [=y] is set.

Regards,
Erhard
Total memory = 2048MB; using 4096kB for hash table
Activating Kernel Userspace Access Protection
Activating Kernel Userspace Execution Prevention
Linux version 6.2.0-rc4-PMacG4+ (root@T1000) (gcc (Gentoo 12.2.1_p20221231 p8) 12.2.1 20221231, GNU ld (Gentoo 2.39 p5) 2.39.0) #4 SMP Thu Jan 19 12:04:07 CET 2023
ioremap() called early from pmac_feature_init+0x144/0x10f0. Use early_ioremap() instead
Found UniNorth memory controller & host bridge @ 0xf8000000 revision: 0x24
Mapped at 0xff3bf000
ioremap() called early from probe_one_macio+0x25c/0x3d8. Use early_ioremap() instead
Found a Keylargo mac-io controller, rev: 3, mapped at 0x(ptrval)
PowerMac motherboard: PowerMac G4 Windtunnel
ioremap() called early from btext_map+0x64/0xdc. Use early_ioremap() instead
Hardware name: PowerMac3,6 7455 0x80010303 PowerMac
printk: bootconsole [udbg0] enabled
CPU maps initialized for 1 thread per core
-----------------------------------------------------
phys_mem_size     = 0x80000000
dcache_bsize      = 0x20
icache_bsize      = 0x20
cpu_features      = 0x000000002514600a
  possible        = 0x00000000277de00a
  always          = 0x0000000001000000
cpu_user_features = 0x9c000001 0x00000000
mmu_features      = 0x00010001
Hash_size         = 0x400000
Hash_mask         = 0xffff
-----------------------------------------------------
ioremap() called early from pmac_setup_arch+0x1b8/0x42c. Use early_ioremap() instead
ioremap() called early from find_via_pmu+0x2ec/0x810. Use early_ioremap() instead
ioremap() called early from find_via_pmu+0x350/0x810. Use early_ioremap() instead
via-pmu: Server Mode is disabled
PMU driver v2 initialized for Core99, firmware: 0c
ioremap() called early from pmac_nvram_init+0x1d4/0x76c. Use early_ioremap() instead
nvram: Checking bank 0...
nvram: gen0=3132, gen1=3133
nvram: Active bank is: 1
nvram: OF partition at 0x410
nvram: XP partition at 0x1020
nvram: NR partition at 0x1120
Zone ranges:
  DMA      [mem 0x0000000000000000-0x000000002fffffff]
  Normal   empty
  HighMem  [mem 0x0000000030000000-0x000000007fffffff]
Movable zone start for each node
Early memory node ranges
  node   0: [mem 0x0000000000000000-0x000000007fffffff]
Initmem setup node 0 [mem 0x0000000000000000-0x000000007fffffff]
percpu: Embedded 13 pages/cpu s20768 r8192 d24288 u53248
Built 1 zonelists, mobility grouping on.  Total pages: 522560
Kernel command line: ro root=/dev/sda5 zswap.max_pool_percent=16 zswap.zpool=z3fold slub_debug=FZP page_poison=1 netconsole=6666@192.168.178.8/eth0,6666@192.168.178.3/70:85:C2:30:EC:01 debug_pagealloc=on 
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
mem auto-init: stack:all(pattern), heap alloc:off, heap free:off
Kernel virtual memory layout:
  * 0xffbbf000..0xfffff000  : fixmap
  * 0xff400000..0xff800000  : highmem PTEs
  * 0xff115000..0xff400000  : early ioremap
  * 0xf1000000..0xff115000  : vmalloc & ioremap
  * 0xb0000000..0xc0000000  : modules
Memory: 2056176K/2097152K available (10244K kernel code, 516K rwdata, 2044K rodata, 1352K init, 430K bss, 40976K reserved, 0K cma-reserved, 1310720K highmem)
SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
rcu: Hierarchical RCU implementation.
	Tracing variant of Tasks RCU enabled.
rcu: RCU calculated value of scheduler-enlistment delay is 30 jiffies.
NR_IRQS: 512, nr_irqs: 512, preallocated irqs: 16
mpic: Setting up MPIC " MPIC 1   " version 1.2 at 80040000, max 2 CPUs
mpic: ISU size: 64, shift: 6, mask: 3f
mpic: Initializing for 64 sources
rcu: srcu_init: Setting srcu_struct sizes based on contention.
clocksource: timebase: mask: 0xffffffffffffffff max_cycles: 0x99b97f1da, max_idle_ns: 440795202966 ns
clocksource: timebase mult[18012a56] shift[24] registered
kfence: initialized - using 2097152 bytes for 255 objects at 0x(ptrval)-0x(ptrval)
Console: colour dummy device 80x25
printk: console [tty0] enabled
printk: bootconsole [udbg0] disabled
pid_max: default: 32768 minimum: 301
LSM: initializing lsm=capability,yama
Yama: becoming mindful.
Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
PowerMac SMP probe found 2 cpus
KeyWest i2c @0xf8001003 irq 42 /uni-n@f8000000/i2c@f8001000
 channel 0 bus <multibus>
 channel 1 bus <multibus>
KeyWest i2c @0x80018000 irq 26 /pci@f2000000/mac-io@17/i2c@18000
 channel 0 bus <multibus>
PMU i2c /pci@f2000000/mac-io@17/via-pmu@16000/pmu-i2c
 channel 1 bus <multibus>
 channel 2 bus <multibus>
pmf: no parser for command 17 !
Processor timebase sync using GPIO 0x73
mpic: requesting IPIs...
CPU0: L2CR is 80000000
CPU0: L3CR is 9c030000
cblist_init_generic: Setting adjustable number of callback queues.
cblist_init_generic: Setting shift to 1 and lim to 1.
rcu: Hierarchical SRCU implementation.
rcu: 	Max phase no-delay instances is 1000.
smp: Bringing up secondary CPUs ...
CPU1: L2CR was 0
CPU1: L2CR set to 80000000
CPU1: L3CR was 0
CPU1: L3CR set to 9c030000
smp: Brought up 1 node, 2 CPUs
devtmpfs: initialized
Duplicate name in PowerPC,G4@0, renamed to "l2-cache#1"
Duplicate name in l2-cache#1, renamed to "l2-cache#1"
Duplicate name in PowerPC,G4@1, renamed to "l2-cache#1"
Duplicate name in l2-cache#1, renamed to "l2-cache#1"
Duplicate name in gpio@50, renamed to "gpio5@6f#1"
Duplicate name in gpio@50, renamed to "gpio6@70#1"
Duplicate name in gpio@50, renamed to "gpio11@75#1"
Duplicate name in gpio@50, renamed to "extint-gpio15@67#1"
Found UniNorth PCI host bridge at 0x00000000f0000000. Firmware bus number: 0->0
PCI host bridge /pci@f0000000  ranges:
 MEM 0x00000000f1000000..0x00000000f1ffffff -> 0x00000000f1000000 
  IO 0x00000000f0000000..0x00000000f07fffff -> 0x0000000000000000
 MEM 0x0000000090000000..0x00000000afffffff -> 0x0000000090000000 
Found UniNorth PCI host bridge at 0x00000000f2000000. Firmware bus number: 0->0
PCI host bridge /pci@f2000000 (primary) ranges:
 MEM 0x00000000f3000000..0x00000000f3ffffff -> 0x00000000f3000000 
  IO 0x00000000f2000000..0x00000000f27fffff -> 0x0000000000000000
 MEM 0x0000000080000000..0x000000008fffffff -> 0x0000000080000000 
Found UniNorth PCI host bridge at 0x00000000f4000000. Firmware bus number: 0->0
PCI host bridge /pci@f4000000  ranges:
 MEM 0x00000000f5000000..0x00000000f5ffffff -> 0x00000000f5000000 
  IO 0x00000000f4000000..0x00000000f47fffff -> 0x0000000000000000
Found NEC PD720100A USB2 chip with disabled EHCI, fixing up...
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6370867519511994 ns
futex hash table entries: 512 (order: 2, 16384 bytes, linear)
NET: Registered PF_NETLINK/PF_ROUTE protocol family
thermal_sys: Registered thermal governor 'fair_share'
thermal_sys: Registered thermal governor 'step_wise'
PCI: Probing PCI hardware
PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io  0xff780000-0xfff7ffff] (bus address [0x0000-0x7fffff])
pci_bus 0000:00: root bus resource [mem 0xf1000000-0xf1ffffff]
pci_bus 0000:00: root bus resource [mem 0x90000000-0xafffffff]
pci_bus 0000:00: root bus resource [bus 00-ff]
pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to ff
pci 0000:00:0b.0: [106b:0034] type 00 class 0x060000
pci 0000:00:10.0: [1002:4150] type 00 class 0x030000
pci 0000:00:10.0: reg 0x10: [mem 0xa0000000-0xafffffff pref]
pci 0000:00:10.0: reg 0x14: [io  0xff780400-0xff7804ff]
pci 0000:00:10.0: reg 0x18: [mem 0x90000000-0x9000ffff]
pci 0000:00:10.0: reg 0x30: [mem 0x90020000-0x9003ffff pref]
pci 0000:00:10.0: supports D1 D2
pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
OF: /pci@f2000000/mac-io@17/gpio@50/gpio5@6f: could not find phandle 1751474532
OF: /pci@f2000000/mac-io@17/gpio@50/extint-gpio15@67: could not find phandle 1751474532
OF: /pci@f2000000/mac-io@17/gpio@50/gpio6@70: could not find phandle 1634562093
OF: /pci@f2000000/mac-io@17/gpio@50/extint-gpio16@68: could not find phandle 1936745825
OF: /pci@f2000000/mac-io@17/gpio@50/extint-gpio14@66: could not find phandle 1818848869
OF: /pci@f2000000/mac-io@17/gpio@50/gpio12@76: could not find phandle 1835103092
OF: /pci@f2000000/mac-io@17/gpio@50/gpio11@75: could not find phandle 1635083369
OF: /pci@f2000000/mac-io@17/gpio@50/gpio5@6f: could not find phandle 1751474532
OF: /pci@f2000000/mac-io@17/gpio@50/gpio6@70: could not find phandle 1634562093
OF: /pci@f2000000/mac-io@17/gpio@50/extint-gpio4@5c: could not find phandle 1818848869
OF: /pci@f2000000/mac-io@17/gpio@50/gpio11@75: could not find phandle 1635083369
OF: /pci@f2000000/mac-io@17/gpio@50/extint-gpio15@67: could not find phandle 1751474532
PCI host bridge to bus 0001:10
pci_bus 0001:10: root bus resource [io  0x0000-0x7fffff]
pci_bus 0001:10: root bus resource [mem 0xf3000000-0xf3ffffff]
pci_bus 0001:10: root bus resource [mem 0x80000000-0x8fffffff]
pci_bus 0001:10: root bus resource [bus 10-ff]
pci_bus 0001:10: busn_res: [bus 10-ff] end is updated to ff
pci 0001:10:0b.0: [106b:0035] type 00 class 0x060000
pci 0001:10:12.0: [1033:0035] type 00 class 0x0c0310
pci 0001:10:12.0: reg 0x10: [mem 0x8008c000-0x8008cfff]
pci 0001:10:12.0: supports D1 D2
pci 0001:10:12.0: PME# supported from D0 D1 D2 D3hot
pci 0001:10:12.1: [1033:0035] type 00 class 0x0c0310
pci 0001:10:12.1: reg 0x10: [mem 0x8008b000-0x8008bfff]
pci 0001:10:12.1: supports D1 D2
pci 0001:10:12.1: PME# supported from D0 D1 D2 D3hot
pci 0001:10:12.2: [1033:00e0] type 00 class 0x0c0320
pci 0001:10:12.2: reg 0x10: [mem 0x80081000-0x800810ff]
pci 0001:10:12.2: supports D1 D2
pci 0001:10:12.2: PME# supported from D0 D1 D2 D3hot
pci 0001:10:13.0: [1095:3112] type 00 class 0x018000
pci 0001:10:13.0: reg 0x10: [io  0x0460-0x0467]
pci 0001:10:13.0: reg 0x14: [io  0x0450-0x0453]
pci 0001:10:13.0: reg 0x18: [io  0x0440-0x0447]
pci 0001:10:13.0: reg 0x1c: [io  0x0430-0x0433]
pci 0001:10:13.0: reg 0x20: [io  0x0420-0x042f]
pci 0001:10:13.0: reg 0x24: [mem 0x80082000-0x800821ff]
pci 0001:10:13.0: reg 0x30: [mem 0x80100000-0x8017ffff pref]
pci 0001:10:13.0: supports D1 D2
pci 0001:10:15.0: [9710:9865] type 00 class 0x070002
pci 0001:10:15.0: reg 0x10: [io  0x0410-0x0417]
pci 0001:10:15.0: reg 0x14: [mem 0x8008a000-0x8008afff]
pci 0001:10:15.0: reg 0x20: [mem 0x80089000-0x80089fff]
pci 0001:10:15.0: supports D1 D2
pci 0001:10:15.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0001:10:15.1: [9710:9865] type 00 class 0x070002
pci 0001:10:15.1: reg 0x10: [io  0x0400-0x0407]
pci 0001:10:15.1: reg 0x14: [mem 0x80088000-0x80088fff]
pci 0001:10:15.1: reg 0x20: [mem 0x80087000-0x80087fff]
pci 0001:10:15.1: supports D1 D2
pci 0001:10:15.1: PME# supported from D0 D1 D2 D3hot D3cold
pci 0001:10:15.2: [ffff:9865] type 00 class 0x070103
pci 0001:10:15.2: reg 0x10: [io  0x0000-0x0007]
pci 0001:10:15.2: reg 0x14: [io  0x0000-0x0007]
pci 0001:10:15.2: reg 0x18: [mem 0x00000000-0x00000fff]
pci 0001:10:15.2: reg 0x20: [mem 0x00000000-0x00000fff]
pci 0001:10:15.2: supports D1 D2
pci 0001:10:15.2: PME# supported from D0 D1 D2 D3hot D3cold
pci 0001:10:16.0: [14e4:4320] type 00 class 0x028000
pci 0001:10:16.0: reg 0x10: [mem 0x8008e000-0x8008ffff]
pci 0001:10:16.0: supports D1 D2
pci 0001:10:16.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0001:10:17.0: [106b:0022] type 00 class 0xff0000
pci 0001:10:17.0: reg 0x10: [mem 0x80000000-0x8007ffff]
pci 0001:10:18.0: [106b:0019] type 00 class 0x0c0310
pci 0001:10:18.0: reg 0x10: [mem 0x80086000-0x80086fff]
pci 0001:10:19.0: [106b:0019] type 00 class 0x0c0310
pci 0001:10:19.0: reg 0x10: [mem 0x80085000-0x80085fff]
pci 0001:10:1b.0: [1033:0035] type 00 class 0x0c0310
pci 0001:10:1b.0: reg 0x10: [mem 0x80084000-0x80084fff]
pci 0001:10:1b.0: supports D1 D2
pci 0001:10:1b.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0001:10:1b.1: [1033:0035] type 00 class 0x0c0310
pci 0001:10:1b.1: reg 0x10: [mem 0x80083000-0x80083fff]
pci 0001:10:1b.1: supports D1 D2
pci 0001:10:1b.1: PME# supported from D0 D1 D2 D3hot D3cold
pci 0001:10:1b.2: [1033:00e0] type 00 class 0x0c0320
pci 0001:10:1b.2: reg 0x10: [mem 0x80080000-0x800800ff]
pci 0001:10:1b.2: supports D1 D2
pci 0001:10:1b.2: PME# supported from D0 D1 D2 D3hot D3cold
pci_bus 0001:10: busn_res: [bus 10-ff] end is updated to 10
PCI host bridge to bus 0002:20
pci_bus 0002:20: root bus resource [io  0x880000-0x107ffff] (bus address [0x0000-0x7fffff])
pci_bus 0002:20: root bus resource [mem 0xf5000000-0xf5ffffff]
pci_bus 0002:20: root bus resource [bus 20-ff]
pci_bus 0002:20: busn_res: [bus 20-ff] end is updated to ff
pci 0002:20:0b.0: [106b:0036] type 00 class 0x060000
pci 0002:20:0d.0: [106b:0033] type 00 class 0xff0000
pci 0002:20:0d.0: reg 0x10: [mem 0xf5004000-0xf5007fff]
pci 0002:20:0e.0: [106b:0031] type 00 class 0x0c0010
pci 0002:20:0e.0: reg 0x10: [mem 0xf5000000-0xf5000fff]
pci 0002:20:0e.0: supports D1 D2
pci 0002:20:0e.0: PME# supported from D0 D1 D2 D3hot
pci 0002:20:0f.0: [106b:0032] type 00 class 0x020000
pci 0002:20:0f.0: reg 0x10: [mem 0xf5200000-0xf53fffff]
pci 0002:20:0f.0: reg 0x30: [mem 0xf5100000-0xf51fffff pref]
pci_bus 0002:20: busn_res: [bus 20-ff] end is updated to 20
pci_bus 0000:00: resource 4 [io  0xff780000-0xfff7ffff]
pci_bus 0000:00: resource 5 [mem 0xf1000000-0xf1ffffff]
pci_bus 0000:00: resource 6 [mem 0x90000000-0xafffffff]
pci 0001:10:15.2: BAR 2: assigned [mem 0xf3000000-0xf3000fff]
pci 0001:10:15.2: BAR 4: assigned [mem 0xf3001000-0xf3001fff]
pci 0001:10:15.2: BAR 0: assigned [io  0x1000-0x1007]
pci 0001:10:15.2: BAR 1: assigned [io  0x1008-0x100f]
pci_bus 0001:10: resource 4 [io  0x0000-0x7fffff]
pci_bus 0001:10: resource 5 [mem 0xf3000000-0xf3ffffff]
pci_bus 0001:10: resource 6 [mem 0x80000000-0x8fffffff]
pci_bus 0002:20: resource 4 [io  0x880000-0x107ffff]
pci_bus 0002:20: resource 5 [mem 0xf5000000-0xf5ffffff]
raid6: altivecx8 gen()  3382 MB/s
raid6: altivecx4 gen()  3481 MB/s
raid6: altivecx2 gen()  3475 MB/s
raid6: altivecx1 gen()  3353 MB/s
raid6: int32x8  gen()   736 MB/s
raid6: int32x4  gen()  1026 MB/s
raid6: int32x2  gen()   960 MB/s
raid6: int32x1  gen()   763 MB/s
raid6: using algorithm altivecx4 gen() 3481 MB/s
raid6: using intx1 recovery algorithm
SCSI subsystem initialized
pci 0000:00:10.0: vgaarb: setting as boot VGA device
pci 0000:00:10.0: vgaarb: bridge control possible
pci 0000:00:10.0: vgaarb: VGA device added: decodes=io+mem,owns=mem,locks=none
vgaarb: loaded
clocksource: Switched to clocksource timebase
NET: Registered PF_INET protocol family
IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 10240 bytes, linear)
Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
TCP bind hash table entries: 8192 (order: 6, 327680 bytes, linear)
TCP: Hash tables configured (established 8192 bind 8192)
UDP hash table entries: 512 (order: 2, 24576 bytes, linear)
UDP-Lite hash table entries: 512 (order: 2, 24576 bytes, linear)
NET: Registered PF_UNIX/PF_LOCAL protocol family
pci 0001:10:12.0: enabling device (0000 -> 0002)
pci 0001:10:12.1: enabling device (0000 -> 0002)
pci 0001:10:12.2: enabling device (0004 -> 0006)
Apple USB OHCI 0001:10:18.0 disabled by firmware
pci 0001:10:18.0: Can't enable PCI device, BIOS handoff failed.
Apple USB OHCI 0001:10:19.0 disabled by firmware
pci 0001:10:19.0: Can't enable PCI device, BIOS handoff failed.
pci 0001:10:1b.0: enabling device (0000 -> 0002)
pci 0001:10:1b.1: enabling device (0000 -> 0002)
pci 0001:10:1b.2: enabling device (0004 -> 0006)
pci 0002:20:0f.0: CLS mismatch (32 != 1020), using 32 bytes
Thermal assist unit not available
Initialise system trusted keyrings
workingset: timestamp_bits=14 max_order=19 bucket_order=5
NET: Registered PF_ALG protocol family
xor: measuring software checksum speed
   8regs           :  1317 MB/sec
   8regs_prefetch  :  1279 MB/sec
   32regs          :  1322 MB/sec
   32regs_prefetch :  1279 MB/sec
   altivec         :  4793 MB/sec
xor: using function: altivec (4793 MB/sec)
Key type asymmetric registered
Asymmetric key parser 'x509' registered
bounce: pool size: 64 pages
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
io scheduler kyber registered
io scheduler bfq registered
MacIO PCI driver attached to Keylargo chipset
0.00013020:ch-a: ttyPZ0 at MMIO 0x80013020 (irq = 22, base_baud = 230400) is a Z85c30 ESCC - Serial port
0.00013000:ch-b: ttyPZ1 at MMIO 0x80013000 (irq = 23, base_baud = 230400) is a Z85c30 ESCC - Serial port
sata_sil 0001:10:13.0: enabling device (0004 -> 0007)
scsi host0: sata_sil
scsi host1: sata_sil
ata1: SATA max UDMA/100 mmio m512@0x80082000 tf 0x80082080 irq 53
ata2: SATA max UDMA/100 mmio m512@0x80082000 tf 0x800820c0 irq 53
pata-pci-macio 0002:20:0d.0: enabling device (0004 -> 0006)
pata-pci-macio 0002:20:0d.0: Activating pata-macio chipset UniNorth ATA-6, Apple bus ID 3
scsi host2: pata_macio
ata3: PATA max UDMA/100 irq 39
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata1.00: ATA-9: SanDisk SSD PLUS 240GB, UF4500RL, max UDMA/133
ata1.00: 468877312 sectors, multi 1: LBA48 NCQ (depth 0/32)
ata1.00: Features: Dev-Sleep
ata1.00: configured for UDMA/100
scsi 0:0:0:0: Direct-Access     ATA      SanDisk SSD PLUS 00RL PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 468877312 512-byte logical blocks: (240 GB/224 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] Preferred minimum I/O size 512 bytes
 sda: [mac] sda1 sda2 sda3 sda4 sda5 sda6 sda7 sda8
sd 0:0:0:0: [sda] Attached SCSI disk
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata2.00: ATA-9: WDC WD5000LPLX-60ZNTT1, 02.01A02, max UDMA/133
ata2.00: 976773168 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata2.00: configured for UDMA/100
scsi 1:0:0:0: Direct-Access     ATA      WDC WD5000LPLX-6 1A02 PQ: 0 ANSI: 5
sd 1:0:0:0: [sdb] 976773168 512-byte logical blocks: (500 GB/466 GiB)
sd 1:0:0:0: [sdb] 4096-byte physical blocks
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 1:0:0:0: [sdb] Preferred minimum I/O size 4096 bytes
pata-macio 0.0001f000:ata-4: Activating pata-macio chipset KeyLargo ATA-4, Apple bus ID 2
scsi host3: pata_macio
ata4: PATA max UDMA/66 irq 19
ata4.00: CFA: DeLOCK 54143 512MB, 100511E, max UDMA/66
ata4.00: 1009008 sectors, multi 1: LBA 
 sdb: [mac] sdb1 sdb2 sdb3 sdb4 sdb5 sdb6 sdb7 sdb8
sd 1:0:0:0: [sdb] Attached SCSI disk
scsi 3:0:0:0: Direct-Access     ATA      DeLOCK 54143 512 11E  PQ: 0 ANSI: 5
sd 3:0:0:0: [sdc] 1009008 512-byte logical blocks: (517 MB/493 MiB)
sd 3:0:0:0: [sdc] Write Protect is off
sd 3:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sd 3:0:0:0: [sdc] Preferred minimum I/O size 512 bytes
 sdc: [mac] sdc1 sdc2 sdc3 sdc4 sdc5 sdc6
sd 3:0:0:0: [sdc] Attached SCSI disk
pata-macio 0.00020000:ata-3: Activating pata-macio chipset KeyLargo ATA-3, Apple bus ID 0
scsi host4: pata_macio
ata5: PATA max MWDMA2 irq 20
sungem.c:v1.0 David S. Miller <davem@redhat.com>
gem 0002:20:0f.0 eth0: Sun GEM (PCI) 10/100/1000BaseT Ethernet 00:0a:95:9c:76:3a
rtc-generic rtc-generic: registered as rtc0
i2c_dev: i2c /dev entries driver
PowerMac i2c bus pmu 2 registered
PowerMac i2c bus pmu 1 registered
PowerMac i2c bus mac-io 0 registered
i2c i2c-2: No i2c address for /pci@f2000000/mac-io@17/i2c@18000/i2c-modem
PowerMac i2c bus uni-n 1 registered
i2c i2c-3: i2c-powermac: modalias failure on /uni-n@f8000000/i2c@f8001000/cereal@1c0
PowerMac i2c bus uni-n 0 registered
ledtrig-cpu: registered to indicate activity on CPUs
NET: Registered PF_INET6 protocol family
Segment Routing with IPv6
In-situ OAM (IOAM) with IPv6
NET: Registered PF_PACKET protocol family
drmem: No dynamic reconfiguration memory found
registered taskstats version 1
Loading compiled-in X.509 certificates
zswap: loaded using pool lzo/z3fold
debug_vm_pgtable: [debug_vm_pgtable         ]: Validating architecture page table helpers
Btrfs loaded, crc32c=crc32c-generic, zoned=no, fsverity=no
ata5.00: ATAPI: _NEC DVD_RW ND-3520A, 1.04, max UDMA/33
scsi 4:0:0:0: CD-ROM            _NEC     DVD_RW ND-3520A  1.04 PQ: 0 ANSI: 5
input: PMU as /devices/virtual/input/input0
netpoll: netconsole: local port 6666
netpoll: netconsole: local IPv4 address 192.168.178.8
netpoll: netconsole: interface 'eth0'
netpoll: netconsole: remote port 6666
netpoll: netconsole: remote IPv4 address 192.168.178.3
netpoll: netconsole: remote ethernet address 70:85:c2:30:ec:01
netpoll: netconsole: device eth0 not up yet, forcing it
gem 0002:20:0f.0 eth0: Found BCM5421 PHY
gem 0002:20:0f.0 eth0: Link is up at 1000 Mbps, full-duplex
gem 0002:20:0f.0 eth0: Pause is enabled (rxfifo: 10240 off: 7168 on: 5632)
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
printk: console [netcon0] enabled
netconsole: network logging started
### dt-test ### start of unittest - you will see error messages
### dt-test ### EXPECT \ : Duplicate name in testcase-data, renamed to "duplicate-name#1"
Duplicate name in testcase-data, renamed to "duplicate-name#1"
### dt-test ### EXPECT / : Duplicate name in testcase-data, renamed to "duplicate-name#1"
### dt-test ### pass of_unittest_check_tree_linkage():263
### dt-test ### pass of_unittest_check_tree_linkage():264
### dt-test ### pass of_unittest_check_phandles():372
### dt-test ### pass of_unittest_find_node_by_name():73
### dt-test ### pass of_unittest_find_node_by_name():80
### dt-test ### pass of_unittest_find_node_by_name():84
### dt-test ### pass of_unittest_find_node_by_name():91
### dt-test ### pass of_unittest_find_node_by_name():98
### dt-test ### pass of_unittest_find_node_by_name():102
### dt-test ### pass of_unittest_find_node_by_name():108
### dt-test ### pass of_unittest_find_node_by_name():112
### dt-test ### pass of_unittest_find_node_by_name():116
### dt-test ### pass of_unittest_find_node_by_name():120
### dt-test ### pass of_unittest_find_node_by_name():125
### dt-test ### pass of_unittest_find_node_by_name():130
### dt-test ### pass of_unittest_find_node_by_name():135
### dt-test ### pass of_unittest_find_node_by_name():140
### dt-test ### pass of_unittest_find_node_by_name():146
### dt-test ### pass of_unittest_find_node_by_name():151
### dt-test ### pass of_unittest_find_node_by_name():156
### dt-test ### pass of_unittest_find_node_by_name():161
### dt-test ### pass of_unittest_dynamic():187
### dt-test ### pass of_unittest_dynamic():194
### dt-test ### pass of_unittest_dynamic():200
### dt-test ### pass of_unittest_dynamic():208
### dt-test ### pass of_unittest_dynamic():212
### dt-test ### pass of_unittest_dynamic():220
### dt-test ### pass of_unittest_dynamic():222
### dt-test ### pass of_unittest_parse_phandle_with_args():395
### dt-test ### pass of_unittest_parse_phandle_with_args():449
### dt-test ### pass of_unittest_parse_phandle_with_args():449
### dt-test ### pass of_unittest_parse_phandle_with_args():449
### dt-test ### pass of_unittest_parse_phandle_with_args():449
### dt-test ### pass of_unittest_parse_phandle_with_args():449
### dt-test ### pass of_unittest_parse_phandle_with_args():449
### dt-test ### pass of_unittest_parse_phandle_with_args():449
### dt-test ### pass of_unittest_parse_phandle_with_args():449
### dt-test ### pass of_unittest_parse_phandle_with_args():457
### dt-test ### pass of_unittest_parse_phandle_with_args():460
### dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1
OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1
### dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1
### dt-test ### pass of_unittest_parse_phandle_with_args():474
### dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1
OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1
### dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1
### dt-test ### pass of_unittest_parse_phandle_with_args():485
### dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-a: could not find phandle
OF: /testcase-data/phandle-tests/consumer-a: could not find phandle 12345678
### dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-a: could not find phandle
### dt-test ### pass of_unittest_parse_phandle_with_args():499
### dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-a: could not find phandle
OF: /testcase-data/phandle-tests/consumer-a: could not find phandle 12345678
### dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-a: could not find phandle
### dt-test ### pass of_unittest_parse_phandle_with_args():510
### dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found 1
OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found 1
### dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found 1
### dt-test ### pass of_unittest_parse_phandle_with_args():524
### dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found 1
OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found 1
### dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found 1
### dt-test ### pass of_unittest_parse_phandle_with_args():535
### dt-test ### pass of_unittest_parse_phandle_with_args_map():575
### dt-test ### pass of_unittest_parse_phandle_with_args_map():633
### dt-test ### pass of_unittest_parse_phandle_with_args_map():633
### dt-test ### pass of_unittest_parse_phandle_with_args_map():633
### dt-test ### pass of_unittest_parse_phandle_with_args_map():633
### dt-test ### pass of_unittest_parse_phandle_with_args_map():633
### dt-test ### pass of_unittest_parse_phandle_with_args_map():633
### dt-test ### pass of_unittest_parse_phandle_with_args_map():633
### dt-test ### pass of_unittest_parse_phandle_with_args_map():633
### dt-test ### pass of_unittest_parse_phandle_with_args_map():641
### dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-b: could not get #phandle-missing-cells for /testcase-data/phandle-tests/provider1
OF: /testcase-data/phandle-tests/consumer-b: could not get #phandle-missing-cells for /testcase-data/phandle-tests/provider1
### dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-b: could not get #phandle-missing-cells for /testcase-data/phandle-tests/provider1
### dt-test ### pass of_unittest_parse_phandle_with_args_map():654
### dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-b: could not find phandle
OF: /testcase-data/phandle-tests/consumer-b: could not find phandle 12345678
### dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-b: could not find phandle
### dt-test ### pass of_unittest_parse_phandle_with_args_map():667
### dt-test ### EXPECT \ : OF: /testcase-data/phandle-tests/consumer-b: #phandle-cells = 2 found 1
OF: /testcase-data/phandle-tests/consumer-b: #phandle-cells = 2 found 1
### dt-test ### EXPECT / : OF: /testcase-data/phandle-tests/consumer-b: #phandle-cells = 2 found 1
### dt-test ### pass of_unittest_parse_phandle_with_args_map():680
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():287
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_printf_one():297
### dt-test ### pass of_unittest_property_string():696
### dt-test ### pass of_unittest_property_string():698
### dt-test ### pass of_unittest_property_string():700
### dt-test ### pass of_unittest_property_string():702
### dt-test ### pass of_unittest_property_string():704
### dt-test ### pass of_unittest_property_string():706
### dt-test ### pass of_unittest_property_string():708
### dt-test ### pass of_unittest_property_string():712
### dt-test ### pass of_unittest_property_string():714
### dt-test ### pass of_unittest_property_string():716
### dt-test ### pass of_unittest_property_string():718
### dt-test ### pass of_unittest_property_string():722
### dt-test ### pass of_unittest_property_string():725
### dt-test ### pass of_unittest_property_string():727
### dt-test ### pass of_unittest_property_string():729
### dt-test ### pass of_unittest_property_string():731
### dt-test ### pass of_unittest_property_string():734
### dt-test ### pass of_unittest_property_string():737
### dt-test ### pass of_unittest_property_string():739
### dt-test ### pass of_unittest_property_string():742
### dt-test ### pass of_unittest_property_string():747
### dt-test ### pass of_unittest_property_string():749
### dt-test ### pass of_unittest_property_string():751
### dt-test ### pass of_unittest_property_string():754
### dt-test ### pass of_unittest_property_string():758
### dt-test ### pass of_unittest_property_string():761
### dt-test ### pass of_unittest_property_copy():776
### dt-test ### pass of_unittest_property_copy():782
### dt-test ### pass of_unittest_changeset():802
### dt-test ### pass of_unittest_changeset():805
### dt-test ### pass of_unittest_changeset():808
### dt-test ### pass of_unittest_changeset():812
### dt-test ### pass of_unittest_changeset():815
### dt-test ### pass of_unittest_changeset():818
### dt-test ### pass of_unittest_changeset():821
### dt-test ### pass of_unittest_changeset():824
### dt-test ### pass of_unittest_changeset():827
### dt-test ### pass of_unittest_changeset():835
### dt-test ### pass of_unittest_changeset():839
### dt-test ### pass of_unittest_changeset():840
### dt-test ### pass of_unittest_changeset():842
### dt-test ### pass of_unittest_changeset():843
### dt-test ### pass of_unittest_changeset():845
### dt-test ### pass of_unittest_changeset():846
### dt-test ### pass of_unittest_changeset():848
### dt-test ### pass of_unittest_changeset():850
### dt-test ### pass of_unittest_changeset():851
### dt-test ### pass of_unittest_changeset():852
### dt-test ### pass of_unittest_changeset():854
### dt-test ### pass of_unittest_changeset():859
### dt-test ### pass of_unittest_changeset():863
### dt-test ### pass of_unittest_parse_interrupts():1029
### dt-test ### pass of_unittest_parse_interrupts():1029
### dt-test ### pass of_unittest_parse_interrupts():1029
### dt-test ### pass of_unittest_parse_interrupts():1029
### dt-test ### pass of_unittest_parse_interrupts():1075
### dt-test ### pass of_unittest_parse_interrupts():1075
### dt-test ### pass of_unittest_parse_interrupts():1075
### dt-test ### pass of_unittest_parse_interrupts():1075
### dt-test ### pass of_unittest_parse_interrupts_extended():1155
### dt-test ### pass of_unittest_parse_interrupts_extended():1155
### dt-test ### pass of_unittest_parse_interrupts_extended():1155
### dt-test ### pass of_unittest_parse_interrupts_extended():1155
### dt-test ### pass of_unittest_parse_interrupts_extended():1155
### dt-test ### pass of_unittest_parse_interrupts_extended():1155
### dt-test ### pass of_unittest_parse_interrupts_extended():1155
### dt-test ### pass of_unittest_dma_get_max_cpu_address():888
### dt-test ### pass of_unittest_dma_ranges_one():909
### dt-test ### FAIL of_unittest_dma_ranges_one():927 of_dma_get_range: wrong phys addr 0x00000000 (expecting 20000000) on node /testcase-data/address-tests/device@70000000
### dt-test ### FAIL of_unittest_dma_ranges_one():930 of_dma_get_range: wrong DMA addr 0x20000000 (expecting 0) on node /testcase-data/address-tests/device@70000000
### dt-test ### pass of_unittest_dma_ranges_one():909
### dt-test ### FAIL of_unittest_dma_ranges_one():927 of_dma_get_range: wrong phys addr 0x80000000 (expecting 20000000) on node /testcase-data/address-tests/pci@90000000
### dt-test ### FAIL of_unittest_dma_ranges_one():930 of_dma_get_range: wrong DMA addr 0x20000000 (expecting 80000000) on node /testcase-data/address-tests/pci@90000000
### dt-test ### pass of_unittest_pci_dma_ranges():978
### dt-test ### pass of_unittest_pci_dma_ranges():981
### dt-test ### pass of_unittest_pci_dma_ranges():984
### dt-test ### pass of_unittest_pci_dma_ranges():988
### dt-test ### pass of_unittest_pci_dma_ranges():991
### dt-test ### pass of_unittest_pci_dma_ranges():994
### dt-test ### pass of_unittest_match_node():1223
### dt-test ### pass of_unittest_match_node():1223
### dt-test ### pass of_unittest_match_node():1223
### dt-test ### pass of_unittest_match_node():1223
### dt-test ### pass of_unittest_match_node():1223
### dt-test ### pass of_unittest_match_node():1223
### dt-test ### pass of_unittest_match_node():1223
### dt-test ### pass of_unittest_match_node():1223
### dt-test ### pass of_unittest_match_node():1223
### dt-test ### pass of_unittest_match_node():1223
### dt-test ### pass of_unittest_match_node():1223
### dt-test ### pass of_unittest_match_node():1223
### dt-test ### pass of_unittest_platform_populate():1247
### dt-test ### pass of_unittest_platform_populate():1251
### dt-test ### pass of_unittest_platform_populate():1257
### dt-test ### EXPECT \ : platform testcase-data:testcase-device2: error -ENXIO: IRQ index 0 not found
platform testcase-data:testcase-device2: error -ENXIO: IRQ index 0 not found
### dt-test ### EXPECT / : platform testcase-data:testcase-device2: error -ENXIO: IRQ index 0 not found
### dt-test ### pass of_unittest_platform_populate():1267
### dt-test ### pass of_unittest_platform_populate():1272
### dt-test ### pass of_unittest_platform_populate():1278
### dt-test ### pass of_unittest_platform_populate():1298
### dt-test ### pass of_unittest_platform_populate():1298
### dt-test ### pass of_unittest_platform_populate():1308
### dt-test ### pass of_unittest_platform_populate():1308
### dt-test ### pass of_unittest_overlay():2960
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest0/status
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest0/status
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest0/status
### dt-test ### pass of_unittest_overlay_0():2091
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest1/status
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest1/status
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest1/status
### dt-test ### pass of_unittest_overlay_1():2111
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest2/status
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest2/status
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest2/status
### dt-test ### pass of_unittest_overlay_2():2131
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest3/status
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest3/status
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest3/status
### dt-test ### pass of_unittest_overlay_3():2151
### dt-test ### pass of_unittest_overlay_4():2161
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest5/status
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest5/status
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest5/status
### dt-test ### pass of_unittest_overlay_5():2181
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest6/status
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest6/status
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest6/status
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest7/status
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest7/status
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest7/status
### dt-test ### pass of_unittest_overlay_6():2282
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/status
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/status
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/status
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/property-foo
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/property-foo
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/test-unittest8/property-foo
### dt-test ### EXPECT \ : OF: overlay: node_overlaps_later_cs: #6 overlaps with #7 @/testcase-data/overlay-node/test-bus/test-unittest8
### dt-test ### EXPECT \ : OF: overlay: overlay #6 is not topmost
OF: overlay: node_overlaps_later_cs: #6 overlaps with #7 @/testcase-data/overlay-node/test-bus/test-unittest8
OF: overlay: overlay #6 is not topmost
### dt-test ### EXPECT / : OF: overlay: overlay #6 is not topmost
### dt-test ### EXPECT / : OF: overlay: node_overlaps_later_cs: #6 overlaps with #7 @/testcase-data/overlay-node/test-bus/test-unittest8
### dt-test ### pass of_unittest_overlay_8():2375
### dt-test ### pass of_unittest_overlay_10():2387
### dt-test ### pass of_unittest_overlay_10():2393
### dt-test ### pass of_unittest_overlay_10():2399
### dt-test ### pass of_unittest_overlay_11():2411
### dt-test ### pass of_unittest_overlay_i2c_init():2632
### dt-test ### pass of_unittest_overlay_i2c_init():2638
### dt-test ### pass of_unittest_overlay():2976
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest12/status
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest12/status
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest12/status
### dt-test ### pass of_unittest_overlay_i2c_12():2685
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest13/status
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest13/status
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data/overlay-node/test-bus/i2c-test-bus/test-unittest13/status
### dt-test ### pass of_unittest_overlay_i2c_13():2705
### dt-test ### EXPECT \ : i2c i2c-1: Added multiplexed i2c bus 3
### dt-test ### EXPECT / : i2c i2c-1: Added multiplexed i2c bus 3
### dt-test ### pass of_unittest_overlay_i2c_15():2729
### dt-test ### pass of_unittest_overlay_gpio():1690
### dt-test ### pass of_unittest_overlay_gpio():1693
### dt-test ### pass of_unittest_overlay_gpio():1696
### dt-test ### EXPECT \ : gpio-<<int>> (line-B-input): hogged as input
### dt-test ### EXPECT \ : gpio-<<int>> (line-A-input): hogged as input
gpio-514 (line-B-input): hogged as input
### dt-test ### pass unittest_gpio_probe():1613
gpio-518 (line-A-input): hogged as input
### dt-test ### pass unittest_gpio_probe():1613
### dt-test ### pass of_unittest_overlay_gpio():1711
### dt-test ### EXPECT / : gpio-<<int>> (line-A-input): hogged as input
### dt-test ### EXPECT / : gpio-<<int>> (line-B-input): hogged as input
### dt-test ### pass of_unittest_overlay_gpio():1719
### dt-test ### pass of_unittest_overlay_gpio():1722
### dt-test ### EXPECT \ : gpio-<<int>> (line-D-input): hogged as input
gpio-526 (line-D-input): hogged as input
### dt-test ### pass unittest_gpio_probe():1613
### dt-test ### pass of_unittest_overlay_gpio():1748
### dt-test ### EXPECT / : gpio-<<int>> (line-D-input): hogged as input
### dt-test ### pass of_unittest_overlay_gpio():1754
### dt-test ### pass of_unittest_overlay_gpio():1757
### dt-test ### pass unittest_gpio_probe():1613
### dt-test ### pass of_unittest_overlay_gpio():1775
### dt-test ### pass of_unittest_overlay_gpio():1778
### dt-test ### EXPECT \ : gpio-<<int>> (line-C-input): hogged as input
gpio-530 (line-C-input): hogged as input
### dt-test ### pass of_unittest_overlay_gpio():1795
### dt-test ### EXPECT / : gpio-<<int>> (line-C-input): hogged as input
### dt-test ### pass of_unittest_overlay_gpio():1801
### dt-test ### pass of_unittest_overlay_notify():2817
### dt-test ### EXPECT \ : OF: overlay: overlay changeset pre-apply notifier error -16, target: /testcase-data/overlay-node/test-bus
OF: overlay: overlay changeset pre-apply notifier error -16, target: /testcase-data/overlay-node/test-bus
### dt-test ### pass of_unittest_overlay_notify():2838
### dt-test ### EXPECT / : OF: overlay: overlay changeset pre-apply notifier error -16, target: /testcase-data/overlay-node/test-bus
### dt-test ### pass of_unittest_overlay_notify():2843
### dt-test ### EXPECT \ : OF: overlay: overlay changeset post-apply notifier error -17, target: /testcase-data/overlay-node/test-bus
OF: overlay: overlay changeset post-apply notifier error -17, target: /testcase-data/overlay-node/test-bus
### dt-test ### pass of_unittest_overlay_notify():2849
### dt-test ### EXPECT / : OF: overlay: overlay changeset post-apply notifier error -17, target: /testcase-data/overlay-node/test-bus
### dt-test ### pass of_unittest_overlay_notify():2854
### dt-test ### pass of_unittest_overlay_notify():2858
### dt-test ### pass of_unittest_overlay_notify():2864
### dt-test ### pass of_unittest_overlay_notify():2867
### dt-test ### EXPECT \ : OF: overlay: overlay changeset pre-remove notifier error -18, target: /testcase-data/overlay-node/test-bus
OF: overlay: overlay changeset pre-remove notifier error -18, target: /testcase-data/overlay-node/test-bus
### dt-test ### EXPECT / : OF: overlay: overlay changeset pre-remove notifier error -18, target: /testcase-data/overlay-node/test-bus
### dt-test ### pass of_unittest_overlay_notify():2878
### dt-test ### pass of_unittest_overlay_notify():2886
### dt-test ### pass of_unittest_overlay_notify():2890
### dt-test ### pass of_unittest_overlay_notify():2893
### dt-test ### EXPECT \ : OF: overlay: overlay changeset post-remove notifier error -19, target: /testcase-data/overlay-node/test-bus
OF: overlay: overlay changeset post-remove notifier error -19, target: /testcase-data/overlay-node/test-bus
### dt-test ### EXPECT / : OF: overlay: overlay changeset post-remove notifier error -19, target: /testcase-data/overlay-node/test-bus
### dt-test ### pass of_unittest_overlay_notify():2900
### dt-test ### pass of_unittest_overlay_notify():2907
### dt-test ### pass of_unittest_overlay_notify():2912
### dt-test ### pass of_unittest_overlay_notify():2924
### dt-test ### pass of_unittest_check_tree_linkage():263
### dt-test ### pass of_unittest_check_tree_linkage():264
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/status
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/status
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@30/incline-up
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@40/incline-up
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/status
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/color
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/rate
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/hvac_2
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_left
### dt-test ### EXPECT \ : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_right
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/status
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/status
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@30/incline-up
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@40/incline-up
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/status
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/color
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/rate
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/hvac_2
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_left
OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_right
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_right
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200_left
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/ride_200
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/hvac_2
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/rate
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/color
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/lights@40000/status
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@40/incline-up
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/ride@100/track@30/incline-up
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/fairway-1/status
### dt-test ### EXPECT / : OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/status
### dt-test ### pass of_unittest_overlay_high_level():3409
### dt-test ### EXPECT \ : OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/controller
### dt-test ### EXPECT \ : OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/controller/name
OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/controller
OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/controller/name
### dt-test ### pass of_unittest_overlay_high_level():3416
### dt-test ### EXPECT / : OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/controller/name
### dt-test ### EXPECT / : OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/controller
### dt-test ### EXPECT \ : OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/electric
### dt-test ### EXPECT \ : OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/rpm_avail
### dt-test ### EXPECT \ : OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/name
OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/electric
OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/rpm_avail
OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/name
### dt-test ### pass of_unittest_overlay_high_level():3431
### dt-test ### EXPECT / : OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/name
### dt-test ### EXPECT / : OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/rpm_avail
### dt-test ### EXPECT / : OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/electric
### dt-test ### pass of_unittest_overlay_high_level():3441
### dt-test ### pass of_unittest_overlay_high_level():3444
### dt-test ### end of unittest - 265 passed, 4 failed
EXT4-fs (sda5): mounted filesystem 28419c7c-4bc4-4922-bdc8-6d8515c62385 with ordered data mode. Quota mode: disabled.
VFS: Mounted root (ext4 filesystem) readonly on device 8:5.
devtmpfs: mounted
Freeing unused kernel image (initmem) memory: 1352K
Checked W+X mappings: passed, no W+X pages found
rodata_test: all tests were successful
kallsyms_selftest: start
Run /sbin/init as init process
systemd[1]: systemd 251 running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID -CURL +ELFUTILS -FIDO2 +IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY -P11KIT -QRENCODE -TPM2 -BZIP2 +LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified)
systemd[1]: Detected architecture ppc.
systemd[1]: Hostname set to <T600>.
systemd[1]: Queued start job for default target Graphical Interface.
systemd[1]: Created slice Slice /system/getty.
systemd[1]: Created slice Slice /system/modprobe.
systemd[1]: Created slice Slice /system/systemd-fsck.
systemd[1]: Created slice Slice /system/vncserver.
systemd[1]: Created slice User and Session Slice.
systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
systemd[1]: Started Forward Password Requests to Wall Directory Watch.
systemd[1]: Arbitrary Executable File Formats File System Automount Point was skipped because of a failed condition check (ConditionPathExists=/proc/sys/fs/binfmt_misc).
systemd[1]: Reached target Path Units.
systemd[1]: Reached target Remote File Systems.
systemd[1]: Reached target Slice Units.
systemd[1]: Listening on Process Core Dump Socket.
systemd[1]: Listening on initctl Compatibility Named Pipe.
systemd[1]: Journal Audit Socket was skipped because of a failed condition check (ConditionSecurity=audit).
systemd[1]: Listening on Journal Socket (/dev/log).
systemd[1]: Listening on Journal Socket.
systemd[1]: Listening on udev Control Socket.
systemd[1]: Listening on udev Kernel Socket.
systemd[1]: Huge Pages File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/mm/hugepages).
systemd[1]: Mounting POSIX Message Queue File System...
systemd[1]: Kernel Debug File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/debug).
systemd[1]: Kernel Trace File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/tracing).
systemd[1]: Starting Create List of Static Device Nodes...
systemd[1]: Starting Load Kernel Module configfs...
systemd[1]: Starting Load Kernel Module drm...
systemd[1]: Starting Load Kernel Module fuse...
systemd[1]: Starting File System Check on Root Device...
fuse: init (API version 7.38)
systemd[1]: Starting Journal Service...
systemd[1]: Starting Load Kernel Modules...
systemd[1]: Repartition Root Disk was skipped because all trigger condition checks failed.
systemd[1]: Starting Coldplug All udev Devices...
systemd[1]: Mounted POSIX Message Queue File System.
systemd[1]: Finished Create List of Static Device Nodes.
systemd[1]: modprobe@configfs.service: Deactivated successfully.
systemd[1]: Finished Load Kernel Module configfs.
systemd[1]: modprobe@drm.service: Deactivated successfully.
systemd[1]: Finished Load Kernel Module drm.
systemd[1]: modprobe@fuse.service: Deactivated successfully.
systemd[1]: Finished Load Kernel Module fuse.
systemd[1]: Mounting FUSE Control File System...
systemd[1]: Mounting Kernel Configuration File System...
systemd[1]: Finished File System Check on Root Device.
systemd[1]: Finished Load Kernel Modules.
systemd[1]: Mounted FUSE Control File System.
systemd[1]: Mounted Kernel Configuration File System.
systemd[1]: Starting Remount Root and Kernel File Systems...
systemd[1]: Starting Apply Kernel Variables...
systemd[1]: Finished Apply Kernel Variables.
systemd[1]: Started Journal Service.
EXT4-fs (sda5): re-mounted 28419c7c-4bc4-4922-bdc8-6d8515c62385. Quota mode: disabled.
kallsyms_selftest:  ---------------------------------------------------------
kallsyms_selftest: | nr_symbols | compressed size | original size | ratio(%) |
kallsyms_selftest: |---------------------------------------------------------|
kallsyms_selftest: |      28717 |        314859   |       536759  |  58.65   |
kallsyms_selftest:  ---------------------------------------------------------
systemd-journald[107]: Received client request to flush runtime journal.
kallsyms_selftest: kallsyms_lookup_name() looked up 28717 symbols
kallsyms_selftest: The time spent on each symbol is (ns): min=2425, max=279629, avg=14855
kallsyms_selftest: kallsyms_on_each_symbol() traverse all: 12311456 ns
kallsyms_selftest: kallsyms_on_each_match_symbol() traverse all: 43496 ns
kallsyms_selftest: finish
random: crng init done
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
ehci-pci 0001:10:12.2: EHCI Host Controller
ehci-pci 0001:10:12.2: new USB bus registered, assigned bus number 1
ehci-pci 0001:10:12.2: irq 52, io mem 0x80081000
ehci-pci 0001:10:12.2: USB 2.0 started, EHCI 1.00
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.02
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: EHCI Host Controller
usb usb1: Manufacturer: Linux 6.2.0-rc4-PMacG4+ ehci_hcd
usb usb1: SerialNumber: 0001:10:12.2
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 5 ports detected
ehci-pci 0001:10:1b.2: EHCI Host Controller
ehci-pci 0001:10:1b.2: new USB bus registered, assigned bus number 2
ehci-pci 0001:10:1b.2: irq 63, io mem 0x80080000
ehci-pci 0001:10:1b.2: USB 2.0 started, EHCI 1.00
usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.02
usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb2: Product: EHCI Host Controller
usb usb2: Manufacturer: Linux 6.2.0-rc4-PMacG4+ ehci_hcd
usb usb2: SerialNumber: 0001:10:1b.2
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 5 ports detected
BTRFS: device label tmp devid 1 transid 704 /dev/sda6 scanned by systemd-udevd (134)
BTRFS: device label g4_musl devid 1 transid 52681 /dev/sda4 scanned by systemd-udevd (135)
ohci-pci 0001:10:12.0: OHCI PCI host controller
ohci-pci 0001:10:12.0: new USB bus registered, assigned bus number 3
ohci-pci 0001:10:12.0: irq 52, io mem 0x8008c000
usb usb3: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.02
usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb3: Product: OHCI PCI host controller
usb usb3: Manufacturer: Linux 6.2.0-rc4-PMacG4+ ohci_hcd
usb usb3: SerialNumber: 0001:10:12.0
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 3 ports detected
ohci-pci 0001:10:12.1: OHCI PCI host controller
ohci-pci 0001:10:12.1: new USB bus registered, assigned bus number 4
ohci-pci 0001:10:12.1: irq 52, io mem 0x8008b000
Adding 8388604k swap on /dev/sdb6.  Priority:-2 extents:1 across:8388604k FS
usb usb4: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.02
usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb4: Product: OHCI PCI host controller
usb usb4: Manufacturer: Linux 6.2.0-rc4-PMacG4+ ohci_hcd
usb usb4: SerialNumber: 0001:10:12.1
hub 4-0:1.0: USB hub found
hub 4-0:1.0: 2 ports detected
Apple USB OHCI 0001:10:18.0 disabled by firmware
Apple USB OHCI 0001:10:19.0 disabled by firmware
ohci-pci 0001:10:1b.0: OHCI PCI host controller
ohci-pci 0001:10:1b.0: new USB bus registered, assigned bus number 5
ohci-pci 0001:10:1b.0: irq 63, io mem 0x80084000
Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
serial 0001:10:15.0: enabling device (0004 -> 0007)
0001:10:15.0: ttyS0 at I/O 0x410 (irq = 58, base_baud = 115200) is a 16550A
serial 0001:10:15.1: enabling device (0004 -> 0007)
usb usb5: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.02
usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb5: Product: OHCI PCI host controller
usb usb5: Manufacturer: Linux 6.2.0-rc4-PMacG4+ ohci_hcd
usb usb5: SerialNumber: 0001:10:1b.0
b43-pci-bridge 0001:10:16.0: enabling device (0004 -> 0006)
ssb: Found chip with id 0x4306, rev 0x02 and package 0x00
hub 5-0:1.0: USB hub found
hub 5-0:1.0: 3 ports detected
ohci-pci 0001:10:1b.1: OHCI PCI host controller
ohci-pci 0001:10:1b.1: new USB bus registered, assigned bus number 6
ohci-pci 0001:10:1b.1: irq 63, io mem 0x80083000
0001:10:15.1: ttyS1 at I/O 0x400 (irq = 58, base_baud = 115200) is a 16550A
b43-pci-bridge 0001:10:16.0: Sonics Silicon Backplane found on PCI device 0001:10:16.0
EXT4-fs (sdc5): mounting ext2 file system using the ext4 subsystem
EXT4-fs (sdc5): mounted filesystem e4e8af9e-0f0d-44f9-b983-71bf61d782de without journal. Quota mode: disabled.
ext2 filesystem being mounted at /boot supports timestamps until 2038 (0x7fffffff)
usb usb6: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.02
usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb6: Product: OHCI PCI host controller
usb usb6: Manufacturer: Linux 6.2.0-rc4-PMacG4+ ohci_hcd
usb usb6: SerialNumber: 0001:10:1b.1
hub 6-0:1.0: USB hub found
hub 6-0:1.0: 2 ports detected
sr 4:0:0:0: [sr0] scsi3-mmc drive: 48x/48x writer cd/rw xa/form2 cdda tray
cdrom: Uniform CD-ROM driver Revision: 3.20
firewire_ohci 0002:20:0e.0: enabling device (0000 -> 0002)
firewire_ohci 0002:20:0e.0: added OHCI v1.10 device as card 0, 8 IR + 8 IT contexts, quirks 0x0
ADM1030 fan controller [@2c]
DS1775 digital thermometer [@49]
Temp: 53.6 C
  Hyst: 70.0 C
  OS: 75.0 C

BTRFS info (device sda6): using crc32c (crc32c-generic) checksum algorithm
BTRFS info (device sda6): use lzo compression, level 0
BTRFS info (device sda6): setting nodatasum
BTRFS info (device sda6): using free space tree
BTRFS info (device sda6): enabling ssd optimizations
snd-aoa-fabric-layout: can use this codec
firewire_core 0002:20:0e.0: created device fw0: GUID 000a95fffe9c763a, S800
cfg80211: Loading compiled-in X.509 certificates for regulatory database
cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
cfg80211: failed to load regulatory.db
b43legacy-phy0: Broadcom 4306 WLAN found (core revision 4)
b43legacy-phy0: Loading firmware b43legacy/ucode4.fw
Broadcom 43xx-legacy driver loaded [ Features: PLID ]
b43legacy-phy0: Loading firmware b43legacy/pcm4.fw
b43legacy-phy0: Loading firmware b43legacy/b0g0initvals2.fw
CPU-temp: 54.0 C
, Case: 31.8 C
,  Fan: 0 (tuned -11)
CPU-temp: 55.0 C
, Case: 32.0 C
,  Fan: 0 (tuned +0)
CPU-temp: 55.3 C
, Case: 32.0 C
,  Fan: 0 (tuned +0)
CPU-temp: 56.0 C
, Case: 32.3 C
,  Fan: 0 (tuned +0)
CPU-temp: 56.0 C
, Case: 32.3 C
,  Fan: 0 (tuned +0)
CPU-temp: 56.0 C
, Case: 32.3 C
,  Fan: 4 (tuned +4)
CPU-temp: 56.0 C
, Case: 32.3 C
,  Fan: 4 (tuned +0)
CPU-temp: 56.0 C
, Case: 32.3 C
,  Fan: 4 (tuned +0)
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Key type dns_resolver registered
NFS: Registering the id_resolver key type
Key type id_resolver registered
Key type id_legacy registered
Re: [PATCH v2] of: Fix of platform build on powerpc due to bad of disaply code
Posted by Thomas Zimmermann 2 years, 7 months ago

Am 19.01.23 um 10:53 schrieb Michal Suchanek:
> The commit 2d681d6a23a1 ("of: Make of framebuffer devices unique")
> breaks build because of wrong argument to snprintf. That certainly
> avoids the runtime error but is not the intended outcome.
> 
> Also use standard device name format of-display.N for all created
> devices.
> 
> Fixes: 2d681d6a23a1 ("of: Make of framebuffer devices unique")
> Signed-off-by: Michal Suchanek <msuchanek@suse.de>

Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>

Thanks again for taking care of this issue.

> ---
> v2: Update the device name format
> ---
>   drivers/of/platform.c | 12 ++++++++----
>   1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> index f2a5d679a324..8c1b1de22036 100644
> --- a/drivers/of/platform.c
> +++ b/drivers/of/platform.c
> @@ -525,7 +525,9 @@ static int __init of_platform_default_populate_init(void)
>   	if (IS_ENABLED(CONFIG_PPC)) {
>   		struct device_node *boot_display = NULL;
>   		struct platform_device *dev;
> -		int display_number = 1;
> +		int display_number = 0;
> +		char buf[14];
> +		char *of_display_format = "of-display.%d";
>   		int ret;
>   
>   		/* Check if we have a MacOS display without a node spec */
> @@ -556,7 +558,10 @@ static int __init of_platform_default_populate_init(void)
>   			if (!of_get_property(node, "linux,opened", NULL) ||
>   			    !of_get_property(node, "linux,boot-display", NULL))
>   				continue;
> -			dev = of_platform_device_create(node, "of-display", NULL);
> +			ret = snprintf(buf, sizeof(buf), of_display_format, display_number++);
> +			if (ret >= sizeof(buf))
> +				continue;
> +			dev = of_platform_device_create(node, buf, NULL);
>   			if (WARN_ON(!dev))
>   				return -ENOMEM;
>   			boot_display = node;
> @@ -564,10 +569,9 @@ static int __init of_platform_default_populate_init(void)
>   		}
>   
>   		for_each_node_by_type(node, "display") {
> -			char *buf[14];
>   			if (!of_get_property(node, "linux,opened", NULL) || node == boot_display)
>   				continue;
> -			ret = snprintf(buf, "of-display-%d", display_number++);
> +			ret = snprintf(buf, sizeof(buf), of_display_format, display_number++);
>   			if (ret >= sizeof(buf))
>   				continue;
>   			of_platform_device_create(node, buf, NULL);

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev