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

Implement Macintosh-compatible Network Interface #27

Closed
akuker opened this issue Aug 26, 2020 · 5 comments
Closed

Implement Macintosh-compatible Network Interface #27

akuker opened this issue Aug 26, 2020 · 5 comments
Assignees
Labels
enhancement New feature or request

Comments

@akuker
Copy link
Member

akuker commented Aug 26, 2020

This issue is to request that an Ethernet network interface emulator is added to the RaSCSI software.

The RaSCSI service currently has a "network tap" interface that allows the Sharp 68000 to use it as a network interface. This uses a custom driver, so its highly unlikely that this will work without significant MacOS driver development.

Saybur has done some awesome work with getting a microcontroller to work as a Nuvolink SCSI, which already has Mac drivers.
https://github.com/saybur/scuznet
https://68kmla.org/forums/index.php?app=forums&module=forums&controller=topic&id=58413
The easiest way to approach this might be to use his code as an example and implement similar functionality in RaSCSI.

There are probably other ways to do it as well. Discussion is welcome below...

@akuker akuker added the enhancement New feature or request label Aug 26, 2020
@cheesestraws
Copy link
Collaborator

More to the point, saybur has also documented how to emulate being a Nuvolink SCSI and the protocol between the computer and device. Which is great. My bets would be to take that code and protocol notes (provided license is compatible, ofc) as a basis and this was the approach I was planning to take.

(Not being territorial here; if someone else gets to it before I do, great!)

@akuker
Copy link
Member Author

akuker commented Sep 9, 2020

Another possible SCSI ethernet interface:
https://cdn.hackaday.io/files/18974811783616/SLINKCMD.TXT

akuker pushed a commit that referenced this issue Sep 13, 2020
@akuker akuker self-assigned this Sep 13, 2020
akuker pushed a commit that referenced this issue Sep 20, 2020
…eed to manually enable the link using 'ip link set dev ras0 up'
@akuker
Copy link
Member Author

akuker commented Sep 23, 2020

Note that the "USE_SEL_EVENT_ENABLE" functionality needs to be disabled from RaSCSI. The software will hang for 3 seconds whenever there is not activity on the SEL signal on the bus. This can delay the reception of a given packet for up to 3 seconds.

The RaSCSI software seems to have been architected such that activity will only ever happen when requested from the host. There aren't any provisions for the target to do a "re-select" when it gets new data.

The X68000 network tap was a polling driver. It was up to the X68000 to check if there were any packets periodically.

It might be possible to bring this back someday, but it should only poll for a few milliseconds.

@akuker
Copy link
Member Author

akuker commented Jan 30, 2021

This change has been added to pull request #76.

The approach which used the Nuvolink was abandoned in favor of emulating a DaynaPort SCSI/Link. The Nuvolink required the "reselection" ability, which RaSCSI does not currently support. The DaynaPort SCSI/Link is periodically polled by the host, thereby not requiring the reselection logic.

Once the pull request has been closed, a new issue will be written to address the following remaining improvements:

  • In scsi_daynaport.cpp, it uses a hard-coded MAC address. This should be updated to dynamically match the MAC address assigned by the Linux network stack.
  • The multi-cast filtering isn't set up properly. Right now, it will only receive AppleTalk multi-cast messages. Any other multi-cast messages will be discarded. The way it should work is to listen for the 0x0D (eCmdSetMcastAddr) command, which will add which multicast address should be received.
  • The ctapdriver should probably be updated to create the rascsi_bridge bridge if it doesn't already exist.

@rdmark
Copy link
Member

rdmark commented Jan 9, 2022

Closing this out since further improvement tickets have been created:
#598
#599
#600

@akuker This feature was a true killer app for RaSCSI. It's quite the feat! :)

@rdmark rdmark closed this as completed Jan 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants