Port-sgimips archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: O2 framebuffer problems with install kernel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello,
On Jul 28, 2008, at 06:39, Jorge Acereda Maciá wrote:
I'm right now trying to install NetBSD-current on my 'new' O2, but
I get the vertical red strips referred to recently in this list.
You've got an R10k O2?
Any idea on what the cause could be?
Nope, all we currently know is this:
- - it works fine on R5k O2s
- - it happens on R10k and newer CPUs
The graphics chipset is more or less identical on both so it must be
the CPU. The big difference is that the R10k is superscalar ( MIPS
claims the R5k is as well just because it can run an FP op in
parallel with integer ops, by that logic an 8086/8087 combo is
superscalar ) and its speculative memory accesses. I don't think it's
missing memory barriers or something like that because even the R5k
re-orders accesses even to uncached memory - I ran into that a few
times - so pretty much every register access has a wbflush() attached
to it.
So, I can only guess that the R1xk's speculative accesses bite us in
the rear end but for that things look a bit too predictable to me.
Unfortunately I can't debug this, my O2 is an R5k model.
Will the framebuffer work if I install through serial port?
I seriously doubt it.
I have some free time this week and I'm cross-building from my OSX
box, so if you have any suggestion I'm available to do some tests.
Have a look at sgimips/dev/crmfb.c, if you have any MIPS clue see if
there's something obviously wrong that I'm missing. If you feel like
it sprinkle wbflush() and maybe delay()s and see if that makes any
difference ( there are a few instances where we wait for some busy
bit to set or clear - you may want to put a delay() there in case
we're too fast and grab those bits too early from some buffer or
whatever. Maybe we need additional barriers there. Also you may want
to sprinkle some printf()s for delays and progress reporting.
Oh, and the obvious bit - you may want to verify that your kernel
really uses the MIPS-3 bus_space ops, especially the 64bit ones.
CRIME has a bunch of 64bit wide registers that can only be written at
64bit-aligned addresses, unaligned writes don't throw an error,
they're silently ignored. 32bit writes work if they're 64bit aligned,
so if by any chance you end up using MIPS-1 ops then 64bit writes get
broken down into 2x 32bit which would royally screw up crmfb because
the non-64bit-aligned write would be ignored and you'd write only the
upper half of a register.
have fun
Michael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
iQEVAwUBSI3OKcpnzkX8Yg2nAQIyCQf6AsXJ5DhzQ+FJXgyc8j1QZNn8trp70XZn
RUIKKkswDOsk+LJJlXovdRlYuz1q0t/pLMJ25wVMhI9opRLWSCROcMdjNHIMkxfr
VLzDdF3UU9XH93M2AY6k5bWbngkSMUh+lastbpfzU69nVFseGQYlTre2yxSMIzIO
0W7HmcioiBenqEgYc8pJED8kUGS8uJo6sqQhVxqRyjeMiJX3T20A+SooyXDV3ysP
5QMM0Fao6G/K0Hxr0ugtSNvdjy2rUZMwvP1Nm7cCpzbuE4jREsTgdMOaeX0EzCWc
mo+08tt9AGnOcv4JGcb/OF6Z5Cwba3j/mLkR8mDkEIS/mAeV0AyxrQ==
=y9yT
-----END PGP SIGNATURE-----
Home |
Main Index |
Thread Index |
Old Index