IMX6DL EIM norflash uboot how to configure the boot

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

IMX6DL EIM norflash uboot how to configure the boot

1,127 Views
zhilinhuang
Contributor III

Hello, disturbed, on the EIM norflash S29GL128S start the issue, now on the development of IMX6DL encountered a problem, uboot can not start from norflash, uboot do not know how to configure EIM norflash parameters, can not provide EIM norflash start uboot related Configuration example?

Labels (1)
0 Kudos
3 Replies

672 Views
igorpadykov
NXP Employee
NXP Employee

Hi zhilin

EIM norflash is supported on Sabre AI board, one can look at imx6dl-sabreauto-gpmi-weim.dts

linux-imx.git - i.MX Linux Kernel 

and sect.4.4.1.4 Flashing U-Boot on Parallel NOR from U-Boot attached Linux Guide.

Schematics (5)
Design files for i.MX 6Quad and i.MX 6DualLite CPU1 Cards
Design files for Base Board (REV E)

http://www.nxp.com/products/software-and-tools/hardware-development-tools/sabre-development-system/s...

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

0 Kudos

672 Views
zhilinhuang
Contributor III

你好,igorpadykov

我先修改如下还是不行:

我的软件环境是:
通过  dd 命令制作         SD 卡启动   已经可以启动了 到kenrle 了
现在想利用SD 卡的 uboot 升级 uboot-emi-nor
参考:i.MX_Linux_User's_Guide.pdf 中
Flashing U-Boot on Parallel NOR from U-Boot   的升级方式烧写
 
 
 
 
 
问题1,这种方式是否可行?
我尝试 参考你发文档 《support EIM parallel NOR flash .txt》 的步骤去移植
Here are the basic steps to do:
1. Define "CONFIG_CMD_WEIMNOR" in include/configs/mx6q_sabrelite.h
2. Undefine CONFIG_SYS_NO_FLASH  in this config file
3. Set the start address , the data widht of the NOR flash correctly in the same config file.
4. Add a function in mx6q_sabrelite.c to:
          Put the appropriate pads into correct mux mode;
          Set up the EIM control/configuration registers as required.
5.  Call this function in the board_init() function ( in board/freescale/mx6q_sabrelite/mx6q_sabrelite.c).
 
Most of the details can be found in the corresponding files for mx6q_sabreauto platform.
 
But one have to pay attention that this EIM initialization function has to be called before
the flash_init() function (in lib_arm/board.c), because the flash_init() function needs to
read some information from the flash chip, so before that , the EIM must be ready.
 
If you just call this EIM initialization function in board_init(),
then everything should be OK.
移植过程中我是参考了
include/configs/mx6qsabreauto.h
board/freescale/mx6qsabreauto/mx6qsabreauto.c
附件是我修改 的比较文件
附件mx6sabresd.c.patch  和  mx6sabresd.h.patch
我修改后  现在启动uboot 调试 信息如下:
 
 
 
initcall: 1784262c
U-Boot 2016.03-imx_v2016.03_4.1.15_2.0.0_ga+ga57b13b (Jul 26 2017 - 05:39:17 -0700)
initcall: 17811ac4
U-Boot code: 17800000 -> 1786E034  BSS: -> 178A63BC
initcall: 17802398
CPU:   Freescale i.MX6DL rev1.2 at 792MHz
CPU:   Automotive temperature grade (-40C to 125C)malloc_simple: size=10, ptr=ec, limit=400
uclass_find_device_by_seq: 0 -1
uclass_find_device_by_seq: 0 0
   - -1 -1
   - not found
 at 50C
Reset cause: POR
initcall: 1781207c
Board: MX6-SabreSD
initcall: 17811b08
I2C:   ready
initcall: 17811af0
DRAM:  initcall: 17803de0
initcall: 17811d68
Monitor len: 000A63BC
Ram size: 40000000
Ram top: 50000000
initcall: 178118f8
initcall: 17811a6c
TLB table from 4fff0000 to 4fff4000
initcall: 17811c84
initcall: 17811a20
Reserving 664k for U-Boot at: 4ff49000
initcall: 178119f0
Reserving 16392k for malloc() at: 4ef47000
initcall: 17811c28
Reserving 80 Bytes for Board Info at: 4ef46fb0
initcall: 17811910
initcall: 178119bc
Reserving 248 Bytes for Global Data at: 4ef46eb8
initcall: 17811950
initcall: 17811c7c
initcall: 17811de4
initcall: 17811d40
initcall: 17811c98
RAM Configuration:
Bank #0: 10000000 1 GiB
DRAM:  1 GiB
initcall: 17811934
New Stack Pointer is: 4ef46e90
initcall: 17811be4
initcall: 17811b78
Relocation Offset is: 38749000
Relocating to 4ff49000, new gd at 4ef46eb8, sp at 4ef46e90
initcall: 4ff5afd8
initcall: 4ff5ae30
initcall: 17811fc0 (relocated to 4ff5afc0)
dram_bank_mmu_setup: bank: 0
mmu_set_region_dcache_behaviour: start=0x00000000, size=1048575, option=30
CACHE: Misaligned operation at range [4fff0000, 4fff0004]
mmu_set_region_dcache_behaviour: start=0x00000009, size=262144, option=30
CACHE: Misaligned operation at range [4fff0024, 4fff0028]
initcall: 17811e48 (relocated to 4ff5ae48)
initcall: 17811fd0 (relocated to 4ff5afd0)
initcall: 17811f84 (relocated to 4ff5af84)
Pre-reloc malloc() used 0xec bytes (0 KB)
using memory 0x4ef47000-0x4ff49000 for malloc()
initcall: 17811e70 (relocated to 4ff5ae70)
initcall: 17811e28 (relocated to 4ff5ae28)
initcall: 17811f70 (relocated to 4ff5af70)
uclass_find_device_by_seq: 0 -1
uclass_find_device_by_seq: 0 0
   - -1 -1
   - not found
Bound device imx_thermal to root_driver
initcall: 17811f5c (relocated to 4ff5af5c)
initcall: 1780415c (relocated to 4ff4d15c)
gpmigpmigpmigpmigpmigpmigpmigpmigpmigpmigpmigpmigpmigpmisetup_iomux_eimnor()
setup_iomux_eimnor()
setup_iomux_eimnor()
setup_iomux_eimnor()
setup_iomux_eimnor()
setup_iomux_eimnor()
setup_iomux_eimnor()
setup_iomux_eimnor()
setup_iomux_eimnor()
setup_iomux_eimnor()
setup_iomux_eimnor()
setup_iomux_eimnor()
setup_iomux_eimnor()
setup_iomux_eimnor()
setup_iomux_eimnor()
setup_iomux_eimnor()
setup_iomux_eimnor()
initcall: 178183a4 (relocated to 4ff613a4)
initcall: 17811f4c (relocated to 4ff5af4c)
initcall: 17811f30 (relocated to 4ff5af30)
Now running in RAM - U-Boot at: 4ff49000
initcall: 1780441c (relocated to 4ff4d41c)
initcall: 17811fe8 (relocated to 4ff5afe8)
Flash: flash detect cfi
fwc addr 08000000 cmd f0 f0f0 16bit x 8 bit   // 卡死在: drivers/mtd/cfi_flash.c 中

这边是什么问题吗?谢谢

0 Kudos

672 Views
andy_cc_huang
Contributor II

Hi Zhilin, 

   We have the same issue when we use Micro 512Mbit eim nor flash.

Could you share how to fix this issue ?

Best,

Andy

0 Kudos