Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Jan 2021 18:31:45 -0800
From:      Mark Millard <marklmi@yahoo.com>
To:        Brandon Bergren <bdragon@FreeBSD.org>
Cc:        Justin Hibbits <chmeeedalf@gmail.com>, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   Re: CURRENT -r361544 breaks 2-socket PowerMac G4 booting: "powerpc/mmu: Convert PowerPC pmap drivers to ifunc from kobj"
Message-ID:  <07B41AEF-A09E-4CA6-8DB1-A65CD540EB95@yahoo.com>
In-Reply-To: <BC4BA6D0-FB25-40E5-AF86-938A8B10BC78@yahoo.com>
References:  <00423D88-0367-4220-B20A-50307DA72A81@yahoo.com> <A9CDA051-466A-4FC6-A57A-D9D751E4FD00@yahoo.com> <c9ce1ac1-28dc-42af-8fd8-b0714475be6b@www.fastmail.com> <F6B1536C-51D8-4ABD-BCA8-A045C7E7E2E6@yahoo.com> <BC4BA6D0-FB25-40E5-AF86-938A8B10BC78@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
[Single processor/core G4s and G3 boot and operate okay with
modern 32-bit powerpc FreeBSD, at least for the examples I
have access to.]

On 2021-Jan-2, at 17:07, Mark Millard <marklmi at yahoo.com> wrote:

