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)