This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMDXEVM3358: How to boot from USB0

Other Parts Discussed in Thread: AM3359

1) When I powered up the board with sysboot[4:0] set to 01011b, my Windows host PC prompt me for the "SUBARCTIC" device driver. Where I can download this (RNDIS) driver ? or the INF file ?

2) Do I need a TFTP server running on my host PC ?

3) How does the TFTP client in the boot ROM get to know the IP address of the host PC ?

4) What is the file name that the TFTP client will request to download from the host PC ?

5) Does TI have any user guide/ app note/ flashing tools on Booting from USB0 ?

- Thomas

  • My intention is to download the spl, u-boot, uImage and rootfilesystem images all from the USB0, and flash them to NAND eventually.

    Because the board that I'm going to design will not have MMC, nor ethernet interfaces. Using UART0 will be too slow for mass production.

    Do you think this is feasible with USB0 ? and with the current SDK LINUXEZSDK-AM335X ver 5.03.02 ?

    Or does TI going to provide a flashing tool using USB that is suitable for mass-production purpose ?

    - Thomas

  • Any idea ?

    - Thomas

  • Hi Thomas,

    What you suggest should be possible. I am a bit confused why you are looking for a Windows RNDIS driver when you say that you are using a Linux SDK? Are you running this inside VMWare or similar? If so it may be easier to forward the USB port to the virtual machine when you plug the device in so that Linux can use its RNDIS driver. I understand that the USB boot mode uses RNDIS and apart from using the USB, this is just like Ethernet boot at a higher level. This requires a DHCP/BOOTP server and a TFTP server. The EVM IP address (and TFPT filename?) would be obtained from BOOTP. The boot loader would then be fetched via TFTP. The EVM Linux setup already includes a TFTP server.I'm not sure there's enough space to load U-Boot in this first stage so you may need to load the TI X-Loader which has been configured to load U-Boot via RNDIS. U-Boot would then do a have to do a TFTP kernel boot via RNDIS too. I think U-Boot can be persuaded to write flash images?

    See the AM335x TRM RevC section 26.1.8 for some information.

    I think that Windows can be made to provide RNDIS with an appropriate INF file. Later versions provide RNDIS support via a USB CDC driver.

    I've not yet got an EVM and I have not tried these things but I hope this might help you.

    Regards

    Roger.

  • Hi Thomas,

    I also try to boot on USB or Ethernet. I
    have a Beagle Bone.

    On the first try, I had the same problem
    of RNDIS driver on windows 7. I found on Internet that RNDIS drivers are
    installed with the Microsoft Windows Mobile Device Center. You can download it here:
    http://support.microsoft.com/kb/931937/en-us

    After installation, I've disable all
    connection ways in the device center's parameters (in windows control panel).

    Then I've forced the driver installation
    of the SUBARCTIC with the RNDIS driver included in Mobile Device Center
    installation. Files can be found in: C:\Windows\WindowsMobile\Drivers\RNDIS .
    Windows don't want to install this driver, but be persuasive
    ;-) (Just click that you really want to install the driver).

    Then I found a new network interface in
    the network cards management panel: Microsoft Windows Mobile Remote Adapter. In
    the parameters of this new card, I've set a fixed TCP/IPV4.

    It seems good for the RNDIS part. Then you
    need a BOOTP and a TFTP server. I've try that: http://www.hanewin.de/dhcp-d.htm

    Configuration is intuitive. Follow the
    AM335X reference manual to see which parameters are really used for boot. Take
    care that you don't answer to all DHCP request of your company network or you
    will have trouble with you IT !

    You also have to dissable Firewall !!

    As far as I am, the BOOP server seems to
    give an IP address to the AM335x and the download of the boot image start. I
    have a timeout failure, but I'm not sure having the right boot image! (If you
    have a good one for the Beagle Bone...)

    I will try the Ethernet boot, but I think
    it will be quite the same procedure.

    I hope that will help you.

    Best Regards

    Cyril

     

     

  • Hi Roger, Cyril,

    Thanks very much for the clear and detail explanation on how usb booting works.

    I managed to get the RNDIS driver installed on my Windows PC, and assigned a fix IP like 192.168.0.3 to it.

    Also, the hane DHCP server was setup as per suggested.

    However, the DHCP server seems to miss the DHCP/BOOTP request most of the times. At instances where the server manage to serve the request, the TFTP transfer will subsequently failed with timeout error as shown in screen below.

    So far I have no luck to get the TFTP transfer completed successfully. Wondering if you have managed to get it work before?

    - Thomas

  • Hi  Thomas,

    I'am at the same step. I think we need to upload a small MLO file first. Then this file ask for the rest of the u-boot. But I have to work on this topic.

     

    Cyril

  • Hi Cyril,

    I've also tried MLO, but still get the same timeout error.

    I wish you success in using usb to download the MLO, u-boot, kernel all the way to rootfs and hopefully share the experience with us in future.

    Good luck & Thanks.

    - Thomas

  • Hi Thomas,

    To boot from UART or Ethernet, you must first load a small part of the U-boot called SPL. This is a first loader runing in internal RAM. It will confuigure the extarnal RAM. Once done, you will be able to load the second part of the U-boot in external RAM, and runing it.

    I'm not familiar with the U-boot compilation (I have a software team for that) but I think that SPL part is automaticaly generated.

    Cyril

  • Hello Cyril

    I followed all the instruction you mentioned in the previous thread to install the RNDIS driver but I am still unable to do that. I pointed windows to -> C:\Windows\WindowsMobile\Drivers\RNDIS still it does not install. Do you have any suggestions for me?

    Thanks

    Ashwini

  • i'm having the same problem on my own board using am3359, still can't have the driver installed.

    then i switched to the EVM, and got "unknown device" .

    you can't tell your customers to learn linux if they want to update the firmware. this must be done under windows.

    looking for help, thanks in advance.

  • Please refer to the following thread that explains current USB boot issues with revision 1.0 of the AM335x device:

    http://e2e.ti.com/support/dsp/sitara_arm174_microprocessors/f/791/t/168595.aspx?pi69149=2

    Additionally, the root cause is described in the AM335x Device Errata (SPRC360Z).