Please note: We are aware of an issue affecting replies on the Arm Community forums, which may not be loading as expected.

We apologize for any inconvenience and appreciate your patience while we investigate and work to resolve the issue.

Thank you for your understanding.


This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Linux: Need early workaround for cpuidle power down on A53 core so debugger doesn't hang

Hello,

ARM's advice on disabling cpuidle (powerdown to cores) after Linux boots works fine.  However, I find that the debugger still hangs in cases where the kernel hasn't booted all the way, and I need to connect the debugger. 

Can you provide advice on how to disable cpuidle properly at compile time on a Linux Kernel > 4.0?

https://community.arm.com/developer/tools-software/oss-platforms/w/docs/287/common-issues-using-ds-5-with-juno

Thank you

Parents
  • Hi 'mindchasers'

    Using the Arm DS or DS-5 Debugger, it is possible to debug the Linux kernel, from its entry point, through the pre-MMU stages, and then seamlessly through the MMU enable stage to post-MMU debug with full kernel awareness, all the way to the login prompt, and all with source-level symbols.  To do this, see the blog at
    community.arm.com/.../debugging-the-armv8-a-linux-kernel-with-ds-5
    (this was written for DS-5, but most still applies to Arm DS).

    Of course, the debugging view can get interrupted when cores power-down.  To disable cpuidle at compile time, you should be able to set CPU_IDLE=n in the menuconfig.

    Which Arm Debugger are you using, and to what target platform are you connecting?  Are you connecting using a debug hardware such as DSTREAM?

    Can you describe the debugger "hang" that you see - are you sure it is related to cores being powered down?  Maybe try connecting to just a single core that you know remains powered up (e.g. the primary core).

    Alternatively try connecting the debugger much earlier in the boot sequence, before the cores start powering-down.
    In particular, see the section in the blog "Debugging the Kernel : Pre-MMU Stage" and the use of the "set os physical-address" command.

    Hope this helps

Reply
  • Hi 'mindchasers'

    Using the Arm DS or DS-5 Debugger, it is possible to debug the Linux kernel, from its entry point, through the pre-MMU stages, and then seamlessly through the MMU enable stage to post-MMU debug with full kernel awareness, all the way to the login prompt, and all with source-level symbols.  To do this, see the blog at
    community.arm.com/.../debugging-the-armv8-a-linux-kernel-with-ds-5
    (this was written for DS-5, but most still applies to Arm DS).

    Of course, the debugging view can get interrupted when cores power-down.  To disable cpuidle at compile time, you should be able to set CPU_IDLE=n in the menuconfig.

    Which Arm Debugger are you using, and to what target platform are you connecting?  Are you connecting using a debug hardware such as DSTREAM?

    Can you describe the debugger "hang" that you see - are you sure it is related to cores being powered down?  Maybe try connecting to just a single core that you know remains powered up (e.g. the primary core).

    Alternatively try connecting the debugger much earlier in the boot sequence, before the cores start powering-down.
    In particular, see the section in the blog "Debugging the Kernel : Pre-MMU Stage" and the use of the "set os physical-address" command.

    Hope this helps

Children
No data