On Mon, 17 Jun 2002, Ladislav Michl wrote: > i'd like to release GIO64 bus support. Before doing so DBE/IBE handling > should be done in the same fashion for both mips and mips64 (*). Currently > mips is using handler in handler via dbe_board_handler and ibe_board_handler > which are not used anywhere while mips64 is using BUILD_HANDLER macro defined > in include/asm-mips64/exception.h (see arch/mips64/sgi-ip27/ip27-dbe-glue.S) > Unfortunately I have nearly zero knowledge of MIPS assembler, so I'm > unable to code mips way same as mips64 is... Help from someone more > experienced will be greatly appreciated :-) I'm going to work on unifying and extending the code a bit once I have my 64-bit world running, so don't worry about the divergence between the ports. Don't rely in dbe_board_handler and ibe_board_handler -- they are system-specific backends that shouldn't be touched unless you want to handle the exceptions in a system-specific way (e.g. to report ECC errors from a memory controller). Also expect the handlers to get rewritten so that search_dbe_table() gets invoked unconditionally, before a system-specific backend. > (*) How GIO device detection works? each IP22 machine contains three GIO bus > slots. GIO device provides information about itself in first (three) word(s) > of address space it occupies. The only way how to detect GIO card is > trying to read word from it's base address. If DBE exception is generated > then there is definitely no card present, otherwise read value encodes > information about device. Use get_dbe() from <asm/paccess.h> for reading data with an additional DBE status. For a simple example see drivers/mtd/devices/ms02-nv.c. The macro is used in a somewhat more complex way in drivers/tc/tc.c as well -- this bit of code fits your situation quite closely (here probing TURBOchannel bus slots). The macro works in modules as well. -- + Maciej W. Rozycki, Technical University of Gdansk, Poland + +--------------------------------------------------------------+ + e-mail: macro@ds2.pg.gda.pl, PGP key available +