7 #define RPI_MEM_BUS_COHERENT(addr) (((uint32_t)addr) | 0x40000000)
8 #define RPI_MEM_BUS_UNCACHED(addr) (((uint32_t)addr) | 0xc0000000)
11 #define RPI_MBOX_FRAMEBUF 1
12 #define RPI_MBOX_PROP 8
14 #define RPI_TAG_GETMODEL 0x010001
15 #define RPI_TAG_GETRAM 0x010005
16 #define RPI_TAG_GETVRAM 0x010006
17 #define RPI_TAG_SETCLOCK 0x038002
19 #define RPI_TAG_ALLOCFB 0x040001
20 #define RPI_TAG_RELEASEFB 0x048001
21 #define RPI_TAG_BLANKSCR 0x040002
22 #define RPI_TAG_SETFBPHYS 0x048003
23 #define RPI_TAG_SETFBVIRT 0x048004
24 #define RPI_TAG_SETFBDEPTH 0x048005
26 struct rpi_prop_header {
32 uint32_t id, size, res;
36 #define RPI_PROP_NEXT(p) \
37 ((struct rpi_prop*)((char*)((p) + 1) + ((p)->size - sizeof (p)->data)))
40 extern uint32_t rpi_iobase;
41 extern uint32_t rpi_memsize, rpi_vc_memsize;
44 void rpi_reboot(void) __attribute__((noreturn));
46 void rpi_mbox_send(int chan, uint32_t msg);
47 uint32_t rpi_mbox_recv(int chan);
48 int rpi_mbox_pending(int chan);