Behaviour of arch_initcall macro
I always thought that the arch_initcall and the other *initcall stuff registered functions called at a startup of the kernel.
I have compiled my own kernel which contains certain driver (not compiled as a module). Source code of this driver (arch/powerpc/sysdev/ppc4xx_gpio.c) provides an initialization function (registered with arch_initcall) that must be called in order to work with the GPIO hardware. My problem is that this function isn't called at the start of the system. When I compile this driver as a module (*.ko file) and insert it to the kernel with insmod, everything is ok, the function is called properly and the hw gets initialized.
So, my question is - are there any situations (e.g. kernel configuration), when the macro arch_initcall is ignored?
Kernel: 2.6.30 from Denx distribution for powerpc. But I think this is not so important, because of character of my question.