Hi all,
I am trying to bring up the u-boot on our custom board based on imx6solo, but no luck , below are the steps(questions too)
which i have done till now. please give me some feedback/suggestion for debugging or possible change i might have missed.
1) Completed Stress test with v2.20 successfully and generated DDR setting, attached are updated *.inc, and .cfg file with calibration result.
does it look fine or i missed something ?
2) I referenced this "board/freescale/mx6sabresd/" directory for porting to my board
a) created "board/freescale/mx6smyboard/" - a copy of "board/freescale/mx6sabresd/"
b) created a new config file for my DDR - "mx6s_h5tc4g63cfr_pba.cfg" with new calibration tool result. - attached.
c) modified code in mx6sabresd.c for my board e.g UART1 and SDHC3 for 4 bit support.
UART1:
MX6_PAD_SD3_DAT6__UART1_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
MX6_PAD_SD3_DAT7__UART1_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL), };
USDHC3:
usdhc3_pads[] = {
MX6_PAD_SD3_CLK__SD3_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD3_CMD__SD3_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD3_DAT0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD3_DAT1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD3_DAT4__GPIO7_IO01 | MUX_PAD_CTRL(NO_PAD_CTRL), /* CD */
};
for card detection pin changed :
#define USDHC3_CD_GPIO IMX_GPIO_NR(7, 1)
d) In "board_mmc_init" added below line for 4 bit support.
usdhc_cfg[0].max_bus_width = 4;
usdhc_cfg[1].max_bus_width = 4;
usdhc_cfg[2].max_bus_width = 4;
e) created config referenced from
include/configs/mx6sabre_common.h
include/configs/mx6sabresd.h
disabled #undef CONFIG_EXTRA_ENV_SETTINGS - just to avoid compilation error and
f) created u-boot.imx image and flashed on the SD card by using :
dd if=u-boot.imx of=/dev/sde bs=1k seek=1 conv=fsync
is it correct command ?
am i still missing any possible changed required in u-boot ?
3) How can i verify whether my CPU is reading the image from SD card or not ?
4) what kind of debugging method i can try to trace my code running location on this platform ?
5) is the below files are getting used in u-boot for initialization ?
a ) arch/arm/cpu/armv7/start.S
b) arch/arm/cpu/armv7/lowlevel_init.S
I tried to put a debug loop in "arch/arm/cpu/armv7/start.S "
for making GPIO16 status changed but nothing seems to work , is it the right file to put such kind of debugging code ?
code snippet :
bl cpu_init_crit
bl cpu_init_loop
ENTRY(cpu_init_loop)
ldr r0, =IOMUXC_BASE_ADDR
ldr r1, =0x00000000
str r1, [r0, #0x5e4]
b cpu_init_jmd_loop
ENDPROC(cpu_init_loop)
please give me some feedback ?
Thanks in advance.
- Robin
===============================================================================
Memory specification :
Manufacturer: Hynix
Device Part Number: H5TC4G63CFR-PBA (2 chip we are using 512MB+512MB)
Clock Freq.: 400MHz
Density per CS in Gb: 8
Chip Selects used: 1
Number of Banks: 8
Row address: 15
Column address: 10
Data bus width 32
=============================================================================
these are the result of calibration
DDR Stress Test Iteration 1
Current Tempareture: 54
DDR Freq: 396 MHz
t0.1: data is addr test
t0: memcpy11 SSN test
t1: memcpy8 SSN test
t2: byte-wise SSN test
t3: memcpy11 random pattern test
t4: IRAM_to_DDRv2 test
t5: IRAM_to_DDRv1 test
t6: read noise walking ones and zeros test
Success: DDR Stress test completed!!!
Original Attachment has been moved to: mx6s_h5tc4g63cfr_pba.cfg.zip
Original Attachment has been moved to: mx6smyboard.c.zip
Original Attachment has been moved to: 40ohm_myboard_MX6s_DDR3_4Gb_32bit_v1.5-800mz.inc.zip
Solved! Go to Solution.
Hi igor,
We fixed it , it was a POR issue , PMIC was not generating POR with proper timing , a extended (more then 1 sec long ) POR is required for Imx6 to boot. it might be a issue from Free scale side , Igor have you seen this issue for other customer ? what was the final solution ?
thanks
Robin Singh
robinsingh i'm also working on imx6solo custom board with LPDDR2, i'm also making changes to uboot using bsp pdf. i have downloaded script to generate cfg file values. manually also i have seen all register and their values. i'm using uart3 and sd card but at console window i'm seeing any thing no log no error. if you can help me can you just tell what are the necessary changes you made in which file. what consideration you took while changing uboot source code.
regards
ganesh
Ganesh , check my post above and also fix to the problem. my all the changed explained above, hope these will help you.
robinsingh i have solved the issue was the command to copy uboot on sd card. i was trying .bin file which i have used in prvious version of uboot but i believe latest uboot uses .imx. thanks for your reply once again.
Hi robin
for i.MX6 Solo also one can check that uboot has :
CONFIG_MX6SOLO
Recommended to check SD signals by oscilloscope, then
connect jtag, check sampled boot configuration in SRC_SBMR1,2.
If boot fails processor jumps to Serial Downloader mode, one can check that
attaching usb cable and running mfg tool.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
Thanks for your reply. I checked my uboot config and CONFIG_MX6SOLO is enable.
I also checked SD signals by oscilloscope but there is no activity on SD card signals
does it mean IMX6solo's on chip code is not reading the u-boot from SD card ?
As you mentioned "if boot fails processor jumps to serial download mode" i checked by USB cable and mfgtool on a window PC but i do not see the board enumerated in device manager(means not going to serial download mode) so i am not able to make a conclusion what is happing on board, any suggestion based on these input? .
JTAG is not yet up for me , tomorrow i will continue debugging.
For jtag i will need a init script , can you point me which init script i will be using?
any reference link or post ?
Thanks
Robin Singh
Hi igor,
We fixed it , it was a POR issue , PMIC was not generating POR with proper timing , a extended (more then 1 sec long ) POR is required for Imx6 to boot. it might be a issue from Free scale side , Igor have you seen this issue for other customer ? what was the final solution ?
thanks
Robin Singh