On Fri, 27 Jan 2006 20:13:06 -0800, Daniel Gimpelevich wrote:
> On Fri, 27 Jan 2006 17:06:04 -0500, Raylynn Knight wrote:
>> n Wed, 2006-01-25 at 21:32 -0800, Daniel Gimpelevich wrote:
>>> On Wed, 25 Jan 2006 23:35:34 -0500, Raylynn Knight wrote:
>>> > Swim I and II support was added in the last year, coded by Laurent
>>> > Vivier. The driver your talking about is the swim_iop driver used by
>>> > the IIfx, and the Quadra 9x0 systems. It was never completed.
>>> Not having looked at the driver source, I was under the impression that
>>> swim_iop was part of an overall swim driver. Can you point me to an
>>> HTMLized source to the new driver you mean à la
>>> http://lxr.linux.no/source so that I may take a look? I am quite fluent in
>>> m68k assembly language.
>> http://cvs.sourceforge.net/viewcvs.py/linux-mac68k/linux-mac68k/drivers/block/Attic/swim_driver.c?rev=184.108.40.206&only_with_tag=linux-2_2&view=auto points to the C source file. And http://cvs.sourceforge.net/viewcvs.py/linux-mac68k/linux-mac68k/drivers/block/Attic/swim_asm.S?rev=220.127.116.11&only_with_tag=linux-2_2&view=auto
>> points to the assembly language routines used in the C source. It would
>> be great if someone could provide PPC assembly routines and forward port
>> this driver to 2.4 and 2.6 kernels.
> This is the first time I have seen assembly language source for m68k
> Linux, and it appears that the GNU assembler for m68k uses different ways
> of specifying instruction mnemonics and addressing modes from what I am
> used to. Nevertheless, I was able to make perfect sense out of the code.
> Unfortunately, I only have passing knowledge of PPC assembly language, so
> I wouldn't be able to port it to that. I was hoping to port it to C
> instead, but having now seen the code, I can tell you that is not going to
> happen. The C language simply does not provide mechanisms to exactly
> duplicate what this code is doing. If anyone is well-versed in writing I/O
> code in PPC assembler (not just general PPC assembly coding) but doesn't
> know m68k assembly language, I will be glad to provide real-time analysis
> of this code to aid them in writing equivalent PPC assembly code. The only
> problem I foresee is concocting ways of duplicating the m68k
> architecture's exact instruction timing and read-modify-write cycles, etc.
OK, I figured I ought to take a stab at it anyway. Here is a best
approximation in C of the assembly code: