ATI Mach64 VT2
http://www.jp.netbsd.org/ja/JP/ml/port-powerpc-ja/200108/msg00000.html
という話があって
- linux/drivers
-
http://cobra.digital-impact.ch/cgi-bin/cvsweb.cgi/cobra/linux/drivers/
- controlfb.c
-
http://cobra.digital-impact.ch/cgi-bin/cvsweb.cgi/cobra/linux/drivers/video/controlfb.c
- linux 2.4.5 src imported
-
http://cobra.digital-impact.ch/cgi-bin/cvsweb.cgi/cobra/linux/drivers/video/atyfb.c
- XFree86 ati mach64
-
http://cvsweb.xfree86.org/cvsweb/xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c
- XFree86 atichip.c
-
http://cvsweb.xfree86.org/cvsweb/xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.c
- linux-fbdev.org
-
http://www.linux-fbdev.org/
- Frame Buffer Device
-
http://gtf.org/garzik/video/framebuffer.html
makoto@u 9:56:26/020208(~/macppc/controlfb)> grep out_le32 *
out_le32(CNTRL_REG(p,start_addr),
out_le32(CNTRL_REG(p,ctrl), ctrl);
out_le32(CNTRL_REG(p,ctrl), 0x400 | par->ctrl);
out_le32(&rp->r, r->regs[i]);
out_le32(CNTRL_REG(p,pitch), par->pitch);
out_le32(CNTRL_REG(p,mode), r->mode);
out_le32(CNTRL_REG(p,vram_attr), p->vram_attr);
out_le32(CNTRL_REG(p,start_addr), par->yoffset * par->pitch
out_le32(CNTRL_REG(p,rfrcnt), 0x1e5);
out_le32(CNTRL_REG(p,intr_ena), 0);
out_le32(CNTRL_REG(p,ctrl), par->ctrl);
out_le32(CNTRL_REG(p,vram_attr), 0x31);
out_le32(CNTRL_REG(p,vram_attr), 0x39);
out_le32(CNTRL_REG(p,mon_sense), 7); /* drive all lines high */
out_le32(CNTRL_REG(p,mon_sense), 077); /* turn off drivers */
out_le32(CNTRL_REG(p,mon_sense), 033); /* drive A low */
out_le32(CNTRL_REG(p,mon_sense), 055); /* drive B low */
out_le32(CNTRL_REG(p,mon_sense), 066); /* drive C low */
out_le32(CNTRL_REG(p,mon_sense), 077); /* turn off drivers */
makoto@u 9:56:28/020208(~/macppc/controlfb)>
extern inline void out_le32(volatile unsigned *addr, int val)
{
__asm__ __volatile__("stwbrx %1,0,%2; eieio" : "=m" (*addr) :
"r" (val), "r" (addr));
}
struct fb_info_control {
struct fb_info info;
struct display display;
struct fb_par_control par;
struct {
__u8 red, green, blue;
} palette[256];
struct cmap_regs *cmap_regs;
unsigned long cmap_regs_phys;
struct control_regs *control_regs;
unsigned long control_regs_phys;
unsigned long control_regs_size;
__u8 *frame_buffer;
unsigned long frame_buffer_phys;
unsigned long fb_orig_base;
unsigned long fb_orig_size;
int control_use_bank2;
unsigned long total_vram;
unsigned char vram_attr;
union {
#ifdef FBCON_HAS_CFB16
u16 cfb16[16];
#endif
#ifdef FBCON_HAS_CFB32
u32 cfb32[16];
#endif
} fbcon_cmap;
};
/* control register access macro */
#define CNTRL_REG(INFO,REG) (&(((INFO)->control_regs-> ## REG).r))
Last Update
19:52:48 03/12/08
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Apache/2.4.62 (Unix) OpenSSL/3.0.12
(since 2002/02/08)