xref: /qemu/include/hw/misc/bcm2835_mbox_defs.h (revision c532b954d96f96d361ca31308f75f1b95bd4df76)
199494e69SAndrew Baumann /*
299494e69SAndrew Baumann  * Raspberry Pi emulation (c) 2012 Gregory Estrade
3*6111a0c0SPhilippe Mathieu-Daudé  *
4*6111a0c0SPhilippe Mathieu-Daudé  * This work is licensed under the terms of the GNU GPL, version 2 or later.
5*6111a0c0SPhilippe Mathieu-Daudé  * See the COPYING file in the top-level directory.
699494e69SAndrew Baumann  */
799494e69SAndrew Baumann 
899494e69SAndrew Baumann #ifndef BCM2835_MBOX_DEFS_H
999494e69SAndrew Baumann #define BCM2835_MBOX_DEFS_H
1099494e69SAndrew Baumann 
1199494e69SAndrew Baumann /* Constants shared with the ARM identifying separate mailbox channels */
1299494e69SAndrew Baumann #define MBOX_CHAN_POWER    0 /* for use by the power management interface */
1399494e69SAndrew Baumann #define MBOX_CHAN_FB       1 /* for use by the frame buffer */
1499494e69SAndrew Baumann #define MBOX_CHAN_VCHIQ    3 /* for use by the VCHIQ interface */
1599494e69SAndrew Baumann #define MBOX_CHAN_PROPERTY 8 /* for use by the property channel */
1699494e69SAndrew Baumann #define MBOX_CHAN_COUNT    9
1799494e69SAndrew Baumann 
1899494e69SAndrew Baumann #define MBOX_SIZE          32
1999494e69SAndrew Baumann #define MBOX_INVALID_DATA  0x0f
2099494e69SAndrew Baumann 
2199494e69SAndrew Baumann /* Layout of the private address space used for communication between
2299494e69SAndrew Baumann  * the mbox device emulation, and child devices: each channel occupies
2399494e69SAndrew Baumann  * 16 bytes of address space, but only two registers are presently defined.
2499494e69SAndrew Baumann  */
2599494e69SAndrew Baumann #define MBOX_AS_CHAN_SHIFT 4
2699494e69SAndrew Baumann #define MBOX_AS_DATA       0 /* request / response data (RW at offset 0) */
2799494e69SAndrew Baumann #define MBOX_AS_PENDING    4 /* pending response status (RO at offset 4) */
2899494e69SAndrew Baumann 
2999494e69SAndrew Baumann #endif /* BCM2835_MBOX_DEFS_H */
30