Skip to content

Commit

Permalink
enable prefetching when accessing PSRAM over AHB
Browse files Browse the repository at this point in the history
  • Loading branch information
A-Dunstan committed Jan 28, 2024
1 parent dd6aa84 commit 52329ae
Showing 1 changed file with 6 additions and 10 deletions.
16 changes: 6 additions & 10 deletions teensy4/startup.c
Original file line number Diff line number Diff line change
Expand Up @@ -420,16 +420,12 @@ FLASHMEM void configure_external_ram()
| FLEXSPI_MCR2_CLRLEARNPHASE | FLEXSPI_MCR2_CLRAHBBUFOPT))
| FLEXSPI_MCR2_RESUMEWAIT(0x20) /*| FLEXSPI_MCR2_SAMEDEVICEEN*/;

FLEXSPI2_AHBCR = FLEXSPI2_AHBCR & ~(FLEXSPI_AHBCR_READADDROPT | FLEXSPI_AHBCR_PREFETCHEN
| FLEXSPI_AHBCR_BUFFERABLEEN | FLEXSPI_AHBCR_CACHABLEEN);
uint32_t mask = (FLEXSPI_AHBRXBUFCR0_PREFETCHEN | FLEXSPI_AHBRXBUFCR0_PRIORITY_MASK
| FLEXSPI_AHBRXBUFCR0_MSTRID_MASK | FLEXSPI_AHBRXBUFCR0_BUFSZ_MASK);
FLEXSPI2_AHBRXBUF0CR0 = (FLEXSPI2_AHBRXBUF0CR0 & ~mask)
| FLEXSPI_AHBRXBUFCR0_PREFETCHEN | FLEXSPI_AHBRXBUFCR0_BUFSZ(64);
FLEXSPI2_AHBRXBUF1CR0 = (FLEXSPI2_AHBRXBUF0CR0 & ~mask)
| FLEXSPI_AHBRXBUFCR0_PREFETCHEN | FLEXSPI_AHBRXBUFCR0_BUFSZ(64);
FLEXSPI2_AHBRXBUF2CR0 = mask;
FLEXSPI2_AHBRXBUF3CR0 = mask;
FLEXSPI2_AHBCR = FLEXSPI_AHBCR_PREFETCHEN | FLEXSPI_AHBCR_BUFFERABLEEN;
// disable BUF0/1/2, BUF3 will share entire buffer space between all AHB masters
FLEXSPI2_AHBRXBUF0CR0 = 0;
FLEXSPI2_AHBRXBUF1CR0 = 0;
FLEXSPI2_AHBRXBUF2CR0 = 0;
FLEXSPI2_AHBRXBUF3CR0 = FLEXSPI_AHBRXBUFCR0_PREFETCHEN;

// RX watermark = one 64 bit line
FLEXSPI2_IPRXFCR = (FLEXSPI_IPRXFCR & 0xFFFFFFC0) | FLEXSPI_IPRXFCR_CLRIPRXF;
Expand Down

0 comments on commit 52329ae

Please sign in to comment.