Project Home
Project Home
Wiki
Wiki
Project Information
Project Info
wiki2761: Nto640_centrality_atlasii_evb_trunk_releasenotes (Version 5)

Release Notes of the QNX 6.4.0 BSP for Centrality Atlas II EVB Trunk#

System requirements#

Target system#

  • Board version: Centrality Atlas II motherboard version 2.1
  • CPU board version 2.12 (with 64MB of RAM)
  • CPU AT440 C-D-CC
  • 7" LCD panel (resolution: 800x480) or 4" LCD panel (resolution: 320x240)
  • ROM monitor: NBoot v2.01 or v5.0.
  • Note: If the Atlas II board is populated with more than 64MB of RAM the startup code (i.e. init_raminfo.c) will need to be changed to add the proper RAM size.

Host development system#

  • QNX Momentics 6.4.0 development platform
  • Latest version of the QNX Momentics Character Driver Development Kit (DDK)
  • Terminal emulation program (Qtalk, Momentics IDE Terminal, tip, HyperTerminal, etc.)
  • RS-232 serial port and serial cable or USB to serial adaptor
  • Ethernet link
Note: The initial board configuration requires a Microsoft Windows host.


System Layout#

The table below depicts the memory layout for the image and for the on-board flash.

Item Address
OS image loaded at: 0xC0200000
OS image begins execution at: 0xC0200000
IPL offset: In on-board NAND flash, at NBoot location  
Ethernet base address 0x14000000 (IRQ: 205)
USB base address 0x57f00000 (IRQ: 17)


Getting Started#

Step 1: Connect the hardware#

Connect the Centrality Atlas II board's power supply as per the instructions provided with the hardware.

Connect the straight-through serial cable between the USP0 port (P7) on the Atlas II.

Connect the supplied USB cable to the P11 connector (USB client) on the centrality Atlas II board. Connect the other end of the USB cable to a free USB port on a Windows PC.

Step 2: Generate the OS image and IPL#

For instructions about building a BSP OS image, please refer to the chapter Working with a BSP in the Building Embedded Systems manual.

The IPL binary needs to be padded to 16 KB before transferring it to the board via NBoot. This step is done automatically when generating the IPL binary from the source code on the command line.

Use the notarm-objcopy and mkrec to pad the IPL binary to 16 KB:

      rm -f ipl-atlasii.bin 
      #convert IPL into an S-record 
      ${QNX_HOST}/usr/bin/ntoarm-objcopy -Osrec ipl-atlasii ipl-tmp-atlasii.srec 
      #convert S-Record IPL to binary 
      ${QNX_HOST}/usr/bin/ntoarm-objcopy -Obinary ipl-tmp-atlasii.srec ipl.tmp 
      mkrec -r -ffull -s16k ipl.tmp > ipl-atlasii.bin 
      #cleaning up temporary files 
      rm -f *tmp* 

This step is necessary only when transferring the pre-built IPL via NBoot or the IDE.

Step 3: Prepare to flash the IPL #

The procedure in Step 4 will replace the NBoot loader with a QNX Initial Program Loader (IPL), which can then be used to load a QNX OS image serially or from the flash. To perform this procedure, you will need a Microsoft Windows utility called AtlasMgr2.exe, for NBoot v2.01, or AltasMgr5.exe for NBoot v5.0), both available from Centrality. You will also need to install a USB device driver, available from Centrality, on the Windows host for the Atlas II board.

Note: The Centrality tools are usually provided with the Centrality Atlas II board.

On your host machine, start your terminal program with these settings:

  • Baud: 38400
  • Bits: 8
  • Stop bits: 1
  • Parity: none

The Atlas II board has a two-stage boot process. The first loader to run is called NBoot, which will present the user with a menu of further boot and configuration options. The second loader called EBoot won't be used.

Transfer the binary IPL to the MS Windows host that is connected to the Atlas II board via the USB link. The binary IPL file is called ipl-atlasii.bin. If you built the BSP on the command line the IPL will be located at images/ipl-atlasii.bin. See Step 2: Generate the OS image and IPL for more details.

