On Wed, Oct 29, 2014 at 03:49:15PM +0100, Wolfgang Denk wrote: > Dear Madhu, > > In message > <23c3598d8b87452eb6a3d1f52afb8...@sg2pr01mb0394.apcprd01.prod.exchangelabs.com> > you wrote: > > > > We are looking for FTP client command in U-boot commands, So that, we > > can boot the O.S kernel-image through ftp-client(instead of tftpboot > > over network). > > It would have been usful if you had told us whyyou thing the existing > network protocols (TFTP, NFS) are not sufficient for your use cases?
Hi Wolfgang, if you do not mind me interfering, I have started using HTTP with pxelinux recently, and I can answer this question: for large files (such as large initramfs files, which are practical nowadays since even some embedded boards have gigabytes of RAM), TCP based protocols are much, much faster than TFTP. That is because TFTP is a request/response protocol, which takes one round trip time for every packet asked. TCP based protocols, on the other hand benefit from sending several packets before getting an acknowledge, which means there is a "pipelining" effect. > > > Why doesn't the U-boot support FTP client ? > > FTP is based on TCP/IP, but U-Boot implements just a very minimal set > of UDP based protocols. > > > Can we implement/add the FTP client protocol code to U-boot sources > > and customize. if so, how much work activity involved in this ? > > > > Is this just need to write a small ftp-client program file by using > > TCP stream sockets (as like in Linux) ? Or do we need to write up > > anything more like TCP/IP network stack.. > > Right, in the first step you would need to implement a full-blown > TCP/IP stack, which would most probably require some other deep-goig > changes (keep for example in mind that U-Boot is [intentionally] > strictly single-threaded; many implementations don't even support > interrupts). > > The big question is: why should we do that? U-Boot is a boot loader. > If you need OS functionality like a full-blown network stack, than > just boot an OS ... It seems some bootloader or x86 PXE (I do not know where it is implemented) have TCP support. So, that may not be that uncommon after all, and there is maybe even some code to take from these implementations, because they are also most probably single threaded and not using interrupts. Regards. -- Gilles. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot