Print this page

NetBSD support for the Mini2440

The FriendlyArm Mini2440 is a Single Board Computer based on the Samsung S3C2440 ARM9 CPU. It comes with either 64 MB of RAM and either 64MB or 128MB NAND Flash, and features 2MB NOR flash. For the full specs see the Mini2440 webpage at FriendlyArm.
Linux supports all features of the Mini2440, however, as far as I have found, no BSD systems have good support for the Mini2440. This project is an attempt to remedy this and learning some low-level programming at the same time. For this reason all code is written from scratch or based on existing NetBSD code, rather than trying to port the Linux code.
The basic support for the Samsung S3C2440 is based on the current S3C2410 in NetBSD, while the Mini2440 board support is based on the SMDK2410 board support code.
The code has been integrated in the NetBSD CVS repository. For information on how to run NetBSD on the Mini2440-board, and various tips and tricks see  Mini2440 NetBSD Howto.

Supported Features 

The table reflects that status of netbsd-current.

Feature  Status
Basic support for S3C2440

Done, boots both QEMU and real hardware.
Profiling works, but there seems to be a bit of a problem with the stat timer. 

S3C2440 UART
Done
DM9000 (MAC+PHY)

Done. Driver is "dme". 

S3C2440 SD Controller

Done:

  • Supports SD/SDHC memory cards.
  • DMA transfers are supported.
  • Wide bus transfers are supported.
S3C2440 DMA Controller

Done: Supported well enough to use for transfers to/from the SD cards and the I2S bus:

  • One transfer per DMA channel a time, i.e. no queueing.
  • Byte, half-word, and word transfers are supported.
  • Only unit transfers, i.e. no burst 4 mode support.
  • Timeouts when waiting for transfers to complete.
  • Transfers can be aborted.
S3C2440 IIS Bus
Simple interface which supports playback and recording in Master mode only.
S3C2440 NAND Flash Controller Not Supported. Work in Progress
S3C2440 NOR Flash Not Supported. Work in Progress
S3C2440 LCD Controller
The S3C24x0 driver in netbsd-5 drives the LCD controller of the S3C2440 as well. The driver does, however, need some work.
FriendlyArm 7" LCD
Not Supported
FriendlyArm 3,5" LCD
Supported, but timings are not completely correct.
LCD Backlight Control Not supported
PWM Buzzer Not supported
S3C2440 USB Host Controller
OHCI, works out-of the box with NetBSD OHCI drivers.
S3C2440 USB Device Controller
Not Supported
S3C2440 Touchscreen
Basic driver that provides a wscons mouse device and uses tpcalib for calibration.
A simple averaging filter is used to improve readings, which is a bit primitive. 
UDA1341TS (audio codec)
Supports playback, recording and most of the mixer controls.
S3C2440 RTC

Done  

IIC Not supported
256byte EEPROM store Not supported
6 position push buttons Not supported
4 LEDs Not supported

 

 

Old Patches

 

All code is integrated in NetBSD's CVS repository. These patches are obsolete, they are still listed here for completeness only. 

mini2440-20091028.patch
  • Initial patch which adds support for booting the Mini2440 (64MB version only) , UART, and a primitive DM9000 driver. 
  • Applies cleanly against netbsd-5.
mini2440-20091125.patch
  • Added support for the S3C2440 SD Controller and partial DMA support (enough for SD). 
  • The DM9000 driver was renamed to 'dm9000nic' to avoid name clashes with the device-mapper ('dm'). 
  • Applies cleanly against netbsd-5.
mini2440-20091228.patch
  • Fixed a bug in the DM9000 driver causing problems with transmitting data with a size not dividable by two. 
  • Generally improved the debug-output of the DM9000 driver.
  • DMA transfers can now be aborted, which gives a slightly more robust SD driver.
  • DMA transfers can be given a timeout when waiting for them to complete.
  • Replaced __set_cpsr_c with an assembly version in order to get profiling working. mcount was calling __set_cpsr_c, which in turn was calling mcount.
  • Applies cleanly against netbsd-5.
mini2440-20100108.patch
  • Added a simple driver for the S3C2440 touch controller.
  • Hacked S3C24x0 LCD controller driver to support HPCFBIO_GCON and WSDISPLAYIO_LINESBYTES ioctls.
  • Added display driver for the MINI2440 3,5" LCD display (NEC NL2432HC22)
  • Added event counting to the S3C2xx0 interrupt driver.
  • Applies cleanly against netbsd-5.

 


Modified: Tue 14-Feb-12 03:54:15 PST