Step 4: Flash the IPL#

Before transferring the OS image to the board, you'll need to program the IPL to the flash. The Centrality Altas II board is equipped with on-board NAND flash (either on the mainboard (MB) or on the CPU module (CM)) and a SmartMedia card reader. It is possible to boot from any of these flash devices. Therefore you can transfer the IPL to either one of these boot devices. Refer to Step 4A to use the on-board NAND flash. Refer to Step 4B to use the SmartMedia.

The IPL will be flashed on top of the ROM monitor NBoot. Once the NBoot is replaced by the QNX IPL, it will not be possible to reflash NBoot back into the board. However it will still be possible to update the IPL by using the I option from the IPL menu. See Step 3.2: Update the IPL for more details.

Step 4A: Transfer the IPL to the on-board NAND flash#

In this step you will write the IPL to the on-board NAND flash.

Note: If you wish to keep a copy of the ROM monitor on the board, you can flash it into the Smartmedia card before copying the IPL to the on-board flash. You can follow the steps documented in Step 4B: Program the IPL as a guideline. Replace any reference to IPL with ROM monitor in order to program the ROM monitor into the Smartmedia card.

There are two banks of DIP switches in the lower right corner of the Atlas II board, SW1 and SW2. Each bank has 4 DIP switches. Place all eight DIP switches in the OFF position. This puts the board into Normal Operation Mode, and selects NAND_CS0 (i.e. on-board NAND flash) as the boot device.

Apply power to the Centrality Atlas II board. On the serial console, you should the following NBoot output when using NBoot v2.01:

      WinCE NAND Boot v2.01 
      Jun 27 2005 12:13:09 

      TOC: 0x00000001 
      EBOOT: 0x00000002 
      NANDXIP: 0x00000000 
      DM: 0x00000000 
      Image start: 0x0000000C 
      Image Blocks: 0x00000000 
      g_dwIoClock: 0x02FAF080 
      1): Launch NK 
      2): Launch EBOOT 
      3): Launch DM 
      4): Enter USB Mode to Update Bootloader 
      6): Erase flash except NBOOT 
      7): Show NBOOT Menu: ENABLED 
      9): FCE2/3 Setting 
      0): Clock set 
      Select: 

If the above NBoot menu isn't displayed, press the the lower right button on below the LCD panel and simultaneously press the reset button. The NBoot menu should then be visible. Select the option #7 in order to permanently display the NBoot menu at boot time.

Then perform the following:

  • if you are using NBoot version 2.01
    1. Select the option #4, Enter USB Mode to Update Bootloader. You will then see the following message: Plug in USB
    2. If you have correctly installed the USB device driver on the MS Windows host, you should then see the following message: USB Configured!
    3. From the MS Windows host, run the AtlasMgr2.exe program. In the Transport area, make sure that USB is selected. Then click on Open.
    4. In the Target Media section, select NandFlash CS0.
  • if you are using NBoot version 5.0
    1. Make sure that you have correctly installed the USB device driver on the MS Windows host and that the USB cable is plugged in.
    2. From the MS Windows host, run the AtlasMgr5.exe program. In the Transport area, make sure that USB is selected.
    3. Then simultaneously reset the board and quickly click on the Open button of the AtlasMgr5.exe program until the NBoot output appears in the USB Terminal section of the AtlasMgr5.exe program.
    4. In the Target Media section, select Atlas CS0.
  • In the Update Functions section, select Update NBoot.
  • In the Open dialog box that appears, navigate to the ipl-atlasii.bin file, and select it.
  • The IPL will now be programmed to the NBoot area of the CS0 NAND flash. The AtlasMgr utility should display the following message when the IPL is successfully programmed to the flash: Update NBoot Successful!
  • Change the baud rate of your terminal to 115200.
  • Reset the Atlas II board.

You should then see the following IPL output (or similar):

      QNX Neutrino Initial Program Loader for Centrality ATLAS-II board Commands: 
      Press 'D' for serial download, using the 'sendnto' utility 
      Press 'F' to Boot an OS image from NAND flash 
      Press 'U' to Copy an OS image to NAND flash 
      Press 'I' to Update the IPL 
      Press 'S' to Select Clock 

Step 4B: Transfer the IPL to the Smartmedia NAND flash (Alternative to Step 4A)#

The IPL will be flashed on top of the ROM monitor NBoot. Once the NBoot is replaced by the QNX IPL, it will not be possible to reflash NBoot back into the board. However it will still be possible to update the IPL by using the I option from the IPL menu. See Step 4.2: Update the IPL for more details.

Note: If you wish to keep a copy of the ROM monitor on the board, you can flash it into the on-board NAND flash before copying the IPL to the SM card. You can follow the steps documented in Step 4A: Program the IPL as a guideline. Replace any reference to IPL with ROM monitor in order to program the ROM monitor into the on-board NAND flash.

There are two banks of DIP switches in the lower right corner of the Atlas II board, SW1 and SW2. Each bank has 4 DIP switches. Place all eight DIP switches in the OFF position. This puts the board into Normal Operation Mode, and selects NAND_CS0 (i.e. on-board NAND flash) as the boot device.

Insert the SmartMedia card in its slot.

Apply power to the Centrality Atlas II board. On the serial console, you should the following NBoot output when using the version 2.01:

      WinCE NAND Boot v2.01 
      Jun 27 2005 12:13:09 
      TOC: 0x00000001 
      EBOOT: 0x00000002 
      NANDXIP: 0x00000000 
      DM: 0x00000000 
      Image start: 0x0000000C 
      Image Blocks: 0x00000000 
      g_dwIoClock: 0x02FAF080 
      1): Launch NK 
      2): Launch EBOOT 
      3): Launch DM 
      4): Enter USB Mode to Update Bootloader 
      6): Erase flash except NBOOT 
      7): Show NBOOT Menu: ENABLED 
      9): FCE2/3 Setting 
      0): Clock set 
      Select: 

If the above NBoot menu isn't displayed, press the the lower right button on below the LCD panel and simultaneously press the reset button. The NBoot menu should then be visible. Select the option #7 in order to permanently display the NBoot menu at boot time.

Select the option FCE2/3 Setting then select the option #1 from the following sub-menu to select SM (SmartMedia).

      0): FCE2 -> Empty 
      1): FCE3 -> SM 
      2): Return 
      Select: 

Select the option #2 of the sub-menu to return to the main NBoot menu.

Then perform the following:

  • if you are using NBoot version 2.01
    1. Select the option #4, Enter USB Mode to Update Bootloader. You will then see the following message: Plug in USB
    2. If you have correctly installed the USB device driver on the MS Windows host, you should then see the following message: USB Configured!
    3. From the MS Windows host, run the AtlasMgr2.exe program. In the Transport area, make sure that USB is selected. Then click on Open.
    4. In the Target Media section, select NandFlash CS3.
  • if you are using NBoot version 5.0
    1. Make sure that you have correctly installed the USB device driver on the MS Windows host and that the USB cable is plugged in.
    2. From the MS Windows host, run the AtlasMgr5.exe program. In the Transport area, make sure that USB is selected.
    3. Then simultaneously reset the board and quickly click on the Open button of the AtlasMgr5.exe program until the NBoot output appears in the USB Terminal section of the AtlasMgr5.exe program.
    4. In the Target Media section, select Atlas CS3.
  • In the Update Functions section, select Update NBoot.
  • In the Open dialog box that appears, navigate to the ipl-atlasii.bin file, and select it.
  • The IPL will now be programmed to the NBoot area of the CS3 NAND flash (Smartmedia flash). The AtlasMgr utility should display the following message when the IPL is successfully programmed to the flash: Update NBoot Successfully!
  • Power off the target board. Set the SW2No InterWiki reference defined in properties for Wiki called "0"! switches on the mainboard to respectively On, On, On, Off (i.e. Boot Mode: SM_CS). This will use the SmartMedia card as the boot device.
  • Change the baud rate of your terminal to 115200.
  • Turn the power back on.

