Skip to content

Mailbox Usage #16

@quantumdude836

Description

@quantumdude836

Many of your examples make use of the TAGS channel of the mailbox interface. In particular, you set up the framebuffer in a FB_Init loop. While this does work, this is not technically correct.

The issue is that you don't properly wait for a response from the VC to indicate it's finished processing the tags list (and thus written the response). This is why immediately reading the FB_POINTER field yields zero, as the VC hasn't finished processing.

The correct mailbox usage is to write the structure address + channel to the mailbox, then enter a loop waiting for the MAIL_EMPTY bit (bit 30) of the status register (offset 0x18) to be clear. Then, read from the read register (offset 0) to clear the mailbox. At this point, the VC has fully processed the tags list and written the response. This should eliminate the need for the FB_Init loop.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions