Port-sparc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

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



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


Home | Main Index | Thread Index | Old Index