U-boot customize issue related to UART3 & SDHC3

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

U-boot customize issue related to UART3 & SDHC3

585 Views
heill2england
Contributor II

Hi community,

I am trying to customize U-boot for my custom i.MX 6SoloX board, with using a Yocto-Linux(4.14.98).

I have a i.MX 6SoloX SABRE board, I will porting the U-boot after confirming on the board.

I use the UART3 on my custom board and don't use the SDHC3 because of conflicting PADs.

The U-boot and kernel are loaded from SDHC4.

 

I referenced below and customized U-boot.

 U-Boot Migration Example(https://community.nxp.com/docs/DOC-328200)

I made the U-boot with modifying PADs configuration and UART BASE register at below files to change the UART1 to the UART3.

 [board/freescale/mx6sxsabresd/mx6sxsabresd.c]

 [include/configs/mx6sxsabresd.h]

I installed the U-boot to the SABRE board, I was able to get the log from UART3, but it stopped with displaying "MMC: ".

With using a sample U-boot, I was able to get the log as MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2, and the log goes on.

I suspected that SDHC, then checked U-boot source code.

 [drivers/mmc/mmc.c]

  static int mmc_probe(bd_t *bis)

  ~~~

  uclass_foreach_dev(dev, uc) {

  ret = device_probe(dev);

  ~~~

 }

With checking the process, I found that the first device_prove() call was OK, but it stopped at the second device_probe() call.

As a test, I skipped the second device_probe() call,  the third device_probe() call was run and it returned from mmc_probe().

I think it was the probing of SDHC2, SDHC3, and SDHC4.

I was able to get the log of "MMC:   FSL_SDHC: 0,".

 

I guess it is due to the conflict between the UART3 and SDHC3.

I tried comment out below but nothing was changed.

 [arch/arm/include/asm/arch-mx6/imx-regs.h]

  #define USDHC3_BASE_ADDR            (AIPS2_OFF_BASE_ADDR + 0x18000) 

 

I think that I should disable or remove the SDHC3 from the configurations of platform.

If above idea is correct, how do I do that? Thank you.

Labels (3)
1 Reply

512 Views
igorpadykov
NXP Employee
NXP Employee

Hi Takashi

uart3 is used on boundary devices nitrogen6sx board, one can look at its

settings:

nitrogen6x\boundary\board - uboot-imx - i.MX U-Boot 

imx6sx-nitrogen6sx.dts\dts\boot\arm\arch - linux-imx - i.MX Linux kernel 

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