NAND Flash programming images on imx6 Apalis

I am looking for a procedure for being able to program the Apalis on board NAND flash with custom built U-Boot, Linux, DTB and rootfs components. I am well versed with several ARM based platforms including imx6 based boards but using the traditional embedded systems mechanisms. After searching through the Toradex developer website, I do not see any concrete procedure that walks you though this process. They talk about the “legacy” method using a script and then the “Easy Installer”. Whether I use OE for building the components or the good old way to build Linux/U-boot etc., I need to know the mechanics involved specific to the Apalix imx6 SOM/carrier board as to how one updates SW on the NAND.

Just need Apalis imx6 borad specific steps to update NAND flash!

TIA

Hi @embedhulk and Welcome to the Toradex Community!

Could you provide the version of the Hardware and Software of your module?
Which carrier board are you using?

I am well versed with several ARM based platforms including imx6 based boards but using the traditional embedded systems mechanisms.

What exactly do you mean with that?

After searching through the Toradex developer website, I do not see any concrete procedure that walks you though this process. They talk about the “legacy” method using a script and then the “Easy Installer”.

What exactly are you looking for?

Just need Apalis imx6 borad specific steps to update NAND flash!

What is the use of this? We are using eMMC Flash on our modules and not NAND flash.

Could you explain us your application and use case?

Thanks and best regards,
Jaski

Hi @jaski.tx,

Thank you for your worm welcome!

I am using the latest version of Apalis iMX6 Quad core module with its companion Carrier board. There is only one of those types from Toradex offering. For SW at first attempting to image the Toradex prebuilt image ‘Linux LXDE Apalis iMX6 version 2.8’.

What I mean by familiar with traditional embedded ARM flash erase and programming mechanisms is that I am familiar with the primitive tools from past such as nand_erase, nand_write etc.

I do understand the differences between NAND and eMMC. I have worked with Micron in the past so I know that eMMC is just NAND flash with a microcontroller that implements the flash translation layer.

Now since I posted the original message, here is what I tried on my end using Toralex documentation but was not completely successful in programming the eMMC flash on the i.MX6 SOM module. Please correct me and advise as you see fit so that I can perform this operation successfully.

My steps:
1- Download ‘Linux LXDE Apalis iMX6 version 2.8’ tarball image from Toradex developer site to Linux host machine.

2- Create a single FAT32 bootable partition on a SD card using fdisk

3- Insert the SD card in host and run ‘./update.sh -o /media/sdmount/’

4- Remove the SD card from host and connect it into the carrier board’s SD card slot (tried both 8bit and 4bit slots)

5- Boot iMX6 in U-boot prompt and run ‘run setupdate’ then ‘run update’

All of the above steps seem to have performed successfully based on the console output messages but it seems to have erased the eMMC (or not programmed it right) since on subsequent reboots it does not find a valid image on eMMC.

I can insert an Easy Installer image prepared USB stick in carrier board’s USB0 port and it will boot into Toradex Easy Installer. Then here on the Toradex Easy Installer I don’t even see the image option from the SD card.

There is just something simple I am missing.
I greatly appreciate your help in this matter.
I am working on a large industrial system and we want to get this into production soon.
TIA

Hi Jaski.tx,

Thank you for the warm welcome!

The HW I am using is Toradex i.MX6 Apalis SOM quad core with Apalis compatible carrier board (also from Toradex). The SW is from Toradex website (prebuilt Linux LXDE Apalis i.MX6 version 2.8).

I say NAND but I do know that it is eMMC on the SOM card. Since eMMC is NAND technology with a microcontroller to implement the FTL.

What I meant was that I am much more familiar from the past with i.MX series SOC when using some primitives tools such as nand_erase, nand_write etc.

Since the last message here is what I tried but not being completely successful in programming and booting a new image:

1- Create a bootable FAT32 partition on 4GB SD card on Linux host.

2- Program the prebuilt image Linux LXDE Apalis i.MX6 version 2.8 onto the SD card using ‘./update.sh -o /media/sdcard’

3- Plugging the SD card on the carrier board. Recycle power.

4- On U-boot prompt run ‘run setupdate’ then ‘run update’

5- Recycle power on SOM/carrier board

The i.MX6 Apalis on boot up is not able to find bootable image on the eMMC. But using step 1 thru 5 seems to have completed successfully based on the console outputs.

I must be doing something wrong. I followed the Toradex website pages with care and details…
Must be something simple.

Please let me know what I am either missing doing wrong or suggestions.

We have several large industrial system so start shipping with the Toradex Apalis i.MX6 SOM card and I have got to get this to work :slight_smile:

Thanks in advance to your help here!

hi @embedhulk

All of the above steps seem to have performed successfully based on the console output messages but it seems to have erased the eMMC (or not programmed it right) since on subsequent reboots it does not find a valid image on eMMC.

Could you post the boot or error log? Thanks.

I can insert an Easy Installer image prepared USB stick in carrier board’s USB0 port and it will boot into Toradex Easy Installer. Then here on the Toradex Easy Installer I don’t even see the image option from the SD card.

Which version of Toradex Easy Installer are you using? Could you share a screenshot of the Toradex Easy Installer screen? You will need to extract this image to the SD Card or USB Stick to see it on the Toradex Easy Installer screen.
As alternative, the module could be connected to Internet, then the image can be directly downloaded from the toradex feeds server.

Best regards,
Jaski

I’d recommend to use a Toradex Easy Installer to update your image.
You can prepare USB stick or SD card with all required files, than download a Toradex Easy installer over USB OTG as described here. This way you can do a production programming.
Please check this page for more details - Downloads & Installers | Toradex Developer Center

Hi @alex.tx,

Thank you for your responses.

I have now successfully flash pre-built images to imx6 eMMC on the SOM.

Regards,
Ejaz

Perfect that it works. Thanks for the feedback.