* [U-Boot-Users] ethernet over usb
@ 2006-09-12 8:26 Rodolfo Giometti
2006-09-12 13:31 ` Bryan O'Donoghue
0 siblings, 1 reply; 10+ messages in thread
From: Rodolfo Giometti @ 2006-09-12 8:26 UTC (permalink / raw)
To: u-boot
Hello,
I need to allow my board to TFTP data through an USB connection.
I'm just writing the USB device support for Alchemy au1100 and then
I'm going to port usbnet from linux to u-boot in order to add a new
"usbnet" device.
I'd like to know if someone else is doing something similar or is
interested at this project in order to join the efforts.
Ciao,
Rodolfo
--
GNU/Linux Solutions e-mail: giometti at enneenne.com
Linux Device Driver giometti at gnudd.com
Embedded Systems giometti at linux.it
UNIX programming phone: +39 349 2432127
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] ethernet over usb
2006-09-12 8:26 [U-Boot-Users] ethernet over usb Rodolfo Giometti
@ 2006-09-12 13:31 ` Bryan O'Donoghue
2006-09-12 13:20 ` Rodolfo Giometti
2006-09-12 13:39 ` Bryan O'Donoghue
0 siblings, 2 replies; 10+ messages in thread
From: Bryan O'Donoghue @ 2006-09-12 13:31 UTC (permalink / raw)
To: u-boot
Rodolfo Giometti wrote:
> Hello,
>
> I need to allow my board to TFTP data through an USB connection.
>
> I'm just writing the USB device support for Alchemy au1100 and then
> I'm going to port usbnet from linux to u-boot in order to add a new
> "usbnet" device.
>
> I'd like to know if someone else is doing something similar or is
> interested at this project in order to join the efforts.
>
> Ciao,
>
> Rodolfo
>
Greetings Rodolfo.
If you look in Das U-Boot USB git tree you will see an implementation of
Linux-Gserial and CDC ACM. Somebody from TI did the original
implementation of g_serial and I added in CDC ACM.
I've actually transferred u-boot.bin over such a link via USB as part of
my testing for usbdcore_mpc8xx, so if the transfer of files is what you
are after perhaps just implementing usbdcore_au1100 yourself and using
the higher layer usbtty.c would suffice, for your purposes.
Alternatively you may really need to implement Ethernet over the USB.
If you want to do that then there are probably two things to consider.
1. RNDIS - the Microsoft standard, works with Linux too.
2. CDC Ethernet - A USB standard that Microsoft has chosen not to
implement in Windows (AFAIK) and is Linux (and possibly *BSD) only.
If going for Ethernet over the USB I'd suggest the thing to do is
something similar as has been done in usbtty.c, with some high level
Ethernet device (usb_ethernet.c ?) that knows about the cdc_ethernet and
rndis_ethernet protocols.
I'd be happy to collaborate with you to implement the 'other' one or
both of the above; i.e. if you do RNDIS I'll do CDC ethernet or
vice-versa, I'd say with two people working on it, it would be fairly
easy to do.
Bryan
--
Quidquid latine dictum sit, altum sonatur.
- Whatever is said in Latin sounds profound.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] ethernet over usb
2006-09-12 13:31 ` Bryan O'Donoghue
@ 2006-09-12 13:20 ` Rodolfo Giometti
2006-09-12 14:13 ` Bryan O'Donoghue
2006-09-12 16:17 ` Wolfgang Denk
2006-09-12 13:39 ` Bryan O'Donoghue
1 sibling, 2 replies; 10+ messages in thread
From: Rodolfo Giometti @ 2006-09-12 13:20 UTC (permalink / raw)
To: u-boot
On Tue, Sep 12, 2006 at 02:31:56PM +0100, Bryan O'Donoghue wrote:
>
> If you look in Das U-Boot USB git tree you will see an implementation of
> Linux-Gserial and CDC ACM. Somebody from TI did the original
> implementation of g_serial and I added in CDC ACM.
Great! But let me understand, you added CDC into g_serial or what? I'm
a bit confused... Did you transfer the file through something similar
to a serial line or similar to an ethernet?
> I've actually transferred u-boot.bin over such a link via USB as part of
> my testing for usbdcore_mpc8xx, so if the transfer of files is what you
> are after perhaps just implementing usbdcore_au1100 yourself and using
> the higher layer usbtty.c would suffice, for your purposes.
As first step this is my target. However I need RNDIS also. Do you
think adding it could be "easy" at this point of developing?
> Alternatively you may really need to implement Ethernet over the USB.
> [snip]
I see. But for the moment it's sufficient to me just transferring
files. :)
Thanks a lot for your message,
Rodolfo
--
GNU/Linux Solutions e-mail: giometti at enneenne.com
Linux Device Driver giometti at gnudd.com
Embedded Systems giometti at linux.it
UNIX programming phone: +39 349 2432127
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] ethernet over usb
2006-09-12 13:20 ` Rodolfo Giometti
@ 2006-09-12 14:13 ` Bryan O'Donoghue
2006-09-12 16:17 ` Wolfgang Denk
1 sibling, 0 replies; 10+ messages in thread
From: Bryan O'Donoghue @ 2006-09-12 14:13 UTC (permalink / raw)
To: u-boot
Rodolfo Giometti wrote:
> On Tue, Sep 12, 2006 at 02:31:56PM +0100, Bryan O'Donoghue wrote:
>> If you look in Das U-Boot USB git tree you will see an implementation of
>> Linux-Gserial and CDC ACM. Somebody from TI did the original
>> implementation of g_serial and I added in CDC ACM.
>
> Great! But let me understand, you added CDC into g_serial or what? I'm
> a bit confused... Did you transfer the file through something similar
> to a serial line or similar to an ethernet?
There is a slight modification of usbtty.c in this tree.
http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=shortlog;h=testing-USB
The main thing changed was the addition of
1. Flow control to usbtty
2. Allow control transfers to preempt BULK IN/OUT transfers and then to
finish off the Rx/Tx of data.
That's really important because USB (BULK) guarantees data delivery.
What that means from a practical point of view is that yes you can
transfer something large like u-boot.bin using a USB link between your
host machine and your U-Boot slave. For this I used kermit on my Linux
host and the corresponding kermit rx command in U-Boot.
Without flow control you wouldn't be able to do that. Also usbtty
doesn't just throw away data it couldn't send (when it gets pre-empted
by a control transfer for example), it simply yields to the control
transfer, does what it has to do and continues to send/receive data, so
there is no data loss. This allows you to use gserial/cdc_acm for data
you care about, like u-boot.bin for example.
As it happens g_serial has better throughput then cdc_acm, because a
host machine sends periodic control requests to a cdc_acm device, hence
transferring a large file like u-boot.bin from host machine to
bootloader will be slightly slower using cdc_acm as the bootloader must
service control requests every so often.
>> I've actually transferred u-boot.bin over such a link via USB as part of
>> my testing for usbdcore_mpc8xx, so if the transfer of files is what you
>> are after perhaps just implementing usbdcore_au1100 yourself and using
>> the higher layer usbtty.c would suffice, for your purposes.
>
> As first step this is my target. However I need RNDIS also. Do you
> think adding it could be "easy" at this point of developing?
Easy ? Hmm... at least not difficult (probably) !
I think RNDIS support is the more chunky of the two protocols to
implement but, I'd say it could be done fairly quickly; five days work
maybe.
CDC Ethernet would take less time still, I should think.
Bryan
--
Quidquid latine dictum sit, altum sonatur.
- Whatever is said in Latin sounds profound.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] ethernet over usb
2006-09-12 13:20 ` Rodolfo Giometti
2006-09-12 14:13 ` Bryan O'Donoghue
@ 2006-09-12 16:17 ` Wolfgang Denk
2006-09-12 16:25 ` Rodolfo Giometti
1 sibling, 1 reply; 10+ messages in thread
From: Wolfgang Denk @ 2006-09-12 16:17 UTC (permalink / raw)
To: u-boot
In message <20060912132058.GB31470@gundam.enneenne.com> you wrote:
>
> Great! But let me understand, you added CDC into g_serial or what? I'm
> a bit confused... Did you transfer the file through something similar
> to a serial line or similar to an ethernet?
Right. U-Boot represents to the outside world as a serial adapter.
> As first step this is my target. However I need RNDIS also. Do you
> think adding it could be "easy" at this point of developing?
Easy? You must be joking.
To be honest: I think you make a fundamental mistake - U-Boot is not
an general purpose OS, it is a boot loader. For requirements like
yours it is usually *much* easier and faster (both in terms of
development and reachable performance) to boot a small, dedicated
Linux kernelk and use a real OS.
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Save energy: Drive a smaller shell.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] ethernet over usb
2006-09-12 16:17 ` Wolfgang Denk
@ 2006-09-12 16:25 ` Rodolfo Giometti
2006-09-12 16:33 ` Wolfgang Denk
0 siblings, 1 reply; 10+ messages in thread
From: Rodolfo Giometti @ 2006-09-12 16:25 UTC (permalink / raw)
To: u-boot
On Tue, Sep 12, 2006 at 06:17:52PM +0200, Wolfgang Denk wrote:
>
> To be honest: I think you make a fundamental mistake - U-Boot is not
> an general purpose OS, it is a boot loader. For requirements like
> yours it is usually *much* easier and faster (both in terms of
> development and reachable performance) to boot a small, dedicated
> Linux kernelk and use a real OS.
But during developing stages I have no kernel to use so I have to load
it from my host system using the bootloader.
Currently, developing stages are: compile the kernel, transfer it to
the target machine through the ethernet device and then try the boot,
but on my current board I have no ethernet at all, just the USBdev and
I'd like to have a way to transfer my developing kernel through USB
line.
Ciao,
Rodolfo
--
GNU/Linux Solutions e-mail: giometti at enneenne.com
Linux Device Driver giometti at gnudd.com
Embedded Systems giometti at linux.it
UNIX programming phone: +39 349 2432127
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] ethernet over usb
2006-09-12 16:25 ` Rodolfo Giometti
@ 2006-09-12 16:33 ` Wolfgang Denk
0 siblings, 0 replies; 10+ messages in thread
From: Wolfgang Denk @ 2006-09-12 16:33 UTC (permalink / raw)
To: u-boot
In message <20060912162552.GA4183@gundam.enneenne.com> you wrote:
>
> Currently, developing stages are: compile the kernel, transfer it to
> the target machine through the ethernet device and then try the boot,
> but on my current board I have no ethernet at all, just the USBdev and
> I'd like to have a way to transfer my developing kernel through USB
> line.
As mentioned before, using a serial link might be much easier.
Remember that USB is fast, i. e. you are not limited to baudrates
like 115kbps or so.
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"If God had wanted us to use the metric system, Jesus would have had
10 apostles."
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] ethernet over usb
2006-09-12 13:31 ` Bryan O'Donoghue
2006-09-12 13:20 ` Rodolfo Giometti
@ 2006-09-12 13:39 ` Bryan O'Donoghue
2006-09-12 13:28 ` Rodolfo Giometti
1 sibling, 1 reply; 10+ messages in thread
From: Bryan O'Donoghue @ 2006-09-12 13:39 UTC (permalink / raw)
To: u-boot
Bryan O'Donoghue wrote:
> I've actually transferred u-boot.bin over such a link via USB as part of
> my testing for usbdcore_mpc8xx, so if the transfer of files is what you
> are after perhaps just implementing usbdcore_au1100 yourself and using
> the higher layer usbtty.c would suffice, for your purposes.
Just reading what I said there, I'll expand a little bit.
Since you want to TFTP over the USB, from your point of view, there is
no reason not to use CDC_ACM/g_serial and just do a kermit binary
transfer and save yourself the effort of doing Ethernet over the USB.
All you'd really have to do is implement usbdcore_au1100 and just do a
straight forward kermit binary transfer .. with the 8xx and both CDC_ACM
and g_serial, it works well enough for me.
Still if you are going to do some of the ethernet side ... it would be a
good excuse for me, to stay out of the pub !
Bryan
--
Quidquid latine dictum sit, altum sonatur.
- Whatever is said in Latin sounds profound.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] ethernet over usb
2006-09-12 13:39 ` Bryan O'Donoghue
@ 2006-09-12 13:28 ` Rodolfo Giometti
2006-09-12 14:27 ` Bryan O'Donoghue
0 siblings, 1 reply; 10+ messages in thread
From: Rodolfo Giometti @ 2006-09-12 13:28 UTC (permalink / raw)
To: u-boot
On Tue, Sep 12, 2006 at 02:39:45PM +0100, Bryan O'Donoghue wrote:
>
> Since you want to TFTP over the USB, from your point of view, there is
> no reason not to use CDC_ACM/g_serial and just do a kermit binary
> transfer and save yourself the effort of doing Ethernet over the USB.
>
> All you'd really have to do is implement usbdcore_au1100 and just do a
> straight forward kermit binary transfer .. with the 8xx and both CDC_ACM
> and g_serial, it works well enough for me.
Let me explain better my situation. My board have a serial line and an
USBdev as I/O interfaces. In linux I'm going to use the serial line
for the console and the USBdev for rootfs and other network
activities. I'd like to do the same into u-boot in order to have a
serial console and a TFTP file transfer.
Do you think that I can use the current implemented software (apart
the usbdcore_au1100) for my purposes?
> Still if you are going to do some of the ethernet side ... it would be a
> good excuse for me, to stay out of the pub !
:)
Thanks,
Rodolfo
--
GNU/Linux Solutions e-mail: giometti at enneenne.com
Linux Device Driver giometti at gnudd.com
Embedded Systems giometti at linux.it
UNIX programming phone: +39 349 2432127
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot-Users] ethernet over usb
2006-09-12 13:28 ` Rodolfo Giometti
@ 2006-09-12 14:27 ` Bryan O'Donoghue
0 siblings, 0 replies; 10+ messages in thread
From: Bryan O'Donoghue @ 2006-09-12 14:27 UTC (permalink / raw)
To: u-boot
Rodolfo Giometti wrote:
> Let me explain better my situation. My board have a serial line and an
> USBdev as I/O interfaces. In linux I'm going to use the serial line
> for the console and the USBdev for rootfs and other network
> activities. I'd like to do the same into u-boot in order to have a
> serial console and a TFTP file transfer.
> Do you think that I can use the current implemented software (apart
> the usbdcore_au1100) for my purposes?
I don't believe so. If you want to tftp 'stuff' I don't see how
implementing cdc_ethernet/RNDIS could be avoided, unless there is some
way to plug host side tftpd into a serial console like /dev/ttyUSB0 !
Bryan
--
Quidquid latine dictum sit, altum sonatur.
- Whatever is said in Latin sounds profound.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2006-09-12 16:33 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-12 8:26 [U-Boot-Users] ethernet over usb Rodolfo Giometti
2006-09-12 13:31 ` Bryan O'Donoghue
2006-09-12 13:20 ` Rodolfo Giometti
2006-09-12 14:13 ` Bryan O'Donoghue
2006-09-12 16:17 ` Wolfgang Denk
2006-09-12 16:25 ` Rodolfo Giometti
2006-09-12 16:33 ` Wolfgang Denk
2006-09-12 13:39 ` Bryan O'Donoghue
2006-09-12 13:28 ` Rodolfo Giometti
2006-09-12 14:27 ` Bryan O'Donoghue
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox