[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