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

Bootloader using S25FL128S #16

Closed
erikyujui opened this issue Jul 4, 2016 · 2 comments

Comments

Projects
None yet
2 participants
@erikyujui
Copy link

commented Jul 4, 2016

Hi guys,
I want to simulate the bootloader with S25FL128S Verilog model.
S25FL128S has port CS, SCK, SI, SO, WP, HOLD.
But S25FL128S is in QSPI mode, some of the port will configure as inout port.
The PULPino SPI sperate the input and output port as SDI and SDO.
How do you connect the S25FL128S to PULPino SPI Master ?

Thank you!!!

@zarubaf

This comment has been minimized.

Copy link
Member

commented Jul 4, 2016

Hi,

what you need are pad instances, the following should do the job:

module generic_pad
  (
    input  logic in_i,
    output logic out_o,
    inout  logic pad,
    input  logic en_i
  );

  assign out_o = pad;
  assign pad = en_i ? in_i : 1'bZ;

endmodule

Instantiate the generic pad for each signal coming from your SPI model. Then depending on the SPI mode (single, quad receiving or quad transmitting) you need to enable the output. Use the spi_master_mode_o to decide in which state PULPino's SPI master currently is.

Just for your information: We tested the boot process with Spansion's S25fs256s flash. Depending on how your model may deviate from ours, you may need to adapt the boot code. The readme should clarify the process on how to regenerate the boot code.

Hope this helps.

Regards

Florian

@erikyujui

This comment has been minimized.

Copy link
Author

commented Jul 4, 2016

Thank you !!!
I will try it.

Best regards
Erik

@erikyujui erikyujui closed this Jul 4, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.