Porting Embedded Linux on ARM core Arivendu Bhardwaj, Project Engineer Abstract In the realm of Embedded technologies, ARM (Advanced RISC Machine) is very popular- and growing stronger- amongst the embedded CPUs. According to Wikipedia.org, around 70% of all, 32 bit embedded CPU’s are based on ARM architecture. Its usage is growing in cell phones, PDA’s, GPS devices and even RFID systems. The Embedded modules, and also those based on ARM, are very complex and are meant to support varied tasks such as memory management, process management and peripheral interfaces. For seamless integration of these functional modules, an OS has to be ported on these ARM based CPUs. Traditionally, this OS porting is often the specialized, work of third party vendors, having expertise in this domain, because for every new CPU architecture, the OS has to be customized, compiled and burnt into the core. With the coming of age of Linux as an embedded OS, all this has changed quite significantly. Being in Open Source domain, Linux kernel can be freely downloaded and compiled for, a CPU architecture, and this includes ARM too, thus enabling the developers to port the OS themselves. This technical paper elaborates upon the challenges and approach towards the porting of embedded Linux on ARM core. It sheds light on the need to go through the Kernel boot sequence, identifying places where the platform dependent handles are required, and the board’s Boot Loader debug. I’ve also tried to cover, Firmware to Kernel transition, early Kernel Init, IRQ Setup, Core Subsystem initialization and final board Initialization.