Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 02 Jun 1999 16:00:19 -0600
From:      "Justin T. Gibbs" <gibbs@plutotech.com>
To:        "Christopher R. Bowman" <crb@ChrisBowman.com>
Cc:        "Justin T. Gibbs" <gibbs@plutotech.com>, freebsd-scsi@freebsd.org
Subject:   Re: Support for Symbios vs. Adaptect SCSI 
Message-ID:  <199906022210.QAA32101@pluto.plutotech.com>
In-Reply-To: Your message of "Wed, 02 Jun 1999 17:59:25 EDT." <199906022200.SAA32326@quark.ChrisBowman.com> 

next in thread | previous in thread | raw e-mail | index | archive | help

>>The scripts syntax is somewhat obtuse, but I guess it would suffice.  The
>>main additional feature I'd want in the assembler is the ability to 
>>easily designate condition portions of the script that can be independently
>>patched in.  Take a look at the sys/dev/aic7xxx/aic7xxx.seq and the output
>>from aicasm in sys/compile/KERNAME/aic7xxx_seq.h for an idea of the
>>patching capability I'd want.
>
>Ok I read through some of it, but I don't get how the symbols are relocated.
>
>I mean I see how the sequencer script is assembled by your assembler, and I
>think I understand how you have implemented what amounts to a run time 
>dropping of certain instruction from being downloaded to the chip using
>conditional statements executed at download time.  What I don't understand
>is how are the assembly labels fixed up when instructions are dropped from
>being download to the chip due to this conditional situation.

Each instruction that references an address has that address re-calculated
at download time to take into consideration the instructions that are
not going to be included in the runtime load.  So, a jump instruction starts
out with an address relative to all instructions assembled.  When the 
instruction is downloaded, we subtract the number of instructions discarded
'before it' from the original address.  Take a look at ahc_download_instr()
for details.

--
Justin



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-scsi" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199906022210.QAA32101>