Activating ARM9 with a working OS » History » Version 4

« Previous - Version 4/6 (diff) - Next » - Current version
Vanč Levstik, 10.12.2010 03:20


Activating ARM9 with a working OS

Basic concept

Hardware


We will be using FRI-SMS 32-bit microcontroller based on AT91SAM9620 chip from ARM9 family. It has fast ROM and RAM memories and embedds Ethernet MAC, one USB Device Port, and a USB Host controller. It also integrates several standard peripherals, such as the USART, SPI, TWI, Timer
Counters, Synchronous Serial Controller, ADC and MultiMedia Card Interface.
More about microcontroller can be found in Manual

Software

For programming the device we will be using AT91 In-System programmer SAM-BA.
We will also use U-BOOT as a second-step bootloader.
Our operating system will be Linux, kernel version 2.6.27.

Installing OS

Concept

FRI-SMS is built, so it boots from integrated ROM memory. It looks for bootloader into serial flash memory, if it is found it loads into internal SDRAM. This first-step bootloader then sets SDRAM controller and loads second-step bootloader(U-BOOT) into external SDRAM end executes it.
Second-step bootloader takes care of other microcontroller settings and runs the OS.

If bootloader is not found in ROM it searches for bootloader thtrough USB interface and then through RS232 interface and waits there in loop.

Loading software into flash ROM memory

  • Installing SAM-BA
    After installing SAM-BA we have to set the drivers correctly. SAM-BA is based on setting connection throuogh COM port, so we have to install a driver which sets the PC, so it recognizes the USB as COM port. SAM-BA install includes a driver, but it does not work on x64
    based operating systems such as Windows Vista 64-bit and Windows 7 64-bit. Attached is a modified driver, so it works on those systems (tested on Windows 7).
With SAM-BA we establish a connection between PC and FRI-SMS, then we enable DataFlash on external flash memory.
  1. First we load second-step bootloader U-BOOT from address 0x8400 onward
  2. Next step is Linux OS kernel, which we load on address 0x42000
  3. Last step is first-step bootloader, which must be loaded last, because we can't load any more files after we load first step loader (at least until system restore)

atm6124_cdc.inf - SAM-BA driver (858 Bytes) Vanč Levstik, 10.12.2010 03:13