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
Parents
  • 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
Reply
  • 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
Children
No data