Samsung seem to have recently released open-source kernel for Lollipop for Note 4 with r5p0 driver.
I am using a free version of DS-5 v20.1
I am following instructions from links below to build gator library and kernel with support for Streamline -
Using DS-5 Streamline with Mali on Samsung Galaxy Note 3 & 10.1
ARM Information Center (link points you to DS5 v14 documentation but I am referring to v20 doc
I build gator.ko is along with the kernel.
After flashing the newly built kernel - when I try to run gatord on it - I hit the following error
root@treltektt:/ # gatord&
gatord&
[1] 10584
root@treltektt:/ # Unable to load (insmod) gator.ko driver:
>>> gator.ko must be built against the current kernel version & configuration
>>> See dmesg for more details
Looking at dmesg I see following --
<6>[ 4608.789927] [c1] MobiCore mcd: b02|VALIDATOR [ERROR]: SPID - 0x00000000 GAF structure checksum is invalid!
<6>[ 4608.789954] [c1] MobiCore mcd: b02|VALIDATOR [ERROR]: SPID - 0x00000000 GAF structure checksum equals 0x00, please check if it is correctly
<6>[ 4608.789967] [c1] MobiCore mcd: b02|VALIDATOR [ERROR]: SPID - 0x00000000 calculated in this kernel.
<6>[ 4608.789980] [c1] MobiCore mcd: b02|VALIDATOR [ERROR]: SPID - 0x00000000 GAF checksum invalid
<6>[ 4608.789992] [c1] MobiCore mcd: b02|VALIDATOR [ERROR]: SPID - 0x00000000
<6>[ 4608.790003] [c1] MobiCore mcd: b02|VALIDATOR [ERROR]: SPID - 0x00000000
<6>[ 4608.794734] [c1] MobiCore mcd: b02|VALIDATOR [ERROR]: SPID - 0x00000000 ===============================================================================
<6>[ 4608.794751] [c1] MobiCore mcd: b02|VALIDATOR [ERROR]: SPID - 0x00000000 The kernel binary has been changed.
<6>[ 4608.794768] [c1] MobiCore mcd: b02|VALIDATOR [ERROR]: SPID - 0x00000000 The platform/kernel binaries should be synchronized for running Secure Storage.
<6>[ 4608.794783] [c1] MobiCore mcd: b02|VALIDATOR [ERROR]: SPID - 0x00000000 Please use the same version of platform/kernel binaries.
<6>[ 4608.794800] [c1] MobiCore mcd: b02|VALIDATOR [ERROR]: SPID - 0x00000000 ===============================================================================
<6>[ 4608.796053] [c1] MobiCore mcd: b02|VALIDATOR [ERROR]: SPID - 0x00000000
<6>[ 4608.796066] [c1] MobiCore mcd: b02|VALIDATOR [ERROR]: SPID - 0x00000000
<6>[ 4608.796078] [c1] MobiCore mcd: b02|VALIDATOR [WARN ]: SPID - 0x00000000 Sec Driver::set_config()
If needed - I can attach my .config file used to building the kernel.
I am using the gator.ko file built out of the same kernel which I have flashed onto my device - hence I dont know where this issue is coming from.
Any help in debugging this issue will be greatly appreciated.
Thanks
<4>[51476.062590] [c1] TIMA: lkmauth--launch the tl to check kernel module; module len is 1449101
<3>[51476.062652] [c1] MobiCore mcd: MobiCore map_buffer() ### ERROR: size > 1 MiB
<3>[51476.062671] [c1] MobiCore mcd: MobiCore mc_alloc_mmu_table() ### ERROR: map_buffer() failed
<3>[51476.062698] [c1] MobiCore mcd: MobiCore mc_register_wsm_mmu() ### ERROR: mc_alloc_mmu_table() failed
<3>[51476.062713] [c1] TIMA: lkmauth--cannot map ko buf to tl virtual space
<3>[51476.062727] [c1] TIMA: lkmauth--unable to load kernel module; module len is 1449101.
Looks like it is incorrectly trying to allocate more than the maximum allowed 1Mb buffer space at some stage.
I am not an expert at this - so it might be hard to for me to debug this further. :/
Hi sidxavier1,
I have followed the steps involved to try to see if I can reproduce your problem, and found that I hit the same issue as you do.
Interestingly I do not get the same error if I do this for Android 4.4.4 (KitKat). This could mean that the problem lies with Samsung.
I have launched an investigation for us to see if the problem lies in gator, and as such is something that we can fix in a later version of DS-5.
If however it proves not a problem with gator, then unfortunately there is not much we can do, as it would be controlled by Samsung and not us.
As soon as I hear more, I will let you know.
If you manage to resolve it in the mean time, please do let us know.
Kind Regards,
Michael McGeagh
After investigating, we have discovered the reason.
Samsung have enabled TIMA in this version of the kernel for this device... TIMA stands for TrustZone-base Integrity Measurement Architecture, and one of its roles is to authenticate kernel modules as they are loaded, so that devices are never vulnerable.
Because of this, the only way to allow gator.ko is to disable TIMA in the kernel.
I have tested on my setup and after disabling TIMA, I am now able to insmod gator.ko and run the daemon, connect streamline, and do some software based profiling using the activity counters enabled by default.
There is an unfortunate part to this however, and that is the Mali hardware counters do not work, and always report back zero. This is an integration issue that Samsung have made. Both ARM and Samsung are aware of this problem with 4.4.4, and now it has been noted that 5.0.1 also exhibits this integration issue. Unfortunately, this is not something we can resolve as the integration of the driver is controlled by Samsung in this instance. We will continue to suggest to Samsung to provide a fix, but ultimately it is their decision whether to resolve this or not.
I hope you still find DS-5 and Streamline useful, and hopefully it will be resolved by their next OTA update.
Thanks Michael.
So the gist is --- Samsung devices with Mali T7xx currently donot support reading Mali HW counters and hence no GPU stats on Streamline for those devices.
I cannot say for certain which devices are affected. It may only be the Note4, or it may be all Samsung devices containing Mali-T760. Without testing each device, it is hard to say.
Note that the issue lies with Samsung's BSP and not a direct issue with Mali hardware or software.
It is also entirely possible Samsung may provide an OTA patch/update that will resolve this issue in the future.
Thanks for your understanding
Just to give you an update, we have figured out a workaround to the integration problem that can be applied to the gator sources only!
I have written another document specifically for the Note4 here: Using DS-5 Streamline with Mali on Samsung Galaxy Note 4
I have tested on Android 5 version too with success.
In summary, simply run the following command in the gator driver sources:
sed –i 's|midgard|t7xx/r5p0|g' mali_midgard.mk
If you have any issues please let me know.