Looks like that ARM-TF patch was precisely what I was missing. :)

When I set the bits that patch sets, I can now get Hikey to fully boot with OpenCSD's Linux branch 4.11+ETMs, and can capture perf traces like so:
perf record -e cs_etm/@f6404000.etr/u --per-thread -- ./foo

Thanks again!

On Wed, May 17, 2017 at 8:13 AM, Leo Yan <leo.yan@linaro.org> wrote:
On Wed, May 17, 2017 at 09:49:52AM -0500, Sebastian Pop wrote:
> On Wed, May 17, 2017 at 9:12 AM, Mathieu Poirier
> <mathieu.poirier@linaro.org> wrote:
> > This will definitly disable CPUidle - and you are using a
> > perf-opencsd-v4.11 kernel?
>
> George was mentioning that he tried the upstream linux kernel 4.11.
> I am trying to enable the ETM on the 4.9 kernel coming from the AOSP
> on top of a build from AOSP master. I know that I will be on my own there.
>
> So let me do a smaller step: I will try to enable ETM on the hikey running
> Debian with the kernel from
> https://github.com/Linaro/OpenCSD/tree/perf-opencsd-master.

I think one thing should meantion is ARM-TF has another fixing:
https://github.com/96boards-hikey/arm-trusted-firmware/commit/543f1db7fd7e0aadcf947adedd63eaed817ef402

If you are using latest boot images, you should have included this
change int ARM-TF. This change is merged into ARM-TF at last year,
but just ensure this is not a block issue at your side.

Thanks,
Leo Yan