Hi, I am trying to port a machine based on arm926 with MMU, having 64MB of RAM.
I am trying to understand the difference between: machine specific static I/O mappings which are done via iotable_init() (done via callback .map_io in DT_MACHINE_START) and dynamic I/O mappings done via ioremap() In the kernel docs/mailing list, I have encountered a statement which states: "with machine specific static I/O mappings which are done via iotable_init(), registers can be mapped at the upper end of vmalloc area so that one can use as little of the VA space as possible so vmalloc and friends have a better chance of getting memory" I am writing board initialization C file and got stuck at .map_io callback function, whether to define it or not. If yes, under what scenario should I do it now-a-days I think less boards are using iotable_init(). (is this defunct) ? I might be wrong here Can't I use ioremap and do dynamic mappings when ever required via device tree ? If I do so will I encounter any problems with vmalloc area. Thanks & Regards -- Suniel Mahesh