Difference between revisions of "Loading JFFS2 Images Onto a Board"

From wiki.emacinc.com
Jump to: navigation, search
(General)
(General)
Line 16: Line 16:
 
[[Creating JFFS2 Images]]
 
[[Creating JFFS2 Images]]
  
== General ==
+
== General Information ==
 +
Before attempting to program an target, a serial connection is required to access the board's bootloader.
  
The
+
=== Using U-Boot ===
 +
Refer to the following pages for instructions on accessing U-Boot on the serial console:
 +
[[U-Boot Overview]]
 +
[[Loading Images with U-Boot]]
  
Then, you need to set the IP address of the tftp server like so...
+
From the U-Boot prompt it is possible to set target's IP address dynamically using DHCP:
 +
<syntaxhighlight lang="console">
 +
U-Boot> set autoload no
 +
U-Boot> dhcp
 +
</syntaxhighlight>
  
If you want to see the configuration of your bootloader, these commands will show you...
+
The target's IP can also be manually set using the <code>ipaddr</code> environment variable as follows:
 +
<syntaxhighlight lang="console">
  
The bootloader has help built in.  Do these things to learn more...
+
U-Boot> set ipaddr 192.168.0.101
 +
</syntaxhighlight>
  
'''NOTE: If you want to put this information in a/the general uBoot page and link to it, that works too. But make sure they know they need to perform those steps.'''
+
 
+
Once the target IP is set, the TFTP server's IP address must be specified:
----
+
<syntaxhighlight lang="console">
 +
 
 +
U-Boot> set serverip 192.168.0.100
 +
</syntaxhighlight>
 +
 
 +
The configuration of the bootloader environment can be checked at any time using the <code>printenv</code> command.
 +
 
 +
 
 +
As described in [[Loading Images with U-Boot]], the JFFS2 image will then be loaded into SDRAM programmed into flash. Below a full example will be provide for the SoM-9G45
 +
 
 +
=== Using Redboot ===
 +
Refer to the following page for instructions on accessing Redboot on the serial console and loading images:
 +
[[Loading Images with RedBoot]]
  
 
=== Full Examples ===
 
=== Full Examples ===

Revision as of 12:50, 11 December 2013

TODO: {{#todo:Add some text (11.06.13-08:24->MW+)(11.06.13-17:55->MD+)|Michael Welling|oe 4,oe 5,mw,md,InProgress}}

Background

Journalling Flash File System version 2 or JFFS2 is a log-structured file system used on flash memory devices. JFFS2 images are typically created on a development PC and deployed to an embedded target using TFTP commands from the target's bootloader. Deployment requires both serial and Ethernet connections to the board along with a TFTP server set up on your development machine.

For instructions on installing a TFTP server on your development PC: Installing TFTP server

For details on connecting to the serial port for an embedded target: Serial Connections

JFFS2 file systems are available for download on EMAC's FTP site. We really, really, really need to update our public FTP site

For instructions on creating a JFFS2 file system image see the following page: Creating JFFS2 Images

General Information

Before attempting to program an target, a serial connection is required to access the board's bootloader.

Using U-Boot

Refer to the following pages for instructions on accessing U-Boot on the serial console: U-Boot Overview Loading Images with U-Boot

From the U-Boot prompt it is possible to set target's IP address dynamically using DHCP:

U-Boot> set autoload no
U-Boot> dhcp

The target's IP can also be manually set using the ipaddr environment variable as follows:

U-Boot> set ipaddr 192.168.0.101


Once the target IP is set, the TFTP server's IP address must be specified:

U-Boot> set serverip 192.168.0.100

The configuration of the bootloader environment can be checked at any time using the printenv command.


As described in Loading Images with U-Boot, the JFFS2 image will then be loaded into SDRAM programmed into flash. Below a full example will be provide for the SoM-9G45

Using Redboot

Refer to the following page for instructions on accessing Redboot on the serial console and loading images: Loading Images with RedBoot

Full Examples


Show some examples of performing every step, from start to boot. Our most common products would be best to use for this, so the 9g45 and the 9G20, I believe, would be the best ones to show.

This would also be a good place to note that they may have to change their video settings for their board, or set other kernel commandline arguments. You can link them to documentation for the kernel for this. The video settings information would be good to have in the quick reference section below, though. A quick reference by carrier type section, for our standard carriers, would be a good place for this. Also, anything else that you can think of that might be specific to a carrier should be there. Alternatively, maybe we should have a different page for this. That way, we could share it across different pages for different image types. If you choose that route, then the page will need to be "bragged about" here, so that people will be sure to look at the page rather than e-mailing us, "my screen doesn't work." You will probably also want to figure out a better formatting than the quick bit I added here.

Quick Reference (By Target Type)

SoM-9260M

U-Boot> tftp 0x20000000 som-9260m-rootfs.jffs2
U-Boot> protect off all
U-Boot> erase 0x10400000 0x11ffffff
U-Boot> cp.b 0x20000000 0x10400000 ${filesize}

SoM-9G20M

U-Boot> tftp 0x20000000 som-9g20m-rootfs.jffs2
U-Boot> nand erase
U-Boot> nand write.jffs2 0x20000000 0x0 ${filesize}

SoM-9G45M

U-Boot> tftp 0x74000000 som-9g45m-rootfs.jffs2
U-Boot> nand erase
U-Boot> nand write.jffs2 0x74000000 0x0 ${filesize}

SoM-9M10M

U-Boot> tftp 0x74000000 som-9m10m-rootfs.jffs2
U-Boot> nand erase
U-Boot> nand write.jffs2 0x74000000 0x0 ${filesize}

SoM-9307M

Redboot> fis unlock -f 0x60000000 -l 0x1fdffff
Redboot> load -r -v -b 0x300000 -h 10.0.2.60 som-9307m-rootfs.jffs2
Redboot> fis create -b 0x300000 -l 0x1c00000 jffs2

IPAC-9302

Redboot> fis unlock -f 0x60000000 -l 0x1fdffff
Redboot> load -r -v -b 0x300000 -h 10.0.2.60 ipac-9302-rootfs.jffs2
Redboot> fis create -b 0x300000 -l 0x1c00000 jffs2