You should then see the following IPL output (or similar):

      QNX Neutrino Initial Program Loader for Centrality ATLAS-II board 
      Commands: 
      Press 'D' for serial download, using the 'sendnto' utility 
      Press 'F' to Boot an OS image from NAND flash 
      Press 'U' to Copy an OS image to NAND flash 
      Press 'I' to Update the IPL 
      Press 'S' to Select Clock 

Step 5: Update the IPL#

Once the IPL is running on the board, you can update the IPL with a new version.

Copy the IPL to the host system that is connected to the Atlas II board via a serial link. The IPL file should be called ipl-atlasii (ELF format only for command line users). src/hardware/ipl/boards/atlasii/arm/le or images/ipl-atlasii.

For IDE users, both binary (i.e. ipl-atlasii.bin) or ELF formats can be used.

From the IPL commands menu, select option I to download and to program the IPL into the flash.

If teh IPL is located in the NAND flash, you should see the following sub-menu:

      Booting from on-board NAND flash  
      Press "1" to update IPL on SM card  
      Press any other key to update IPL on on-board NAND flash 

If the IPL is located on the SmartMedia card, you should see the following sub-menu:

      Booting from SM card 
      Press "1" to update IPL on MB NAND flash (CM NAND flash update not supported) 
      Press any other key to update IPL on SM card 

Press any key other than 1 to update the IPL in place. The 1 option will update the alternate IPL.

After making a selection the following will be displayed,

      send the IPL now...
Note:
Updating the IPL on the flash located on the CPU module, when booting from the SM card, isn't supported.

Then use the QNX sendnto utility to transfer the IPL from the host to the Centrality Atlas II board. For instance, from the command line, run sendnto as follows: sendnto -d <host-serial-port> ipl-atlasii

Once the IPL is successfully downloaded and programmed into the flash you should see the following message:

      Update IPL OK

Reset the board. You should then see the new IPL output. For instance:

      QNX Neutrino Initial Program Loader for Centrality ATLAS-II board 
      Commands: 
      Press 'D' for serial download, using the 'sendnto' utility 
      Press 'F' to Boot an OS image from NAND flash 
      Press 'U' to Copy an OS image to NAND flash 
      Press 'I' to Update the IPL 
      Press 'S' to Select Clock 

Step 6: Transfer the OS image to the board#

Once the IPL is running on the board, use the following steps to transfer the OS image to the board. You can either transfer the OS image into RAM and execute it from RAM or transfer it to flash then boot from flash.

Step 6.1: Transfer the OS image to RAM#

Locate the QNX OS image (ifs-atlasii.bin) generated in Step 2: Generate the OS image and IPL.

Select the IPL option D to download the OS image serially to the board.

Use the QNX sendnto utility to transfer the OS image from the host to the Centrality Atlas II board. For instance: sendnto -d <host-serial-port> ifs-atlasii.bin

Once the transfer is completed, the OS image will be executed and QNX Neutrino will boot on the board. You should also see the following welcome message on your terminal screen:

      Welcome to QNX Neutrino 6.x on the Centrality Communications Atlas II Board 
You can now test the OS simply by executing any shell builtin command or any command residing within the OS image (e.g. pidin).

Step 6.2: Transfer the OS image and program it into the NAND flash (optional)#

Once the IPL is running on the board, use the following steps to transfer the OS image to the board and program it to the flash.

  • Select the IPL option U to download the OS image serially to the board and to program it to the NAND flash which you've booted from (i.e. either on-board NAND or Smartmedia).
  • Use the QNX sendnto utility to transfer the OS image from the host to the Centrality Atlas II board.
For instance:
      sendnto -d<host-serial-port> ifs-atlasii.bin.
  • Once the transfer is completed, the OS image will be programmed to the NAND flash. This might take a few seconds. Once this operation is completed the board will reset automatically. Make sure that the size of the IFS image is smaller than the amount of flash.
  • Select the IPL option F to download the OS image from NAND to RAM and execute it. QNX Neutrino will then boot on the board.
  • You should also see the following welcome message on your terminal screen:
      Welcome to QNX Neutrino 6.x on the Centrality Communications Atlas II Board 
  • You can now test the OS simply by executing any shell builtin command or any command residing within the OS image (e.g. pidin).

