Jump to content

New Mali blobs (Allwinner, mainline)


Moklev

Recommended Posts

That's interesting.

And then the fun begins, i gave it a try using r8p1 with kernel 4.4 on A64 and it works... a bit slow but works, though i don't know for how long. Framebuffer only.

 

The weird thing (it's  kind of frankenstein):

=======================================================
    glmark2 2012.12
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-400 MP
    GL_VERSION:    OpenGL ES 2.0 "mali450-r5p1-01rel0-lollipop-233-g52c929d"
=======================================================
[build] use-vbo=false: FPS: 60 FrameTime: 16.667 ms
[build] use-vbo=true: FPS: 60 FrameTime: 16.667 ms
[texture] texture-filter=nearest: FPS: 60 FrameTime: 16.667 ms
[texture] texture-filter=linear: FPS: 60 FrameTime: 16.667 ms
[texture] texture-filter=mipmap: FPS: 60 FrameTime: 16.667 ms
[shading] shading=gouraud: FPS: 60 FrameTime: 16.667 ms
 

Does Anyone one know a complete recipe for building KODI or similar (framebuffer) to check if this is really working?

Link to comment
Share on other sites

My try with mainline kernel 4.17.3 , mali DT bind seems wrong:

[    7.715811] mali: loading out-of-tree module taints kernel.
[    7.736417] Allwinner sunXi mali glue initialized
[    7.888305] Mali: ERR: /arm/ubuntu/h5/mainline/sunxi-mali/r8p1/src/devicedrv/mali/common/mali_pp.c
[    7.888314]            mali_pp_reset_wait() 269
[    7.888317] Mali PP: Failed to reset core Mali_PP0, rawstat: 0x00000000
[    7.888330] Mali: ERR: /arm/ubuntu/h5/mainline/sunxi-mali/r8p1/src/devicedrv/mali/common/mali_kernel_core.c
[    7.888332]            mali_parse_product_info() 178
[    7.888399] Mali: ERR: /arm/ubuntu/h5/mainline/sunxi-mali/r8p1/src/devicedrv/mali/linux/mali_kernel_linux.c
[    7.888401]            mali_probe() 606
[    7.888403] mali_probe(): Failed to initialize Mali device driver.
[    7.888413] Mali: ERR: /arm/ubuntu/h5/mainline/sunxi-mali/r8p1/src/devicedrv/mali/linux/mali_devfreq.c
[    7.888415]            mali_devfreq_term() 309
[    7.888447] mali-utgard: probe of mali-utgard.0 failed with error -14
[    7.888502] Mali: 
[    7.888504] Mali device driver loaded

I used the same node as H3:

soc {
        mali: gpu@1c40000 {
            compatible = "allwinner,sun8i-h3-mali", "arm,mali-400";
            reg = <0x01c40000 0x10000>;
            interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
            interrupt-names = "gp",
                      "gpmmu",
                      "pp0",
                      "ppmmu0",
                      "pp1",
                      "ppmmu1",
                      "pmu";
            clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
            clock-names = "bus", "core";
            resets = <&ccu RST_BUS_GPU>;

            assigned-clocks = <&ccu CLK_GPU>;
            assigned-clock-rates = <384000000>;
        };
    };

Any thoughts / ideas?

Link to comment
Share on other sites

12 hours ago, jernej said:

H5 has mali 450, which needs different binding and different userspace library.

 

Yes...
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt

Link to comment
Share on other sites

15 hours ago, jernej said:

H5 has mali 450, which needs different binding and different userspace library.

Ok, Laurent pointed to your malii node for H5 but still same error:

soc {
        mali: gpu@1e80000 {
            compatible = "allwinner,sun50i-h5-mali",
                     "arm,mali-400";
            reg = <0x01e80000 0x30000>;
            interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
            interrupt-names = "gp",
                      "gpmmu",
                      "pmu",
                      "pp",
                      "pp0",
                      "ppmmu0",
                      "pp1",
                      "ppmmu1",
                      "pp2",
                      "ppmmu2",
                      "pp3",
                      "ppmmu3";
            clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
            clock-names = "bus", "core";
            resets = <&ccu RST_BUS_GPU>;

            assigned-clocks = <&ccu CLK_GPU>;
            assigned-clock-rates = <384000000>;
        };
    };

Maxime code does not have compatible "arm,mali-450" , then i changed it to be able to load mali.ko.

 

Do you have mali working for H5? Or you have our own device driver instead of Maxime driver?

Link to comment
Share on other sites

1 hour ago, @lex said:

Do you have mali working for H5? Or you have our own device driver instead of Maxime driver?

 

No, there is very strange issue. When you are walking through Kodi menus, half of the screen has new menu and half old menu. Useless at this point. This is with Rockchip Mali450 GBM 32 and 64 bit blob... Tried many changes to correct this, but nothing helped. I never tried X11 or FBDEV blobs, because they are useless for my purpose.

 

My base is Maxime driver with Icenowy changes for mali450, with some other changes which are not important.

 

BTW, all blobs on free-electrons github are for mali400. Although there are mali450 strings in r8p1 blobs, actually important is VARIANT= string, which is still mali400.

Link to comment
Share on other sites

Maxime has fixed the driver, but that is a near miss, we need a proper mali450 blob version.

I have mali450 r5p1 (600), i think maybe the amlogic blob r7p0 (800 or 900?) could work and i don't have any to test, otherwise, you get:

 

ERROR in Mali driver:
 * Device driver API mismatch
 * Device driver API version: 900
 * User space API version: 600
Error: eglInitialise failed!

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines