Hello,
I have custom board with imx51, and u-boot 2009.
System starts from sd card but I would like to port it to parallel nor flash (Micron m29ew) connected do CS0.
I modified config.h,
change: CONFIG_FLASH_HEADER_OFFSET 0x1000 /* 0x400 */
add:
#define CONFIG_SYS_FLASH_BASE | 0Xb0000000 | |
#define CONFIG_SYS_MAX_FLASH_BANKS | 1 | |
#define CONFIG_SYS_MAX_FLASH_SECT | (1) |
#define CONFIG_SYS_MONITOR_BASE 0xb0000000
#define CONFIG_SYS_MONITOR_LEN | (384 * 1024) |
#define CONFIG_ENV_ADDR | (CONFIG_SYS_FLASH_BASE + 384 * 1024) |
#define CONFIG_ENV_IS_IN_FLASH | 1 |
#define CONFIG_ENV_SECT_SIZE 1023
#define CONFIG_ENV_OFFSET ( CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN )
/*-----------------------------------------------------------------------
* CFI FLASH driver setup
*/
#define CONFIG_SYS_FLASH_CFI | 1 |
#define CONFIG_FLASH_CFI_DRIVER 1
#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1
#define CONFIG_SYS_FLASH_ERASE_TOUT | (100*CONFIG_SYS_HZ) |
#define CONFIG_SYS_FLASH_WRITE_TOUT | (100*CONFIG_SYS_HZ) |
and set up all efuse but u-boot doesn't even start.
Can you help me?
Lukasz
I would suggest you to try a more recent U-boot, like 2013.04.
If you face issues with this version, then please post it to the u-boot list.
Hello,wysockilukasz,
The modification you did is not enough, Paralell nor flash will use WEIM interface of i.mx51, normally it has 25bit or 26bit address line and 16bit data lines, for example , probably you will use EIM_DA0~EIM_DA15 and EIM_A16~EIM_A25 to be address lines, and EIM_D16~EIM_D31 is used to be data lines; EIM_OE is reading signal, EIM_RW is writing signal, EIM_CS0 is used as chipselect, So you will configure these pins in u-boot/board/freescale/mx51_bbg/mx51_bbg.c :
(1)IOMUX all pins you will use.
(2)Setting IOMUX mode( such as 16bit non-mux mode etc)
(3)Setting work mode (maybe it works as asysncronous mode)
(4)Setting total capacities on EIM_CS0 and disable other EIM_CSx.
For mode detail, please refer to weim interface in mcimx51RM.pdf
Then on hardware, you should set boot_mode0 & boot_mode1 pin to be internal mode. and set corresponding EIM PINs to boot from Parallel NOR Flash connected to WEIM interface.
Regards,
Weidong
,Hello,wysockilukasz,
Do you understand above steps ?
Weidong
Hello and thanks for your reply!
I did all this of this changes, but I think that the problem is somewhere else.
It seems that lowlevel_init doesn't start at all.
In this part after Uart initialization (this code works when u-boot starts form sd card) - before even u-boot starts I puts so small logs and now I can't see them.
Regards
Lukasz
Hi,wysockilukasz
Could you share the following information ?
(1)Schematic of your board
(2)tell me the bsp version you are using
weidong
Hi!
Ad1. I can't show you my schematic but:
- address lines: EIM_DA0-EIM_DA15 + EIM_A16-EIM_A26
- data lines: EIM_D16 - EIM_D31
- chip select: EIM_CS0
- Output Enable: EIM_OE
- Write eneble: EIM_RW
Nor flash: PC28F00AM29EWL
I'm booting from internal flash witch fuse overridden by the GPIO.
BT_MEM_CTL - 00 WEIM
BT_MEM_TYPE - 00 NOR
BT_WITDTH - 0 16 bits
BT_WEIM_MUXED - 00 -Not muxed, not multiplexed with NAND,
16-bit data (high half) NOR interface.
Ad.2. I'm using QNX Neutrino 6.4.1 BSP
Regards
Lukasz
Hello,wysockilukasz,
According to your description, your configuration / settings on hardware are all correct. But QNX bsp is supported by QNX Company, So probably you can try to contact with QNX supporting engineer.
weidong