Move stuff, set proper ARM CPU ID

This commit is contained in:
meepingsnesroms
2019-05-01 13:25:52 -07:00
parent 368757023c
commit 3c645bd0bd
3 changed files with 26 additions and 26 deletions

View File

@@ -7,7 +7,8 @@ void do_cp15_mrc(uint32_t insn)
uint32_t value;
switch (insn & 0xEF00EF) {
case 0x000000: /* MRC p15, 0, <Rd>, 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, <Rd>, c0, c0, 1: Cache Type Register */
value = 0x1D112152; /* ICache: 16KB 4-way 8 word, DCache: 8KB 4-way 8 word */

View File

@@ -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;

View File

@@ -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