From 3c645bd0bd19ee489beb748e3e549dffbda4b834 Mon Sep 17 00:00:00 2001 From: meepingsnesroms Date: Wed, 1 May 2019 13:25:52 -0700 Subject: [PATCH] Move stuff, set proper ARM CPU ID --- src/armv5te/coproc.cpp | 3 ++- src/dbvz.c | 44 +++++++++++++++++++++--------------------- src/dbvz.h | 5 ++--- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/armv5te/coproc.cpp b/src/armv5te/coproc.cpp index d443d82..5e67934 100644 --- a/src/armv5te/coproc.cpp +++ b/src/armv5te/coproc.cpp @@ -7,7 +7,8 @@ void do_cp15_mrc(uint32_t insn) uint32_t value; switch (insn & 0xEF00EF) { case 0x000000: /* MRC p15, 0, , c0, c0, 0: ID Code Register */ - value = 0x41069264; /* ARM926EJ-S revision 4 */ + //value = 0x41069264; /* ARM926EJ-S revision 4 */ + value = 0x69052100;//Intel PXA255 "01101001000001010010000100000000" break; case 0x000010: /* MRC p15, 0, , c0, c0, 1: Cache Type Register */ value = 0x1D112152; /* ICache: 16KB 4-way 8 word, DCache: 8KB 4-way 8 word */ diff --git a/src/dbvz.c b/src/dbvz.c index 4c3df84..b919e02 100644 --- a/src/dbvz.c +++ b/src/dbvz.c @@ -1162,6 +1162,28 @@ void dbvzReset(void){ flx68000Reset(); } +void dbvzLoadBootloader(uint8_t* data, uint32_t size){ + uint16_t index; + + if(!data) + size = 0; + + size = u32Min(size, DBVZ_BOOTLOADER_SIZE); + + //copy size bytes from buffer to bootloader area + for(index = 0; index < size; index++) + registerArrayWrite8(DBVZ_REG_SIZE - DBVZ_BOOTLOADER_SIZE + index, data[index]); + + //fill remainig space with 0x00 + for(; index < DBVZ_BOOTLOADER_SIZE; index++) + registerArrayWrite8(DBVZ_REG_SIZE - DBVZ_BOOTLOADER_SIZE + index, 0x00); +} + +void dbvzSetRtc(uint16_t days, uint8_t hours, uint8_t minutes, uint8_t seconds){ + registerArrayWrite32(RTCTIME, hours << 24 & 0x1F000000 | minutes << 16 & 0x003F0000 | seconds & 0x0000003F); + registerArrayWrite16(DAYR, days & 0x01FF); +} + uint32_t dbvzStateSize(void){ uint32_t size = 0; @@ -1385,28 +1407,6 @@ void dbvzLoadStateFinished(void){ flx68000LoadStateFinished(); } -void dbvzLoadBootloader(uint8_t* data, uint32_t size){ - uint16_t index; - - if(!data) - size = 0; - - size = u32Min(size, DBVZ_BOOTLOADER_SIZE); - - //copy size bytes from buffer to bootloader area - for(index = 0; index < size; index++) - registerArrayWrite8(DBVZ_REG_SIZE - DBVZ_BOOTLOADER_SIZE + index, data[index]); - - //fill remainig space with 0x00 - for(; index < DBVZ_BOOTLOADER_SIZE; index++) - registerArrayWrite8(DBVZ_REG_SIZE - DBVZ_BOOTLOADER_SIZE + index, 0x00); -} - -void dbvzSetRtc(uint16_t days, uint8_t hours, uint8_t minutes, uint8_t seconds){ - registerArrayWrite32(RTCTIME, hours << 24 & 0x1F000000 | minutes << 16 & 0x003F0000 | seconds & 0x0000003F); - registerArrayWrite16(DAYR, days & 0x01FF); -} - void dbvzExecute(void){ uint32_t samples; diff --git a/src/dbvz.h b/src/dbvz.h index 9b5de01..19c1bc8 100644 --- a/src/dbvz.h +++ b/src/dbvz.h @@ -118,14 +118,13 @@ void dbvzSetRegister32(uint32_t address, uint32_t value); //config void dbvzReset(void); +void dbvzLoadBootloader(uint8_t* data, uint32_t size); +void dbvzSetRtc(uint16_t days, uint8_t hours, uint8_t minutes, uint8_t seconds); uint32_t dbvzStateSize(void); void dbvzSaveState(uint8_t* data); void dbvzLoadState(uint8_t* data); void dbvzLoadStateFinished(void); -void dbvzLoadBootloader(uint8_t* data, uint32_t size); -void dbvzSetRtc(uint16_t days, uint8_t hours, uint8_t minutes, uint8_t seconds); - void dbvzExecute(void); #endif