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

Improve reliability of SmartPort packet receive #794

Closed
wants to merge 2 commits into from

Conversation

FozzTexx
Copy link
Contributor

  • Prepare linked list for SmartPort command packet and block packet in advance
  • Directly access SPI registers to start receive and avoid overhead/latency of ESPIDF SPI driver

* Prepare linked list for SmartPort command packet and block packet in advance
* Directly access SPI registers to start receive and avoid overhead/latency of ESPIDF SPI driver
@FozzTexx FozzTexx changed the title Get SPI receive to start faster. Improve reliability of SmartPort packet receive Sep 18, 2024
@FozzTexx
Copy link
Contributor Author

Simplest test procedure:

Setup a ProDOS disk with BASIC.SYSTEM and save a BASIC program called STARTUP with the contents:

110 PRINT "FujiNet SmartPort packet test"
120 FOR I = 1 TO 1000:NEXT I
130 PRINT CHR$(4);"PR#5"

Replace the 5 in PR#5 with whatever slot your SmartPort controller is in. Mount the disk on FujiNet and boot it and let it run for a while. Compare to master and see that master will get I/O ERROR within a minute or two vs. this branch which will keep booting and rebooting for quite a long time.

Pre-built firmware for Apple FujiNet from commit ID 58c26a7:

fujinet-APPLE-58c26a72.zip

@dillera
Copy link
Contributor

dillera commented Sep 20, 2024

You can pull down the test images from FT here:

TNFS://fujinet.diller.org/APPLE/TEST/PR794/hello.dsk
TNFS://fujinet.diller.org/APPLE/TEST/PR794/hello.po

@dillera
Copy link
Contributor

dillera commented Sep 21, 2024

Issue report: running bounce world client on this fw- it stops working in about 3 min. Before on 1.4 release you could run bouncy client for 12 hours +.

@robjustice
Copy link
Contributor

I have the original spi-fast-start branch cloned from FozzTexx's github still here locally before the 'cleanup'. When I load that into my FN its works very well for the looping boot test. If I take the current Fujinet Master and add this PR 794 to make a branch locally for testing. That does not work any where near as well. It stops with the request timeouts after only a few mins. This is testing on a IIe with DB19 disk controller and Grapper Minus card with v6a firmware.

@FozzTexx
Copy link
Contributor Author

I have the original spi-fast-start branch cloned from FozzTexx's github still here locally before the 'cleanup'.

Can you make a bundle with that older commit and send me the bundle?

@robjustice
Copy link
Contributor

Here is a tar of the lib directory. Let me know if that's ok.
spi-fast-start_lib.tar.gz

@FozzTexx
Copy link
Contributor Author

Here is a tar of the lib directory. Let me know if that's ok. spi-fast-start_lib.tar.gz

What's the commit ID of HEAD~1 so I can check that out and then extract the tar on top of it?

@robjustice
Copy link
Contributor

95140df (HEAD -> spi-fast-start, origin/spi-fast-start) Wait for transaction to finish after receiving packet.
2642dfc Get SPI receive to start faster.
6960d90 fnFTP: skip sending password if server didn't 331
27240d8 [iwm] protect against FN crash after a reset on an open network connection
927ae47 [iwm][fuji] Make fuji a real device so it doesn't rely on the DISK_0 hack

@FozzTexx
Copy link
Contributor Author

Cool, I'll see if I can reproduce the problem and see what the difference is.

@FozzTexx
Copy link
Contributor Author

Issue report: running bounce world client on this fw- it stops working in about 3 min. Before on 1.4 release you could run bouncy client for 12 hours +.

Where is bounce world client disk image?

@FozzTexx FozzTexx closed this Sep 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants