Date: Thu, 6 Apr 1995 21:05:16 +1000 From: Bruce Evans <bde@zeta.org.au> To: bde@zeta.org.au, jkh@freefall.cdrom.com Cc: ache@astral.msk.su, freebsd-current@freefall.cdrom.com, rgrimes@gndrsh.aac.dev.com Subject: Re: Strange kernel printf... Message-ID: <199504061105.VAA18008@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>Hmmmmm. Would it be useful to have config changed to: >1. Generate arrays of allocated addresses, IRQs (are there any devices > made that more than one?), DMA channels, etc. where it currently holds > only a single value. Config already seem to handle this reasonably: device foo0 at isa? port 1 iomem 2 iosize 3 drq 4 irq 5 vector foointr device foo0 at isa? port 6 iomem 7 iosize 8 drq 9 irq 10 You can repeat everything except the vector and a reasonable arrays are built. >2. Accept a somewhat altered config file specification: >device <foo> at <bus>[#|?] port <port>[,<port> ..] irq <irq>[,<irq> ..] drq <drq>[, <drq> ..] > [conflict_ok <conflict_type>[, <conflict-type> ..]] Although repeating the device lines is a hack, its syntax is simpler and exactly matches the data structures that should be built, at least in ioconf.c (you wouldn't want variable length arrays or linked lists). >Where "conflict_ok" would take arguments like "iomem, irq, drq, etc." >to enable bits in an "allowed conflicts" mask. This would eliminate >the ALLOW_CONFLICT_* horrors I inflicted upon the code many months ago. I don't like this. Conflicts need to be resolved at runtime. The static conflict checking code in isa.c should go away and be replaced by calls such as register_iobase(iobase, iosize, id, flags); There should be flags for exclusive access and for preventing exclusive access by other drivers. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199504061105.VAA18008>