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.

DM8168: mcfw single link object can service a number of clients?

Hi guys!

Please let me know: is single MCFW link object can service a number of clients?

I mean next scenario: 

1) main process that run under Linux on A8 side create single link object that run under RTOS on C64 side 

2) after creation, main process start sends controls to this link object, as first client, and create "child" process that runs under Linux on A8 side too.

3) created child process start controls to link objects as second client.

 

Please let me know is this possible? Is SystemLink object is multiple-process safe (pay attention, not threads, just processes)?!?

 

 

 

  • Marat,

    This has not been tried out and not guaranteed to work. Please clarify me if i'm wrong, you want to have multiple processes on A8 which would eventually send commads to single Link instance running on slave core and you are expecting Link objects to get modified accordingly.

    Theoratically it is difficult to achieve, I'm assuming you'll take care of ipc (inter processor communication) initialization for all the processess on A8. Commands from A8 to slave core are sent using MessageQ and the receiving Link task is blocked on the message, in short receiving end does not account which process on A8 is sending this message, it receives the message and updates the structures sequencially as and when it receives thes commands from A8. Also, after completion of requested command the link task will send ack message to A8. Its application's resonsibilty to wait for the ack and synchronize operations.

    In multiprocess scenario on A8, if you take care of 'inter process syncronization' such that commands on slave core dont endup interrupting operations (e.g.  it wont work incase, one process sends stop driver and other process sends start driver before stop completes), then I think this could be achived with identifying quite a lot of corner cases and assuming application is taking care of synchronization. 

    Regards,

    Yogesh.

    Note: Please click on "Verify Answer" if this post has answered your question

     

     

  • We asked TI the same question, and we were told it was a bad idea, and they had not tested that. Given our experience so far with the RDK and links, I am glad we did not try to go into "unknown territory".

    We ended up writing a single controller/wrapper process that runs on the Linux/A8 side and does all the control of the links. Our other processes then communicate with that controller via standard Linux IPC.

  • "...Please clarify me if i'm wrong, you want to have multiple processes on A8 which would eventually send commads to single Link instance running on slave core and you are expecting Link objects to get modified accordingly...."

    Yes, exactly