While the current implementation works for what it is actually used, it
is broken when trying to do larger transfers.
The length field in the control register has a size of 4 bits. In every
transfer, length+1 bytes are read. Thus, each transfer is limited to a
maximum of 16 bytes. Add a check for the length, and write the correct
value to the register.
Also update the loop in "sfp_send_data" to properly increment the output
register. Remove the unused special case for a length of 128 bytes.
This board appears for example in the Davuaz Da-K6501W switch, and is
designed similarly to Hi-K0402WS.
However, it only has one SFP port and another 2.5G copper port using
RTL8221B 2.5G PHY instead. Also, some components on the board, like
additional LEDs, mode switch, and second flash chip are not populated.
Like earlier revisions of the K0402W(S) board, there is no UART, so
debugging is limited.
As this is an unmanaged switch, installation needs a flash programmer.