> On 2021-Jan-2, at 11:38, Mark Millard <marklmi at yahoo.com> wrote:
>=20
>> On 2021-Jan-2, at 09:54, Brandon Bergren <bdragon at FreeBSD.org> =
wrote:
>>=20
>>> I was testing this myself yesterday.
>>>=20
>>> Things seemed to be working (other than usb weirdness) on my MPC7400 =
rev 2.9 dual processor G4 (PVR 000c0209) with latest.
>>=20
>> On the USB oddities: I've had a boot in which USB is working,
>> at least for keyboard use. Its bus_dmamem_alloc messages also
>> stop early on, with the 12th message being the last. The last
>> 3 are shown in context below (showing the phys addr and
>> alignment figures as well):
>>=20
>> . . .
>> Root mount waiting for: CAM usbus0
>> Jan  1 17:49:08 FBSDG4S2 kernel: bus_dmamem_alloc failed to align =
memory properly.
>> Jan  1 17:49:08 FBSDG4S2 kernel: vtophys(*vaddr)=3D=3D0x1c48d80 and =
dmat->alignment-1=3D=3D0xff
>> Jan  1 17:49:08 FBSDG4S2 kernel: ugen0.4: <Mitsumi Electric Apple =
Extended USB Keyboard> at usbus0
>> Jan  1 17:49:08 FBSDG4S2 kernel: ukbd0 numa-domain 0 on uhub5
>> Jan  1 17:49:08 FBSDG4S2 kernel: ukbd0: <Mitsumi Electric Apple =
Extended USB Keyboard, class 0/0, rev 1.10/1.22, addr 4> on usbus0
>> Jan  1 17:49:08 FBSDG4S2 kernel: kbd1 at ukbd0
>> Jan  1 17:49:08 FBSDG4S2 kernel: uhid0 numa-domain 0 on uhub5
>> Jan  1 17:49:08 FBSDG4S2 kernel: uhid0: <Mitsumi Electric Apple =
Extended USB Keyboard, class 0/0, rev 1.10/1.22, addr 4> on usbus0
>> Jan  1 17:49:08 FBSDG4S2 kernel: bus_dmamem_alloc failed to align =
memory properly.
>> Jan  1 17:49:08 FBSDG4S2 kernel: vtophys(*vaddr)=3D=3D0x1c48a80 and =
dmat->alignment-1=3D=3D0xff
>> Jan  1 17:49:08 FBSDG4S2 kernel: bus_dmamem_alloc failed to align =
memory properly.
>> Jan  1 17:49:08 FBSDG4S2 kernel: vtophys(*vaddr)=3D=3D0x1c48a80 and =
dmat->alignment-1=3D=3D0xff
>> Jan  1 17:49:08 FBSDG4S2 kernel: Root mount waiting for: CAM usbus0
>> Jan  1 17:49:08 FBSDG4S2 kernel: ugen0.5: <vendor 0x05ac Studio =
Display> at usbus0
>> Jan  1 17:49:08 FBSDG4S2 kernel: uhid1 numa-domain 0 on uhub4
>> Jan  1 17:49:08 FBSDG4S2 kernel: uhid1: <vendor 0x05ac Studio =
Display, class 0/0, rev 1.00/1.06, addr 5> on usbus0
>> Jan  1 17:49:08 FBSDG4S2 kernel: Root mount waiting for: CAM
>> . . .
>>=20
>> Apparently, having ongoing bus_dmamem_alloc messages and having
>> failing USB are tied together in some manor. For reference,
>> the boot did get:
>>=20
>> Jan  1 17:49:08 FBSDG4S2 kernel: SMP: 2 CPUs found; 2 CPUs usable; 1 =
CPUs woken
>>=20
>> The PowerMac G4 is instead reporting something different
>> for ongoing notices:
>>=20
>> . . .
>> Jan  2 10:10:37 FBSDG4S2 kernel: ds17750: iicbus read failed
>> Jan  2 10:12:19 FBSDG4S2 kernel: iichb0: I2C error
>> Jan  2 10:14:02 FBSDG4S2 syslogd: last message repeated 1 times
>> Jan  2 10:15:44 FBSDG4S2 syslogd: last message repeated 1 times
>> Jan  2 10:22:31 FBSDG4S2 syslogd: last message repeated 4 times
>> Jan  2 10:22:31 FBSDG4S2 kernel: ds17750: iicbus read failed
>> Jan  2 10:24:14 FBSDG4S2 kernel: iichb0: I2C error
>> Jan  2 10:25:57 FBSDG4S2 syslogd: last message repeated 1 times
>> Jan  2 10:27:39 FBSDG4S2 syslogd: last message repeated 1 times
>> Jan  2 10:32:44 FBSDG4S2 syslogd: last message repeated 3 times
>> Jan  2 10:32:44 FBSDG4S2 kernel: adm10300: iicbus write failed
>> Jan  2 10:34:27 FBSDG4S2 kernel: iichb0: I2C error
>> Jan  2 10:36:09 FBSDG4S2 syslogd: last message repeated 1 times
>> Jan  2 10:37:52 FBSDG4S2 syslogd: last message repeated 1 times
>> Jan  2 10:42:57 FBSDG4S2 syslogd: last message repeated 3 times
>> Jan  2 10:42:57 FBSDG4S2 kernel: ds17750: iicbus read failed
>> Jan  2 10:44:39 FBSDG4S2 kernel: iichb0: I2C error
>> Jan  2 10:46:22 FBSDG4S2 syslogd: last message repeated 1 times
>> Jan  2 10:48:02 FBSDG4S2 syslogd: last message repeated 1 times
>> Jan  2 10:53:09 FBSDG4S2 syslogd: last message repeated 3 times
>> Jan  2 10:53:09 FBSDG4S2 kernel: adm10300: iicbus write failed
>> Jan  2 10:54:52 FBSDG4S2 kernel: iichb0: I2C error
>> . . .
>>=20
>> It was not reporting such previously. (It is my build of
>> -r368820 with my patches, which had USB failing like
>> the artifact.ci kernels in previous boots.)
>=20
> Just FYI:
>=20
> This boot with USB working eventually crashed while the system
> was basically idle:
>=20
> . . .
> panic: vm_fault_lookup: fault on nofault entry, addr: 0xd77de000
> cpuid =3D 0
> time =3D 1609626759
> KDB: stack backtrace:
> 0xd690f570: at kdb_backtrace+0x64
> 0xd690f5d0: at vpanic+0x204
> 0xd690f640: at panic+0x64
> 0xd690f680: at vm_fault+0x1b28
> 0xd690f750: at vm_fault_trap+0xc8
> 0xd690f780: at trap_pfault+0x124
> 0xd690f7c0: at trap+0x20c
> 0xd690f870: at powerpc_interrupt+0x1f8
> 0xd690f8a0: kernel DSI read trap @ 0xd77de000 by kiic_intr+0x1b8: =
srr1=3D0x9032
>            r1=3D0xd690f960 cr=3D0x42200800 xer=3D0 ctr=3D0x9ba564 =
sr=3D0x40000000 frame=3D0xd690f8a8
> 0xd690f960: at 0x198239c
> 0xd690f990: at ithread_loop+0x314
> 0xd690fa10: at fork_exit+0xcc
> 0xd690fa40: at fork_trampoline+0xc
> KDB: enter: panic
>=20
> The reboot was back to USB not working.
>=20
>>> Can you tell me the exact PVR of your processors? (can find it in OF =
with 'dev /cpus/PowerPC,G4@0 .properties' and looking at the =
cpu-version: property.) I'm wondering if it is an errata that we're =
tripping over here.
>>=20
>> This from ofwdump covers that for the PowerPC 7455 revision 3.3,
>> I think:
>>=20
>> # ofwdump -P cpu-version /cpus/PowerPC,G4
>> Node 0x274: PowerPC,G4
>> cpu-version:
>>   80 01 03 03=20
>>=20
>> FYI:
>>=20
>> # ofwdump -ap
>> Node 0x38: device-tree
>> phandle:
>>   ff 88 11 a8=20
>> model:
>>   50 6f 77 65 72 4d 61 63 33 2c 36 00=20
>>   'PowerMac3,6'
>> . . .
>>=20
>> Also:
>>=20
>> Jan  1 17:49:08 FBSDG4S2 kernel: cpu0: Motorola PowerPC 7455 revision =
3.3, 1416.74 MHz
>> Jan  1 17:49:08 FBSDG4S2 kernel: cpu0: Features =
9c000000<PPC32,ALTIVEC,FPU,MMU>
>> Jan  1 17:49:08 FBSDG4S2 kernel: cpu0: HID0 =
8450c0bc<EMCP,TBEN,NAP,DPM,ICE,DCE,SGE,BTIC,LRSTK,FOLD,BHT>
>> Jan  1 17:49:08 FBSDG4S2 kernel: real memory  =3D 2115649536 (2017 =
MB)
>> Jan  1 17:49:08 FBSDG4S2 kernel: avail memory =3D 2052780032 (1957 =
MB)
>>=20
>> NOTE: I have access to a 2nd one of this type of
>> PowerMac G4.
>>=20
>>> Regarding the alignment problem, I'm hoping to be able to update the =
busdma code to lean on the new MI bits, it's a bit of a mess currently.
>>=20
>> It looks to me like this and the USB/I2C problems may be related
>> in some way.
>>=20
>>> On Thu, Dec 31, 2020, at 3:35 PM, Mark Millard wrote:
>>>> [Continuation of testing kernel builds, but testing my own kernel
>>>> builds for the head powerpc updates not available from =
artifacts.ci.
>>>> Ends up: -r361544 breaks things.]
>>>>=20
>>>> On 2020-Dec-30, at 17:07, Mark Millard <marklmi at yahoo.com> =
wrote:
>>>>=20
>>>>> A quick summary of what I found in a crude artifact bisect is =
coded into
>>>>> the filenames listed later. The earliest major point is the "1 =
CPUs woken"
>>>>> issue from what I can tell. It still happens in -r368820 .
>>>>>=20
>>>>> "2cpus_booted" means things booted and worked normally.
>>>>>=20
>>>>> "1cpuwoke_" means that the following was reported:
>>>>>=20
>>>>> SMP: 2 CPUs found; 2 CPUs usable; 1 CPUs woken
>>>>>=20
>>>>> "_hung" means that it appeared to stop without reporting a crash. =
Never
>>>>> got to login prompt.
>>>>>=20
>>>>> "crashes_quickly" means that the the kernel did not get very far =
before
>>>>> the crash happened.
>>>>>=20
>>>>> -rw-r--r--   1 root  wheel  19179328 May 25 21:44:01 2020 =
kernel-r361494-2cpus_booted.txz
>>>>>=20
>>>>> Note: No artifact kernel.txz files for the range -r361495 .. =
-r361583 .
>>>>> powerpc checkins in that range include:
>>>>>=20
>>>>> -r361542 : [PowerPC] Fix invalid asm in trap code (Brandon)
>>>>> -r361544 : powerpc/mmu: Convert PowerPC pmap drivers to ifunc from =
kobj (Justin)
>>>>> -r361545 : Properly sort ifdef archs in vm_fault_soft_fast =
superpage guards. (Justin)
>>>>> -r361568 : [PowerPC] Fix radix crash when passing -1 from =
userspace (Brandon)
>>>>> -r361570 : powerpc/pmap: Remove some debug from r361544 (Justin)
>>>>>=20
>>>>> -rw-r--r--   1 root  wheel  19133836 May 28 04:28:01 2020 =
kernel-r361584-1cpuwoke_hung.txz
>>>>> -rw-r--r--   1 root  wheel  19181596 May 29 04:42:42 2020 =
kernel-r361624-1cpuwoke_hung.txz
>>>>> -rw-r--r--   1 root  wheel  19254832 Jun  3 10:26:42 2020 =
kernel-r361754-1cpuwoke_hung.txz
>>>>> -rw-r--r--   1 root  wheel  18869112 Jun 10 16:53:57 2020 =
kernel-r362034-1cpuwoke_hung.txz
>>>>> -rw-r--r--   1 root  wheel  19245524 Jul  8 06:04:41 2020 =
kernel-r363008-1cpuwoke_hung.txz
>>>>> -rw-r--r--   1 root  wheel  19259816 Aug 16 12:03:55 2020 =
kernel-r364274-1cpuwoke_hung.txz
>>>>>=20
>>>>> NOTE: -r364284 is where clang 11 started and the -O newly meaning =
-O1 problem started.
>>>>>   (Previously -O meant -O2. -O1 messed up the kernel's ifunc =
handling until it
>>>>>   was changed to explicitly use -O2.)
>>>>>=20
>>>>> -rw-r--r--   1 root  wheel  19369960 Aug 22 11:38:22 2020 =
kernel-r364488-crashes_quickly.txz
>>>>> -rw-r--r--   1 root  wheel  19203632 Sep  1 01:38:18 2020 =
kernel-r365024-crashes_quickly.txz
>>>>> -rw-r--r--   1 root  wheel  19367776 Sep  3 11:02:58 2020 =
kernel-r365304-crashes_quickly.txz
>>>>> -rw-r--r--   1 root  wheel  19279564 Sep  6 08:06:11 2020 =
kernel-r365378-crashes_quickly.txz
>>>>> -rw-r--r--   1 root  wheel  19205456 Sep  7 22:53:14 2020 =
kernel-r365444-1cpuwoke_crashes_late.txz
>>>>> -rw-r--r--   1 root  wheel  19446448 Sep 10 08:08:23 2020 =
kernel-r365578-1cpuwoke_hung.txz
>>>>> -rw-r--r--   1 root  wheel  19398268 Oct  9 06:05:48 2020 =
kernel-r366598-1cpuwoke_hung.txz
>>>>>=20
>>>>> Note: -r368820 still has "1cpuwoke" status and its USB is messed =
up (and
>>>>>   it reports DMA misalignment) but it does boot. (I accessed it =
via ssh.)
>>>>=20
>>>> Note: for the below kernel builds I provided a "int yydebug;" for:
>>>>=20
>>>> usr.bin/localedef/localedef.c
>>>>=20
>>>> so kernel-toolchain could build (avoiding a link failure).
>>>>=20
>>>> Other than that, the kernel builds are of pure code from git using=20=

