Re: HP9000 K-Series support, howto and diffs

[email protected] (Hellmuth Michaelis) Sat, 1 Nov 2003 11:46:13 +0100 (CET)
Newsgroups gmane.os.openbsd.hppa
Organization Kitchen Table Systems
Message-ID <[email protected]>
Michael Shalayeff wrote:

> > > walk_iomem() is way wrong. IOA is supposed to have it's own driver
> > >     that would handle the issues.
> > 
> > I cannot parse this.
> 
> ok. what is the purpose od walk_iomem() function?

You might want to have a look at the PDC_SYSTEM_MAP documentation in the
PDC manual i referenced in my previous mail, page 4-79 where you find the
algorithm for probing/scanning for devices on parisc platforms.

The very first sentence is "Find monarch processor and memory controller".
On the K, these two items are not found by neither PDC_SYSTEM_MAP nor by 
PDC_MEMMAP (PDC_SYSTEM_MAP does not find these ond others and PDC_MEMMAP
is not supported on that platform). 

Have a look at the "Firmware Objectives Overview" manual, pp 2-2 where
the HPA address space is described. You'll find the sentence "The flex
value for the central bus is always 1022" which documents and nails down
the address at which to start to search for the root in the tree of the
io modules on the central bus.

In case you might be interested, get yourself a copy of the Service 
Manual for the K-Series machines, orderable from HP with the part number 
A2375-90004. I'm referencing Edition 5, June 1998. Have a look at 
chapter Support Information, Figure B-3, p B-4 for a diagram of the
architecture of the K machines where you see the central bus as the
root of the machine (its also interesting as it is the only source
for some address documentation for the K machines which i have found).

So the purpose of walk_iomem() is to initially scan the central bus
to get the memory controller, cpu(s) and IOA's from where to scan
further down the tree to get everything else possible.

With the exception of that it might not be ok to call walk_iomem()
recursively (but go down with all sorts of other scans down the tree),
i can currently not see "walk_iomem() is way wrong".

And, my goal was not to produce the last word in bugfree probe
code for the hppa arch and it was not to play guessing games 
afterwards and it was not to possibly insult egos of anyone who 
had put much work into the support of this architecture before, 
but to get support for the K's a bit further.

After i made all this work of documenting what i did just and only 
because of _you_ were several times requesting to get my work, i 
think it would be polite if you would tell me exactly what is wrong
and why its wrong instead of just shooting me down. Thank you!

hellmuth
-- 
Hellmuth Michaelis      Hamburg, Europe      hm\at\kts\dot\org      www.kts.org
a duck is like a bicycle because they both have two wheels except the duck (tl)