Re: EtherNat drivers (was: Re: Atari ROM port ISA)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Michael,

2012/5/19 Michael Schmitz <schmitzmic@xxxxxxxxxxxxxx>:
Hi David,
Transfer by ftp of a 230 MB file, CT060 Falcon is the server, and my
Ubuntu machine the client.
Receiving the file the speed stabilizes around 85 KB/s.
Transmitting the speed stabilizes around 105 KB/s

That's not that great - I think I can get similar speeds with the EtherNEC.
Do you know how to use netcat?


No, I've never used it, but I can learn :-)

To have something to be compared to, these are the speed values under
MiNT with the same file, MiNT as ftp server:

Transferring is around 1.1 MB/s
Receiving is around 630 KB/s

I wonder if the culprit of the low transfer values under Linux is the
driver. I mean, for me here under Linux everything seems very slow,
long booting time, install a packet with apt-get also takes very long.
Don't you think that this issue of kernel only able to be run from
ST-Ram is the culprit here? When a module is installed  where is
loaded into the ST-Ram or TT-Ram?


I've never seen MiNT sources for the EtherNAT USB. Can I download that
somewhere to check how the register access is done there?


http://sparemint.org/cgi-bin/cvsweb/freemint/sys/usb/src.km/ucd/ethernat/#dirlist

The good news is that the routines to access the data bus of the
ISP116x chip are almost the same in both drivers.
Take a look at the changes I did in the functions
write_ptddata_to_fifo and read_ptddata_from_fifo in the MiNT driver.
Also in functions pack_fifo and unpack_fifo there are changes
regarding swapping bytes

Below, you can find what I'm getting with this new kernel and module.
One important thing, ISP116x data bus has 16 bits, the EtherNat
hardware swaps both bytes before writing them to the bus or after
reading from it. I'm sure the driver doesn't consider this, so I think
this is the reason why an ivalid chip ID is gotten.

The ISP1160 is a little endian device, as is the SMC91C111. For the 91C111,
the driver swaps bytes in word or longword transfers; there's no hardware
byte swap apparently. For the ISP116x driver, the bus is assumed to be
little endian and the driver swaps all word transfers.

I'll change that to use non-swapped accessors, let's see how that goes.


Consider also the function isp116x_write_addr in isp116x.h, this
function shouldn't swap the bytes to write the register addresses to
the bus because is going to be done by EtherNat hardware. I think
Linux driver is writing wrong register addresses because this.



Byte swapping makes the chip ID come out as 0010. It should be something
like 61xx. I'll send the new module anyway, maybe your result is different.


I get the same as you.

isp116x-hcd isp116x-hcd: ISP116x Host Controller
isp116x-hcd isp116x-hcd: new USB bus registered, assigned bus number 1
116x: Clock not ready after 15ms
116x: Please make sure that the H_WAKEUP pin is pulled low!
isp116x-hcd isp116x-hcd: irq 139, io base 0x80000012
116x: Invalid chip ID 0010
isp116x-hcd isp116x-hcd: startup error -19
isp116x-hcd isp116x-hcd: USB bus 1 deregistered
116x: init error, -19


Regards
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux