On 3/21/09, Rob Landley rob@landley.net wrote:
On Saturday 21 March 2009 04:32:30 Blue Swirl wrote:
I accidentally (by using a wrong variable in a more complex patch) found out a workaround for the bug, now -nographic boot works. But still the other nodes have the same problem as before and the workaround removes the "reg" node which is present on real tree.
Now the escc node doesn't have the address appended: 1bfac /pci@80000000/mac-io@4/nvram@0 (nvram) 1c1c0 /pci@80000000/mac-io@4/escc (escc) 1c2ac /pci@80000000/mac-io@4/escc/ch-a@13020 (serial) 1c52c /pci@80000000/mac-io@4/escc/ch-b@13000 (serial)
Maybe nodes under /pci/mac-io should use custom encode-unit/decode-unit methods instead of PCI ones?
My workaround at this end is to just revert openbios-ppc to the earlier version.
I still think that bisecting to find the specific commit that broke it would be informative, but your repository's move to /trunk at commit 470 essentially wiped all repository history before that. Your development page doesn't say how to download the old versions, just the ones under "trunk":
Good point, I'll add some notes.
http://www.openfirmware.info/OpenBIOS
Nor does your repository viewer view anything before 470 from the little pull- down menu: http://tracker.coreboot.org/trac/openbios/browser/trunk/openbios-devel?rev=4... http://tracker.coreboot.org/trac/openbios/browser/trunk/openbios-devel?rev=4...
I guessed how to get the repository viewer to show me the earlier versions:
http://tracker.coreboot.org/trac/openbios/browser/openbios-devel?rev=469
But this doesn't work:
$ svn co -r 469 svn://openbios.org/openbios/openbios-devel svn: File not found: revision 480, path '/openbios-devel'
'svn switch' may help: http://www.openfirmware.info/pipermail/openbios/2009-March/003594.html
I'll add something about this too.
Then again, I can always bisect by downloading tarballs from your repository viewer... Eh, why not.
For easy cut and pasting, my build reproduction sequence is:
chmod +x config/scripts/switch-arch config/scripts/switch-arch cross-ppc PATH=~/firmware/firmware/build/cross-compiler-powerpc/bin:$PATH \ make TARGET=powerpc- sudo cp obj-ppc/openbios-qemu.elf /usr/local/share/qemu/openbios-ppc
469 exhibits the bug, so it's before that. I believe 450 is the "known good" version, so let's try 460... Bug. 455... Bug. 452... Bug. 451... Works.
So the bug was introduced (or at least triggered) by revision 452:
http://tracker.coreboot.org/trac/openbios/changeset/452/openbios-devel
Anything in there look broken to you?
No. This basically enabled automatic switch of OpenBIOS input and output to serial console when using the -nographic flag which was already supported the same way by Sparc32 and Sparc64.
The bug is somewhere in the device path processing, probably in the PPC specific higher level device like mac-io, that's why the same ESCC serial console works on Sparc32.
Rob
P.S. Please at least put up a link to this on your development page:
http://tracker.coreboot.org/trac/openbios/browser/openbios-devel?rev=469
Right now earlier versions of your repository are completely inaccessible to newbies like me...