EmCraft did a pretty gooduCLinux port to the LPC1788 devices and has added support for the Embedded Artists board. I had a chance to try this out last week and will give some (quick) thoughts on it here. I hope this doesn't sound like a review.
The version tested was 1.3.0 (emCrafts packaged release version). This version covers the core features of the LPC17xx devices and includes patches and build procedures for u-boot, the kernel, and some applications. The build is based on the Code Sourcery Lite tools, which you'll have to download separately from <a href="http://www.mentor.com/embedded-software/codesourcery" target="_blank">Mentor Graphics</a> site. I tested the build on a dedicated Linux machine running Ubuntu 10.04, although other versions or even a VM should work fine. The EmCraft LPC1788 port is <a href="http://www.emcraft.com/index.php/products/88">here</a>.
Most of the core CPU devices are supported in the v1.3.0 release - this includes the NVIC, MPU, system tick, and other CPU specific. Other devices supported incude the serial ports and ethernet MAC controller. Board specific functions include NOR FLASH via the MTD layer and the ethernet PHY.
Some of the devices - USB, SD, LCD controller - aren't there yet, but we'll probably see these devices available soon.
The documentation consists of a BSP guide specific to the Embedded Artists LPC1788 board, a Linux Cortex-M User's manual, and the release notes. The User's manual explains the process of installation, where to get and install the Code Sourcery tools, and how to build and deploy the images to the board. The build process requres first running a script to setup smoe basic environment variables and then typing make in the one of the project folders. One of the projects - networking - builds an uncompressed kernel image (uImage) with the busybox application (and root filesystenm as a single image) using initramfs.
u-boot is based on the 2010.06 source code and the default image runs out of internal FLASH and uses internal RAM for primary memory storage. It initializes DRAM, which is used for loading of larger applications (ie, the kernel or ramdisk images). As of this release, u-boot supports the network interface, NOR FLASH, and DRAM. <em>As of this release, NAND FLASH and internal FLASH were not supported, but should be easy to add. Optionally, the <a href="http://www.lpcware.com/content/project/lpc177x8x-u-boot-port" target="_blank">2011.06 u-boot port</a> may be used which runs in DRAM and supports internal FLASH, ethernet, and NAND FLASH, but not NOR FLASH.</em>
Programming u-boot into the board was a breeze, requiring only the FLASH Magic utility with the generated hex file. Console output was via the UART on the serial USB interface. Environment variables are saved in NOR FLASH.
u-boot came right up after prograaming in internal FLASH and resetting the board. Bootup time was very fast. The first time you run u-boot, you'll get a message about using the default environment (the output from the boot cycle above doesn't show this). You can do a 'saveenv' command to save the default u-boot parameters in NOR FLASH.
Overall, u-boot was stable and functional. Some of the convience capabilities of u-boot such as command line history, command shortcuts, and the ping command are not part of the default configuration, but can be added to u-boot by placing the CONFIG_ options in the board's u-boot config file and re-building the image.
The 2.6.33 kernel source with a set of patches is used to kernel image. A pre-built kernel configuration is used to build the LPC1788 specific kernel image (this is actually a multi-board image, with a kernel boot line argument selecting which board configuration to use at run-time). The default kernel configuration and image supported networking and seemed to work fine. Response was faster than uCLinux running on the LPC2000 and the kernel was very stable - no crashes or problems were noted during use - this is good! Once the kernel was started, the boot time was very fast (about 1 second from the first kernel message to the busybox prompt!).
Here is a boot sequence of the default build from the start of the bootm command in u-boot to to the busybox prompt. Note the kernel image size (2MB) is an uncompressed size and includes the initramfs image.
I said this was going to be quick, so I'm going to stop here for now. My general impression is that what's there now is pretty good. The performance is surprising for a smaller part (and lots of experience with MMU/cache based devices). I hope to see some of the other peripheral support available soon!