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.

AM3356: Production programming

Part Number: AM3356
Other Parts Discussed in Thread: UNIFLASH

We are having problems programming the Sitara AM3356 in production.

We do not have Ethernet available and we do not want to use a eMMC SD-card this can get lost or hard to maintain in production.

The only option we have is JTAG -> AM3356 -> NAND Flash since we can also erase and load new software when there is an RMA

We would like to use a simple Box/Dongle to program the NAND Flash via the JTAG interface.

Available buses:

- JTAG

- UART0

Software to load to NAND Flash:

- MLO

- u-boot.img

- Target bin file

We do not want to install a complete development package like CCS but more like uniflash style.

What hard ware and software can we use for this.

Greetings Tim

  • Tim,

    I'm not aware of a ready-to-use solution to do exactly what you are asking for, and also doing a quick search online doesn't show any readily available 3rd party solution (this doesn't mean there isn't such a solution however).

    While we do have a solution called Uniflash (http://software-dl.ti.com/processor-sdk-rtos/esd/docs/06_01_00_08/rtos/index_board.html#board-utils) that seems like would fit the bill but there are two concerns with the current version of it:

    1. It does not support NAND on AM335x out of the box. Support for such would need to be added manually.
    2. The way it is architected currently is it receives the image to program to the target flash memory over the UART. If you have an image that is 10's if not 100's of MB in size this is not a very practical solution in a production environment

    Tim Verduijn1 said:
    We do not have Ethernet available and we do not want to use a eMMC SD-card this can get lost or hard to maintain in production.

    How about USB? The AM335x can boot over USB (in device mode), which you could use as a way to get an initial image loaded (see below), and go from there.

    As for SD-card, it sounds like you have this option on your board, it's just you don't want to use it for the reasons you stated?

    Tim Verduijn1 said:

    We would like to use a simple Box/Dongle to program the NAND Flash via the JTAG interface.

    Available buses:

    - JTAG

    - UART0

    Software to load to NAND Flash:

    - MLO

    - u-boot.img

    - Target bin file

    We do not want to install a complete development package like CCS but more like uniflash style.

    What hard ware and software can we use for this.

    Here is what you could do (but this will require some work)

    • Use UART to boot an initial U-Boot image to U-Boot prompt (includes the initialization of DDR and peripherals such as NAND)
    • Once at U-Boot prompt, use JTAG to connect to the AM335x
    • Use for example CCS Debug Server Scripting (DSS) to load your NAND image to DDR
    • Restart AM335x program execution
    • Transfer NAND image from DDR into NAND by issuing appropriate U-Boot commands (If NAND image is larger than DDR you could do piece by piece)

    The above approach would be completely scriptable/automatable (DSS by nature is scriptable, and U-Boot can be controlled remotely via UART for example through an 'expect'/'autoexpect' type tool.

    if you have USB you could do something similar to the above, however using "dfu" to transfer the target images over USB to U-Boot rather than using JTAG.

    Regards, Andreas