Change the clock settings (optional)#

Once the IPL is running on the board, you can use the following steps to change the clock settings for the Atlas II board. Select the IPL option S to change the clock settings. You should see the following output:

      a) SDR_276_184_92_46 
      b) SDR_264_176_88_44 
      c) SDR_252_168_84_42 
      d) SDR_240_160_80_40 
      e) SDR_228_152_76_38 
      f) SDR_216_144_72_36 
      g) SDR_276_184_92_92 
      h) SDR_264_176_88_88 
      i) SDR_252_168_84_84 
      j) SDR_240_160_80_80  
      k) SDR_228_152_76_76 
      l) SDR_216_144_72_72 
      1) return: 
The IPL uses the following setting by default:
      g) SDR_276_184_92_92 
  • Select the desired frequency option. Once the OS image is loaded into RAM the clock settings selected from the IPL will be applied.

Summary of driver commands#

The driver command lines below are specific to the Centrality Atlas II board. See the online docs for each driver for additional command-line options and other details.

Serial#

Command when booting from the ROM monitor NBoot:

      devc-seratlasii -e -F -b38400 
Command when booting from the QNX IPL:
      devc-seratlasii -e -F -b115200 

USP#

Command for USP 1:

      devc-seratlasii_usp -F -b38400 -u3 0x80010000,21,1 
Command for USP 2:
      devc-seratlasii_usp -F -b38400 -u3 0x80020000,22,2 
Command for USP 3:
      devc-seratlasii_usp -F -b38400 -u3 0x80030000,23,3 
Command for USP 4:
      devc-seratlasii_usp -F -b38400 -u3 0x80040000,400,4 
Command for USP 5:
      devc-seratlasii_usp -E -F -b38400 -u3 0x80050000,401,5 

Ethernet#

Command:

      io-pkt-v4 -dne2000 ioport=0x14000000,irq=205 -ptcpip 
      ifconfig en0 x.x.x.x 
Replace "x.x.x.x" with a proper IP address

ETFS NAND flash#

Command to run the ETFS NAND flash driver on a Samsung K9K1G08U0M on-board flash part (128MB):

      fs-etfs-atlasii512 -r65536 -m /fs/etfs
Where -r <cluster-number> is the number of clusters (a cluster contains 2 pages of 512B) to reserve for the IPL, the OS image and potential bad blocks skipped when the IPL and the OS image are copied to the flash. You should then see /dev/etfs1 and /dev/etfs2 partitions. The /dev/etfs1 partition contains the IPL and the OS image so make sure to not erase it.

Command to run the ETFS NAND flash driver on a Samsung K9F1208U0B on-board flash part (64MB):

      fs-etfs-atlasii512 -r32768 -m /fs/etfs
To format the second NAND flash partition (i.e. /dev/etfs2):
      etfsctl -d /dev/etfs2 -S -f -c 
You should now see the mount point /fs/etfs/ which can be used to copy files to.

