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.

AM1705_Custom Board - CRC error during UART Boot

Other Parts Discussed in Thread: AM1705

Hi

I am trying to get u-boot on a custom board based on an AM1705. I am using the AIS UART tool to boot from UART and everything goes fine (BOOTME, synchro, send file, jump, close port) except that I don't get the u-boot prompt when using a COM terminal. In order to find where's the issue I tried to enable the CRC checking in AIS and I got the following error:

(AIS Parse): CRC enabled.
(AIS Parse): Processing command 58: 0x58535901.
(AIS Parse): Performing Opcode Sync...
(AIS Parse): Loading section...
(AIS Parse): Loaded 152752-Byte section to address 0xC1080000.
(AIS Parse): Processing command 59: 0x58535902.
(AIS Parse): Performing Opcode Sync...
(AIS Parse): Requesting CRC...
(AIS Parse): CRC failed!  Sending STARTOVER...
(AIS Parse): 4294814520-Byte seek applied.
(AIS Parse): Processing command 60: 0x58535901.
(AIS Parse): Performing Opcode Sync...
(AIS Parse): Loading section...


Which I believe means nothing got written properly into RAM (which is 16*16M=256MB). Does this mean it is a RAM issue (is CRC trying to read from RAM?) or can this be coming from somewhere else? As synchro is fine I don't really expect things to go wrong during the transfer (especially as the seek applied is always the same).

RAM registers are configured and the CLOCK signal going into RAM is 133MHZ as expected.

Thank you for your help!

Loic

  • Loic,

    When you say that you don't get a U-boot prompt, what do you mean?  It is probably not possible to have a COM terminal open while the UART boot host utility runs.  (If they are both open, then they are probably using different serial ports.)  The EVM approach is to place the AIS boot image in a slave memory (like SPI flash) so that the PC serial port is available for U-boot.  If you want to use UART for both AIS boot and U-boot, then you may have to follow a procedure like this:

    1. Run UART host utility
    2. Power on device
    3. Wait for UART host utility to report completion
    4. Close UART host utility
    5. Open COM terminal
    6. Assume you have missed the first U-boot prompt

    Regarding the AIS parsing error, does that error repeat itself, or does it only happen once?  If possible, please post the entire log from the UART boot host utility and your AIS file.  This could help me to diagnose what is going wrong.

    Hope this helps.

  • Thank you for your answer! I indeed followed your 6 steps, assumed that I missed the u-boot prompt but thought that when opening a COM terminal and pressing enter I would get some reply from u-boot. Is that wrong?

    Yes the parsing error is repeating itself many times:

    (File IO): Read 196396 bytes from file C:\Users\Yop\Desktop\test_crc.bin.
    (Serial Port): Opening COM18 at 115200 baud...
    (AIS Parse): Read magic word 0x41504954.
    (AIS Parse): Waiting for BOOTME... (power on or reset target now)
    (AIS Parse): BOOTME received!
    (AIS Parse): Performing Start-Word Sync...
    (AIS Parse): Performing Ping Opcode Sync...
    (AIS Parse): Processing command 0: 0x5853590D.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Executing function...
    (AIS Parse): Processing command 1: 0x58535907.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Loading boot table...
    (AIS Parse): Processing command 2: 0x5853590D.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Executing function...
     
    ... more commands
     
    (AIS Parse): Processing command 56: 0x5853590D.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Executing function...
    (AIS Parse): Processing command 57: 0x58535903.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): CRC enabled.
    (AIS Parse): Processing command 58: 0x58535901.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Loading section...
    (AIS Parse): Loaded 152908-Byte section to address 0xC1080000.
    (AIS Parse): Processing command 59: 0x58535902.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Requesting CRC...
    (AIS Parse): CRC failed!  Sending STARTOVER...
    (AIS Parse): 4294814364-Byte seek applied.
    (AIS Parse): Processing command 60: 0x58535901.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Loading section...
    (AIS Parse): Loaded 152908-Byte section to address 0xC1080000.
    (AIS Parse): Processing command 61: 0x58535902.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Requesting CRC...
    (AIS Parse): CRC failed!  Sending STARTOVER...
    (AIS Parse): 4294814364-Byte seek applied.
    (AIS Parse): Processing command 62: 0x58535901.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Loading section...
    (AIS Parse): Loaded 152908-Byte section to address 0xC1080000.
    (AIS Parse): Processing command 63: 0x58535902.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Requesting CRC...
    (AIS Parse): CRC failed!  Sending STARTOVER...
    (AIS Parse): 4294814364-Byte seek applied.
    (AIS Parse): Processing command 70: 0x58535901.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Loading section...
    (System): Boot aborted by user.
    (Serial Port): Closing COM18.

    And here is what happens with the same config but without CRC:

    (File IO): Read 196344 bytes from file C:\Users\Yop\Desktop\test.bin.
    (Serial Port): Opening COM18 at 115200 baud...
    (AIS Parse): Read magic word 0x41504954.
    (AIS Parse): Waiting for BOOTME... (power on or reset target now)
    (AIS Parse): BOOTME received!
    (AIS Parse): Performing Start-Word Sync...
    (AIS Parse): Performing Ping Opcode Sync...
    (AIS Parse): Processing command 0: 0x5853590D.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Executing function...
    (AIS Parse): Processing command 1: 0x58535907.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Loading boot table...
    (AIS Parse): Processing command 2: 0x5853590D.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Executing function...
     
    ... more commands
     
    (AIS Parse): Processing command 56: 0x5853590D.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Executing function...
    (AIS Parse): Processing command 57: 0x58535901.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Loading section...
    (AIS Parse): Loaded 152908-Byte section to address 0xC1080000.
    (AIS Parse): Processing command 58: 0x58535901.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Loading section...
    (AIS Parse): Loaded 33044-Byte section to address 0xC10A5550.
    (AIS Parse): Processing command 59: 0x58535901.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Loading section...
    (AIS Parse): Loaded 7864-Byte section to address 0xC10AD664.
    (AIS Parse): Processing command 60: 0x58535901.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Loading section...
    (AIS Parse): Loaded 1596-Byte section to address 0xC10AF51C.
    (AIS Parse): Processing command 61: 0x58535906.
    (AIS Parse): Performing Opcode Sync...
    (AIS Parse): Performing jump and close...
    (AIS Parse): AIS complete. Jump to address 0xC1080000.
    (AIS Parse): Waiting for DONE...
    (AIS Parse): Boot completed successfully.
    (Serial Port): Closing COM18.


    The thing is I had to modify and recompile u-boot to get the prompt on UART1 (instead of UART2 on da830). I also changed a couple of other things to adapt it to my board. I might have done something wrong there but as the CRC is not fine i'm not sure wether it is an hardware or a software issue.

    By the way and still concerning u-boot, I was wondering if all the multiplexing and power-on configuration made in board/davinci/daxxevm/da830evm.c were required seeing that AISGen is also doing it? I'm also pretty sure modules are being powered-on seeing that the current consumption increases of something like 80mA just after the AIS commands have been applied.

    Any suggestions?

    Thank you!

    Loic

  • Loic,

    Thanks for providing more details.  It looks like there may be something wrong with the EMIF configuration that's being applied during boot.  As an experiment, try the following procedure:

    1. Attempt to boot the device using either AIS image (with or without CRC)
    2. Connect to the device using an emulator (important: don't use any GEL file)
    3. Try to read and write directly to external memory using a CCS memory window or similar

    If external memory access is not functioning correctly, that would explain the problems that you're seeing.  Note that it's very important to disable the GEL file for this test.  If the GEL file applies its own EMIF configuration, the test won't tell us anything useful.

    The following information could help us diagnose the problem further:

    • Information about your custom board (including input clock and EMIF connections)
    • The settings you're applying in the AISgen tool (use File->Save Configuration To... and attach that file)
  • JTAG showed that one data pin was not properly soldered... Did check it a couple of time but slightly touching the pin was enough to allow contact. Works great now, thanks for your help and sorry for wasting your time on such a stupid mistake.

    For information I then had the baudrate issue described in other posts and cleraing the MDR register  worked. Moreover I didn't get any prompt from u-boot until the nand flash was properly configured (NANDFCR, AWCCR, CE2CFG).

    Regards

    Loic

  • Hi Loic,

    i am designing board based on AM1705 can you share schematic and design notes i don't have any with me. please share experience what to do what to not do.