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