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