Message ID | 20200207052627.130118-1-drinkcat@chromium.org (mailing list archive) |
---|---|
Headers | show |
Series | Add dts for mt8183 GPU (and misc panfrost patches) | expand |
On 2/7/20 6:26 AM, Nicolas Boichat wrote: > Hi! > > Follow-up on the v3: https://patchwork.kernel.org/cover/11331343/. > > The main purpose of this series is to upstream the dts change and the > binding document, but I wanted to see how far I could probe the GPU, to > check that the binding is indeed correct. The rest of the patches are > RFC/work-in-progress, but I think some of them could already be picked up. > > So this is tested on MT8183 with a chromeos-4.19 kernel, and a ton of > backports to get the latest panfrost driver (I should probably try on > linux-next at some point but this was the path of least resistance). > > I tested it as a module as it's more challenging (originally probing would > work built-in, on boot, but not as a module, as I didn't have the power > domain changes, and all power domains are on by default during boot). > > Probing logs looks like this, currently. They look sane. > [ 501.319728] panfrost 13040000.gpu: clock rate = 511999970 > [ 501.320041] panfrost 13040000.gpu: Linked as a consumer to regulator.14 > [ 501.320102] panfrost 13040000.gpu: Linked as a consumer to regulator.31 > [ 501.320651] panfrost 13040000.gpu: Linked as a consumer to genpd:0:13040000.gpu > [ 501.320954] panfrost 13040000.gpu: Linked as a consumer to genpd:1:13040000.gpu > [ 501.321062] panfrost 13040000.gpu: Linked as a consumer to genpd:2:13040000.gpu > [ 501.321734] panfrost 13040000.gpu: mali-g72 id 0x6221 major 0x0 minor 0x3 status 0x0 > [ 501.321741] panfrost 13040000.gpu: features: 00000000,13de77ff, issues: 00000000,00000400 > [ 501.321747] panfrost 13040000.gpu: Features: L2:0x07120206 Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff JS:0x7 > [ 501.321752] panfrost 13040000.gpu: shader_present=0x7 l2_present=0x1 > [ 501.324951] [drm] Initialized panfrost 1.1.0 20180908 for 13040000.gpu on minor 2 > > Some more changes are still required to get devfreq working, and of course > I do not have a userspace driver to test this with. Have you tried the Panfrost tests in IGT? They are atm quite basic, but could be interesting to check that the different HW units are correctly powered on. Regards, Tomeu > I believe at least patches 1, 2, and 3 can be merged. 4 and 5 are mostly > useful in conjunction with 6 and 7 (which are not ready yet), so I'll let > maintainers decide. > > Thanks! > > Nicolas Boichat (7): > dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183 > arm64: dts: mt8183: Add node for the Mali GPU > drm/panfrost: Improve error reporting in panfrost_gpu_power_on > drm/panfrost: Add support for multiple regulators > drm/panfrost: Add support for multiple power domains > RFC: drm/panfrost: Add mt8183-mali compatible string > RFC: drm/panfrost: devfreq: Add support for 2 regulators > > .../bindings/gpu/arm,mali-bifrost.yaml | 25 ++++ > arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 7 + > arch/arm64/boot/dts/mediatek/mt8183.dtsi | 105 +++++++++++++++ > drivers/gpu/drm/panfrost/panfrost_devfreq.c | 17 +++ > drivers/gpu/drm/panfrost/panfrost_device.c | 123 +++++++++++++++--- > drivers/gpu/drm/panfrost/panfrost_device.h | 27 +++- > drivers/gpu/drm/panfrost/panfrost_drv.c | 41 ++++-- > drivers/gpu/drm/panfrost/panfrost_gpu.c | 11 +- > 8 files changed, 326 insertions(+), 30 deletions(-) >
On Fri, Feb 7, 2020 at 2:18 PM Tomeu Vizoso <tomeu.vizoso@collabora.com> wrote: > > On 2/7/20 6:26 AM, Nicolas Boichat wrote: > > Hi! > > > > Follow-up on the v3: https://patchwork.kernel.org/cover/11331343/. > > > > The main purpose of this series is to upstream the dts change and the > > binding document, but I wanted to see how far I could probe the GPU, to > > check that the binding is indeed correct. The rest of the patches are > > RFC/work-in-progress, but I think some of them could already be picked up. > > > > So this is tested on MT8183 with a chromeos-4.19 kernel, and a ton of > > backports to get the latest panfrost driver (I should probably try on > > linux-next at some point but this was the path of least resistance). > > > > I tested it as a module as it's more challenging (originally probing would > > work built-in, on boot, but not as a module, as I didn't have the power > > domain changes, and all power domains are on by default during boot). > > > > Probing logs looks like this, currently. They look sane. > > [ 501.319728] panfrost 13040000.gpu: clock rate = 511999970 > > [ 501.320041] panfrost 13040000.gpu: Linked as a consumer to regulator.14 > > [ 501.320102] panfrost 13040000.gpu: Linked as a consumer to regulator.31 > > [ 501.320651] panfrost 13040000.gpu: Linked as a consumer to genpd:0:13040000.gpu > > [ 501.320954] panfrost 13040000.gpu: Linked as a consumer to genpd:1:13040000.gpu > > [ 501.321062] panfrost 13040000.gpu: Linked as a consumer to genpd:2:13040000.gpu > > [ 501.321734] panfrost 13040000.gpu: mali-g72 id 0x6221 major 0x0 minor 0x3 status 0x0 > > [ 501.321741] panfrost 13040000.gpu: features: 00000000,13de77ff, issues: 00000000,00000400 > > [ 501.321747] panfrost 13040000.gpu: Features: L2:0x07120206 Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff JS:0x7 > > [ 501.321752] panfrost 13040000.gpu: shader_present=0x7 l2_present=0x1 > > [ 501.324951] [drm] Initialized panfrost 1.1.0 20180908 for 13040000.gpu on minor 2 > > > > Some more changes are still required to get devfreq working, and of course > > I do not have a userspace driver to test this with. > > Have you tried the Panfrost tests in IGT? They are atm quite basic, but > could be interesting to check that the different HW units are correctly > powered on. I haven't, you mean this right? https://gitlab.freedesktop.org/tomeu/igt-gpu-tools/tree/panfrost Any specific test you have in mind? Thanks, > Regards, > > Tomeu > > > I believe at least patches 1, 2, and 3 can be merged. 4 and 5 are mostly > > useful in conjunction with 6 and 7 (which are not ready yet), so I'll let > > maintainers decide. > > > > Thanks! > > > > Nicolas Boichat (7): > > dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183 > > arm64: dts: mt8183: Add node for the Mali GPU > > drm/panfrost: Improve error reporting in panfrost_gpu_power_on > > drm/panfrost: Add support for multiple regulators > > drm/panfrost: Add support for multiple power domains > > RFC: drm/panfrost: Add mt8183-mali compatible string > > RFC: drm/panfrost: devfreq: Add support for 2 regulators > > > > .../bindings/gpu/arm,mali-bifrost.yaml | 25 ++++ > > arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 7 + > > arch/arm64/boot/dts/mediatek/mt8183.dtsi | 105 +++++++++++++++ > > drivers/gpu/drm/panfrost/panfrost_devfreq.c | 17 +++ > > drivers/gpu/drm/panfrost/panfrost_device.c | 123 +++++++++++++++--- > > drivers/gpu/drm/panfrost/panfrost_device.h | 27 +++- > > drivers/gpu/drm/panfrost/panfrost_drv.c | 41 ++++-- > > drivers/gpu/drm/panfrost/panfrost_gpu.c | 11 +- > > 8 files changed, 326 insertions(+), 30 deletions(-) > >
On 2/7/20 8:42 AM, Nicolas Boichat wrote: > On Fri, Feb 7, 2020 at 2:18 PM Tomeu Vizoso <tomeu.vizoso@collabora.com> wrote: >> >> On 2/7/20 6:26 AM, Nicolas Boichat wrote: >>> Hi! >>> >>> Follow-up on the v3: https://patchwork.kernel.org/cover/11331343/. >>> >>> The main purpose of this series is to upstream the dts change and the >>> binding document, but I wanted to see how far I could probe the GPU, to >>> check that the binding is indeed correct. The rest of the patches are >>> RFC/work-in-progress, but I think some of them could already be picked up. >>> >>> So this is tested on MT8183 with a chromeos-4.19 kernel, and a ton of >>> backports to get the latest panfrost driver (I should probably try on >>> linux-next at some point but this was the path of least resistance). >>> >>> I tested it as a module as it's more challenging (originally probing would >>> work built-in, on boot, but not as a module, as I didn't have the power >>> domain changes, and all power domains are on by default during boot). >>> >>> Probing logs looks like this, currently. They look sane. >>> [ 501.319728] panfrost 13040000.gpu: clock rate = 511999970 >>> [ 501.320041] panfrost 13040000.gpu: Linked as a consumer to regulator.14 >>> [ 501.320102] panfrost 13040000.gpu: Linked as a consumer to regulator.31 >>> [ 501.320651] panfrost 13040000.gpu: Linked as a consumer to genpd:0:13040000.gpu >>> [ 501.320954] panfrost 13040000.gpu: Linked as a consumer to genpd:1:13040000.gpu >>> [ 501.321062] panfrost 13040000.gpu: Linked as a consumer to genpd:2:13040000.gpu >>> [ 501.321734] panfrost 13040000.gpu: mali-g72 id 0x6221 major 0x0 minor 0x3 status 0x0 >>> [ 501.321741] panfrost 13040000.gpu: features: 00000000,13de77ff, issues: 00000000,00000400 >>> [ 501.321747] panfrost 13040000.gpu: Features: L2:0x07120206 Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff JS:0x7 >>> [ 501.321752] panfrost 13040000.gpu: shader_present=0x7 l2_present=0x1 >>> [ 501.324951] [drm] Initialized panfrost 1.1.0 20180908 for 13040000.gpu on minor 2 >>> >>> Some more changes are still required to get devfreq working, and of course >>> I do not have a userspace driver to test this with. >> >> Have you tried the Panfrost tests in IGT? They are atm quite basic, but >> could be interesting to check that the different HW units are correctly >> powered on. > > I haven't, you mean this right? > https://gitlab.freedesktop.org/tomeu/igt-gpu-tools/tree/panfrost Yes, though may be better to use the upstream repo: https://gitlab.freedesktop.org/drm/igt-gpu-tools > Any specific test you have in mind? All the panfrost ones, but looks like panfrost_prime:gem-prime-import is failing atm: https://lava.collabora.co.uk/scheduler/job/2214987 Cheers, Tomeu > Thanks, > >> Regards, >> >> Tomeu >> >>> I believe at least patches 1, 2, and 3 can be merged. 4 and 5 are mostly >>> useful in conjunction with 6 and 7 (which are not ready yet), so I'll let >>> maintainers decide. >>> >>> Thanks! >>> >>> Nicolas Boichat (7): >>> dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183 >>> arm64: dts: mt8183: Add node for the Mali GPU >>> drm/panfrost: Improve error reporting in panfrost_gpu_power_on >>> drm/panfrost: Add support for multiple regulators >>> drm/panfrost: Add support for multiple power domains >>> RFC: drm/panfrost: Add mt8183-mali compatible string >>> RFC: drm/panfrost: devfreq: Add support for 2 regulators >>> >>> .../bindings/gpu/arm,mali-bifrost.yaml | 25 ++++ >>> arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 7 + >>> arch/arm64/boot/dts/mediatek/mt8183.dtsi | 105 +++++++++++++++ >>> drivers/gpu/drm/panfrost/panfrost_devfreq.c | 17 +++ >>> drivers/gpu/drm/panfrost/panfrost_device.c | 123 +++++++++++++++--- >>> drivers/gpu/drm/panfrost/panfrost_device.h | 27 +++- >>> drivers/gpu/drm/panfrost/panfrost_drv.c | 41 ++++-- >>> drivers/gpu/drm/panfrost/panfrost_gpu.c | 11 +- >>> 8 files changed, 326 insertions(+), 30 deletions(-) >>>
On Fri, Feb 7, 2020 at 4:13 PM Tomeu Vizoso <tomeu.vizoso@collabora.com> wrote: > > On 2/7/20 8:42 AM, Nicolas Boichat wrote: > > On Fri, Feb 7, 2020 at 2:18 PM Tomeu Vizoso <tomeu.vizoso@collabora.com> wrote: > >> > >>> Some more changes are still required to get devfreq working, and of course > >>> I do not have a userspace driver to test this with. > >> > >> Have you tried the Panfrost tests in IGT? They are atm quite basic, but > >> could be interesting to check that the different HW units are correctly > >> powered on. > > > > I haven't, you mean this right? > > https://gitlab.freedesktop.org/tomeu/igt-gpu-tools/tree/panfrost > > Yes, though may be better to use the upstream repo: > > https://gitlab.freedesktop.org/drm/igt-gpu-tools > > > Any specific test you have in mind? > > All the panfrost ones, but looks like panfrost_prime:gem-prime-import is > failing atm: > > https://lava.collabora.co.uk/scheduler/job/2214987 (I first removed opp table from device tree to avoid constant spew about devfreq not supporting 2 regulators, I should get around to fix that...) # /usr/libexec/igt-gpu-tools/panfrost_gem_new IGT-Version: 1.24-gd4d574a4 (arm) (Linux: 4.19.99 aarch64) Starting subtest: gem-new-4096 Subtest gem-new-4096: SUCCESS (0.000s) Starting subtest: gem-new-0 Subtest gem-new-0: SUCCESS (0.000s) Starting subtest: gem-new-zeroed Subtest gem-new-zeroed: SUCCESS (0.001s) # /usr/libexec/igt-gpu-tools/panfrost_get_param IGT-Version: 1.24-gd4d574a4 (arm) (Linux: 4.19.99 aarch64) Starting subtest: base-params Subtest base-params: SUCCESS (0.000s) Starting subtest: get-bad-param Subtest get-bad-param: SUCCESS (0.000s) Starting subtest: get-bad-padding Subtest get-bad-padding: SUCCESS (0.000s) # /usr/libexec/igt-gpu-tools/panfrost_prime IGT-Version: 1.24-gd4d574a4 (arm) (Linux: 4.19.99 aarch64) Starting subtest: gem-prime-import (panfrost_prime:1527) ioctl_wrappers-CRITICAL: Test assertion failure function prime_fd_to_handle, file ../igt-gpu-tools-9999/lib/ioctl_wrappers.c:1336: (panfrost_prime:1527) ioctl_wrappers-CRITICAL: Failed assertion: igt_ioctl((fd), ((((2U|1U) << (((0+8)+8)+14)) | ((('d')) << (0+8)) | (((0x2e)) << 0) | ((((sizeof(struct drm_prime_handle)))) << ((0+8)+8)))), (&args)) == 0 (panfrost_prime:1527) ioctl_wrappers-CRITICAL: Last errno: 95, Operation not supported (panfrost_prime:1527) ioctl_wrappers-CRITICAL: error: -1 != 0 Stack trace: Subtest gem-prime-import failed. Subtest gem-prime-import: FAIL (0.004s) (but that looks expected?) Now the trickier ones, I guess we're either missing something, or my dirty 4.19 backport is very broken: # /usr/libexec/igt-gpu-tools/panfrost_submit IGT-Version: 1.24-gd4d574a4 (arm) (Linux: 4.19.99 aarch64) Starting subtest: pan-submit (panfrost_submit:1643) CRITICAL: Test assertion failure function __real_main86, file ../igt-gpu-tools-9999/tests/panfrost_submit.c:103: (panfrost_submit:1643) CRITICAL: Failed assertion: syncobj_wait(fd, &submit->args->out_sync, 1, abs_timeout(SHORT_TIME_NSEC), 0, NULL) Stack trace: Subtest pan-submit failed. **** DEBUG **** (panfrost_submit:1643) CRITICAL: Test assertion failure function __real_main86, file ../igt-gpu-tools-9999/tests/panfrost_submit.c:103: (panfrost_submit:1643) CRITICAL: Failed assertion: syncobj_wait(fd, &submit->args->out_sync, 1, abs_timeout(SHORT_TIME_NSEC), 0, NULL) (panfrost_submit:1643) igt_core-INFO: Stack trace: **** END **** Subtest pan-submit: FAIL (0.119s) Starting subtest: pan-submit-error-no-jc Subtest pan-submit-error-no-jc: SUCCESS (0.000s) Starting subtest: pan-submit-error-bad-in-syncs Subtest pan-submit-error-bad-in-syncs: SUCCESS (0.012s) Starting subtest: pan-submit-error-bad-bo-handles Subtest pan-submit-error-bad-bo-handles: SUCCESS (0.012s) Starting subtest: pan-submit-error-bad-requirements Subtest pan-submit-error-bad-requirements: SUCCESS (0.012s) Starting subtest: pan-submit-error-bad-out-sync Subtest pan-submit-error-bad-out-sync: SUCCESS (0.012s) Starting subtest: pan-reset (panfrost_submit:1643) CRITICAL: Test assertion failure function __real_main86, file ../igt-gpu-tools-9999/tests/panfrost_submit.c:173: (panfrost_submit:1643) CRITICAL: Failed assertion: syncobj_wait(fd, &submit->args->out_sync, 1, abs_timeout(BAD_JOB_TIME_NSEC), 0, NULL) Stack trace: Subtest pan-reset failed. **** DEBUG **** (panfrost_submit:1643) CRITICAL: Test assertion failure function __real_main86, file ../igt-gpu-tools-9999/tests/panfrost_submit.c:173: (panfrost_submit:1643) CRITICAL: Failed assertion: syncobj_wait(fd, &submit->args->out_sync, 1, abs_timeout(BAD_JOB_TIME_NSEC), 0, NULL) (panfrost_submit:1643) igt_core-INFO: Stack trace: **** END **** Subtest pan-reset: FAIL (0.840s) The pan-submit case causes an MMU fault: (full log: https://gist.github.com/drinkcat/1ae36cb1b1b71f30cc4fc29759612d76) [ 1215.234937] [IGT] panfrost_submit: executing [ 1215.318446] [IGT] panfrost_submit: starting subtest pan-submit ... [ 1215.338644] panfrost 13040000.gpu: Unhandled Page fault in AS0 at VA 0x000000FF00000000 Reason: TODO raw fault status: 0xA002C0 decoded fault status: SLAVE FAULT exception type 0xC0: UNKNOWN access type 0x2: READ source id 0xA0 [ 1215.444504] [IGT] panfrost_submit: exiting, ret=98 ... [ 1215.446902] panfrost 13040000.gpu: js fault, js=0, status=JOB_BUS_FAULT, head=0x300b000, tail=0x300b000 [ 1215.446935] panfrost 13040000.gpu: Unhandled Page fault in AS0 at VA 0x000000FF00000000 Reason: TODO raw fault status: 0xA002C0 decoded fault status: SLAVE FAULT exception type 0xC0: UNKNOWN access type 0x2: READ source id 0xA0 pan-reset failure looks similar: https://gist.github.com/drinkcat/2d336d57e6b95262d83e7a28a409bc5b Thanks, > Cheers, > > Tomeu > > > Thanks, > > > >> Regards, > >> > >> Tomeu > >> > >>> I believe at least patches 1, 2, and 3 can be merged. 4 and 5 are mostly > >>> useful in conjunction with 6 and 7 (which are not ready yet), so I'll let > >>> maintainers decide. > >>> > >>> Thanks! > >>> > >>> Nicolas Boichat (7): > >>> dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183 > >>> arm64: dts: mt8183: Add node for the Mali GPU > >>> drm/panfrost: Improve error reporting in panfrost_gpu_power_on > >>> drm/panfrost: Add support for multiple regulators > >>> drm/panfrost: Add support for multiple power domains > >>> RFC: drm/panfrost: Add mt8183-mali compatible string > >>> RFC: drm/panfrost: devfreq: Add support for 2 regulators > >>> > >>> .../bindings/gpu/arm,mali-bifrost.yaml | 25 ++++ > >>> arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 7 + > >>> arch/arm64/boot/dts/mediatek/mt8183.dtsi | 105 +++++++++++++++ > >>> drivers/gpu/drm/panfrost/panfrost_devfreq.c | 17 +++ > >>> drivers/gpu/drm/panfrost/panfrost_device.c | 123 +++++++++++++++--- > >>> drivers/gpu/drm/panfrost/panfrost_device.h | 27 +++- > >>> drivers/gpu/drm/panfrost/panfrost_drv.c | 41 ++++-- > >>> drivers/gpu/drm/panfrost/panfrost_gpu.c | 11 +- > >>> 8 files changed, 326 insertions(+), 30 deletions(-) > >>>
On 2/10/20 4:39 AM, Nicolas Boichat wrote: > On Fri, Feb 7, 2020 at 4:13 PM Tomeu Vizoso <tomeu.vizoso@collabora.com> wrote: >> >> On 2/7/20 8:42 AM, Nicolas Boichat wrote: >>> On Fri, Feb 7, 2020 at 2:18 PM Tomeu Vizoso <tomeu.vizoso@collabora.com> wrote: >>>> >>>>> Some more changes are still required to get devfreq working, and of course >>>>> I do not have a userspace driver to test this with. >>>> >>>> Have you tried the Panfrost tests in IGT? They are atm quite basic, but >>>> could be interesting to check that the different HW units are correctly >>>> powered on. >>> >>> I haven't, you mean this right? >>> https://gitlab.freedesktop.org/tomeu/igt-gpu-tools/tree/panfrost >> >> Yes, though may be better to use the upstream repo: >> >> https://gitlab.freedesktop.org/drm/igt-gpu-tools >> >>> Any specific test you have in mind? >> >> All the panfrost ones, but looks like panfrost_prime:gem-prime-import is >> failing atm: >> >> https://lava.collabora.co.uk/scheduler/job/2214987 > > (I first removed opp table from device tree to avoid constant spew > about devfreq not supporting 2 regulators, I should get around to fix > that...) > > # /usr/libexec/igt-gpu-tools/panfrost_gem_new > IGT-Version: 1.24-gd4d574a4 (arm) (Linux: 4.19.99 aarch64) > Starting subtest: gem-new-4096 > Subtest gem-new-4096: SUCCESS (0.000s) > Starting subtest: gem-new-0 > Subtest gem-new-0: SUCCESS (0.000s) > Starting subtest: gem-new-zeroed > Subtest gem-new-zeroed: SUCCESS (0.001s) > # /usr/libexec/igt-gpu-tools/panfrost_get_param > IGT-Version: 1.24-gd4d574a4 (arm) (Linux: 4.19.99 aarch64) > Starting subtest: base-params > Subtest base-params: SUCCESS (0.000s) > Starting subtest: get-bad-param > Subtest get-bad-param: SUCCESS (0.000s) > Starting subtest: get-bad-padding > Subtest get-bad-padding: SUCCESS (0.000s) > # /usr/libexec/igt-gpu-tools/panfrost_prime > IGT-Version: 1.24-gd4d574a4 (arm) (Linux: 4.19.99 aarch64) > Starting subtest: gem-prime-import > (panfrost_prime:1527) ioctl_wrappers-CRITICAL: Test assertion failure > function prime_fd_to_handle, file > ../igt-gpu-tools-9999/lib/ioctl_wrappers.c:1336: > (panfrost_prime:1527) ioctl_wrappers-CRITICAL: Failed assertion: > igt_ioctl((fd), ((((2U|1U) << (((0+8)+8)+14)) | ((('d')) << (0+8)) | > (((0x2e)) << 0) | ((((sizeof(struct drm_prime_handle)))) << > ((0+8)+8)))), (&args)) == 0 > (panfrost_prime:1527) ioctl_wrappers-CRITICAL: Last errno: 95, > Operation not supported > (panfrost_prime:1527) ioctl_wrappers-CRITICAL: error: -1 != 0 > Stack trace: > Subtest gem-prime-import failed. > Subtest gem-prime-import: FAIL (0.004s) > (but that looks expected?) Yep, haven't gotten to investigate yet. > Now the trickier ones, I guess we're either missing something, or my > dirty 4.19 backport is very broken: Damn, looks like the simple job we use to test submits doesn't work as-is on your GPU. But things seem to work otherwise, so probably the kernel driver is fully functional with your changes. Cheers, Tomeu > # /usr/libexec/igt-gpu-tools/panfrost_submit > IGT-Version: 1.24-gd4d574a4 (arm) (Linux: 4.19.99 aarch64) > Starting subtest: pan-submit > (panfrost_submit:1643) CRITICAL: Test assertion failure function > __real_main86, file ../igt-gpu-tools-9999/tests/panfrost_submit.c:103: > (panfrost_submit:1643) CRITICAL: Failed assertion: syncobj_wait(fd, > &submit->args->out_sync, 1, abs_timeout(SHORT_TIME_NSEC), 0, NULL) > Stack trace: > Subtest pan-submit failed. > **** DEBUG **** > (panfrost_submit:1643) CRITICAL: Test assertion failure function > __real_main86, file ../igt-gpu-tools-9999/tests/panfrost_submit.c:103: > (panfrost_submit:1643) CRITICAL: Failed assertion: syncobj_wait(fd, > &submit->args->out_sync, 1, abs_timeout(SHORT_TIME_NSEC), 0, NULL) > (panfrost_submit:1643) igt_core-INFO: Stack trace: > **** END **** > Subtest pan-submit: FAIL (0.119s) > Starting subtest: pan-submit-error-no-jc > Subtest pan-submit-error-no-jc: SUCCESS (0.000s) > Starting subtest: pan-submit-error-bad-in-syncs > Subtest pan-submit-error-bad-in-syncs: SUCCESS (0.012s) > Starting subtest: pan-submit-error-bad-bo-handles > Subtest pan-submit-error-bad-bo-handles: SUCCESS (0.012s) > Starting subtest: pan-submit-error-bad-requirements > Subtest pan-submit-error-bad-requirements: SUCCESS (0.012s) > Starting subtest: pan-submit-error-bad-out-sync > Subtest pan-submit-error-bad-out-sync: SUCCESS (0.012s) > Starting subtest: pan-reset > (panfrost_submit:1643) CRITICAL: Test assertion failure function > __real_main86, file ../igt-gpu-tools-9999/tests/panfrost_submit.c:173: > (panfrost_submit:1643) CRITICAL: Failed assertion: syncobj_wait(fd, > &submit->args->out_sync, 1, abs_timeout(BAD_JOB_TIME_NSEC), 0, NULL) > Stack trace: > Subtest pan-reset failed. > **** DEBUG **** > (panfrost_submit:1643) CRITICAL: Test assertion failure function > __real_main86, file ../igt-gpu-tools-9999/tests/panfrost_submit.c:173: > (panfrost_submit:1643) CRITICAL: Failed assertion: syncobj_wait(fd, > &submit->args->out_sync, 1, abs_timeout(BAD_JOB_TIME_NSEC), 0, NULL) > (panfrost_submit:1643) igt_core-INFO: Stack trace: > **** END **** > Subtest pan-reset: FAIL (0.840s) > > The pan-submit case causes an MMU fault: > (full log: https://gist.github.com/drinkcat/1ae36cb1b1b71f30cc4fc29759612d76) > > [ 1215.234937] [IGT] panfrost_submit: executing > [ 1215.318446] [IGT] panfrost_submit: starting subtest pan-submit > ... > [ 1215.338644] panfrost 13040000.gpu: Unhandled Page fault in AS0 at > VA 0x000000FF00000000 > Reason: TODO > raw fault status: 0xA002C0 > decoded fault status: SLAVE FAULT > exception type 0xC0: UNKNOWN > access type 0x2: READ > source id 0xA0 > [ 1215.444504] [IGT] panfrost_submit: exiting, ret=98 > ... > [ 1215.446902] panfrost 13040000.gpu: js fault, js=0, > status=JOB_BUS_FAULT, head=0x300b000, tail=0x300b000 > [ 1215.446935] panfrost 13040000.gpu: Unhandled Page fault in AS0 at > VA 0x000000FF00000000 > Reason: TODO > raw fault status: 0xA002C0 > decoded fault status: SLAVE FAULT > exception type 0xC0: UNKNOWN > access type 0x2: READ > source id 0xA0 > > pan-reset failure looks similar: > https://gist.github.com/drinkcat/2d336d57e6b95262d83e7a28a409bc5b > > Thanks, > >> Cheers, >> >> Tomeu >> >>> Thanks, >>> >>>> Regards, >>>> >>>> Tomeu >>>> >>>>> I believe at least patches 1, 2, and 3 can be merged. 4 and 5 are mostly >>>>> useful in conjunction with 6 and 7 (which are not ready yet), so I'll let >>>>> maintainers decide. >>>>> >>>>> Thanks! >>>>> >>>>> Nicolas Boichat (7): >>>>> dt-bindings: gpu: mali-bifrost: Add Mediatek MT8183 >>>>> arm64: dts: mt8183: Add node for the Mali GPU >>>>> drm/panfrost: Improve error reporting in panfrost_gpu_power_on >>>>> drm/panfrost: Add support for multiple regulators >>>>> drm/panfrost: Add support for multiple power domains >>>>> RFC: drm/panfrost: Add mt8183-mali compatible string >>>>> RFC: drm/panfrost: devfreq: Add support for 2 regulators >>>>> >>>>> .../bindings/gpu/arm,mali-bifrost.yaml | 25 ++++ >>>>> arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 7 + >>>>> arch/arm64/boot/dts/mediatek/mt8183.dtsi | 105 +++++++++++++++ >>>>> drivers/gpu/drm/panfrost/panfrost_devfreq.c | 17 +++ >>>>> drivers/gpu/drm/panfrost/panfrost_device.c | 123 +++++++++++++++--- >>>>> drivers/gpu/drm/panfrost/panfrost_device.h | 27 +++- >>>>> drivers/gpu/drm/panfrost/panfrost_drv.c | 41 ++++-- >>>>> drivers/gpu/drm/panfrost/panfrost_gpu.c | 11 +- >>>>> 8 files changed, 326 insertions(+), 30 deletions(-) >>>>>
On Thu, Feb 6, 2020 at 11:26 PM Nicolas Boichat <drinkcat@chromium.org> wrote: > > Hi! > > Follow-up on the v3: https://patchwork.kernel.org/cover/11331343/. > > The main purpose of this series is to upstream the dts change and the > binding document, but I wanted to see how far I could probe the GPU, to > check that the binding is indeed correct. The rest of the patches are > RFC/work-in-progress, but I think some of them could already be picked up. > > So this is tested on MT8183 with a chromeos-4.19 kernel, and a ton of > backports to get the latest panfrost driver (I should probably try on > linux-next at some point but this was the path of least resistance). > > I tested it as a module as it's more challenging (originally probing would > work built-in, on boot, but not as a module, as I didn't have the power > domain changes, and all power domains are on by default during boot). > > Probing logs looks like this, currently. They look sane. > [ 501.319728] panfrost 13040000.gpu: clock rate = 511999970 > [ 501.320041] panfrost 13040000.gpu: Linked as a consumer to regulator.14 > [ 501.320102] panfrost 13040000.gpu: Linked as a consumer to regulator.31 > [ 501.320651] panfrost 13040000.gpu: Linked as a consumer to genpd:0:13040000.gpu > [ 501.320954] panfrost 13040000.gpu: Linked as a consumer to genpd:1:13040000.gpu > [ 501.321062] panfrost 13040000.gpu: Linked as a consumer to genpd:2:13040000.gpu > [ 501.321734] panfrost 13040000.gpu: mali-g72 id 0x6221 major 0x0 minor 0x3 status 0x0 > [ 501.321741] panfrost 13040000.gpu: features: 00000000,13de77ff, issues: 00000000,00000400 > [ 501.321747] panfrost 13040000.gpu: Features: L2:0x07120206 Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff JS:0x7 > [ 501.321752] panfrost 13040000.gpu: shader_present=0x7 l2_present=0x1 > [ 501.324951] [drm] Initialized panfrost 1.1.0 20180908 for 13040000.gpu on minor 2 > > Some more changes are still required to get devfreq working, and of course > I do not have a userspace driver to test this with. > > I believe at least patches 1, 2, and 3 can be merged. 4 and 5 are mostly > useful in conjunction with 6 and 7 (which are not ready yet), so I'll let > maintainers decide. I've applied 3, 4, and 5 to drm-misc-next. Patch 2 should go via Mediatek tree. Rob