openvortex-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Openvortex-dev] CVS update


From: Will DeRousse
Subject: Re: [Openvortex-dev] CVS update
Date: Sat, 24 May 2003 08:42:21 -0500

Yes I have winxp, I'll see if I can find the vxd(s) for you.

Will

On Sat, 24 May 2003 09:39:54 -0400 (EDT)
Jeff Muizelaar <address@hidden> wrote:

> 
> 
> On Fri, 23 May 2003, Manuel Jander wrote:
> 
> > Hi everyone,
> >
> > I updated the CVS. Mostly bug fixes and cleanups.
> 
> I reverted your changes to acinclude.m4 and toplevel.config.in with the
> assumption that they were accidental.
> 
> Was all of this intentional?
> 
>      int temp, lifeboat=0;
>      //int this_8[NR_ADB] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; /* position */
>       int     this_4=0x2;
> -    /* f seems priority related.
> -     * CAsp4AdbDma::SetPriority is the only place that calls SetAdbCtrl with 
> f set to 1
> -     * every where else it is set to 0. It seems, however, that 
> CAsp4AdbDma::SetPriority
> -     * is never called, thus the f related bits remain a mystery for now.
> -     */
> 
>      do {
>               temp = hwread(vortex->mmio, VORTEX_FIFO_ADBCTRL + (fifo << 2));
> -             if (lifeboat++ > 0xff)
> +             if (lifeboat++ > 0xff) {
> +                     printk(KERN_ERR "Vortex: vortex_fifo_setadbctrl 
> fail\n");
>                       break;
> +             }
>      } while (temp & FIFO_RDONLY);
> 
>       // AU8830 semes to take some special care about fifo content (data).
> @@ -710,7 +711,11 @@
>               if (!(temp & FIFO_VALID)) {
>                       //this_8[fifo] = 0;
>                       vortex_fifo_clearadbdata(vortex, fifo, this_4);
> +#ifdef CHIP_AU8820
>                       temp = (this_4 & 0x1f) << 0xb;
> +#else
> +                     temp = (this_4 & 0x3f) << 0xc;
> +#endif
>                       temp = (temp & 0xfffffffd) | ((b & 1) << 1);
>                       temp = (temp & 0xfffffff3) | ((priority & 3) << 2);
>                       temp = (temp & 0xffffffef) | ((valid & 1) << 4);
> @@ -718,24 +723,20 @@
>                       temp = (temp & 0xffffffdf) | ((empty & 1) << 5);
>  #ifdef CHIP_AU8820
>                       temp = (temp & 0xfffbffff) | ((f & 1) << 0x12);
> -#endif
> -#ifdef CHIP_AU8830
> +#else
>                       temp = (temp & 0xf7ffffff) | ((f & 1) << 0x1b);
>                       temp = (temp & 0xefffffff) | ((f & 1) << 0x1c);
>  #endif
> -#ifdef CHIP_AU8810
> -                     temp = (temp & 0xfeffffff) | ((f & 1) << 0x18);
> -                     temp = (temp & 0xfdffffff) | ((f & 1) << 0x19);
> -#endif
>               }
>      } else {
> -             if (temp & FIFO_VALID)
> +             if (temp & FIFO_VALID) {
>  #ifdef CHIP_AU8820
>                       temp = ((f & 1) << 0x12) | (temp & 0xfffbffef);
>  #else
> -                     temp = ((f & 1) << 0x1b) | (temp & 0xe7ffffef) | 
> FIFO_BITS;
> +                     temp = (temp & 0xf7ffffef) | ((f & 1) << 0x1b);
> +                     //temp = ((f & 1) << 0x1b) | (temp & 0xe7ffffef) | 
> FIFO_BITS;
>  #endif
> -             else
> +             } else
>                       /*if (this_8[fifo])*/ vortex_fifo_clearadbdata(vortex, 
> fifo, FIFO_SIZE);
>       }
>       hwwrite(vortex->mmio, VORTEX_FIFO_ADBCTRL + (fifo << 2), temp);
> 
> > Regarding the SRC issue: I not getting the CHip'n Dale bug anymore, but i
> > didn't actually solve the bug. I changed the adb allocator a bit, so ADB
> > channel 0
> > isnt being used. Any other channel semes to work well except adb channel
> > 0 !?
> 
> Weird...
> 
> Some more info on src_setupchannel based on information from the binary
> driver.
> 
> The following are the only possible values that the function is called
> with. (unless it does uses function pointers, or I accidentally missed
> any..)
> 
> 1: edx, cvr:0x2c(esp), b:0, c:0, d:0xc(edx), e:1, f:0, g:0x14(esp),
> thsource:1
> 2: edx, cvr:0x2c(esp), b:0, c:0, d:0xc(edx), e:1, f:0, g:0x14(esp),
> thsource:1
> 3: edx, cvr:0x2c(esp), b:0, c:0, d:0xc(ebx), e:0, f:0, g:0x14(esp),
> thsource:0
> 4: ebp, cvr:0xc(ebx), b:0, c:0, d:0xc(ebx), e:0, f:0, g:0x14(esp),
> thsource:0
> 5: ebp, cvr:0x2c(esp), b:0, c:0, d:0xc(ebx), e:0, f:0, g:0x14(esp),
> thsource:0
> 
> Anyways it looks like thsource is always equal to e(dirplay).y
> 
> The most interesting call is 4. where cvr = 0xc(ebx) as does d...
> 
> 
> I have also taken my first thorough look into the windows drivers.
> I used IDApro for disassembly and it appears to quite a nice job, although
> not having symbols and what looks like excessive inlining makes things
> alot more exciting...
> 
> Additionaly, I started work on a vxd backend for libbfd (the library used
> by objdump, the linker etc.) Currently it can load the file and seperates
> the sections. However, there are still code/data sepeartion problems as it
> seems most of everything is all in one section...
> Aditionally it cannot write out anything useful yet, and the code is a
> mess.
> 
> I also took a brief look at an old copy of the 4front oss drivers I had
> around. They look quite similar to the other linux drivers and have
> symbols.
> 
> Does anyone have a copy of winxp? It sounds like they have rewritten
> drivers and would also be interesting to look at.
> 
> All the drivers I have looked at seem to be based somewhat on the same
> source base. Maybe no decent hw specifications were ever made... :)
> 
> -Jeff
> 
> 
> 
> _______________________________________________
> Openvortex-dev mailing list
> address@hidden
> http://mail.nongnu.org/mailman/listinfo/openvortex-dev
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]