| setup() | |
| { | |
| __var Reg; | |
| // Enable I Cache | |
| // Disable MMU and enable ICache | |
| Reg = __jtagCP15ReadReg(1, 0, 0, 0); | |
| Reg &= 0xFFFFFFFA; | |
| Reg |= 1<<12; | |
| __jtagCP15WriteReg(1, 0, 0, 0, Reg); | |
| //__writeMemory16(0x0035, 0xFCFE0010, "Memory"); // FRQCR | |
| //__writeMemory16(0x0001, 0xFCFE0014, "Memory"); // FRQCR2 | |
| // Turn on clock for SPI | |
| __writeMemory8(0x00, 0xFCFE0438, "Memory"); // PDM_STBCR9 | |
| // Configure PORTS for SPI (serial flash 1) | |
| __writeMemory16(0x00FC, 0xFCFE7224, "Memory"); // PIPC9 2-7 -> alt IO mode | |
| __writeMemory16(0x00FC, 0xFCFE3424, "Memory"); // PMC9 2-7 -> alt mode | |
| __writeMemory16(0x00FC, 0xFCFE3524, "Memory"); // PFC9 2-7 -> alt mode | |
| // Configure PORTS for SPI (serial flash 2) | |
| __writeMemory16(0xF000, 0xFCFE7208, "Memory"); // PIPC2 12-15 -> alt IO mode | |
| __writeMemory16(0xF000, 0xFCFE3408, "Memory"); // PMC2 12-15 -> alt mode | |
| __writeMemory16(0xF000, 0xFCFE3508, "Memory"); // PFC2 12-15 -> alt mode | |
| __writeMemory16(0xF000, 0xFCFE3608, "Memory"); // PFCE2 12-15 -> alt mode | |
| // Configure SPI for EXTREAD mode | |
| __writeMemory32(0x01AA4020, 0x3FEFA000, "Memory"); // SPIBSC_CMNCR 1-memory, CPHA=0, CPOL=0, SFDE=1 | |
| // Configure SPI registers | |
| __writeMemory32(0x00130000, 0x3FEFA010, "Memory"); // SPIBSC_DRCMR CMD = 0x13 | |
| __writeMemory32(0x00004F00, 0x3FEFA01C, "Memory"); // SPIBSC_DRENR ADE = 0xF, CDE=1 | |
| __writeMemory32(0x00010101, 0x3FEFA00C, "Memory"); // SPIBSC_DRCR enable burst | |
| __writeMemory32(0x00000001, 0x3FEFA014, "Memory"); // SPIBSC_DREAR enable extended address range | |
| // Set Bit Rate | |
| __writeMemory32(0x00000003, 0x3FEFA008, "Memory"); // SPIBSC_SPBCR SPBR=0, BRDV=3 | |
| // Flush Read Cache | |
| Reg = __readMemory32(0x3FEFA00C, "Memory"); // Read SPIBSC_DRCR_0 | |
| Reg |= 0x00000200; // Set RCF bit | |
| __writeMemory32(Reg, 0x3FEFA00C, "Memory"); // Set SPIBSC_DRCR_0 | |
| } | |
| execUserPreload() | |
| { | |
| __message "----- Prepare hardware for debug -----\n"; | |
| __hwReset(0); | |
| setup(); | |
| } | |
| execUserReset() | |
| { | |
| setup(); | |
| } |