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

DX910-SW-99002-r3p1-01rel0 linux kernel 3.0.39

Note: This was originally posted on 30th August 2012 at http://forums.arm.com

I thought I would play with the latest software provided by Mali found here. I have a current kernel built at 3.0.39 and have been able to compile both the latest source code above ump.ko and mali.ko with a little extra effort.

When I compare the kernel mali sources against the malideveloper sources there is a slight configuration difference that being the "platform" information which is used to describe the hardware configuration. This is the arch/config.h from the kernel sources (this is a link to the config.h in directory arch-ca8-virtex820-m400-1):

/* * This confidential and proprietary software may be used only as * authorised by a licensing agreement from ARM Limited * (C) COPYRIGHT 2008-2010 ARM Limited * ALL RIGHTS RESERVED * The entire notice above must be reproduced on all authorised * copies and copies may only be made to the extent permitted * by a licensing agreement from ARM Limited. */
ifndef ARCH_CONFIG_H
define ARCH_CONFIG_H

/* Configuration for the EB platform with ZBT memory enabled */

static _mali_osk_resource_t arch_configuration [] = { { .type = PMU, .description = "Mali-400 PMU", .base = 0x01C42000, .irq = 73, .mmu_id = 0 }, { .type = MALI400GP, .description = "Mali-400 GP", .base = 0x01C40000, .irq = 69, .mmu_id = 1 }, { .type = MALI400PP, .base = 0x01C48000, .irq = 71, .description = "Mali-400 PP", .mmu_id = 2 }, { .type = MMU, .base = 0x01C43000, .irq = 70, .description = "Mali-400 MMU for GP", .mmu_id = 1 }, { .type = MMU, .base = 0x01C44000, .irq = 72, .description = "Mali-400 MMU for PP", .mmu_id = 2 }, { .type = MEMORY, .description = "Mali Sdram", .alloc_order = 0, /* highest preference for this memory / .base = 0x5C000000, .size = 64 * 1024 * 1024, /*64M/ .flags = _MALI_CPU_WRITEABLE | _MALI_CPU_READABLE | _MALI_MMU_READABLE | _MALI_MMU_WRITEABLE }, { .type = MEM_VALIDATION, .description = "Framebuffer", .base = 0x5A000000, .size = 32 * 1024 * 1024, /32M/ .flags = _MALI_CPU_WRITEABLE | _MALI_CPU_READABLE | _MALI_MMU_READABLE | _MALI_MMU_WRITEABLE }, { .type = OS_MEMORY, .description = "OS Memory", .alloc_order = 1, /* Lowest preference for this memory / .size = 192 * 1024 * 1024, / 64 MB */ .flags = _MALI_CPU_WRITEABLE | _MALI_CPU_READABLE | _MALI_MMU_READABLE | _MALI_MMU_WRITEABLE }, { .type = MALI400L2, .base = 0x01C41000, .description = "Mali-400 L2 cache" }, };
endif /* ARCH_CONFIG_H */

When you build the new code the arch-ca8-virtex820-m400-1 platform does not exist (not provided by malideveloper). I copied the arch-ca8-virtex820-m400-1 into the source directory and specified this as for the configuration and the module compiles. When I try to load the module I get this:

[ 9.400000] Mali: [ 9.400000] Mali: Inserting Mali v17 device driver. [ 9.410000] Mali: Compiled: Aug 29 2012, time: 14:30:44. [ 9.420000] Mali: Driver revision: r3p1-01rel0 [ 9.430000] Mali: Memory system initializing [ 9.440000] Mali: Memory Validator 'Framebuffer' installed for Mali physica l address base=0x5A000000, size=0x02000000 [ 9.460000] Mali: Mali OS memory allocator created with max allocation size of 0xC000000 bytes, cpu_usage_adjust 0x00000000 [ 9.480000] Mali: Mali PMU: Creating Mali PMU core [ 9.500000] Mali: Mali PP: Creating Mali PP core: Mali-400 PP [ 9.510000] Mali: Mali PP: Base address of PP core: 0x1c48000 [ 9.520000] Mali: Mali PP: Failed to reset core Mali-400 PP, Status: 0x0000 0000 [ 9.530000] Mali: ERR: /usr/src/tmp/kernel/DX910-SW-99002-r3p1-01rel0/driver/s rc/devicedrv/mali/common/mali_kernel_core.c [ 9.550000] mali_parse_product_info() 190 [ 9.570000] Mali: Memory system terminating [ 2025.500000] Mali:

So I have to ask, where did the kernel arch-ca8-virtex820-m400-1 product information come from? And why is this not valid anymore with the new code.... of course this is not likely a good place to post this question, but then I need to start somewhere....

Domenic
  • Note: This was originally posted on 5th September 2012 at http://forums.arm.com

    Hi Domenic,

      You mention that the sources from malideveloper.com do not contain the platform information for arch-ca8-virtex820-m400-1. Could I ask you which sources you are comparing against? We only publish the driver sources in malideveloper.com.

    Also, could you give us some more information on the Mali platform you are using? It might just be that you will need to configure the memory and interrupts for your platform. The hardware configuration given as part of arch-ca8-virtex820-m400-1 might not work for you.

    Cheers
    Karthik
  • Note: This was originally posted on 5th September 2012 at http://forums.arm.com

    I am using the allwinner kernel sources found here:   git://github.com/amery/linux-allwinner.git   and I have been able to build the drivers!!!  I had to copy the /usr/src/linux-allwinner/drivers/gpu/mali/mali/arch-ca8-virtex820-m400-1 and /usr/src/linux-allwinner/drivers/gpu/mali/mali/platform/mali400-pmu directories to the devicedrv/mali directory and build with this command line:   KDIR=/usr/src/linux-allwinner USING_UMP=1 TARGET_PLATFORM=mali400-pmu CONFIG=ca8-virtex820-m400-1 make

    Looks good!

    Domenic