RFC: Deprecating io_block_mapping
kumar.gala at freescale.com
Wed May 25 12:30:32 EST 2005
On May 24, 2005, at 9:21 PM, Benjamin Herrenschmidt wrote:
> On Tue, 2005-05-24 at 21:17 -0500, Kumar Gala wrote:
>> On May 24, 2005, at 8:30 PM, Benjamin Herrenschmidt wrote:
>>> As the subject says ... it's the source of endless headaches, is
>>> a way that often prevents moving TASK_SIZE freely, etc etc etc...
>>> What are the good and unavoidable uses of it currently that cannot
>>> replaced by some sort of ioremap ?
>> Do you propose to fixup ioremap to allocate large page resources (BATs
>> and CAMs) going forward?
> Do we really ever need them for anything but RAM mapping ?
The only case I could thing of are embedded frame buffers across some
bus like PCI. An example would be a image buffer that a printing
application may use.
>>> (Note that if the answer to the above is: page tables exist too
> late, I
>>> already have a reply: our initialisations happen too early, let's
>>> things around so that ioremap is useable... pretty much everything
>>> needed to setup kernel page tables & have working ioremap can be
>>> without any HW device access so ...)
>> Do you have any proposed solution for early console access? I'm
>> guessing that most of the need for early access is for some sort of
>> console (serial) for early debug output.
> How do we implement io_block_mapping() on CPUs without a hash table ?
> need page tables for these so we can have ioremap working. On CPUs with
> a hash, we could just shove entries in the hash... though we may need a
> mecanism to bolt them or convert those mappings to page tables once
> those are available.
I know what I've done in the past is either steal a BAT (83xx) or CAM
(85xx) entry and then free it up when a proper ioremap can be done
>> Also does this mean we would drop ppc_md.setup_io_mappings() complete?
> Does it really make sense ? I always disliked it.
No, as far as a can tell doing a quick glance if we drop
io_block_mapping than we can drop setup_io_mappings().
More information about the Linuxppc-dev