Posts by pelwell

    Part of the fix for upstream Kernel is to add vchiq DT data:

    External Content pastebin.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    That makes it to create /dev/vchiq devnode.

    With that, kodi doesn't crash anymore, but those messages are generated:

    Code
    [    6.846340] vchiq: module is from the staging directory, the quality is unknown, you have been warned.
    [    6.851573] vchiq: vchiq_init_state: slot_zero = ea880000, is_master = 0
    [    7.027647] [<bf00c794>] vchiq_doorbell_irq [vchiq]
    [    8.022814] Modules linked in: cfg80211(+) vc4(+) snd_soc_core ac97_bus snd_pcm_dmaengine snd_pcm snd_timer snd crc32_arm_ce brcmutil soundcore vchiq(C)
    [  106.220212] vchiq: vchiq: connect: could not lock mutex for state 0: -4
    [  149.432097] vchiq: vchiq: could not connect: 1

    Maybe vchiq DT data changed since Kernel 4.11 (the last time I used my RPi3).

    @mcmehab I'm sorry it's taken so long to get to the bottom of this problem, but fortunately the solution turns out to be simple.

    Your patch to the .dtsi file above is correct (ignoring the bogus size of 0xf which all VCHIQ nodes use) except for one important difference - you have placed the vchiq node in the root of the tree instead of as a child of the /soc node. This isn't just a cosmetic issue - by being outside /soc, vchiq fails to inherit some important properties, including "ranges" which describes how to map kernel physical addresses onto bus addresses and vice-versa, preventing the driver from accessing the doorbell registers.

    If you move your addition up a few lines so that it is inside /soc then the address mapping magic will work and vchiq will spring into life.