BlueSCSI / BlueSCSI-v2

Open source, open hardware, SCSI emulator using the Pi Pico PR2040
https://bluescsi.com
GNU General Public License v3.0
225 stars 23 forks source link

Add SCSI ethernet support, emulating a Dayna SCSI/Link #59

Closed jcs closed 10 months ago

erichelgeson commented 1 year ago

Download here: https://github.com/BlueSCSI/BlueSCSI-v2/releases/tag/wifi-beta

jcs commented 1 year ago

Added more vendor commands to get wifi status.

I also added a check that we're running on the Pico W before doing any network initialization. If running on a non-W Pico, it just logs a message and ignores the NE# file:

21:03:43:403 -> -- Ignoring /NE4.txt, networking is not supported on this hardware

jcs commented 1 year ago

Fixed booting on the Mac Plus with a workaround, added vendor command to join a new network, changed Dayna driver delay back to 80us which seems to work on the Plus.

Fetch is plugging along downloading a file at 14 kbytes/sec on my Plus with these changes.

For some reason booting still times out when running this through a picoprobe, but if it's run directly it boots fine.

jcs commented 1 year ago

This change uses pico_get_unique_board_id to get the Pico's ID when constructing a default MAC address (if not specified in bluescsi.ini) to avoid having more than one BlueSCSI on a network using the default 00:80:19:c0:ff:ee. From my testing on two Pico Ws, this unique board id persists across firmware reflashes so it should be stable and unique.

From the pico_get_unique_board_id docs:

However, RP2040 boots from serial NOR flash devices which have a 64-bit unique ID as a standard feature, and there is a 1:1 association between RP2040 and flash, so this is suitable for use as a unique identifier for an RP2040-based board.

jcs commented 1 year ago

"Wi-Fi"

jcs commented 1 year ago

These changes do the multicast magic to enable EtherTalk and reorganizes the custom Wi-Fi SCSI commands that the Wi-Fi DA uses. I've given up trying to use custom opcodes in the custom vendor C0-FF range because the SCSI Manager in Mac OS doesn't like it, and am just using one opcode with a sub-command in the CDB for each Wi-Fi command.

androda commented 1 year ago

Looks like configuring the INI file but then failing to specify a network device causes a hang and failure to boot.

jcs commented 1 year ago

You mean just setting the SSID and password but no NE#.txt file? I'm not seeing how they would have any impact on anything, they are just copied into the global config object during INI parsing and would not be used by anything.

androda commented 1 year ago

Correct, that combination caused my beige g3 to not boot. After adding an NE# file the issue was resolved.

tazounet commented 11 months ago

Thanks for the WiFi support, it works well on my PB100 :) But it seems to break the ROM disk support (if I switch back to the "official" version, the ROM disk is back).

erichelgeson commented 11 months ago

Sorry for the long delay @tazounet - I can reproduce your issue - we'll look into it. Thanks for the report.

fdanapfel commented 10 months ago

Thanks for the WiFi support! It also works well on the Atari TT :)

Edit: another report of successfully using the WiFi support on an Atari TT: https://www.atari-forum.com/viewtopic.php?p=452237#p452237