<div dir="ltr">I&#39;m working on a port the latest Linux kernel to a Nuvoton N32905 - a very inexpensive ARM9 based SoC similar to the Freescale iMX23 in many respects.  My hope is that my code for this SoC will eventually reach the mainline kernel, but the whole process a fairly daunting task to a kernel newbie such as myself.<div><br></div><div>I do have a six year old port of the 2.6.35 kernel to this SoC to help as a reference, but it&#39;s pretty much a rewrite to support devicetree, the common clock framework, and a myriad of changes needed to get a new SoC supported in the mainline kernel.  Not to mention all the 2.6.35 code added for this chip isn&#39;t even close to the coding standards for the Kernel.</div><div><br></div><div>So far I got the 3.17 kernel running pretty well the baseline peripherals such as clocks, interrupt controller, UART, GPIO &amp; pin muxing along with hire level peripherals such as MMC/SD card support, MTD NAND and NOR flash and USB host support.</div><div><br></div><div>As a guide, I&#39;ve been using other ARM SoCs for examples and a number of very useful presentations on ARM SoC support from the Free Electron folks.  Although presentations such as the &quot;ARM SoC Linux Support Check-list&quot; are very useful, they don&#39;t go into much detail.</div><div><br></div><div>My question is two fold.  Is there detailed information of all the things that need to be covered in the code to introduce a new ARM SoC into the kernel?  Then, is there a description of how I start to go about contributing support for this chip into the Linux kernel? I honestly don&#39;t really know where to begin.</div><div><br></div><div>Any advice or pointers would be sincerely appreciated.  </div><div><br></div><div>Mike Thompson<br></div><div><br></div><div>BTW, my git reposity for this SoC is: <a href="https://github.com/mpthompson/linux/tree/n329">https://github.com/mpthompson/linux/tree/n329</a></div><div><br></div><div><br></div></div>