On Fri, 24 Aug 2001, Gleb O. Raiko wrote: > > Well, other system might as well (e.g. DECstations can), but that doesn't > > solve the problem -- to access firmware variables you need to know which > > kind of firmware you are on. > > No way at run-time. You have to choose the box during compilation in > order to supply linker with proper load address. Does your firmware have a fixed load or entry address? If so, it begs for a position-independent boot loader (but not PIC in the ELF sense) -- something like aboot for Alpha that can interpret ELF and optionally unzip an image beforehand (aboot can't probably execute anywhere, though, as I don't think gcc is able to emit such code). Workstation/server class firmware can usually deal with arbitrary load and entry addresses, but it requires defining an interface to pass these values to the firmware and certainly you don't have to put a kitchen sink into every piece of firmware, especially for lightweight systems. Maciej -- + Maciej W. Rozycki, Technical University of Gdansk, Poland + +--------------------------------------------------------------+ + e-mail: macro@ds2.pg.gda.pl, PGP key available +