]> git.lizzy.rs Git - plan9front.git/commitdiff
zynq: cleanup devarch, flushmmu() after procflushpsecg()
authorcinap_lenrek <cinap_lenrek@felloff.net>
Tue, 29 Mar 2016 03:06:32 +0000 (05:06 +0200)
committercinap_lenrek <cinap_lenrek@felloff.net>
Tue, 29 Mar 2016 03:06:32 +0000 (05:06 +0200)
sys/src/9/zynq/devarch.c

index ccd513b2678c0c8d2241379ee55b69d88b8206ca..85b54c97ec23d07cf4e0e4d020a4cf7890fe7322 100644 (file)
@@ -165,8 +165,7 @@ plirq(Ureg *, void *)
                slcr[0x900/4] = 0xf;
                slcr[0x240/4] = 0;
                devc[DEVMASK] |= DONE;
-               if(axi != nil)
-                       axi->attr &= ~SG_FAULT;
+               axi->attr &= ~SG_FAULT;
                wakeup(&pldoner);
        }
        if((fl & DMADONE) != 0){
@@ -181,6 +180,13 @@ plinit(void)
 {
        Physseg seg;
 
+       memset(&seg, 0, sizeof seg);
+       seg.attr = SG_PHYSICAL | SG_FAULT;
+       seg.name = "axi";
+       seg.pa = 0x40000000;
+       seg.size = 0x8000000;
+       axi = addphysseg(&seg);
+
        devc[DEVCTRL] &= ~(PROG|1<<25);
        devc[DEVCTRL] |= 3<<26|PROG;
        devc[DEVISTS] = -1;
@@ -188,22 +194,14 @@ plinit(void)
        intrenable(DEVCIRQ, plirq, nil, LEVEL, "pl");
        
        slcr[FPGA0_CLK_CTRL] = 1<<20 | 10<<8;
-
-       memset(&seg, 0, sizeof seg);
-       seg.attr = SG_PHYSICAL | SG_FAULT;
-       seg.name = "axi";
-       seg.pa = 0x40000000;
-       seg.size = 0x8000000;
-       axi = addphysseg(&seg);
 }
 
 static void
 plconf(void)
 {
-       if(axi != nil){
-               axi->attr |= SG_FAULT;
-               procflushpseg(axi);
-       }
+       axi->attr |= SG_FAULT;
+       procflushpseg(axi);
+       flushmmu();
 
        slcr[0x240/4] = 0xf;
        slcr[0x900/4] = 0xa;