mirror of
https://github.com/libretro/Mu.git
synced 2026-07-08 17:57:01 +00:00
Attach IC memory accessors
This commit is contained in:
@@ -184,6 +184,7 @@ support_palm_os5{
|
||||
../../src/pxa260/pxa260Ssp.h \
|
||||
../../src/pxa260/pxa260_types.h \
|
||||
../../src/pxa260/pxa260_math64.h \
|
||||
../../src/pxa260/pxa260Accessors.c.h \
|
||||
../../src/pxa260/pxa260.h \
|
||||
../../src/armv5te/os/os.h \
|
||||
../../src/armv5te/asmcode.h \
|
||||
|
||||
@@ -24,9 +24,11 @@ static uint32_t pxa260_io_read_word(uint32_t addr){
|
||||
case PXA260_SSP_BASE >> 16:
|
||||
out = pxa260SspReadWord(addr);
|
||||
break;
|
||||
case PXA260_IC_BASE >> 16:
|
||||
pxa260icPrvMemAccessF(&pxa260Ic, addr, 4, false, &out);
|
||||
break;
|
||||
|
||||
case PXA260_DMA_BASE >> 16:
|
||||
case PXA260_IC_BASE >> 16:
|
||||
case PXA260_RTC_BASE >> 16:
|
||||
case PXA260_FFUART_BASE >> 16:
|
||||
case PXA260_BTUART_BASE >> 16:
|
||||
@@ -69,9 +71,11 @@ static void pxa260_io_write_word(uint32_t addr, uint32_t value){
|
||||
case PXA260_SSP_BASE >> 16:
|
||||
pxa260SspWriteWord(addr, value);
|
||||
break;
|
||||
case PXA260_IC_BASE >> 16:
|
||||
pxa260icPrvMemAccessF(&pxa260Ic, addr, 4, true, &value);
|
||||
break;
|
||||
|
||||
case PXA260_DMA_BASE >> 16:
|
||||
case PXA260_IC_BASE >> 16:
|
||||
case PXA260_RTC_BASE >> 16:
|
||||
case PXA260_FFUART_BASE >> 16:
|
||||
case PXA260_BTUART_BASE >> 16:
|
||||
|
||||
@@ -17,7 +17,7 @@ static void pxa260icPrvHandleChanges(Pxa260ic* ic){
|
||||
ic->wasIrq = nowIrq;
|
||||
}
|
||||
|
||||
static Boolean pxa260icPrvMemAccessF(void* userData, UInt32 pa, UInt8 size, Boolean write, void* buf){
|
||||
Boolean pxa260icPrvMemAccessF(void* userData, UInt32 pa, UInt8 size, Boolean write, void* buf){
|
||||
|
||||
Pxa260ic* ic = userData;
|
||||
UInt32 val = 0;
|
||||
@@ -76,7 +76,6 @@ static Boolean pxa260icPrvMemAccessF(void* userData, UInt32 pa, UInt8 size, Bool
|
||||
}
|
||||
|
||||
void pxa260icInit(Pxa260ic* ic){
|
||||
|
||||
__mem_zero(ic, sizeof(Pxa260ic));
|
||||
}
|
||||
|
||||
|
||||
@@ -55,6 +55,7 @@ typedef struct{
|
||||
|
||||
}Pxa260ic;
|
||||
|
||||
Boolean pxa260icPrvMemAccessF(void* userData, UInt32 pa, UInt8 size, Boolean write, void* buf);
|
||||
void pxa260icInit(Pxa260ic* ic);
|
||||
void pxa260icInt(Pxa260ic* ic, UInt8 intNum, Boolean raise); //interrupt caused by emulated hardware/ interrupt handled by guest
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ static uint8_t tsc2101CurrentPage;
|
||||
static uint8_t tsc2101CurrentRegister;
|
||||
static bool tsc2101CommandFinished;
|
||||
static bool tsc2101Read;
|
||||
static bool tsc2101ChipSelect;
|
||||
|
||||
|
||||
static uint16_t tsc2101RegisterRead(uint8_t page, uint8_t address){
|
||||
@@ -54,7 +55,7 @@ static uint16_t tsc2101RegisterRead(uint8_t page, uint8_t address){
|
||||
switch(combinedRegisterNumber){
|
||||
case TOUCH_CONTROL_STATUS:
|
||||
//simple read, no actions needed
|
||||
return tsc2101Registers[combinedRegisterNumber];
|
||||
//return tsc2101Registers[combinedRegisterNumber];
|
||||
|
||||
default:
|
||||
debugLog("Unimplemented TSC2101 register read, page:0x%01X, address:0x%02X\n", page, address);
|
||||
@@ -81,6 +82,7 @@ void tsc2101Reset(void){
|
||||
tsc2101CurrentRegister = 0;
|
||||
tsc2101CommandFinished = false;
|
||||
tsc2101Read = false;
|
||||
tsc2101ChipSelect = true;
|
||||
|
||||
//TODO: need to add all the registers here
|
||||
tsc2101Registers[TOUCH_CONTROL_STATUS] = 0x8000;
|
||||
@@ -99,8 +101,11 @@ void tsc2101LoadState(uint8_t* data){
|
||||
}
|
||||
|
||||
void tsc2101SetChipSelect(bool value){
|
||||
tsc2101CurrentWordBitsRemaining = 16;
|
||||
tsc2101Read = false;
|
||||
if(value && !tsc2101ChipSelect){
|
||||
tsc2101CurrentWordBitsRemaining = 16;
|
||||
tsc2101Read = false;
|
||||
}
|
||||
tsc2101ChipSelect = value;
|
||||
}
|
||||
|
||||
bool tsc2101ExchangeBit(bool bit){
|
||||
|
||||
Reference in New Issue
Block a user