>>>> KERNCONF=3DGENERIC ,
>>>> TARGET=3Dpowerpc , TARGET_ARCH=3Dpowerpc and no other tailoring, =
avoiding=20
>>>> any questions
>>>> about my personal patches contributing.
>>>>=20
>>>>=20
>>>> -r361542 (64cc3b0c28b9) : [PowerPC] Fix invalid asm in trap code =
(Brandon)
>>>>=20
>>>> Things booted and worked as expected.
>>>>=20
>>>>=20
>>>> -r361544 (45b69dd63e84) : powerpc/mmu: Convert PowerPC pmap drivers =
to=20
>>>> ifunc from kobj (Justin)
>>>>=20
>>>> SMP: 2 CPUs found; 2 CPUs usable; 1 CPUs woken
>>>>=20
>>>> was reported and it appeared to stop without reporting a crash. =
Never
>>>> got to login prompt.
>>>>=20
>>>>=20
>>>> NOTE: -r361453 was on stable/ instead of head/ so the above is a
>>>> works-then-fails pair with nothing between on CURRENT.
>>>=20
>>>=20
>>=20
>=20

I tried booting the iMac G3 and the 1-socket/1-core-each
G4 with my modern 32-bit powerpc build:

# ~/fbsd-based-on-what-freebsd-main.sh mm-src
818390ce0ca539300dd15d7a817784f1e3f7a9b8
CommitDate: 2021-01-13 14:54:46 -0800
4180404713ec 818390ce0ca5 (HEAD -> mm-src) mm-src snapshot for mm's =
patched build in git context.
FreeBSD FBSDG4S2 13.0-CURRENT FreeBSD 13.0-CURRENT =
mm-src-c255938-g4180404713ec GENERICvtsc-NODBG  powerpc powerpc 1300135 =
1300135

It worked fine, including USB working just fine.

This may suggest that the:

SMP: 2 CPUs found; 2 CPUs usable; 1 CPUs woken

on the 2-socket/1-core each G4 system is indicating a
fundamental part of the problems, even the USB problem.


=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?07B41AEF-A09E-4CA6-8DB1-A65CD540EB95>