[U-Boot] [PATCH 1/2] Revert "configs: Remove am335x_boneblack_defconfig"

Sam Protsenko semen.protsenko at linaro.org
Thu Sep 12 16:19:39 UTC 2019


The eMMC boot works fine, but "env save" fails with message:

    Saving Environment to FAT... Failed (1)

That's because CONFIG_ENV_IS_IN_MMC=y is not enabled, which wouldn't
work without CONFIG_SYS_EXTRA_OPTIONS="EMMC_BOOT", because in
include/configs/am335x_evm.h it defines eMMC environment options:

    ...
    #elif defined(CONFIG_EMMC_BOOT)
    #define CONFIG_SYS_MMC_ENV_DEV        1
    #define CONFIG_SYS_MMC_ENV_PART        0
    #define CONFIG_ENV_OFFSET        0x260000
    #define CONFIG_ENV_OFFSET_REDUND    (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)
    #define CONFIG_SYS_REDUNDAND_ENVIRONMENT
    #define CONFIG_SYS_MMC_MAX_DEVICE    2

And if we enable those two options in am335x_evm_defconfig, it leads
to wrong pin-muxing in board/ti/am335x/mux.c (because CONFIG_NAND is
also enabled in am335x_evm_defconfig):

    } else if (board_is_bone_lt()) {
        ...
        configure_module_pin_mux(mmc0_pin_mux);
#if defined(CONFIG_NAND) && defined(CONFIG_EMMC_BOOT)
        configure_module_pin_mux(nand_pin_mux);  <---- this line is executed
#elif defined(CONFIG_NOR) && defined(CONFIG_EMMC_BOOT)
        configure_module_pin_mux(bone_norcape_pin_mux);
#else
        configure_module_pin_mux(mmc1_pin_mux);
#endif

So I don't see any other way to overcome this issue other than keeping
separate defconfig for NAND and eMMC board variants. Of course, I can
fix commit message to state the reason more clearly. We can also
rename am335x_boneblack_defconfig to am335x_evm_mmc_defconfig, but it
doesn't change the fact it should be done. If somebody sees another
way around, please do tell.

Thanks!

On Thu, Sep 12, 2019 at 6:43 PM Andre Heider <a.heider at gmail.com> wrote:
>
> Hi,
>
> On 9/12/19 5:23 PM, Sam Protsenko wrote:
> > Commit 8fa7f65dd02c ("configs: Remove am335x_boneblack_defconfig")
> > removes defconfig for BeagleBone Black board, and it's advised to use
> > am335x_evm_defconfig for all AM335x boards. But it's impossible to use
> > am335x_evm_defconfig in eMMC use-case without modifications for BBB
> > (NAND must be disabled, MMC enabled, etc). This is inconvenient for user
> > to do such modifications via menuconfig (only developer knows what
> > should be done). Furthermore, enabling MMC options in
> > am335x_evm_defconfig leads to wrong pin-muxing scheme in
> > board/ti/am335x/mux.c, because both NAND and MMC options are going to be
> > enabled in the config, so that pins are muxed for BBB with NAND cape,
> > which in turn leads to non-functioning eMMC. There is no way to make the
> > single defconfig working for both eMMC and NAND use-cases, because we
> > can't figure out in run-time which board configuration is used by user
> > (EVM, BBB, or BBB with NAND cape). Hence we rely on CONFIG options to
> > figure out which configuration is used. Because of this we can't use
> > single defconfig for AM335x EVM and BBB.
>
> for the record: I booted my bbb with am335x_evm_defconfig without any
> config changes from emmc using master a few days ago just fine. It works
> just as well as booting from sd card.
>
> That's with using distro boot, the legacy env cmds don't try to boot off
> emmc iirc.
>
> Regards,
> Andre


More information about the U-Boot mailing list