Re: [PATCH 2/2] ARM: nxp-imx8mq-evk: add barebox and env partitions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 6, 2018 at 9:43 AM Lucas Stach <l.stach@xxxxxxxxxxxxxx> wrote:
>
> So we can have a persistent env and a bit safer barebox update. Also
> switch the environment and update default depending on the bootsource,
> as this is really helpful on an eval board where one might want to
> have totally different systems on eMMC and SD card.
>
> Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
> ---
>  arch/arm/boards/nxp-imx8mq-evk/board.c | 20 +++++++++++---
>  arch/arm/dts/imx8mq-evk.dts            | 37 ++++++++++++++++++++++++++
>  2 files changed, 54 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/boards/nxp-imx8mq-evk/board.c b/arch/arm/boards/nxp-imx8mq-evk/board.c
> index 7918b5fb3e36..299d056e2777 100644
> --- a/arch/arm/boards/nxp-imx8mq-evk/board.c
> +++ b/arch/arm/boards/nxp-imx8mq-evk/board.c
> @@ -17,11 +17,12 @@
>   *
>   */
>
> +#include <asm/memory.h>
> +#include <bootsource.h>
>  #include <common.h>
>  #include <init.h>
> -#include <asm/memory.h>
> -#include <linux/sizes.h>
>  #include <linux/phy.h>
> +#include <linux/sizes.h>
>  #include <mach/bbu.h>
>
>  #include <envfs.h>
> @@ -47,12 +48,25 @@ static int ar8031_phy_fixup(struct phy_device *phydev)
>
>  static int nxp_imx8mq_evk_init(void)
>  {
> +       int flags;
> +
>         if (!of_machine_is_compatible("fsl,imx8mq-evk"))
>                 return 0;
>
>         barebox_set_hostname("imx8mq-evk");
>
> -       imx8mq_bbu_internal_mmc_register_handler("eMMC", "/dev/mmc0", 0);
> +       flags = bootsource_get_instance() == 0 ? BBU_HANDLER_FLAG_DEFAULT : 0;
> +       imx8mq_bbu_internal_mmc_register_handler("eMMC",
> +                                                "/dev/mmc0.barebox", flags);
> +
> +       flags = bootsource_get_instance() == 1 ? BBU_HANDLER_FLAG_DEFAULT : 0;
> +       imx8mq_bbu_internal_mmc_register_handler("SD",
> +                                                "/dev/mmc1.barebox", flags);
> +
> +       if (bootsource_get_instance() == 0)
> +               of_device_enable_path("/chosen/environment-emmc");
> +       else
> +               of_device_enable_path("/chosen/environment-sd");

Optionally, you can probably simplify this to:

switch (bootsource_get_instance()) {
case 0:
    flags_emmc = BBU_HANDLER_FLAG_DEFAULT;
    flags_sd = 0;
    environment_path = "/chosen/envirnoment-emmc";
    break;
case 1:
    flags_emmc = 0;
    flags_sd = BBU_HANDLER_FLAGDEFAULT;
    environment_path = "/chosen/envirnoment-sd";
    break;
}

imx8mq_bbu_internal_mmc_register_handler("eMMC",
                                                "/dev/mmc0.barebox", flags_mmc);

imx8mq_bbu_internal_mmc_register_handler("SD",
                                               "/dev/mmc1.barebox", flags_sd);

of_device_enable_path(environment_path);

Thanks,
Andrey Smirnov

_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux