>> Somewhere, at some point, prior to VM setup, we need to forcibly map >> virtual to physical addresses. These are going to be "hard coded" >> mappings, that's exactly how ioremap_bot is set. This is why >> io_block_mapping was created in the first place. Somehow you have >> to specify this mapping before you have a VM allocator to give it to >> you. :-) > > No, you just need to have ioremap_bot (which is in fact "top" not > "bottom", bad naming) initialized to something sane. This is currently > done in MMU_init() but could probably be initialized statically > instead. > I do just that on ppc64 and thus can ioremap at any time without > needing > to allocate vmalloc space. The vmalloc space is automatically "cap'd" > by > ioremap_bot anyway.
Can one of you explain why this is necessary. I believe it I just dont understand. I think this is one of the abuses of io_block_mapping(). People, myself included, realize some of the caveats implied by calling io_block_mapping(). - kumar