EM2440-III Processor and Hardware Background
1. Processor Overview
The EM2440-III is an ARM9-based embedded development board built around the Samsung S3C2440A 32-bit RISC processor. The processor uses the ARM920T core and is typically operated at up to 400 MHz on the EM2440-III platform.
The S3C2440A was designed for low-power embedded applications and integrates several peripherals required for embedded system development. The ARM920T core includes an MMU and separate instruction and data caches, making the processor suitable for embedded Linux systems.
Key Processor Characteristics
| Feature | Description |
|---|---|
| Processor | Samsung S3C2440A |
| CPU Core | ARM920T |
| Architecture | ARM9 / 32-bit RISC |
| Typical CPU Frequency | Up to 400 MHz |
| MMU | ARM920T MMU |
| Cache | 16 KB Instruction + 16 KB Data |
| Bus Architecture | AMBA |
| Target Applications | Embedded Linux, industrial control, handheld devices |
The S3C2440A integrates a wide range of peripherals, including memory controllers, UARTs, USB, LCD controller, GPIO, ADC, timers, PWM, RTC, I2C, I2S, SPI, SD/MMC and camera interfaces. The exact peripherals available on the EM2440-III depend on how the board exposes and connects them.
2. EM2440-III Hardware
The EM2440-III is built around the S3C2440A and provides the supporting memory and peripherals required for a complete embedded Linux platform.
Typical board configurations include:
Samsung S3C2440A ARM920T @ 400 MHz
64 MB or 128 MB SDRAM
64 MB to 1 GB NAND Flash, depending on configuration
2 MB NOR Flash
Ethernet interface using the DM9000 Ethernet controller
USB Host/Device interfaces
UART interfaces
LCD interface
SD/MMC interface
Camera interface
Audio interface
GPIO
ADC
RTC
JTAG debugging interface
These specifications are documented by the EM2440-III manufacturer.
3. Relationship Between MINI2440 and EM2440-III
The Linux kernel already contains support for the MINI2440/SMDK2440 platform, which provides a useful starting point for the EM2440-III port.
The two platforms are based on the same Samsung S3C2440A processor, and therefore a significant portion of the processor-level support can be reused.
However, the EM2440-III has a different board-level hardware configuration and memory layout. Consequently, the existing MINI2440/SMDK2440 board support cannot necessarily be used without modification.
The main areas that need to be reviewed during the port include:
Memory map
SDRAM configuration
NAND Flash configuration
NOR Flash configuration
System clock
GPIO assignments
UART configuration
Ethernet configuration
LCD configuration
Machine type
Board-specific initialization
Device drivers
This is why the existing SMDK2440/MINI2440 support is used as a starting point, rather than treating the EM2440-III as an identical board.
4. Where to Get the Processor Documentation
The most important reference document for low-level development is the Samsung S3C2440A User's Manual / Datasheet.
It provides information about:
CPU architecture
Memory controller
Address map
Clock and power management
GPIO
UART
NAND controller
NOR Flash interface
USB
LCD controller
ADC
Timers/PWM
I2C
SPI
SD/MMC
Interrupt controller
DMA
Camera interface
A copy of the S3C2440A User's Manual is available through several archival/documentation sources.
Recommended reference:
S3C2440A User's Manual – Keil document archive
For historical Samsung documentation, the Internet Archive/Bitsavers collection also contains S3C2440 documentation, including the S3C2440A hardware design guide and user manuals.
5. Where to Get EM2440-III Board Documentation
The EM2440-III hardware documentation should be used together with the S3C2440A processor manual.
The manufacturer's documentation includes:
EM2440-III Hardware Manual
S3C2440A Datasheet
PCB dimensions
Linux installation/burning guide
Windows CE installation/burning guide
LCD documentation
Expansion-module documentation
The manufacturer's EM2440-III page provides these documents and board specifications.
Recommended board reference:
Manufacturer/product documentation:
EM2440-III Product Documentation
6. Source Code and Linux Support
For the Linux port, the following sources are useful:
Linux Kernel
The original Linux kernel source can be obtained from:
For this port, the original documentation refers to Linux 3.0.4.
Existing S3C2440 Board Support
Within the Linux source tree, the following directories/files are particularly relevant:
arch/arm/mach-s3c2440/
arch/arm/plat-s3c24xx/
arch/arm/configs/
arch/arm/tools/mach-types
The MINI2440/SMDK2440 board support can be used as the initial reference implementation.
7. Recommended Documentation Set
For anyone maintaining or continuing the EM2440-III Linux port, the following documents should be kept together:
S3C2440A User's Manual
Processor architecture and peripheral programming.
EM2440-III Hardware Manual
Board-level memory map, peripherals, connectors and hardware configuration.
EM2440-III Schematics
Exact GPIO, memory, NAND, Ethernet and peripheral connections.
Linux Kernel Source
Existing S3C2440/MINI2440/SMDK2440 board support and drivers.
Bootloader Source/Documentation
Machine type, boot arguments, memory initialization and kernel loading requirements.
NAND Flash Datasheet
Device geometry, timing and NAND controller configuration.
SDRAM Datasheet
Memory organization, timing and initialization parameters.
8. Hardware-to-Linux Porting Approach
A useful way to approach the EM2440-III port is to work from the hardware documentation toward the Linux board-support code:
EM2440-III Schematic
|
v
S3C2440A Memory / Peripheral Map
|
v
Board Hardware Configuration
|
v
Existing MINI2440 / SMDK2440 Support
|
v
Board-Specific Linux Changes
|
+---- Clock
+---- Memory
+---- NAND
+---- GPIO
+---- Ethernet
+---- LCD
+---- UART
+---- Other peripherals
|
v
Kernel Build
|
v
Bootloader
|
v
EM2440-III Hardware Testing
This approach makes it easier to distinguish processor-specific code from board-specific code. The S3C2440A processor support can largely be reused, while the EM2440-III-specific hardware configuration must be verified against the board schematic and hardware manual.
No comments:
Post a Comment