[U-Boot] [UBOOT PATCH v2 2/2] arm64: zynqmp: mmc: Added Kconfig support for CONFIG_ZYNQ_SDHCI1
Jaehoon Chung
jh80.chung at samsung.com
Mon Mar 5 09:38:47 UTC 2018
On 03/02/2018 06:18 PM, Michal Simek wrote:
> On 2.3.2018 10:01, Jaehoon Chung wrote:
>> On 03/02/2018 04:44 PM, Michal Simek wrote:
>>> On 2.3.2018 07:27, Jaehoon Chung wrote:
>>>> On 03/02/2018 12:13 AM, Michal Simek wrote:
>>>>> On 28.2.2018 08:42, Jaehoon Chung wrote:
>>>>>> Hi,
>>>>>>
>>>>>> On 02/28/2018 03:28 PM, Vipul Kumar wrote:
>>>>>>> This patch added Kconfig support for CONFIG_ZYNQ_SDHCI1 and
>>>>>>> enabled it in defconfig.
>>>>>>
>>>>>> I think that CONFIG_ZYNQ_SDHCI1 is meaningful when CONFIG_ZYNQ_SDHCI0 is enabled.
>>>>>> It's used in zynqmp.c and spl.c ..like below..
>>>>>>
>>>>>> #if defined(CONFIG_ZYNQ_SDHCI0) && defined(CONFIG_ZYNQ_SDHCI1)
>>>>>> ....
>>>>>> #endif
>>>>>>
>>>>>> If CONFIG_ZYNQ_SDHCI0 isn't enabled, doesn't it need to set CONFIG_ZYNQ_SDHCI1 in defconfigs.
>>>>>>
>>>>>> If i missed something, let me know, plz.
>>>>>
>>>>> you are right. Dependency should be
>>>>>
>>>>> config ZYNQ_SDHCI1
>>>>> ...
>>>>> depends on ZYNQ_SDHCI0
>>>>
>>>> Hmm. I didn't check fully, but it seems that it's possible to use only one config.
>>>> I will check in more detail. After that, resend the email. :)
>>>
>>> I can't also see any issue with using just one symbol with proper name.
>>
>> Maybe you know more than me about zynq boards.
>> In SPL, it seems that it needs to add some config in spl.c for distinguishing boot device.
>> But in not SPL, if zynq boards are supported the device-tree, then can you use the below concept?
>>
>> commit 02ad33aa3a84821c8d9a6c4f167f143f6248b084
>> Author: Jaehoon Chung <jh80.chung at samsung.com>
>> Date: Thu Feb 2 13:41:14 2017 +0900
>>
>> mmc: mmc-uclass: use the fixed devnum with alias node
>>
>> If there are alias nodes as "mmc", use the devnum as alias index
>> number.
>> This patch is for fixing a problem of Exynos4 series.
>> Problem is the below thing.
>>
>> Current legacy mode:
>> EXYNOS DWMMC: 0, SAMSUNG SDHCI: 1
>>
>> After using DM:
>> SAMSUNG SDHCI: 0, EXYNOS DWMMC: 1
>>
>> Dev index is swapped.
>> Then u-boot can't find the kernel image..because it is already set to 0 as mmcdev.
>> If change from legacy to DM, also needs to touch all exynos4 config file.
>> For using simply, just supporting the fixed devnum with alias node is better than it.
>>
>> Usage:
>> alaise {
>> ....
>> mmc0 = &sdhci2; /* eMMC */
>> mmc1 = &sdhci1; /* SD */
>> ...
>> }
>>
>
> Chips are supporting booting from SD0 or SD1 controller.
>
> #define SD_MODE 0x00000003 /* sd 0 */
> #define SD_MODE1 0x00000005 /* sd 1 */
> #define EMMC_MODE 0x00000006
> #define SD1_LSHFT_MODE 0x0000000E /* SD1 Level shifter */
>
> It means on systems which has only sd0 or sd1 we are setting up alias as
> mmc0 = &sdhci0; (sd0)
> or
> mmc0 = &sdhci1; (sd1)
>
> It means dev 0 is used all the time.
>
> In case of system with both controllers on the same board you need to
> have two aliases. Normally like this.
> mmc0 = &sdhci0; (sd0)
> mmc1 = &sdhci1; (sd1)
>
> In case you choose to boot from sd1 default behavior should be that all
> images are on sd1 that's why boot device needs to be setup.
> When you load the same u-boot to sd0 it should boot from sd0.
>
> Changing aliases for certain boot mode configuration should just work
> but that's not intention. Normally the same boot files can be loaded to
> sd, qspi, nand, jtag, you setup boot mode and they should primary boot
> from that boot device and that's what that logic is about.
Thanks for explaining this. I understood what purpose those configs are used.
Best Regards,
Jaehoon Chung
>
> Thanks,
> Michal
>
>
>
More information about the U-Boot
mailing list