1,885
edits
Changes
→How Computing with ARM is Different from Computing on a PC
Since u-Boot is stored in flash memory, a failure during the programming of the flash memory may leave a device in an unbootable and non-updatable state ("bricked"). In this state, the only option for reprogramming the flash memory is to use a low-level chip-testing technology known as IEEE 1149.1 or [http://en.wikipedia.org/wiki/IEEE_1149 JTAG] (from the ''Joint Test Action Group'' which created the standard). Almost all modern semiconductor devices feature a JTAG port for testing during manufacture; many ARM devices provide access to this port for unbricking. On the GuruPlug, JTAG access is provided through the same external adapter used for console access.
=== Storage ===
Although ARM devices can use normal mechanical disk drives, most use [http://en.wikipedia.org/wiki/Flash_memory flash memory]. Flash memory is non-volatile, consumes little power, and is quite fast for reading, but most types of flash have a limitation of as little as 10,000 write cycles and may be slow for writing. Expandable storage is often provided in the form of [http://www.sdcard.org/home/ SD] or microSD cards.
In order to accommodate the performance characteristics of flash memory, the Linux kernel provides the [http://www.linux-mtd.infradead.org/ MTD] (Memory Technology Device) subsystem, as well as the [http://www.linux-mtd.infradead.org/doc/ubi.html UBI] (Unsorted Block Image) and [http://www.linux-mtd.infradead.org/doc/jffs2.html JFS] (Journalled Flash File System) subsystems.
= Setting up the GuruPlug =