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

Izumi Tsutsui <[email protected]>
Newsgroups gmane.os.netbsd.ports.sparc
Message-ID <[email protected]>
mouse@ wrote:

> There was some Sun framebuffer I used back in the '80s - I forget which
> one - that had eight bits per ppixel, but, in addition to 900x1152 8pp,
> it also presented eight 1bpp views of the same video RAM to the host,
> one per bitplane.

Maybe it's cgtwo, no overlay bwtwo plane but it can be used like bwtwo
as "monochrome" mode:

 https://github.com/NetBSD/xsrc/blob/netbsd-10/external/mit/xorg-server/dist/hw/sun/sunCfb.c#L463-L479

This line
	((CG2Ptr) sunFbs[screen].fb)->regs.ppmask.reg = 1;
makes it 1bpp (8 pixels per each byte), and
	((CG2Ptr) sunFbs[screen].fb)->regs.ppmask.reg = 0xFF;
this makes it 8bpp (1 pixel per each byte).

 https://github.com/NetBSD/src/blob/netbsd-10/sys/arch/sun3/include/cg2reg.h#L206-L232
---
struct cg2fb {

#ifndef	_KERNEL	/* XXX - Hack! */
	/* XXX - Don't want this permanently in the kernel mapping. */
	union {			/* raster op mode frame memory */
		union bitplane ropplane[CG2_N_PLANE];
		union byteplane roppixel;
	} ropio;
#endif	/* _KERNEL	XXX - Hack! */

	union {			/* raster op control unit (1 per plane) */
		struct memropc ropregs;
		struct {
			u_char pad[2048];
			struct memropc ropregs;
		} prime;
		u_char reg_pad[4096];
	} ropcontrol[9];
	union {			/* status register */
		struct cg2statusreg reg;
		u_short word;
		u_char reg_pad[4096];
	} status;
	union {			/* per-plane mask register */
		u_short reg;	/* 8 bit mask register - set means plane r/w */
		u_char reg_pad[4096];
	} ppmask;
---

TME supports cg2 and I tested Xsun server "-mono" option on it..

---
Izumi Tsutsui
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.