[U-Boot] Ethernet persistence

Simon Glass sjg at chromium.org
Fri Feb 28 15:24:23 CET 2014


Hi Anthony,

On 27 February 2014 09:09, Anthony Mahar <anthony.j.mahar at gmail.com> wrote:

> How can I make the ethernet connection persistent (after first use), rather
> than reconnecting/re initializing on each reuse?
>
> I'm working with a Xilinx Zynq zc706 board and am up and running u-boot
> quite successfully.  My main use case is to store u-boot in on-board flash,
> and have u-boot tftp get / boot the bitstream, kernel image, devicetree,
> and
> ramdisk image.  The following script functions well:
>         "qspiboot=echo Configure PL and booting Linux from TFTP... && " \
>                 "fpga info 0;"
>  \
>                 "tftp 0x1000000 system.bin;"
>  \
>                 "fpga load 0 0x1000000 cb44bc;" \
>                 "tftp 0x3000000 ${kernel_image};" \
>                 "tftp 0x2A00000 ${devicetree_image};" \
>                 "tftp 0x2000000 ${ramdisk_image};" \
>                 "bootm 0x3000000 0x2000000 0x2A00000\0" \
>
>
> The ethernet (Zynq's gem.e000b000) will get initialized on first use, as
> appropriate, however the Ethernet is reinitialized and auto negotiated
> again
> for each subsequent tftp request which shouldn't be necessary.  A snippet
> is
> listed below.  Each 'reconnection' takes several seconds... a few to auto
> negotiate, then a few more for the Windows based TFTP server to recognize
> the connection and allow connections to the server.  Multiply this by the
> number of transfers and it takes a very long time to transfer a very little
> amount of data.
>

Yes as Michal says you should use FIT and put everything in one file, or
less than 4. I'm not sure if we have a command to load your FPGA image from
FIT though. We could add one fairly easily now that we have
fit_image_load().

Also take a look at asix_init() in drivers/usb/eth, which does not re-init
the link if it is already up. This speeds things up.

Regards,
Simon


More information about the U-Boot mailing list