PLEASE NOTE: This article is obsolete or related to a discontinued product.

How to compile a fimage for the FOX Board LX832

FoxLX832 is a version of the FoxBoardLX with 8 Megabytes FLASH and 32 Megabytes RAM memory. This article explains how to recognize a FoxLX832 and how to change the SDK to adapt it to the FoxLX832

Quick start guide

To quickly reprogram the FoxBoardLX832 you need:

  • A FoxBoardLX832 (see further on how to recognize your FoxBoard model)
  • A ready to use flash image for it.

Download a ready to use flash image for your FOX Board LX832:

  • FOX Board LX832 fimage with kernel 2.6.15: Download
  • FOX Board LX832 fimage with kernel 2.4.31: Download
  • FOX Board LX832 fimage with kernel 2.6.15 and FoxVHDL support: Download
and flash it on your FOX Board (see How to reflash a FOX Board).

Be patient when at the first boot, the Fox will regenerate the ssh keys and then login to your FOX Board LX832 and type:

# df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/flash3               9144      9144         0 100% /
/dev/flash2               4736       296      4440   6% /mnt/flash
tmpfs                    14952        72     14880   0% /var
#

With the df command you can see the different kind of memory available on your Fox Board.
As you can see the FoxBoardLX832 has much more read/write Flash memory (available on /dev/flash2 and mounted on /mnt/flash) and much more RAM (available on tmpfs and mounted on /var) compared with both the standard Fox classic red and the FoxBoardLX416.

How to recognize a FoxLX832

The FoxBoardLX832 has 8 Megabytes of Flash memory and 32 Megabytes of RAM memory. It is possible to see the memory configuration of your Fox Board LX looking on the bottom side of the board.

If you have 8 Megabytes of Flash you should see the following markings on the flash chip:


8 Megabytes Flash chip from ST semiconductor


8 Megabytes Flash chip from Samsung

For the 32 Megabytes RAM, not only the RAM chip is different but also there is a 0 Ohm resistor in a different position to adapt the board wirings to the different chip memory size.

This is the appearing of a FoxLX416 that has 16 Megabytes of RAM memory:


16 Megabytes RAM memory from a FoxLX416

In the following instead, there is the appearance of a 32 Megabytes RAM memory from a Fox LX832:


32 Megabytes RAM memory from a FoxLX832

As you can see in the right low part of the images, the position of the 0 Ohm resistor in the two boards is different.
The Fox LX832 has the resistor on the rightest set of pads.

SDK modifications to adapt it for the FoxLX832

firstly you have to start with a working SDK environment that is capable to build correctly a working fimage for the Fox.

There are two kind of settings to be changed in the standard or patched SDK to let it compile a fimage for the FoxLX832:

  • flash partitioning to suit the size of 8 Megabytes Flash memory
  • kernel settings to suit the 32 Megabytes of RAM memory and kernel settings to adapt the RAM memory parameters to the LX board memory chips characteristics

Flash partitioning for 8 Megabytes FLASH memory

from the standard working directory of the SDK invoke:
[dev@AcmeBob devboard-R2_01]$ . ./init_env
Then enter in the menuconfig options with:
[dev@AcmeBob devboard-R2_01]$ make menuconfig

Choose Hardware Configuration and press Select

Now choose the Flash2 size option and press Select

Now enter the hexadecimal value 0x4a0000 instead of the standard 0x0a0000.

Then press OK, Exit, Exit and Yes when asked to save the configuration.

Now you have to update a file inside the kernel to let it manage the newer Samsung model memories (the update is backward compatible and works well with any Fox Board).

If you are using the SDK with the Phrozen patch download the following file:

  • New command set file for patched SDK 2.6 and 2.4 (cfi_cmdset_0002.c): Download
unzip it and put it under the following two directories, starting from the main devboard directory of the SDK patched:
  • os/linux-2.6-tag--devboard-R2_01-1/drivers/mtd/chips
  • os/linux-tag--devboard-R2_01/drivers/mtd/chips

If you are using instead the original SDK2_01 from Axis download the following file:

  • New command set file for original SDK2_01 from Axis (cfi_util.c): Download
unzip it and put it under the following directory, starting from the main devboard directory of the SDK2_01 from Axis:
  • os/linux-2.6-tag--devboard-R2_01-1/drivers/mtd/chips

Finally invoke the command:
[dev@AcmeBob devboard-R2_01]$ ./configure

At this point you have to launch a make to obtain a fimage with 8Megabytes of Flash memory enabled. Better instead to proceed with the following paragraphs with the kernel modifications to adapt the SDK also for 32 Megabytes of RAM memory and for LX board memory.

Kernel settings for 32 Megabytes RAM memory and LX memory chip

The command to launch is different between the desired kernel you are using. If you installed the standard SDK from Axis you have as a default the 2.4.31 kernel. If you instead installed the Phrozen patch you have from default the 2.6.15 Linux kernel version.

If you are using kernel 2.4 you have to invoke:

[dev@AcmeBob devboard-R2_01]$ make -C packages/os/linux-2.4 menuconfig

Instead, if you are using kernel 2.6 you have to invoke:

[dev@AcmeBob devboard-R2_01]$ make -C packages/os/linux-2.6 menuconfig


In the following we will refer to the 2.6.15 kernel options screens since it will be the most used now on.

Choose Hardware setup and press Select

In these options we have to change three parameters. The first is DRAM size.

Enter in the option choosing it and pressing Select. Set it to 32 and press OK.

Then go lower in the Hardware setup looking for R_SDRAM_CONFIG

Choose it and press Select. Set it to the hexadecimal value: 0x09603737 and press OK.

Now go down in the Hardware setup options for the parameter R_SDRAM_TIMING

Enter in the option choosing it and pressing Select. Set it to the hexadecimal value 0x80008002 and press OK.

This R_SDRAM_TIMING parameter is the standard value to set for all the FoxBoardLX.


Now press Exit and then Exit again. When asked to save the new configuration, answer Yes.

Now, you are ready to recompile the new fimage enabled with 32 MBRAM and 8MBFlash. to do so invoke:

[dev@AcmeBob devboard-R2_01]$ make clean
[dev@AcmeBob devboard-R2_01]$ ./configure
[dev@AcmeBob devboard-R2_01]$ make

The new fimage generated is bigger than the usual 4MBytes standard Fox fimage:

[dev@AcmeBob devboard-R2_01]$ ls -liat fimage
1560105 -rw-rw-r--  1 newsdk201 newsdk201 8388632 Dec 17 09:27 fimage
[dev@AcmeBob devboard-R2_01]$

Now you are ready to flash the newly generated image on your Fox Board LX832 (see How to reflash a FOX Board).

Enjoy.