[PATCH 8/8] gw_ventana: Migrate to using CONFIG_EXTRA_ENV_TEXT
Tom Rini
trini at konsulko.com
Tue Jun 14 18:18:38 CEST 2022
On Tue, Jun 14, 2022 at 09:14:03AM -0700, Tim Harvey wrote:
> On Mon, Jun 13, 2022 at 7:57 PM Tom Rini <trini at konsulko.com> wrote:
> >
> > Move the environment text over from being set via
> > CONFIG_EXTRA_ENV_SETTINGS in include/configs/gw_ventana.h and over
> > to plain text in board/gateworks/gw_ventana/gw_ventana.env. This lets
> > us drop CONFIG_EXTRA_ENV_SETTINGS_COMMON as everything resides in a
> > single environment file now.
> >
> > Cc: Tim Harvey <tharvey at gateworks.com>
> > Signed-off-by: Tom Rini <trini at konsulko.com>
> > ---
> > board/gateworks/gw_ventana/gw_ventana.env | 145 +++++++++++++++++++++
> > include/configs/gw_ventana.h | 148 ----------------------
> > 2 files changed, 145 insertions(+), 148 deletions(-)
> > create mode 100644 board/gateworks/gw_ventana/gw_ventana.env
> >
> > diff --git a/board/gateworks/gw_ventana/gw_ventana.env b/board/gateworks/gw_ventana/gw_ventana.env
> > new file mode 100644
> > index 000000000000..9a316c74f215
> > --- /dev/null
> > +++ b/board/gateworks/gw_ventana/gw_ventana.env
> > @@ -0,0 +1,145 @@
> > +/* SPDX-License-Identifier: GPL-2.0+ */
> > +/*
> > + * Copyright (C) 2013 Gateworks Corporation
> > + */
> > +
> > +splashpos=m,m
> > +splashimage=CONFIG_SYS_LOAD_ADDR
> > +usb_pgood_delay=2000
> > +console=ttymxc1
> > +bootdevs=usb mmc sata flash
> > +hwconfig=_UNKNOWN_
> > +
> > +disk=0
> > +part=1
> > +
> > +fdt_high=0xffffffff
> > +fdt_addr=0x18000000
> > +initrd_high=0xffffffff
> > +fixfdt=fdt addr ${fdt_addr}
> > +bootdir=boot
> > +loadfdt=
> > + if ${fsload} ${fdt_addr} ${bootdir}/${fdt_file}; then
> > + echo Loaded DTB from ${bootdir}/${fdt_file};
> > + run fixfdt;
> > + elif ${fsload} ${fdt_addr} ${bootdir}/${fdt_file1}; then
> > + echo Loaded DTB from ${bootdir}/${fdt_file1};
> > + run fixfdt;
> > + elif ${fsload} ${fdt_addr} ${bootdir}/${fdt_file2}; then
> > + echo Loaded DTB from ${bootdir}/${fdt_file2};
> > + run fixfdt;
> > + fi
> > +
> > +fs=ext4
> > +script=6x_bootscript-ventana
> > +loadscript=
> > + if ${fsload} ${loadaddr} ${bootdir}/${script}; then
> > + source ${loadaddr};
> > + fi
> > +
> > +uimage=uImage
> > +mmc_root=mmcblk0p1
> > +mmc_boot=
> > + setenv fsload "${fs}load mmc ${disk}:${part}";
> > + mmc dev ${disk} && mmc rescan &&
> > + setenv dtype mmc; run loadscript;
> > + if ${fsload} ${loadaddr} ${bootdir}/${uimage}; then
> > + setenv bootargs console=${console},${baudrate}
> > + root=/dev/${mmc_root} rootfstype=${fs}
> > + rootwait rw ${video} ${extra};
> > + if run loadfdt; then
> > + bootm ${loadaddr} - ${fdt_addr};
> > + else
> > + bootm;
> > + fi;
> > + fi
> > +
> > +sata_boot=
> > + setenv fsload "${fs}load sata ${disk}:${part}";
> > + sata init &&
> > + setenv dtype sata; run loadscript;
> > + if ${fsload} ${loadaddr} ${bootdir}/${uimage}; then
> > + setenv bootargs console=${console},${baudrate}
> > + root=/dev/sda1 rootfstype=${fs}
> > + rootwait rw ${video} ${extra};
> > + if run loadfdt; then
> > + bootm ${loadaddr} - ${fdt_addr};
> > + else
> > + bootm;
> > + fi;
> > + fi
> > +
> > +usb_boot=
> > + setenv fsload "${fs}load usb ${disk}:${part}";
> > + usb start && usb dev ${disk} &&
> > + setenv dtype usb; run loadscript;
> > + if ${fsload} ${loadaddr} ${bootdir}/${uimage}; then
> > + setenv bootargs console=${console},${baudrate}
> > + root=/dev/sda1 rootfstype=${fs}
> > + rootwait rw ${video} ${extra};
> > + if run loadfdt; then
> > + bootm ${loadaddr} - ${fdt_addr};
> > + else
> > + bootm;
> > + fi;
> > + fi
> > +
> > +#ifdef CONFIG_SPI_FLASH
> > +image_os=ventana/openwrt-imx6-imx6q-gw5400-a-squashfs.bin
> > +image_uboot=ventana/u-boot_spi.imx
> > +
> > +spi_koffset=0x90000
> > +spi_klen=0x200000
> > +
> > +spi_updateuboot=echo Updating uboot from
> > + ${serverip}:${image_uboot}...;
> > + tftpboot ${loadaddr} ${image_uboot} &&
> > + sf probe && sf erase 0 80000 &&
> > + sf write ${loadaddr} 400 ${filesize}
> > +spi_update=echo Updating OS from ${serverip}:${image_os}
> > + to ${spi_koffset} ...;
> > + tftp ${loadaddr} ${image_os} &&
> > + sf probe &&
> > + sf update ${loadaddr} ${spi_koffset} ${filesize}
> > +
> > +flash_boot=
> > + if sf probe &&
> > + sf read ${loadaddr} ${spi_koffset} ${spi_klen}; then
> > + setenv bootargs console=${console},${baudrate}
> > + root=/dev/mtdblock3
> > + rootfstype=squashfs,jffs2
> > + ${video} ${extra};
> > + bootm;
> > + fi
> > +#else
> > +image_rootfs=openwrt-imx6-ventana-rootfs.ubi
> > +nand_update=echo Updating NAND from ${serverip}:${image_rootfs}...;
> > + tftp ${loadaddr} ${image_rootfs} &&
> > + nand erase.part rootfs &&
> > + nand write ${loadaddr} rootfs ${filesize}
> > +
> > +flash_boot=
> > + setenv fsload 'ubifsload';
> > + ubi part rootfs;
> > + if ubi check boot; then
> > + ubifsmount ubi0:boot;
> > + setenv root ubi0:rootfs ubi.mtd=2
> > + rootfstype=squashfs,ubifs;
> > + setenv bootdir;
> > + elif ubi check rootfs; then
> > + ubifsmount ubi0:rootfs;
> > + setenv root ubi0:rootfs ubi.mtd=2
> > + rootfstype=ubifs;
> > + fi;
> > + setenv dtype nand; run loadscript;
> > + if ${fsload} ${loadaddr} ${bootdir}/${uimage}; then
> > + setenv bootargs console=${console},${baudrate}
> > + root=${root} ${video} ${extra};
> > + if run loadfdt; then
> > + ubifsumount;
> > + bootm ${loadaddr} - ${fdt_addr};
> > + else
> > + ubifsumount; bootm;
> > + fi;
> > + fi
> > +#endif
> > diff --git a/include/configs/gw_ventana.h b/include/configs/gw_ventana.h
> > index 77f41502220a..47a72fc8fce5 100644
> > --- a/include/configs/gw_ventana.h
> > +++ b/include/configs/gw_ventana.h
> > @@ -76,152 +76,4 @@
> > #define CONFIG_IPADDR 192.168.1.1
> > #define CONFIG_SERVERIP 192.168.1.146
> >
> > -#define CONFIG_EXTRA_ENV_SETTINGS_COMMON \
> > - "splashpos=m,m\0" \
> > - "splashimage=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
> > - "usb_pgood_delay=2000\0" \
> > - "console=ttymxc1\0" \
> > - "bootdevs=usb mmc sata flash\0" \
> > - "hwconfig=_UNKNOWN_\0" \
> > - "video=\0" \
> > - \
> > - "disk=0\0" \
> > - "part=1\0" \
> > - \
> > - "fdt_high=0xffffffff\0" \
> > - "fdt_addr=0x18000000\0" \
> > - "initrd_high=0xffffffff\0" \
> > - "fixfdt=" \
> > - "fdt addr ${fdt_addr}\0" \
> > - "bootdir=boot\0" \
> > - "loadfdt=" \
> > - "if ${fsload} ${fdt_addr} ${bootdir}/${fdt_file}; then " \
> > - "echo Loaded DTB from ${bootdir}/${fdt_file}; " \
> > - "run fixfdt; " \
> > - "elif ${fsload} ${fdt_addr} ${bootdir}/${fdt_file1}; then " \
> > - "echo Loaded DTB from ${bootdir}/${fdt_file1}; " \
> > - "run fixfdt; " \
> > - "elif ${fsload} ${fdt_addr} ${bootdir}/${fdt_file2}; then " \
> > - "echo Loaded DTB from ${bootdir}/${fdt_file2}; " \
> > - "run fixfdt; " \
> > - "fi\0" \
> > - \
> > - "fs=ext4\0" \
> > - "script=6x_bootscript-ventana\0" \
> > - "loadscript=" \
> > - "if ${fsload} ${loadaddr} ${bootdir}/${script}; then " \
> > - "source ${loadaddr}; " \
> > - "fi\0" \
> > - \
> > - "uimage=uImage\0" \
> > - "mmc_root=mmcblk0p1\0" \
> > - "mmc_boot=" \
> > - "setenv fsload \"${fs}load mmc ${disk}:${part}\"; " \
> > - "mmc dev ${disk} && mmc rescan && " \
> > - "setenv dtype mmc; run loadscript; " \
> > - "if ${fsload} ${loadaddr} ${bootdir}/${uimage}; then " \
> > - "setenv bootargs console=${console},${baudrate} " \
> > - "root=/dev/${mmc_root} rootfstype=${fs} " \
> > - "rootwait rw ${video} ${extra}; " \
> > - "if run loadfdt; then " \
> > - "bootm ${loadaddr} - ${fdt_addr}; " \
> > - "else " \
> > - "bootm; " \
> > - "fi; " \
> > - "fi\0" \
> > - \
> > - "sata_boot=" \
> > - "setenv fsload \"${fs}load sata ${disk}:${part}\"; " \
> > - "sata init && " \
> > - "setenv dtype sata; run loadscript; " \
> > - "if ${fsload} ${loadaddr} ${bootdir}/${uimage}; then " \
> > - "setenv bootargs console=${console},${baudrate} " \
> > - "root=/dev/sda1 rootfstype=${fs} " \
> > - "rootwait rw ${video} ${extra}; " \
> > - "if run loadfdt; then " \
> > - "bootm ${loadaddr} - ${fdt_addr}; " \
> > - "else " \
> > - "bootm; " \
> > - "fi; " \
> > - "fi\0" \
> > - "usb_boot=" \
> > - "setenv fsload \"${fs}load usb ${disk}:${part}\"; " \
> > - "usb start && usb dev ${disk} && " \
> > - "setenv dtype usb; run loadscript; " \
> > - "if ${fsload} ${loadaddr} ${bootdir}/${uimage}; then " \
> > - "setenv bootargs console=${console},${baudrate} " \
> > - "root=/dev/sda1 rootfstype=${fs} " \
> > - "rootwait rw ${video} ${extra}; " \
> > - "if run loadfdt; then " \
> > - "bootm ${loadaddr} - ${fdt_addr}; " \
> > - "else " \
> > - "bootm; " \
> > - "fi; " \
> > - "fi\0"
> > -
> > -#ifdef CONFIG_SPI_FLASH
> > - #define CONFIG_EXTRA_ENV_SETTINGS \
> > - CONFIG_EXTRA_ENV_SETTINGS_COMMON \
> > - "image_os=ventana/openwrt-imx6-imx6q-gw5400-a-squashfs.bin\0" \
> > - "image_uboot=ventana/u-boot_spi.imx\0" \
> > - \
> > - "spi_koffset=0x90000\0" \
> > - "spi_klen=0x200000\0" \
> > - \
> > - "spi_updateuboot=echo Updating uboot from " \
> > - "${serverip}:${image_uboot}...; " \
> > - "tftpboot ${loadaddr} ${image_uboot} && " \
> > - "sf probe && sf erase 0 80000 && " \
> > - "sf write ${loadaddr} 400 ${filesize}\0" \
> > - "spi_update=echo Updating OS from ${serverip}:${image_os} " \
> > - "to ${spi_koffset} ...; " \
> > - "tftp ${loadaddr} ${image_os} && " \
> > - "sf probe && " \
> > - "sf update ${loadaddr} ${spi_koffset} ${filesize}\0" \
> > - \
> > - "flash_boot=" \
> > - "if sf probe && " \
> > - "sf read ${loadaddr} ${spi_koffset} ${spi_klen}; then " \
> > - "setenv bootargs console=${console},${baudrate} " \
> > - "root=/dev/mtdblock3 " \
> > - "rootfstype=squashfs,jffs2 " \
> > - "${video} ${extra}; " \
> > - "bootm; " \
> > - "fi\0"
> > -#else
> > - #define CONFIG_EXTRA_ENV_SETTINGS \
> > - CONFIG_EXTRA_ENV_SETTINGS_COMMON \
> > - \
> > - "image_rootfs=openwrt-imx6-ventana-rootfs.ubi\0" \
> > - "nand_update=echo Updating NAND from ${serverip}:${image_rootfs}...; " \
> > - "tftp ${loadaddr} ${image_rootfs} && " \
> > - "nand erase.part rootfs && " \
> > - "nand write ${loadaddr} rootfs ${filesize}\0" \
> > - \
> > - "flash_boot=" \
> > - "setenv fsload 'ubifsload'; " \
> > - "ubi part rootfs; " \
> > - "if ubi check boot; then " \
> > - "ubifsmount ubi0:boot; " \
> > - "setenv root ubi0:rootfs ubi.mtd=2 " \
> > - "rootfstype=squashfs,ubifs; " \
> > - "setenv bootdir; " \
> > - "elif ubi check rootfs; then " \
> > - "ubifsmount ubi0:rootfs; " \
> > - "setenv root ubi0:rootfs ubi.mtd=2 " \
> > - "rootfstype=ubifs; " \
> > - "fi; " \
> > - "setenv dtype nand; run loadscript; " \
> > - "if ${fsload} ${loadaddr} ${bootdir}/${uimage}; then " \
> > - "setenv bootargs console=${console},${baudrate} " \
> > - "root=${root} ${video} ${extra}; " \
> > - "if run loadfdt; then " \
> > - "ubifsumount; " \
> > - "bootm ${loadaddr} - ${fdt_addr}; " \
> > - "else " \
> > - "ubifsumount; bootm; " \
> > - "fi; " \
> > - "fi\0"
> > -#endif
> > -
> > #endif /* __CONFIG_H */
> > --
> > 2.25.1
> >
>
> Tom,
>
> Thanks, I've been looking forward to seeing how env is going to get
> migrated out of headers. Can you explain the process used to create
> this patch? It seems you may have something automated.
>
> Acked-by: Tim Harvey <tharvey at gateworks.com>
So, I do not have anything automated, unfortunately. In cases like this
where we don't use distro_bootcmd and also don't use defined blocks of
commands, it's a matter of applying a few regexs to remove quotes,
spaces and trailing \, then giving it a quick read to make sure it's
still right. This last part is some of why it can't be automated as we
have cases of:
"some_bootargs=a=1 b=2" \
"c=3\0"
and since there's no indent on c=3, it would become "c=3" in the
environment rather than "some_bootargs" being set to "a=1 b=2 c=3".
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20220614/1bde2225/attachment.sig>
More information about the U-Boot
mailing list