diff options
Diffstat (limited to 'src/cpu/amd/sc520/mmcr.h')
-rw-r--r-- | src/cpu/amd/sc520/mmcr.h | 284 |
1 files changed, 284 insertions, 0 deletions
diff --git a/src/cpu/amd/sc520/mmcr.h b/src/cpu/amd/sc520/mmcr.h new file mode 100644 index 0000000000..09690cb474 --- /dev/null +++ b/src/cpu/amd/sc520/mmcr.h @@ -0,0 +1,284 @@ +struct memregs { + /* make these shorts, we are lsb and the hardware seems to like it + * better + */ + unsigned short drcctl; + unsigned short drctmctl; + unsigned short drccfg; + unsigned char pad1[2]; + unsigned char drcbendadr[4]; + unsigned char pad2[4]; + unsigned char eccctl; + unsigned char eccsta; + unsigned char eccckbpos; + unsigned char ecccktest; + unsigned long eccsbadd; + unsigned long eccmbadd; + unsigned char pad3[18]; +}; +struct dbctl { + unsigned char dbctl; + unsigned char pad4[15]; +}; + +struct romregs { + unsigned char bootcs; + unsigned char pad5[3]; + unsigned char romcs1; + unsigned char pad6[1]; + unsigned char romcs2; + unsigned char pad7[6]; +}; + + +struct hostbridge { + unsigned short hbctl; + unsigned short hbtgtirqctl; + unsigned short hbtgtirqsta; + unsigned short hbmstirqctl; + unsigned short hbmstirqsta; + unsigned char pad8[2]; + unsigned long mstintadd; +}; + +struct sysarb { + unsigned char sysarbctl; + unsigned char pciarbsta; + unsigned char sysarbmenb; + unsigned long arbprictl; + unsigned char pad9[8]; +}; + +struct sysmap { + unsigned char adddecctl; + unsigned char pada[1]; + unsigned short wpvsta; + unsigned char padb[4]; + unsigned long par[16]; + unsigned char padc[0xb38]; +}; + +struct gpctl { + unsigned char gpecho; + unsigned char gpcsdw; + unsigned char gpcsqual; + unsigned char padd[5]; + unsigned char gpcsrt; + unsigned char gpcspw; + unsigned char gpcsoff; + unsigned char gprdw; + unsigned char gprdoff; + unsigned char gpwrw; + unsigned char gpwroff; + unsigned char gpalew; + unsigned char gpaleoff; + unsigned char pade[15]; +}; + +struct pio { + unsigned short piopfs15_0; + unsigned short piopfs31_16; + unsigned char cspfs; + unsigned char padf[1]; + unsigned char clksel; + unsigned char padg[1]; + unsigned short dsctl; + unsigned short piodir15_0; + unsigned short piodir31_16; + unsigned short padh; + unsigned short piodata15_0; + unsigned short piodata31_16; + unsigned short pioset15_0; + unsigned short pioset31_16; + unsigned short pioclr15_0; + unsigned short pioclr31_16; + unsigned char padi[0x24]; +}; + +struct swtmr { + unsigned short swtmrmilli; + unsigned short swtmrmicro; + unsigned char swtmrcfg; + unsigned char padj[0xb]; +}; + +struct gptmr { + unsigned short ctl; + unsigned short cnt; + unsigned short maxcmpa, maxcmpb; +}; + +struct gptimers { + unsigned char status; + unsigned char pad; + struct gptmr timer[2]; + /* yes, they REALLY DID make timer 2 different. */ + /* yikes */ + unsigned short ctl2; + unsigned short cnt2; + unsigned char paddumb[8]; + unsigned short maxcmpa2; + + unsigned char pada[0x20]; +}; + +struct watchdog { + unsigned short ctl; + unsigned short cntll; + unsigned short cntlh; + unsigned char pad[10]; +}; + +struct uart { + unsigned char ctl, sta, fcrshad, pad; +}; + +struct uarts { + struct uart uart[2]; + unsigned char pad[8]; +}; + +struct ssi { + unsigned char ctl, xmit, cmd, sta, rcv; + unsigned char pad[0x2b]; +}; + + +/* interrupt control registers */ +/* defined this way for portability. Shame we can't just use plan 9 c. */ +struct pic { + unsigned char pcicr; + unsigned char pad1; + unsigned char mpicmode; + unsigned char sl1picmode; + unsigned char sl2picmode; + unsigned char pad2[3]; + unsigned char swint16_1; + unsigned char pad3; + unsigned char swint22_17; + unsigned char pad4[5]; + unsigned short intpinpol; + unsigned char pad5[2]; + unsigned char pichostmap; + unsigned char pad6[3]; + unsigned char eccmap; + unsigned char pad7[1]; + unsigned char gptmr0map; + unsigned char gptmr1map; + unsigned char gptmr2map; + unsigned char pad8[3]; + unsigned char pit0map; + unsigned char pit1map; + unsigned char pit2map; + unsigned char pad9[5]; + unsigned char uart1map; + unsigned char uart2map; + unsigned char pad99[6]; + unsigned char pciintamap; + unsigned char pciintbmap; + unsigned char pciintcmap; + unsigned char pciintdmap; + unsigned char pad10[12]; + unsigned char dmabcintmap; + unsigned char ssimap; + unsigned char wdtmap; + unsigned char rtcmap; + unsigned char wpvmap; + unsigned char icemap; + unsigned char ferrmap; + unsigned char pad11[9]; + unsigned char gp0imap; + unsigned char gp1imap; + unsigned char gp2imap; + unsigned char gp3imap; + unsigned char gp4imap; + unsigned char gp5imap; + unsigned char gp6imap; + unsigned char gp7imap; + unsigned char gp8imap; + unsigned char gp9imap; + unsigned char gp10imap; + unsigned char padend[0x14]; +}; + +struct reset { + unsigned char sysinfo; + unsigned char pad1; + unsigned char rescfg; + unsigned char pad2; + unsigned char ressta; + unsigned char pad3[0xb]; +}; + +struct dmacontrol { + unsigned char ctl; + unsigned char mmio; + unsigned short extchanmapa; + unsigned short extchanmapb; + unsigned char extpg0; + unsigned char extpg1; + unsigned char extpg2; + unsigned char extpg3; + unsigned char extpg5; + unsigned char extpg6; + unsigned char extpg7; + unsigned char pad[3]; + unsigned char exttc3; + unsigned char exttc5; + unsigned char exttc6; + unsigned char exttc7; + unsigned char pad1[4]; + unsigned char bcctl; + unsigned char bcsta; + unsigned char bsintenb; + unsigned char bcval; + unsigned char pad2[4]; + unsigned short nxtaddl3; + unsigned short nxtaddh3; + unsigned short nxtaddl5; + unsigned short nxtaddh5; + unsigned short nxtaddl6; + unsigned short nxtaddh6; + unsigned short nxtaddl7; + unsigned short nxtaddh7; + unsigned short nxtttcl3; + unsigned char nxtttch3; + unsigned char pad3; + unsigned short nxtttcl5; + unsigned char nxtttch5; + unsigned char pad5; + unsigned short nxtttcl6; + unsigned char nxtttch6; + unsigned char pad6; + unsigned short nxtttcl7; + unsigned char nxtttch7; + unsigned char pad7; +}; + + + + +struct mmcr { + unsigned short revid; + unsigned char cpucontrol; + unsigned char pad1[11]; + struct memregs memregs; + struct dbctl dbctl; + struct romregs romregs; + struct hostbridge hostbridge; + struct sysarb sysarb; + struct sysmap sysmap; + struct gpctl gpctl; + struct pio pio; + struct swtmr swtmr; + struct gptimers gptimers; + struct watchdog watchdog; + struct uarts uarts; + struct ssi ssi; + struct pic pic; + struct reset reset; + struct dmacontrol dmacontrol; + unsigned char padend[0x23d]; +} + + |