Hello Morcillo,
Well you have asked a very big and general question so probably the answer will be general as well. I don't know how much experience in electronics and software you have so if I will write something that won't be clear for you just post me for explanation and if I will write something that is clear for you then forgive me but I don't know nothing about your knowledge.
First you must to define the most general features of the project which will limit of possibilities of choosing the hardware. I mean the price and the market. The market is important as well because you will use different components for military / aerospace market and different ones for toys market. When you will have answer for those question you must to specify the project requirements and try to search components that will match them. This requirements should be as well regarding the software. I am assuming that you (your team) have already checked that embedded Linux meets your needs.
Lets go to the platform. You can find a list of supported architectures by given linux OS. And the OS producer probably will write in specification what is the minimal footprint for this OS and how much RAM memory does it need. There are Linux systems that are working on MMUless platforms. You can find many different Linux based operating systems.
You are asking how you can make the external RAM and flash to be accessed directly, without an specific routine. I am not sure what do you mean by that.
If you will have chosen a platform for given OS then you must to read following documentations which will help you most:
- the datasheet, schematics and PCB design of some board development kit made by any well know producer - this will give you general information about what you will need for designing the system
- the datashees of the microprocessor / microcontroller for more information about its peripherals and how to connect external chips to the processor
- the datasheet of memory chips (if it supports external memory) so you will have information about how to eventually increase or decrease the memory size, chose another chips or route tracks to those chips (which really won't be easy if it has DDR type memory!)
Generally the requirements for the hardware are: CPU architecture (for example ARM7, ARM9, PowerPC etc.), RAM and Flash size. In case of other peripherals then you must to watch for the drivers or write them by yourself.