Re: Panic at boot on 4/330 with cgfour and cgsix

Julian Coleman <[email protected]>
Newsgroups gmane.os.netbsd.ports.sparc
Message-ID <[email protected]>
Hi,

> > So I changed PFOUR_COLOR_OFF_CMAP to (-0x00100000) and I was able to
> > boot successfully. I don't know if this is the right way to fix it but
> > at least now I can boot the system and test things some more. Thanks
> > everyone for the help so far, I'll be trying to run X and other things
> > soon and hopefully have some good news.

I think that it makes sense to make this change.

I had a quick look at the CG6 code (src/sys/arch/sparc/dev/cgsix_obio.c)
and it defines offsets directly like:

  oba->oba_paddr + CGSIX_BT_OFFSET

so I assume that we have the wrong address here as well.  Maybe substracting
0x00100000 from these will make that work as well.  It will be hard to test
without hardware though.

> Somehow bus_addr_t (in sys/arch/sparc/include/bus_defs.h) is uint64_t
> so passing "oba->oba_paddr + PFOUR_COLOR_OFF_CMAP"
> (i.e. "oba->oba_paddr + 0xfff00000") to bus_space_map(9)
> causes unintended (no wraparound) address.

I guess that the offset was inherited from directly from sun3 p4reg.h and
we didn't notice that this broke P4 framebuffers since bus_addr_t changed
from 32 to 64 bit back in 2001:

  https://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/sparc/include/Attic/bus.h.diff?r1=1.25;r2=1.26

Nice work, everyone!

Regards,

Julian
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.