Parallel NOR flash address on 'SABRE for Automotive Infotainment Based on the i.MX 6 Series' evaluation board.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Parallel NOR flash address on 'SABRE for Automotive Infotainment Based on the i.MX 6 Series' evaluation board.

1,439 Views
stevencao
Contributor I

I have a 'SABRE for Automotive Infotainment Based on the i.MX 6 Series' evaluation board.

My onboard CPU is IMX6U which is i.MX 6DualLite processor.

I would like to save U-boot and Kernel on Parallel NOR flash, boot-up from there too. I used the following commands to build U-boot standalone:

cd rpm/BUILD/u-boot-2009.08 

make ARCH=arm CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsllinaro-toolchain/bin/arm-fsl-linux-gnueabi- distclean

make ARCH=arm –j4 CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsllinaro-toolchain/bin/arm-fsl-linux-gnueabi- mx6dl_sabreauto_weimnor_config

make ARCH=arm CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsllinaro-toolchain/bin/arm-fsl-linux-gnueabi-

The U-boot was built successfully.


Per section 7.6 (Flash U-Boot on Parallel NOR) on 'i.MX_6Solo6DualLite_SABRE-AI_Linux_User's_Guide.pdf,


I used 'tftp' to download to the SABRE board at DDR address $10200000. However, when I ran step 3:

     cp.b $10200000 8000000 ${filesize}

The system stuck. I used 'md' command to try to access 8000000 address and the system stuck too and I had to use reset button to reboot it. Apparently, 8000000 is not a legal address.

Two questions here:

1. What is the correct address for Parallel NOR so I can flash U-boot to?

2. Is the Kernel (uImage) the same as the one that was built regularly? In other words, the kernel 'uImage' image is used by both SD boot and Parallel NOR boot.

Thanks,

Steven

0 Kudos
2 Replies

527 Views
Yuri
NXP Employee
NXP Employee

Please look at my comments regarding the issue.

  1. 1.

Please check if proper U-boot (u-boot-mx6dl-sabreauto.bin) was used to create SD card :

From section 8.2 (Copying the Boot Loader Image) of the Linux User’s Guide :

Enter the following command to copy the U-Boot image to the SD/MMC card:

$ sudo dd if=u-boot-mx6dl-sabreauto.bin of=/dev/sdb bs=512 seek=2 skip=2 conv=fsync

  1. 2.

  The MX6 DualLite CPU Card (of the SABRE AI design) is equipped with M29W256GL7AN6E NOR flash
(of 32 Mbytes). Its address range is 0x0800_0000 – 0x09FF_FFFF.

But, to access this area the EIM should be properly configured; say in SD or NAND boot mode the boot

ROM does not perform EIM initialization.

  1. 3.
    Please use recommendations of Chapter 3 (Building the Linux Platform) in “Linux User's Guide.

how to configure and build U-boot and kernel for the SABRE AI with LTIB help.

  1. 4.
    Below is snippet from ucl2.xml file of the MFG, which can serve as an example

how to provide NOR configuration. 

So, based on the snippet (after SD boot):

$ flash_erase /dev/mtd0 0 0

$ dd if= u-boot-mx6q-sabreauto-weimnor.bin of=/dev/mtd0 bs=128K

$ flash_erase /dev/mtd2 0 0

$="$ dd if=uImage of=/dev/mtd2 bs=128K

$ flash_erase /dev/mtd2 0 0

Next, please refer to section 9.5 (Run the Image from Parallel NOR) of

“i.MX_6Dual6Quad_Sabre-AI_Linux_User's_Guide.pdf”.  it is assumed NFS

file system is used for NOR.

====

<LIST name="MX6Q-Sabreauto-Parallel_NOR" desc="Choose Parallel-NOR as media">

<!--

boot dip settings for WEIM-NOR boot:

SW2: dip 3 is on. Others are off

SW1: dip 5 is on. Others are off

-->

        <CMD state="BootStrap" type="boot" body="Bootstrap" file ="u-boot-mx6q-sabreauto-weimnor.bin" >Loading uboot.</CMD>

        <CMD state="BootStrap" type="load" file="uImage" address="0x10800000"

                loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Doing Kernel.</CMD>

        <CMD state="BootStrap" type="load" file="initramfs.cpio.gz.uboot" address="0x10C00000"

                loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Doing Initramfs.</CMD>

        <CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>

        <!--burn the uboot to Parallel-NOR: -->

        <CMD state="Updater" type="push" body="$ flash_erase /dev/mtd0 0 0">Erasing Boot partition</CMD>

        <CMD state="Updater" type="push" body="send" file="files/u-boot-mx6q-sabreauto-weimnor.bin">Sending U-Boot</CMD>

        <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mtd0 bs=128K">write U-Boot to WEIM-NOR</CMD>

       

        <!--burn the kernel to Parallel-NOR: -->

        <CMD state="Updater" type="push" body="$ flash_erase /dev/mtd2 0 0">Erasing Kernel partition</CMD>

        <CMD state="Updater" type="push" body="send" file="files/uImage ">Sending kernel image to weim nor</CMD>

        <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mtd2 bs=128K">write kernel Image to weim nor</CMD>

        <CMD state="Updater" type="push" body="$ echo Update Complete!">Done</CMD>

</LIST>

0 Kudos

527 Views
stevencao
Contributor I

Hi,

Thanks for the reply. However, I am still having problems.

I did boot up my board from Freescale provided SD card.

1. I was using the SD card coming with the Freescale demo. board so all the software had been preprogrammed on it by Freescale. I also fashed a U-boot image (u-boot-mx6dl-sabreauto.bin, downloaded from Freescale web. site) on SD card and tried it. It had the same problem: Parallel NOR access failure.

2. I tried 'flash_erase' command and got this:

root@linaro-ubuntu-desktop:~# flash_erase /dev/mtd0 0 0

flash_erase: error!: /dev/mtd0

             error 2 (No such file or directory)

I used 'ls' command to see if 'mtd0' device is under '/dev' directory but it was not there

root@linaro-ubuntu-desktop:~# ls /dev/mtd*

ls: cannot access /dev/mtd*: No such file or directory

How can I access Parallel NOR?

3. So, you said there is only one Linux kernel for this board. In other words, one single 'uImage' would work for all different U-boot bootup case. Do I understand correctly?

4. A new question: On section 7.6 (Flash U-Boot on SPI-NOR) on 'i.MX_6Solo6DualLite_SABRE-AI_Linux_User's_Guide.pdf',

     NOTE: Build U-Boot from source with SPI-NOR configuration -gnueabimx6q_sabreauto_spi-nor_config.

     Is the '6q' correct? Is this a typo? Should it be '6d'?

Thanks,

Steven

0 Kudos