[OpenBIOS] Dictionary size limit per device instance

David L. Paktor dlpaktor at netscape.net
Wed Aug 22 10:17:55 CEST 2007


Stefan Reinauer wrote:
> Dear Äsif
>
> * Asif Haswarey <asif.haswarey at qlogic.com> [070822 01:06]:
>   
>> Does anyone happen to know what the dictionary size upper limit
>> (for openbios) is hardcoded to per device instance?
>>     
>
> If I remember correctly there is no limit per device instance, but
> during bootstrap the dictionary size is limited to 256k:
> kernel/bootstrap.c:#define DICTIONARY_SIZE (256*1024) /* 256k for the dictionary */
> and I think that value applies for the ports, too.
>
> It's just an arbitrary numbers, we chose it a couple of years ago
> when 256k was the usual size of system flash roms, so the resulting
> openbios would always fit in a such a small chip with LinuxBIOS and
> a compressed OpenBIOS payload.
>
> Stefan
>   

Well, Flash ROMs certainly have expanded since then!  I understand that
sizes of 8 or 16 Meg are commonplace now, and that 4 Meg sizes are now
considered obsolete (or at least, obsolescent) and that 8 Meg-gers are 
heading
rapidly in that direction!

You might want to browse around the Sun sources.  What happened there,
basically, was that, after the image in ROM was decompressed into memory
and when FCode probing took place, the only real limits on dictionary size
were the amount of physical memory and the difference between the start
of the dictionary and the top of the address space!

There was a variable called LIMIT which marked the end of memory that
was currently allocated for, and mapped to, the dictionary's address-space.
The word ALLOT had a clause that tested for the requested allotment going
past LIMIT, and, if needed, would "just" allocate and map a large chunk of
more memory that would last for a while....

With that arrangement, the amount of dictionary space available to plug-in
device drivers was virtually unlimited!

-- 

David L. Paktor             dlpaktor at netscape.net




More information about the OpenBIOS mailing list