summaryrefslogtreecommitdiff
path: root/sys/src/9/bcm64/fns.h
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2019-07-25 09:04:50 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2019-07-25 09:04:50 +0200
commit6d9edeeb67a0b1e92f141f2745d36891fbd4e135 (patch)
tree502ca6a7066d8a9adc80a1d415940360edb8b27f /sys/src/9/bcm64/fns.h
parent676ef0ca0be714c8734872c59cb1ddc69349f6ce (diff)
bcm64: add pci express driver for raspberry pi 4
Diffstat (limited to 'sys/src/9/bcm64/fns.h')
-rw-r--r--sys/src/9/bcm64/fns.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/sys/src/9/bcm64/fns.h b/sys/src/9/bcm64/fns.h
index 77e5476bb..78914c073 100644
--- a/sys/src/9/bcm64/fns.h
+++ b/sys/src/9/bcm64/fns.h
@@ -68,6 +68,8 @@ extern void kmapinval(void);
extern KMap *kmap(Page*);
extern void kunmap(KMap*);
extern uintptr mmukmap(uintptr, uintptr, usize);
+extern void* vmap(uintptr, int);
+extern void vunmap(void*, int);
extern void mmu0init(uintptr*);
extern void mmu0clear(uintptr*);
@@ -173,3 +175,29 @@ extern void writeconf(void);
extern void screeninit(void);
extern int isaconfig(char*, int, ISAConf*);
+
+/* pci */
+typedef struct Pcidev Pcidev;
+extern int pcicfgr32(Pcidev* pcidev, int rno);
+extern void pcicfgw32(Pcidev* pcidev, int rno, int data);
+extern int pcicfgr16(Pcidev* pcidev, int rno);
+extern void pcicfgw16(Pcidev* pcidev, int rno, int data);
+extern int pcicfgr8(Pcidev* pcidev, int rno);
+extern void pcicfgw8(Pcidev* pcidev, int rno, int data);
+extern Pcidev* pcimatch(Pcidev* prev, int vid, int did);
+extern Pcidev* pcimatchtbdf(int tbdf);
+extern void pcisetioe(Pcidev* p);
+extern void pciclrioe(Pcidev* p);
+extern void pcisetbme(Pcidev* p);
+extern void pciclrbme(Pcidev* p);
+extern void pcisetmwi(Pcidev* p);
+extern void pciclrmwi(Pcidev* p);
+extern int pcicap(Pcidev *p, int cap);
+extern int pcinextcap(Pcidev *pci, int offset);
+extern int pcihtcap(Pcidev *p, int cap);
+extern int pcigetpms(Pcidev* p);
+extern int pcisetpms(Pcidev* p, int state);
+extern void pcienable(Pcidev *p);
+extern void pcidisable(Pcidev *p);
+extern void pciintrenable(int tbdf, void (*f)(Ureg*, void*), void *a);
+extern void pciintrdisable(int tbdf, void (*f)(Ureg*, void*), void *a);