Dear Community Members,
I have designed an imx53 custom board .
I followed the "imx53 System Development Users Guide"
and
"AN4173 U-Boot for i.MX51 Based Designs Source Code Overview and Customization"
for customization.
I have compiled the uboot code and write the u-boot.bin into SDcard on a linux desktop PC .
I connected the board to hyperterminal and minicom but I couldnt get any u-boot prompt.
After the power-on reset ,SD1_clk is generated (mx53 tries to boot from SDcard-1 ?)
but I dont see any SDRAM_CLK or UART activity .
My Customization steps are below :
STEP 1: Source Code customization :
------------------------------------
I have copied the
/home/ltib/rpm/BUILD/u-boot-2009.08/board/freescale/mx53_loco folder as
mx53_myboard folder and made the necessary changes :
For DDR2 customization :
In flash_header.S
I changed the IOMUX and ESDCTL Register Loading values according to the DDR2 data sheet.
In lovlevel_init.S
I didnt change anything.
In mx53_myboard.c
in setup_uart() function
UART1_TXD and UART1_RXD pins replaced by UART5_TXD and UART5_RXD pins.
in esdhc_gpio_init() function
iomux and set_pad functions for clk,cmd,and data pins of SD1 and SD2 are called.
In mx53_myboard.h
/home/ltib/rpm/BUILD/u-boot-2009.08/include/configs/mx53_myboard.h
replaced UART1 to UART5
#define CONFIG_UART_BASE_ADDR UART5_BASE_ADDR
#define CONFIG_CONS_INDEX 4
boot from SD1
#define CONFIG_SYS_FSL_ESDHC_NUM 2
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
#define CONFIG_SYS_MMC_ENV_DEV 0
DRAM banks and size
#define CONFIG_NR_DRAM_BANKS 1
#define PHYS_SDRAM_1 CSD0_BASE_ADDR
#define PHYS_SDRAM_1_SIZE (512 * 1024 * 1024)
#define iomem_valid_addr(addr, size) \
((addr >= PHYS_SDRAM_1 && addr <= (PHYS_SDRAM_1 + PHYS_SDRAM_1_SIZE)) )
#define CONFIG_FSL_ENV_IN_MMC
/* #define CONFIG_FSL_ENV_IN_SATA */
#elif defined(CONFIG_FSL_ENV_IN_MMC)
#define CONFIG_ENV_IS_IN_MMC 1
#define CONFIG_ENV_OFFSET (768 * 1024)
????? Do You think other changes are necessary ?????????
STEP 2 : Flashing u-boot.bin into SDcard:
-----------------------------------------------
Disk /dev/sdb: 3951 MB, 3951034368 bytes
19 heads, 48 sectors/track, 8461 cylinders
Units = cylinders of 912 * 512 = 466944 bytes
Disk identifier: 0x000a1287
Device Boot Start End Blocks Id System
/dev/sdb1 10 1133 512544 83 Linux
/dev/sdb2 1134 8461 3341568 83 Linux
sudo dd if=./u-boot.bin of=/dev/sdb bs=512 seek=2
321+1 records in
321+1 records out
164828 bytes (165 kB) copied, 0.012851 s, 12.8 MB/s
NOTE:
----------------------------------------------
The custom board has the following components :
--Nand Flash = MT29F8G08ABABAWP ( 8bits NandFlash)
--DDR2 memory = 2 x MT47H32M16(each 16bits =>32 bits memory)
one DRAM bank ,only DRAM_CS0 is used
--ESDHC-1 and ESDHC-2 (4bit micro SD cards are connected)
My intension is to boot from SD-interface -1 .
-- Five Uarts
UART5 will be used as u-boot console
--LTC3589-2 is used as PMIC ,TPS54218 is used for 1.8V DDR2 power
--I think,I found what is missing(but not tried yet) .
clk_config(CONFIG_REF_CLK_FREQ, 1000, CPU_CLK);
which is called in board_late_init function() .
I commented out this part because it seems to be related to the PMIC voltage setting.
--But clk_config () is called four times in imx53_evk to set NFC CLK,DDR CLK,CPU CLK ,PERIPHERAL CLK
for other mx53 boards its called only once for CPU CLK ?
I redesigned the board to be able to use tools like ddr tester sw . ROM code looks for the activity on the serial ports but it has own default IOMUX pins for uart pins differenet than my old layout,also usb pins are terminated. By adjusting DDR2 parameters RAM tests dont fail anymore .Then I realised that SDcard boot in high speed mode there are setup hold time violations (arising from SDcard ?),in normal speed I can boot from SDcard ,prompt is OK.