This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM5728: CMEM and ti-mct-daemon

Part Number: AM5728

Tool/software: Linux

Hi.

we keep migrate from Processor SDK 3.01 to 4.0.4 .

number 0 of Cmem Pool is used. when i use "systemctl disable ti-mct-daemon.service", number 0 of Cmem Pool is not used. That's ok.

but, I wonder that What ti-mct-daemon is ?.   what size ti-mct-daemon need  for cmem ?

we will change cmem configuration( for GC320 and VPE and 3DGPU ). ex. am57xx-evm-cem.dtsi

If ti-mct-daemon is important. we will plan as below it.

0 of cmem pool will be used  as ti-mct-daemon.

1 of cmem pool will be used  as GC320.

2 of cmem pool will be used  as VPE.

3 of cmem pool will be used  as 3DGPU.

4 of cmem pool will be used  as ocmc3(default setting).

Thanks a lot.

  • The software team have been notified. They will respond here.
  • Hi.
    i think that ti-mct-daemon is important. and then, i guess ti-mct-daemon need enough to 16MB.
    I write am57xx-evm-cmem.dtsi as below it.

    / {
    reserved-memory {
    #address-cells = <2>;
    #size-cells = <2>;
    ranges;

    cmem_block_mem_0: cmem_block_mem@a0000000 {
    reg = <0x0 0xa0000000 0x0 0x1000000>;
    no-map;
    status = "okay";
    };

    cmem_block_mem_1: cmem_block_mem@a1000000 {
    reg = <0x0 0xa1000000 0x0 0x2000000>;
    no-map;
    status = "okay";
    };

    cmem_block_mem_2: cmem_block_mem@a3000000 {
    reg = <0x0 0xa3000000 0x0 0x1600000>;
    no-map;
    status = "okay";
    };

    cmem_block_ocmc3: cmem_block_mem@40500000 {
    reg = <0x0 0x40500000 0x0 0x100000>;
    no-map;
    status = "okay";
    };
    };

    cmem {
    compatible = "ti,cmem";
    #address-cells = <1>;
    #size-cells = <0>;

    #pool-size-cells = <2>;

    status = "okay";

    cmem_block_0: cmem_block@0 {
    reg = <0>;
    memory-region = <&cmem_block_mem_0>;
    cmem-buf-pools = <1 0x0 0x1000000>;
    };

    cmem_block_1: cmem_block@1 {
    reg = <1>;
    memory-region = <&cmem_block_mem_1>;
    cmem-buf-pools = <8 0x0 0x400000>;
    };

    cmem_block_2: cmem_block@2 {
    reg = <2>;
    memory-region = <&cmem_block_mem_2>;
    cmem-buf-pools = <1 0x0 0x1600000>;
    };

    cmem_block_4: cmem_block@4 {
    reg = <3>;
    memory-region = <&cmem_block_ocmc3>;
    };
    };
    };

    but, i found error.
    when i see systemctl status ti-mct-daemon.service,

    Jul 14 11:03:39 am57xx-evm systemd[1]: Starting TI MultiCore Tools Daemon...
    Jul 14 11:03:39 am57xx-evm ti-mctd[761]: Shared Memory heaps created, size 131072 bytes
    Jul 14 11:03:39 am57xx-evm ti-mctd[761]: CMEM Error: allocHeap: ioctl CMEM_IOCALLOCHEAPCACHED failed: -1
    Jul 14 11:03:39 am57xx-evm ti-mctd[761]: TIOCL FATAL: Unable to allocate On-chip CMEM from 0xa1000000
    Jul 14 11:03:39 am57xx-evm systemd[1]: [[0;1;39mti-mct-daemon.service: Control process exited, code=exited status=1[[0m
    Jul 14 11:03:39 am57xx-evm systemd[1]: [[0;1;31mFailed to start TI MultiCore Tools Daemon.[[0m
    Jul 14 11:03:39 am57xx-evm systemd[1]: [[0;1;39mti-mct-daemon.service: Unit entered failed state.[[0m
    Jul 14 11:03:39 am57xx-evm systemd[1]: [[0;1;39mti-mct-daemon.service: Failed with result 'exit-code'.[[0m

    also, i can't see 0xa3000000, when i see /proc/cmem

    root@am57xx-evm:~# cat /proc/cmem

    Block 0: Pool 0: 1 bufs size 0x1000000 (0x1000000 requested)

    Pool 0 busy bufs:

    Pool 0 free bufs:
    id 0: phys addr 0xa0000000

    Block 1: Pool 0: 8 bufs size 0x400000 (0x400000 requested)

    Pool 0 busy bufs:

    Pool 0 free bufs:
    id 0: phys addr 0xa2c00000
    id 1: phys addr 0xa2800000
    id 2: phys addr 0xa2400000
    id 3: phys addr 0xa2000000
    id 4: phys addr 0xa1c00000
    id 5: phys addr 0xa1800000
    id 6: phys addr 0xa1400000
    id 7: phys addr 0xa1000000
    root@am57xx-evm:~#
    root@am57xx-evm:~#
    root@am57xx-evm:~# cat /proc/cmem

    Block 0: Pool 0: 1 bufs size 0x1000000 (0x1000000 requested)

    Pool 0 busy bufs:

    Pool 0 free bufs:
    id 0: phys addr 0xa0000000

    Block 1: Pool 0: 8 bufs size 0x400000 (0x400000 requested)

    Pool 0 busy bufs:

    Pool 0 free bufs:
    id 0: phys addr 0xa2c00000
    id 1: phys addr 0xa2800000
    id 2: phys addr 0xa2400000
    id 3: phys addr 0xa2000000
    id 4: phys addr 0xa1c00000
    id 5: phys addr 0xa1800000
    id 6: phys addr 0xa1400000
    id 7: phys addr 0xa1000000
    root@am57xx-evm:~#

    I hope two problem will be resolved. (1. ti-mct-daemon.service is died, 2. 0xa3000000 )

    Thanks a lot.
  • Hi.
    we try to apply differenct cmem's configuration and resolve it.

    but, i wonder what ti-mct-daemon.service is.
    I want to get this document.

    Thnaks a lot.