Issues during booting from Quad Nor Flash in i.MX6ULEVK

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

Issues during booting from Quad Nor Flash in i.MX6ULEVK

685 Views
sreekanth_m
Contributor II

Hi Guys

 

Finally I am able to flash the Quad SPI NOR of i.MX6ULEVK. But when I tried booting from NOR flash It is not happening. These are logs while booting.

 

U-Boot 2017.03-imx_v2017.03_4.9.11_1.0.0_ga+ga2fea67 (Sep 17 2017 - 14:55:08 -0500)

CPU: Freescale i.MX6UL rev1.1 528 MHz (running at 396 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 41C
Reset cause: POR
Model: Freescale i.MX6 UltraLite 14x14 EVK Board
Board: MX6UL 14x14 EVK
DRAM: 512 MiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
SF: Detected n25q256 with page size 256 Bytes, erase size 4 KiB, total 32 MiB
*** Warning - bad CRC, using default environment

Display: TFT43AB (480x272)
Video: 480x272x24
In: serial
Out: serial
Err: serial
Net: 
Warning: ethernet@020b4000 using MAC address from ROM
eth1: ethernet@020b4000 [PRIME]
Warning: ethernet@02188000 using MAC address from ROM
, eth0: ethernet@02188000
Normal Boot
Hit any key to stop autoboot: 0 
MMC: no card present
mmc_init: -123, time 2
MMC: no card present
mmc_init: -123, time 2
MMC: no card present
mmc_init: -123, time 2
Booting from net ...
ethernet@020b4000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@020b4000
BOOTP broadcast 1
BOOTP broadcast 2

 

 

As per the document , I have tried with following commands to set the environment.

U-Boot > setenv bootcmd 'run bootargsset; sf probe; sf read ${loadaddr} 0xA00000
0x2000; sf read ${fdt_addr} 0x800000 0x800; bootz ${loadaddr} - ${fdt_addr} '

 

Then If I reboot, I get following logs on the command prompt.

 

## Error: "bootargsset" not defined
SF: Detected n25q256 with page size 256 Bytes, erase size 4 KiB, total 32 MiB
device 0 offset 0xa00000, size 0x1600000
SF: 23068672 bytes @ 0xa00000 Read: OK

 

Your help will be highly appreciated.

 

 

Thanks

Sreekanth M.

Labels (1)
0 Kudos
2 Replies

480 Views
sreekanth_m
Contributor II

Hi Guys,

I have used following commands to change the environment variables.

=> setenv bootargsset 'setenv bootargs ${consoleinfo} ${rootfsinfo} ${displayinfo} ${special}'

=>setenv bootcmd 'run bootargsset; sf probe; sf read ${loadaddr} 0xA00000
->0x2000; sf read ${fdt_addr} 0x800000 0x800; bootz ${loadaddr} - ${fdt_addr} '

Environment variables are given below.

=> printenv
baudrate=115200
board_name=EVK
board_rev=14X14
boot_fdt=try
bootargsset=setenv bootargs ${consoleinfo} ${rootfsinfo} ${displayinfo} ${special}
bootcmd=run bootargsset; sf probe; sf read ${loadaddr} 0xA00000 0x2000; sf read ${fdt_addr} 0x800000 0x800; bootz ${loadaddr} ${initr
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=3
bootscript=echo Running bootscript from mmc ...; source
console=ttymxc0
eth1addr=00:04:9f:04:b5:5f
ethact=ethernet@020b4000
ethaddr=00:04:9f:04:b5:5e
ethprime=eth1
fdt_addr=0x83000000
fdt_file=zImage-imx6ul-14x14-evk.dtb
fdt_high=0xffffffff
fdtcontroladdr=9ef40f38
findfdt=if test $fdt_file = undefined; then if test $board_name = EVK && test $board_rev = 9X9; then setenv fdt_file imx6ul-9x9-evk.d;
image=zImage
initrd_addr=0x83800000
initrd_high=0xffffffff
ip_dyn=yes
loadaddr=0x80800000
loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
mfgtool_args=setenv bootargs console=${console},${baudrate} rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_
mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot}
mmcautodetect=yes
mmcboot=echo Booting from mmc ...; run mmcargs; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ;
mmcdev=1
mmcpart=1
mmcroot=/dev/mmcblk1p2 rootwait rw
netargs=setenv bootargs console=${console},${baudrate} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
netboot=echo Booting from net ...; run netargs; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; ${ge;
panel=TFT43AB
script=boot.scr

Environment size: 2574/8188 bytes

--------------------------------------------------------------------------------------------------------------------------------------------------------

When I boot it , the logs printed are following

=> boot
SF: Detected n25q256 with page size 256 Bytes, erase size 4 KiB, total 32 MiB
device 0 offset 0xa00000, size 0x2000
SF: 8192 bytes @ 0xa00000 Read: OK
device 0 offset 0x800000, size 0x800
SF: 2048 bytes @ 0x800000 Read: OK
Bad Linux ARM zImage magic!

--------------------------------------------------------------------------------------------------------------------------------------------------------------

Please help me solve this

Thanks

Sreekanth M.

0 Kudos

480 Views
Yuri
NXP Employee
NXP Employee

Hello,

  Usually QSPI NOR is used to store relatively small applications and / or data,

such as U-boot. QSPI has no enough size to locate OS / RootFS. 

What is Your configuration? How U-boot and kernel were written to the QSPI?  


Have a great day,
Yuri

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos