diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2019-07-25 09:04:50 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2019-07-25 09:04:50 +0200 |
commit | 6d9edeeb67a0b1e92f141f2745d36891fbd4e135 (patch) | |
tree | 502ca6a7066d8a9adc80a1d415940360edb8b27f /sys/src/9/bcm64/fns.h | |
parent | 676ef0ca0be714c8734872c59cb1ddc69349f6ce (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.h | 28 |
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); |