IMX6DL EIM norflash uboot how to configure the boot

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

IMX6DL EIM norflash uboot how to configure the boot

2,912件の閲覧回数
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?

ラベル(1)
0 件の賞賛
返信
3 返答(返信)

2,457件の閲覧回数
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 件の賞賛
返信

2,457件の閲覧回数
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 件の賞賛
返信

2,457件の閲覧回数
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 件の賞賛
返信