[SOLVED] Cortex-A57 BCM2837 support

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • [SOLVED] Cortex-A57 BCM2837 support

    Hello,

    I executed J-Link Commander at Cortex-A53 (BCM2837, Raspberry PI 3b/3b+),
    but an infinite loop occurs as follows.

    Source Code

    1. SEGGER J-Link Commander V6.44d (Compiled Mar 27 2019 17:09:10)
    2. DLL version V6.44d, compiled Mar 27 2019 17:08:23
    3. Connecting to J-Link via USB...O.K.
    4. Firmware: J-Link V10 compiled Mar 21 2019 15:43:57
    5. Hardware version: V10.10
    6. S/N: XXXXXXXXX
    7. License(s): FlashBP, GDB
    8. OEM: SEGGER-EDU
    9. VTref=3.315V
    10. Type "connect" to establish a target connection, '?' for help
    11. J-Link>connect
    12. Please specify target interface:
    13. J) JTAG (Default)
    14. S) SWD
    15. T) cJTAG
    16. TIF>
    17. Device position in JTAG chain (IRPre,DRPre) <Default>: -1,-1 => Auto-detect
    18. JTAGConf>
    19. Specify target interface speed [kHz]. <Default>: 4000 kHz
    20. Speed>1000
    21. Device "CORTEX-A53" selected.
    22. Connecting to target via JTAG
    23. TotalIRLen = 4, IRPrint = 0x01
    24. JTAG chain detection found 1 devices:
    25. #0 Id: 0x4BA00477, IRLen: 04, CoreSight JTAG-DP
    26. Scanning AP map
    27. AP scan stopped (required AP found)
    28. AP[0]: APB-AP
    29. Scanning ROMTbl @ 0x80000000
    30. [0]Comp[0] @ 0x80010000: Cortex-A53
    31. [0]Comp[1] @ 0x80011000: PMU-A53
    32. [0]Comp[2] @ 0x80012000: Cortex-A53
    33. [0]Comp[3] @ 0x80013000: PMU-A53
    34. [0]Comp[4] @ 0x80014000: Cortex-A53
    35. [0]Comp[5] @ 0x80015000: PMU-A53
    36. [0]Comp[6] @ 0x80016000: Cortex-A53
    37. [0]Comp[7] @ 0x80017000: PMU-A53
    38. End of ROM table
    39. [0]Comp[0] @ 0x80010000: Cortex-A53
    40. [0]Comp[1] @ 0x80011000: PMU-A53
    41. [0]Comp[2] @ 0x80012000: Cortex-A53
    42. [0]Comp[3] @ 0x80013000: PMU-A53
    43. [0]Comp[4] @ 0x80014000: Cortex-A53
    44. [0]Comp[5] @ 0x80015000: PMU-A53
    45. [0]Comp[6] @ 0x80016000: Cortex-A53
    46. [0]Comp[7] @ 0x80017000: PMU-A53
    47. End of ROM table
    48. [0]Comp[0] @ 0x80010000: Cortex-A53
    49. [0]Comp[1] @ 0x80011000: PMU-A53
    50. [0]Comp[2] @ 0x80012000: Cortex-A53
    51. [0]Comp[3] @ 0x80013000: PMU-A53
    52. [0]Comp[4] @ 0x80014000: Cortex-A53
    53. [0]Comp[5] @ 0x80015000: PMU-A53
    54. [0]Comp[6] @ 0x80016000: Cortex-A53
    55. [0]Comp[7] @ 0x80017000: PMU-A53
    56. End of ROM table
    57. (... Infinity Loop ...)
    Display All

    When I execute OpenOCD(github.com/daniel-k/openocd.git)
    under the same condition, it works normally as follows.


    Brainfuck Source Code

    1. Open On-Chip Debugger 0.9.0-dev-gb796a58c (2019-03-26-15:39)
    2. Licensed under GNU GPL v2
    3. For bug reports, read
    4. http://openocd.sourceforge.net/doc/doxygen/bugs.html
    5. trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst
    6. adapter speed: 1000 kHz
    7. jtag_ntrst_delay: 500
    8. Info : J-Link V10 compiled Mar 21 2019 15:43:57
    9. Info : J-Link caps 0xb9ff7bbf
    10. Info : J-Link hw version 101000
    11. Info : J-Link hw type J-Link
    12. Info : J-Link max mem block 11496
    13. Info : J-Link configuration
    14. Info : USB-Address: 0x0
    15. Info : Kickstart power on JTAG-pin 19: 0xffffffff
    16. Info : Vref = 3.322 TCK = 1 TDI = 0 TDO = 0 TMS = 0 SRST = 1 TRST = 1
    17. Info : J-Link JTAG Interface ready
    18. Info : clock speed 1000 kHz
    19. Info : JTAG tap: rpi3.dap tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
    20. Info : rpi3.cpu: hardware has 6 breakpoints, 4 watchpoints
    21. Info : rpi3.cpu1: hardware has 6 breakpoints, 4 watchpoints
    22. Info : rpi3.cpu2: hardware has 6 breakpoints, 4 watchpoints
    23. Info : rpi3.cpu3: hardware has 6 breakpoints, 4 watchpoints
    24. Info : accepting 'telnet' connection on tcp/4444
    25. TargetName Type Endian TapName State
    26. -- ------------------ ---------- ------ ------------------ ------------
    27. 0 rpi3.cpu aarch64 little rpi3.dap running
    28. 1 rpi3.cpu1 aarch64 little rpi3.dap running
    29. 2 rpi3.cpu2 aarch64 little rpi3.dap running
    30. 3* rpi3.cpu3 aarch64 little rpi3.dap running
    31. Info : number of cache level 2
    32. Info : rpi3.cpu3 cluster 0 core 3 multi core
    33. target state: halted
    34. target halted in ARM64 state due to debug-request, current mode: EL3H
    35. cpsr: 0x200003cd pc: 0x1c
    36. MMU: disabled, D-Cache: disabled, I-Cache: disabled
    37. Info : number of cache level 2
    38. Info : rpi3.cpu2 cluster 0 core 2 multi core
    39. target state: halted
    40. target halted in ARM64 state due to debug-request, current mode: EL3H
    41. cpsr: 0x200003cd pc: 0x1c
    42. MMU: disabled, D-Cache: disabled, I-Cache: disabled
    43. Info : number of cache level 2
    44. Info : rpi3.cpu1 cluster 0 core 1 multi core
    45. target state: halted
    46. target halted in ARM64 state due to debug-request, current mode: EL3H
    47. cpsr: 0x200003cd pc: 0x1c
    48. MMU: disabled, D-Cache: disabled, I-Cache: disabled
    49. Info : number of cache level 2
    50. Info : rpi3.cpu cluster 0 core 0 multi core
    51. target state: halted
    52. target halted in ARM64 state due to debug-request, current mode: EL3H
    53. cpsr: 0x600003cd pc: 0x1c8
    54. MMU: disabled, D-Cache: disabled, I-Cache: disabled
    55. TargetName Type Endian TapName State
    56. -- ------------------ ---------- ------ ------------------ ------------
    57. 0* rpi3.cpu aarch64 little rpi3.dap halted
    58. 1 rpi3.cpu1 aarch64 little rpi3.dap halted
    59. 2 rpi3.cpu2 aarch64 little rpi3.dap halted
    60. 3 rpi3.cpu3 aarch64 little rpi3.dap halted
    61. Info : dropped 'telnet' connection
    Display All

    I would like advice for solving an infinite loop.

    Best regards,
    tmukai
  • Hello,

    Thank you for your inquiry.
    The BCM2837 is currently not supported as it needs special handling during connect.
    What are you looking to do with the BCM2837, do you want to program it?

    Is the BCM2837 on custom hardware or on the RaspBerry board?

    Could you provide us with the complete reference manual for the BCM2837, especially describing the connect sequence and Flash programming steps?


    Best regards,

    Nino
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hello, Nino

    Thank you for your prompt reply !

    My aim is to run J-Link GDB Server using Raspberry PI 3B (or 3B+) for education.
    I can use OpenOCD to debug, but I would like to use J-Link GDB Server to teach beginners.

    I do not have the BCM2837 manual, but the Cortex-A53 manual refers to:
    static.docs.arm.com/ddi0500/e/…E_cortex_a53_r0p3_trm.pdf

    Also, I try JLinkScript like below, but it is not working...

    Source Code

    1. void InitTarget(void) {
    2. // Perform TAP reset and J-Link JTAG auto-detection
    3. JTAG_Reset();
    4. Report("J-Link script : Raspberry PI 3B Cortex-A53 core J-Link script");
    5. JLINK_CORESIGHT_Configure("IRPre=0;DRPre=0;IRPost=0;DRPost=0;IRLenDevice=4");
    6. CPU = CORTEX_A53;
    7. JTAG_AllowTAPReset = 1;
    8. // CORESIGHT_SetETMBaseAddr = 0x8001000C;
    9. CORESIGHT_CoreBaseAddr = 0x80000000;
    10. CORESIGHT_AddAP(0, CORESIGHT_APB_AP);
    11. CORESIGHT_IndexAPBAPToUse = 0;
    12. JTAG_SetDeviceId(0, 0x4BA00477); // IRLen: 4
    13. JTAG_SetDeviceId(1, 0x4BA00477); // IRLen: 4
    14. JTAG_SetDeviceId(2, 0x4BA00477); // IRLen: 4
    15. JTAG_SetDeviceId(3, 0x4BA00477); // IRLen: 4
    16. }
    Display All

    I would be very helpful if I got some advice.

    Best regards,
    tmukai
  • Hello,

    Please understand that without the device specific documentation there is not much we can do here.

    Best regards,
    Nino
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.