The above commands are to be executed on the boot device (which could be either the on-board NAND or the SM card). It is possible to run the ETFS driver on the other flash part (which wasn't used for booting) using the following options:

      fs-etfs-atlasii512 -r<cluster-number> -D cs -m /fs/etfs
Both drivers (on-board and SM) can't be run at the same time due to the fact that they share the same hardware interface. Make sure that the SM card is inserted before starting the driver in order to detect it. The ETFS driver does not support Plug-and-Play.

SD card#

Command to run the SD card block driver on a SD flash card (4GB maximum):

      devb-sd-atlasii sd nodma,sg,bs=evb  
Make sure that the SD card is inserted before starting the driver in order to detect it. The driver does not support Plug-and-Play.

If the card has been formatted with a QNX filesystem (i.e. type 77 for instance), you can mount the device using the follow command:

      mount /dev/hd0t77 /sd0 
If the card has been formatted with a FAT filesystem (i.e. type 11 for instance), you can mount the device using the follow command:
      mount -tdos /dev/hd0t11 /sd0 

Audio#

Command to run the Audio driver:

      io-audio -d atlasii_ac97  
There are two blocks of DIP switches on the mainboard that control connections to the AC97 codec chip: S4 and S10. You may need to remove the LCD panel (if the 7" panel is installed) to gain access to these switches. All of these switches need to be set in the "ON" position for the AC97 driver to work.

Graphics#

Command to run the LCD graphics driver:

      io-display -c /etc/system/config/display.atlasii.conf -dvid=0,did=0
Refer to the BSP build file for more details for the different LCD panels.

USB#

Command:

      io-usb -d atlasii ioport=0x57f00000,irq=17
Due to the hardware design, both the USB host and USB client ports share the same lines. They cannot both be plugged in at the same time.

I2C#

Command to run the I2C driver:

      i2c-atlasii
For more information about these commands, see the Neutrino Utilities Reference.

Known Issues#

  • Both the USB host and USB client ports share the same lines. They can't be plugged in at the same time.
  • The Ethernet driver (10Mbit only) is stable but might have performance issues in streaming conditions. However the driver is fine to transfer files using NFS or FTP, or to use in a Telnet session (Ref# 29670).
  • The graphics driver requires that layer 0 be initialized first before running applications on any other layer (Ref# 40283).
  • In Microsoft Windows, certain programs (e.g. Norton Ghost) add directories inside double quotation marks (e.g. ...;"c:\Program Files\Norton Ghost\";...) to your PATH environment variable. This causes the Cygwin spawn() function to fail, which in turn causes cp to fail when called by ln-w. (Ref# 20046) Workaround: Modify your PATH environment variable and remove any quotation marks.
  • To build the BSP from the command line, you need to extract the source code from the zip file. In Microsoft Windows, make sure you place the source code in a directory that doesn't contain any spaces in its name.
  • Some warnings may be displayed when compiling this BSP with one or both supported compilers. These warnings are benign and do not affect the functionality of the resulting binaries.
  • In those instances where the the ROM monitor's MAC address is different from the one you pass in when running io-pkt-v4, the host can cache the ROM monitor's address. This can result in a loss of connectivity.

Workaround: If you need to specify a MAC address to io-pkt-v4, we recommend that you use the same MAC address that the ROM monitor uses. This will ensure that if the host caches the ROM monitor's MAC address, you'll still be able to communicate with the target. Otherwise you might need to delete the target's arp entry on your host.

  • If you specify the -d and -p options for io-graphics, you must put the -d option before the -p, or else io-graphics fails. (Ref# 22670)
  • The TCP/IP stack obtains a timer from the process manager. This timer starts at 0. If the TCP/IP stack and a TCP/IP application that tries to connect to a remote host start executing too soon, the TCP/IP stack may apply a time of 0 seconds to ARP cache entry structures. If this occurs, you may end up with a permanent ARP entry (i.e. one that never times out). You can also end up with permanent, incomplete ARP entries that never time out, and that the TCP/IP stack doesn't attempt to resolve. If this happens, your host won't be able to communicate with one or (possibly) more remote hosts (i.e. the ones the TCP/IP application in the OS image is trying to reach).

You can check for permanent ARP entries by running the arp -an command and examining the output. The only permanent entries listed should be for the IP addresses assigned to your host's interfaces; there shouldn't be any permanent, incomplete entries. If you find a permanent entry that isn't for the IP address of an interface on your host, and you didn't explicitly create a permanent entry, then you could be encountering this problem. (Ref# 21395)

Workaround: In the buildfile for your OS image, delay the start of the TCP/IP stack or the first TCP/IP application by at least one second, by using the sleep command (e.g. sleep 1) or some other delay mechanism.

  • When you install several BSPs that share common files, you'll be prompted to overwrite the existing files. We recommend that you backup the existing files before you overwrite them. Uninstalling any BSP that shares that file will currently remove the common file. You'll need to restore the backup after you uninstall any BSP that shared the file(s). (Ref# 22922)