Isn't this done by the interaction between the BIOS and the boards before boot and then just passed on as part of "Plug and Play"? I can't believe that it could be renegotiated by the Linux kernel. We used to have to set jumpers on the boards and then weed out conflicts before PnP came along. You might want to look into the lspci command as a start, as it can list all the io and memory areas.
Hmm, looks like you can do something from user space with "isapnptools" for old boards that need to be hardcoded. See
http://www.linuxjournal.com/article/3269 or google "Linux Plug and Play" for more info.