From ee9e44e4a6204dc2a56956051f8332534cf1857f Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Wed, 11 Oct 2023 15:33:53 -0700 Subject: [PATCH] regs: add systembus and memorymap --- regs/memorymap.ods | Bin 0 -> 16934 bytes regs/systembus.csv | 162 +++++++++++++++++++++++++++++++++++++++++++++ regs/systembus.ods | Bin 0 -> 21064 bytes 3 files changed, 162 insertions(+) create mode 100644 regs/memorymap.ods create mode 100644 regs/systembus.csv create mode 100644 regs/systembus.ods diff --git a/regs/memorymap.ods b/regs/memorymap.ods new file mode 100644 index 0000000000000000000000000000000000000000..3696344e4e1f2d9e9935c81b1372eb027f15a7b3 GIT binary patch literal 16934 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 H`=|d0pvt0L literal 0 HcmV?d00001 diff --git a/regs/systembus.csv b/regs/systembus.csv new file mode 100644 index 0000000..7faf702 --- /dev/null +++ b/regs/systembus.csv @@ -0,0 +1,162 @@ +"block","address","size","name","r/w","description" +"SYSTEM","000","4","C2DSTAT","RW","CH2-DMA destination address" +"SYSTEM","004","4","C2DLEN","RW","CH2-DMA length" +"SYSTEM","008","4","C2DST","RW","CH2-DMA start" +,,,,, +"SYSTEM","010","4","SDSTAW","RW","Sort-DMA start link table address" +"SYSTEM","014","4","SDBAAW","RW","Sort-DMA link base address" +"SYSTEM","018","4","SDWLT","RW","Sort-DMA link address bit width" +"SYSTEM","01c","4","SDLAS","RW","Sort-DMA link address shift control" +"SYSTEM","020","4","SDST","RW","Sort-DMA start" +,,,,, +"SYSTEM","040","4","DBREQM","RW","DBREQ# signal mask control" +"SYSTEM","044","4","BAVLWC","RW","BAVL# signal wait count" +"SYSTEM","048","4","C2DPYRC","RW","DMA (TA/Root Bus) priority count" +"SYSTEM","04c","4","DMAXL","RW","CH2-DMA maximum burst length" +,,,,, +"SYSTEM","080","4","TFREM","R","TA FIFO remaining amount" +"SYSTEM","084","4","LMMODE0","RW","Via TA texture memory bus select 0" +"SYSTEM","088","4","LMMODE1","RW","Via TA texture memory bus select 1" +"SYSTEM","08c","4","FFST","R","FIFO status" +"SYSTEM","090","4","SFRES","W","System reset" +,,,,, +"SYSTEM","09c","4","SBREV","R","System bus revision number" +"SYSTEM","0a0","4","RBSPLT","RW","SH4 Root Bus split enable" +,,,,, +"SYSTEM","100","4","ISTNRM","RW","Normal interrupt status" +"SYSTEM","104","4","ISTEXT","R","External interrupt status" +"SYSTEM","108","4","ISTERR","RW","Error interrupt status" +,,,,, +"SYSTEM","110","4","IML2NRM","RW","Level 2 normal interrupt mask" +"SYSTEM","114","4","IML2EXT","RW","Level 2 external interrupt mask" +"SYSTEM","118","4","IML2ERR","RW","Level 2 error interrupt mask" +,,,,, +"SYSTEM","120","4","IML4NRM","RW","Level 4 normal interrupt mask" +"SYSTEM","124","4","IML4EXT","RW","Level 4 external interrupt mask" +"SYSTEM","128","4","IML4ERR","RW","Level 4 error interrupt mask" +,,,,, +"SYSTEM","130","4","IML6NRM","RW","Level 6 normal interrupt mask" +"SYSTEM","134","4","IML6EXT","RW","Level 6 external interrupt mask" +"SYSTEM","138","4","IML6ERR","RW","Level 6 error interrupt mask" +,,,,, +"SYSTEM","140","4","PDTNRM","RW","Normal interrupt PVR-DMA startup mask" +"SYSTEM","144","4","PDTEXT","RW","External interrupt PVR-DMA startup mask" +,,,,, +"SYSTEM","150","4","G2DTNRM","RW","Normal interrupt G2-DMA startup mask" +"SYSTEM","154","4","G2DTEXT","RW","External interrupt G2-DMA startup mask" +,,,,, +"MAPLE","04","4","MDSTAR","RW","Maple-DMA command table address" +,,,,, +"MAPLE","10","4","MDTSEL","RW","Maple-DMA trigger select" +"MAPLE","14","4","MDEN","RW","Maple-DMA enable" +"MAPLE","18","4","MDST","RW","Maple-DMA start" +,,,,, +"MAPLE","80","4","MSYS","RW","Maple system control" +"MAPLE","84","4","MST","R","Maple status" +"MAPLE","88","4","MSHTCL","W","Maple-DMA hard trigger clear" +"MAPLE","8c","4","MDAPRO","W","Maple-DMA address range" +,,,,, +"MAPLE","e8","4","MMSEL","RW","Maple MSP selection" +,,,,, +"MAPLE","f4","4","MTXDAD","R","Maple TXD address counter" +"MAPLE","f8","4","MRXDAD","R","Maple RXD address counter" +"MAPLE","fc","4","MRXDBD","R","Maple RXD address base" +,,,,, +"G1","04","4","GDSTAR","RW","GD-DMA start address" +"G1","08","4","GDLEN","RW","GD-DMA length" +"G1","0c","4","GDDIR","RW","GD-DMA direction" +,,,,, +"G1","14","4","GDEN","RW","GD-DMA enable" +"G1","18","4","GDST","RW","GD-DMA start" +,,,,, +"G1","80","4","G1RRC","W","System ROM read access timing" +"G1","84","4","G1RWC","W","System ROM write access timing" +"G1","88","4","G1FRC","W","Flash ROM read access timing" +"G1","8c","4","G1FWC","W","Flash ROM write access timing" +"G1","90","4","G1CRC","W","GD PIO read access timing" +"G1","94","4","G1CWC","W","GD PIO write access timing" +,,,,, +"G1","a0","4","G1GDRC","W","GD-DMA read access timing" +"G1","a4","4","G1GDWC","W","GD-DMA write access timing" +,,,,, +"G1","b0","4","G1SYSM","R","System mode" +"G1","b4","4","G1CRDYC","W","G1IORDY signal control" +"G1","b8","4","GDAPRO","W","GD-DMA address range" +,,,,, +"G1","f4","4","GDSTARD","R","GD-DMA address count (on Root Bus)" +"G1","f8","4","GDLEND","R","GD-DMA transfer counter" +,,,,, +"G2","00","4","ADSTAG","RW","ACIA:G2-DMA G2 start address" +"G2","04","4","ADSTAR","RW","ACIA:G2-DMA system memory start address" +"G2","08","4","ADLEN","RW","ACIA:G2-DMA length" +"G2","0c","4","ADDIR","RW","ACIA:G2-DMA direction" +"G2","10","4","ADTSEL","RW","ACIA:G2-DMA trigger select" +"G2","14","4","ADEN","RW","ACIA:G2-DMA enable" +"G2","18","4","ADST","RW","ACIA:G2-DMA start" +"G2","1c","4","ADSUSP","RW","ACIA:G2-DMA suspend" +,,,,, +"G2","20","4","E1STAG","RW","Ext1:G2-DMA start address" +"G2","24","4","E1STAR","RW","Ext1:G2-DMA system memory start address" +"G2","28","4","E1LEN","RW","Ext1:G2-DMA length" +"G2","2c","4","E1DIR","RW","Ext1:G2-DMA direction" +"G2","30","4","E1TSEL","RW","Ext1:G2-DMA trigger select" +"G2","34","4","E1EN","RW","Ext1:G2-DMA enable" +"G2","38","4","E1ST","RW","Ext1:G2-DMA start" +"G2","3c","4","E1SUSP","RW","Ext1:G2-DMA suspend" +,,,,, +"G2","40","4","E2STAG","RW","Ext2:G2-DMA start address" +"G2","44","4","E2STAR","RW","Ext2:G2-DMA system memory start address" +"G2","48","4","E2LEN","RW","Ext2:G2-DMA length" +"G2","4c","4","E2DIR","RW","Ext2:G2-DMA direction" +"G2","50","4","E2TSEL","RW","Ext2:G2-DMA trigger select" +"G2","54","4","E2EN","RW","Ext2:G2-DMA enable" +"G2","58","4","E2ST","RW","Ext2:G2-DMA start" +"G2","5c","4","E2SUSP","RW","Ext2:G2-DMA suspend" +,,,,, +"G2","60","4","DDSTAG","RW","Dev:G2-DMA start address" +"G2","64","4","DDSTAR","RW","Dev:G2-DMA system memory start address" +"G2","68","4","DDLEN","RW","Dev:G2-DMA length" +"G2","6c","4","DDDIR","RW","Dev:G2-DMA direction" +"G2","70","4","DDTSEL","RW","Dev:G2-DMA trigger select" +"G2","74","4","DDEN","RW","Dev:G2-DMA enable" +"G2","78","4","DDST","RW","Dev:G2-DMA start" +"G2","7c","4","DDSUSP","RW","Dev:G2-DMA suspend" +,,,,, +"G2","80","4","G2ID","R","G2 bus version" +,,,,, +"G2","90","4","G2DSTO","RW","G2/DS timeout" +"G2","94","4","G2TRTO","RW","G2/TR timeout" +"G2","98","4","G2MDMTO","RW","Modem unit wait timeout" +"G2","9c","4","G2MDMW","RW","Modem unit wait time" +,,,,, +"G2","bc","4","G2APRO","W","G2-DMA address range" +,,,,, +"G2","c0","4","ADSTAGD","R","AICA-DMA address counter (on AICA)" +"G2","c4","4","ADSTARD","R","AICA-DMA address counter (on root bus)" +"G2","c8","4","ADLEND","R","AICA-DMA transfer counter" +,,,,, +"G2","d0","4","E1STAGD","R","Ext-DMA1 address counter (on Ext)" +"G2","d4","4","E1STARD","R","Ext-DMA1 address counter (on root bus)" +"G2","d8","4","E1LEND","R","Ext-DMA1 transfer counter" +,,,,, +"G2","e0","4","E2STAGD","R","Ext-DMA2 address counter (on Ext)" +"G2","e4","4","E2STARD","R","Ext-DMA2 address counter (on root bus)" +"G2","e8","4","E2LEND","R","Ext-DMA2 transfer counter" +,,,,, +"G2","f0","4","DDSTAGD","R","Dev-DMA address counter (on Dev)" +"G2","f4","4","DDSTARD","R","Dev-DMA address counter (on root bus)" +"G2","f8","4","DDLEND","R","Dev-DMA transfer counter" +,,,,, +"PVR","00","4","PDSTAP","RW","PVR-DMA start address" +"PVR","04","4","PDSTAR","RW","PVR-DMA system memory start address" +"PVR","08","4","PDLEN","RW","PVR-DMA length" +"PVR","0c","4","PDDIR","RW","PVR-DMA direction" +"PVR","10","4","PDTSEL","RW","PVR-DMA trigger select" +"PVR","14","4","PDEN","RW","PVR-DMA enable" +"PVR","18","4","PDST","RW","PVR-DMA start" +,,,,, +"PVR","80","4","PDAPRO","W","PVR-DMA address range" +,,,,, +"PVR","f0","4","PDSTAPD","R","PVR-DMA address counter (on Ext)" +"PVR","f4","4","PDSTARD","R","PVR-DMA address counter (on root bus)" +"PVR","f8","4","PDLEND","R","PVR-DMA transfer counter" diff --git a/regs/systembus.ods b/regs/systembus.ods new file mode 100644 index 0000000000000000000000000000000000000000..fabd427f760d77aa57e1b2c7891f454bf15e7cf2 GIT binary patch literal 21064 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