svn commit: r302214 - head/sys/powerpc/aim ["set usefdt=1" test fails on PowerMac G5 "Quad Core"]

Mark Millard markmi at dsl-only.net
Wed Oct 19 00:58:10 UTC 2016


[I've finally got a access to the powerpc's and powerpc64's, at least for a little bit. But other things may take much of my time.]

Nathan Whitehorn nwhitehorn at freebsd.org  wrote on Sun Jun 26 23:38:36 UTC 2016 [back in 11-CURRENT days]:

>> . . .
>>> Author: nwhitehorn
>>> Date: Sun Jun 26 18:43:42 2016
>>> New Revision: 302214
>>> URL:
>>> https://svnweb.freebsd.org/changeset/base/302214
>>> 
>>> 
>>> Log:
>>>   Enter 64-bit mode as early as possible in the 64-bit PowerPC boot sequence.
>>>   Most of the effect of setting MSR[SF] is that the CPU will stop ignoring
>>>   the high 32 bits of registers containing addresses in load/store
>>>   instructions. As such, the kernel was setting it only when it began to
>>>   need access to high memory. MSR[SF] also affects the operation of some
>>>   conditional instructions, however, and so setting it at late times could
>>>   subtly break code at very early times. This fixes use of the FDT mode in
>>>   loader, and FDT boot more generally, on 64-bit PowerPC systems.
>>> 
>>>   Hardware provided by: IBM LTC
>>>   Approved by: re (kib)
>>> 
>>> Modified:
>>>   head/sys/powerpc/aim/aim_machdep.c
>>>   head/sys/powerpc/aim/locore64.S
>> . . .
> 
> . . .
> 
> One thing it would be great to have some testing on after this change is 
> the FDT layer in loader. If you set usefdt=1 from the loader prompt, 
> loader will distill the OF device tree into an FDT and then stop Open 
> Firmware completely before transferring control to FreeBSD. This should 
> avoid any possible problems accessing Open Firmware from the kernel, as 
> well as making boot a little faster.
> -Nathan

I updated the old 2016-June-1 SSD contents to head's -r302214 and did
buildworld and buildkernel and installed them, but with my PowerMac G5
boot-hack still present. This was to be the first test if things went
well for "set usefdst=1". They did not so no tests without the hack were
made.

A normal boot works fine for -r203214 but use of "set usefdt=1" before
"boot" fails.

A hand transcribed report of the visible "set usefdt=1" results are:

> Ok set usefdt=1
> Ok boot
> Booting...
> Error -2 adding node /ht at 0,f2000000/pci at 8/macio at 7/i2c at 18000/i2c-bus at 0 (i2c-bus at 0), skipping
> 
> kernel entry at 0x100120
> Invalid memory access at %SRR0: 00000000.00100120 %SRR1: 10000000.00083030

It then reports the Apple model and firmware version and and some other
Apple text and gets stuck. (Power switch time.)


Note: I've not updated /usr/ports so the modern binutils poewrpc64 issue
is not involved:

> #svnlite info /usr/ports/ | grep "Re[lv]"
> Relative URL: ^/head
> Revision: 415874
> Last Changed Rev: 415874

> # uname -apKU
> FreeBSD FBSDG5C0 11.0-ALPHA5 FreeBSD 11.0-ALPHA5 #40 r302214M: Tue Oct 18 06:11:02 PDT 2016     root at FBSDG5C0:/usr/obj/xtoolchain/powerpc.powerpc64/usr/src/sys/GENERIC64vtsc-NODEBUG  powerpc powerpc64 1100120 1100120

devel/powrepc64-gcc was used to do the system builds and it is a libc++
based build.

> # svnlite info /usr/src/ | grep "Re[lv]"
> Relative URL: ^/head
> Revision: 302214
> Last Changed Rev: 302214

> # svnlite status /usr/src
> ?       /usr/src/.snap
> M       /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
> M       /usr/src/lib/csu/powerpc64/Makefile
> ?       /usr/src/restoresymtable
> ?       /usr/src/sys/arm/conf/RPI2-NODBG
> M       /usr/src/sys/boot/ofw/Makefile.inc
> M       /usr/src/sys/boot/powerpc/Makefile
> M       /usr/src/sys/boot/powerpc/Makefile.inc
> M       /usr/src/sys/boot/uboot/Makefile.inc
> M       /usr/src/sys/conf/Makefile.powerpc
> M       /usr/src/sys/conf/kern.mk
> M       /usr/src/sys/conf/kmod.mk
> ?       /usr/src/sys/powerpc/conf/GENERIC64-NODBG
> ?       /usr/src/sys/powerpc/conf/GENERIC64vtsc
> ?       /usr/src/sys/powerpc/conf/GENERIC64vtsc-NODEBUG
> ?       /usr/src/sys/powerpc/conf/GENERICvtsc
> ?       /usr/src/sys/powerpc/conf/GENERICvtsc-NODEBUG
> M       /usr/src/sys/powerpc/ofw/ofw_machdep.c
> M       /usr/src/sys/powerpc/powerpc/exec_machdep.c




===
Mark Millard
markmi at dsl-only.net




More information about the freebsd-ppc mailing list