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