Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

⚠️ [XIP] reworked execute in place module #249

Merged
merged 7 commits into from
Jan 6, 2022
Merged

Conversation

stnolting
Copy link
Owner

@stnolting stnolting commented Jan 6, 2022

This PR is a rework of the processor's Execute in Place (XIP) module (#244).

  • Control register changes
    • removed QSPI mode enable (not implemented yet 😉)
    • rearranged flags
    • removed XIP mode busy flag
    • added flag to explicitly enable the module's SPI chip-select port (allows to send dummy clocks without actually enabling the SPI flash)

Further hardware changes:

  • removed hardware-based sending of dummy SPI clocks (is now done by the XIP's software library functions)
  • removed "inter-transmission" pause from SPI PHY - faster SPI accesses
  • reduces hardware footprint: only ~300 LEs on an Intel Cyclone IV

⚙️ "Final" pre-defined software functions for using the XIP module:

int neorv32_xip_available(void);
int neorv32_xip_init(uint8_t prsc, uint8_t cpol, uint8_t cpha, uint8_t rd_cmd);
int neorv32_xip_start(uint8_t abytes, uint32_t page_base);
int neorv32_xip_spi_trans(uint8_t nbytes, uint64_t *rtx_data);

💡 A demo program using the XIP module is available in sw/example/demo_xip/main.c.

@stnolting stnolting added enhancement New feature or request HW hardware-related labels Jan 6, 2022
@stnolting stnolting self-assigned this Jan 6, 2022
@stnolting stnolting marked this pull request as ready for review January 6, 2022 15:57
@stnolting stnolting merged commit 0df34dc into master Jan 6, 2022
@stnolting stnolting deleted the rework_xip branch January 6, 2022 19:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request HW hardware-related
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant