Message ID | 20220730061219.3061864-1-Mr.Bossman075@gmail.com |
---|---|
State | Changes Requested |
Headers | show |
Series | [v2] configs/imxrt1050-evk: New defconfig | expand |
Hello Jesse, Thanks for your contribution! On Sat, 30 Jul 2022 02:12:19 -0400 Jesse Taube <mr.bossman075@gmail.com> wrote: > Add defconfig for imxrt1050-evk is a development board from NXP. > > The i.MXRTxxxx family spreads from i.MXRT1020 to i.MXRT1170 with the > first one supporting 1 USB OTG & 100M ethernet with a cortex-M7@500Mhz > up to the latter with i.MXRT1170 with cortex-M7@1Ghz and > cortex-M4@400Mhz, 2MB of internal SRAM, 2D GPU, 2x 1Gb and > 1x 100Mb ENET. The i.MXRT family is NXP's answer to STM32F7xx, as it > uses only simple SDRAM, it gives the chance of a 4 or less layer PCBs. > Seeing that these chips are comparable to the STM32F7xxs which have > buildroot ported to them it seems reasonable to add support for them. > > https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt1050-evaluation-kit:MIMXRT1050-EVK > > Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com> > Cc: Giulio Benetti <giulio.benetti@benettiengineering.com> Thanks a lot, it looks mostly good, but I have a few comments/questions. > N: Giulio Benetti <giulio.benetti@benettiengineering.com> > +F: board/freescale/imxrt1050evk/* > F: board/olimex/a* > F: configs/amarula_vyasa_rk3288_defconfig > F: configs/asus_tinker_rk3288_defconfig > +F: configs/imxrt1050-evk_defconfig > F: configs/olimex_a* > F: package/at/ > F: package/binutils/ Any reason to add Giulio here? > diff --git a/board/freescale/imxrt1050evk/post-build.sh b/board/freescale/imxrt1050evk/post-build.sh > new file mode 100755 > index 0000000000..476958a691 > --- /dev/null > +++ b/board/freescale/imxrt1050evk/post-build.sh > @@ -0,0 +1,6 @@ > +#!/bin/sh > +MKIMAGE=$HOST_DIR/bin/mkimage > + > +if [ -e $BINARIES_DIR/Image ]; then Why is this test needed? The Image file will be produced by the kernel build, so it should be there. If it's not, we should really error out hard. So I think doing without the test is better. > + $MKIMAGE -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux kernel" -d $BINARIES_DIR/Image $BINARIES_DIR/uImage > +fi > diff --git a/board/freescale/imxrt1050evk/readme.txt b/board/freescale/imxrt1050evk/readme.txt > new file mode 100644 > index 0000000000..bbbcd5307f > --- /dev/null > +++ b/board/freescale/imxrt1050evk/readme.txt > @@ -0,0 +1,24 @@ > +NXP i.MXRT1050 EVK board > +--------------------- Add the few missing '-' Also, as requested by Giulio, a short intro about the board + a link would be useful here. > +# Kernel > +BR2_LINUX_KERNEL=y > +BR2_LINUX_KERNEL_CUSTOM_VERSION=y > +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19-rc5" 5.19 is out now, so you can use a non-rc version :) > +BR2_LINUX_KERNEL_DEFCONFIG="imxrt" > +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y > +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="Image" > +BR2_LINUX_KERNEL_IMAGE_NAME="Image" > +BR2_LINUX_KERNEL_DTS_SUPPORT=y > +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imxrt1050-evk" > + > +# Filesystem > +BR2_TARGET_ROOTFS_EXT2=y > +BR2_TARGET_ROOTFS_EXT2_4=y > +BR2_TARGET_ROOTFS_EXT2_LABEL="root" > +BR2_TARGET_ROOTFS_EXT2_SIZE="3M" Why limit to 3 MB ? Is there a strong reason? Also, leave the label undefined. > +# Bootloader > +BR2_TARGET_UBOOT=y Please used a version of U-Boot explicitly defined in the defconfig. > +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imxrt1050-evk" > +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/freescale/imxrt1050evk/uboot.fragment" > +BR2_TARGET_UBOOT_FORMAT_IMG=y > +BR2_TARGET_UBOOT_SPL=y > +BR2_TARGET_UBOOT_SPL_NAME="SPL" > +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y > + > +# Required tools to create the SD card image > +BR2_PACKAGE_HOST_GENIMAGE=y > +BR2_PACKAGE_HOST_MKPASSWD=y > +BR2_PACKAGE_HOST_UBOOT_TOOLS=y > + > +# Misc > +BR2_BINUTILS_VERSION_2_36_X=y > +# thumb2 ADR bug introduced in 2.37 fix is not yet in u-boot Do you have some detail on this bug? Like a link to the bug report, or something like this? Note that binutils 2.39 is soon going to arrive, so we will get rid of binutils 2.36... which means we will very soon have a problem with this defconfig. Best regards, Thomas
On Mon, Aug 1, 2022 at 4:50 PM Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote: > > Hello Jesse, > > Thanks for your contribution! > > On Sat, 30 Jul 2022 02:12:19 -0400 > Jesse Taube <mr.bossman075@gmail.com> wrote: > > > Add defconfig for imxrt1050-evk is a development board from NXP. > > > > The i.MXRTxxxx family spreads from i.MXRT1020 to i.MXRT1170 with the > > first one supporting 1 USB OTG & 100M ethernet with a cortex-M7@500Mhz > > up to the latter with i.MXRT1170 with cortex-M7@1Ghz and > > cortex-M4@400Mhz, 2MB of internal SRAM, 2D GPU, 2x 1Gb and > > 1x 100Mb ENET. The i.MXRT family is NXP's answer to STM32F7xx, as it > > uses only simple SDRAM, it gives the chance of a 4 or less layer PCBs. > > Seeing that these chips are comparable to the STM32F7xxs which have > > buildroot ported to them it seems reasonable to add support for them. > > > > https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt1050-evaluation-kit:MIMXRT1050-EVK > > > > Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com> > > Cc: Giulio Benetti <giulio.benetti@benettiengineering.com> > > Thanks a lot, it looks mostly good, but I have a few comments/questions. > > > N: Giulio Benetti <giulio.benetti@benettiengineering.com> > > +F: board/freescale/imxrt1050evk/* > > F: board/olimex/a* > > F: configs/amarula_vyasa_rk3288_defconfig > > F: configs/asus_tinker_rk3288_defconfig > > +F: configs/imxrt1050-evk_defconfig > > F: configs/olimex_a* > > F: package/at/ > > F: package/binutils/ > > Any reason to add Giulio here? We worked on Linux and U-Boot together. > > > diff --git a/board/freescale/imxrt1050evk/post-build.sh b/board/freescale/imxrt1050evk/post-build.sh > > new file mode 100755 > > index 0000000000..476958a691 > > --- /dev/null > > +++ b/board/freescale/imxrt1050evk/post-build.sh > > @@ -0,0 +1,6 @@ > > +#!/bin/sh > > +MKIMAGE=$HOST_DIR/bin/mkimage > > + > > +if [ -e $BINARIES_DIR/Image ]; then > > Why is this test needed? The Image file will be produced by the kernel > build, so it should be there. If it's not, we should really error out > hard. So I think doing without the test is better. I was using board/nexbox/a95x/post-build.sh as a base, I can drop it. > > + $MKIMAGE -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux kernel" -d $BINARIES_DIR/Image $BINARIES_DIR/uImage > > +fi > > diff --git a/board/freescale/imxrt1050evk/readme.txt b/board/freescale/imxrt1050evk/readme.txt > > new file mode 100644 > > index 0000000000..bbbcd5307f > > --- /dev/null > > +++ b/board/freescale/imxrt1050evk/readme.txt > > @@ -0,0 +1,24 @@ > > +NXP i.MXRT1050 EVK board > > +--------------------- > > Add the few missing '-' > > Also, as requested by Giulio, a short intro about the board + a link > would be useful here. > > > > +# Kernel > > +BR2_LINUX_KERNEL=y > > +BR2_LINUX_KERNEL_CUSTOM_VERSION=y > > +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19-rc5" > > 5.19 is out now, so you can use a non-rc version :) Sorry I forgot to change when submitting... > > +BR2_LINUX_KERNEL_DEFCONFIG="imxrt" > > +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y > > +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="Image" > > +BR2_LINUX_KERNEL_IMAGE_NAME="Image" > > +BR2_LINUX_KERNEL_DTS_SUPPORT=y > > +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imxrt1050-evk" > > + > > +# Filesystem > > +BR2_TARGET_ROOTFS_EXT2=y > > +BR2_TARGET_ROOTFS_EXT2_4=y > > +BR2_TARGET_ROOTFS_EXT2_LABEL="root" > > +BR2_TARGET_ROOTFS_EXT2_SIZE="3M" > > Why limit to 3 MB ? Is there a strong reason? Because that's the nearest ceil(MB) size of the ext4 filesystem. I like dd-ing the images fast. Also, leave the label > undefined. > > > +# Bootloader > > +BR2_TARGET_UBOOT=y > > Please used a version of U-Boot explicitly defined in the defconfig. Read below. > > > +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imxrt1050-evk" > > +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/freescale/imxrt1050evk/uboot.fragment" > > +BR2_TARGET_UBOOT_FORMAT_IMG=y > > +BR2_TARGET_UBOOT_SPL=y > > +BR2_TARGET_UBOOT_SPL_NAME="SPL" > > +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y > > + > > +# Required tools to create the SD card image > > +BR2_PACKAGE_HOST_GENIMAGE=y > > +BR2_PACKAGE_HOST_MKPASSWD=y > > +BR2_PACKAGE_HOST_UBOOT_TOOLS=y > > + > > +# Misc > > +BR2_BINUTILS_VERSION_2_36_X=y > > +# thumb2 ADR bug introduced in 2.37 fix is not yet in u-boot > > Do you have some detail on this bug? Like a link to the bug report, or > something like this? Note that binutils 2.39 is soon going to arrive, > so we will get rid of binutils 2.36... which means we will very soon > have a problem with this defconfig. > https://patchwork.ozlabs.org/project/uboot/patch/20220712110023.3163770-1-andre.przywara@arm.com/ The patch above removes the need for binutils 2.36 and a U-Boot version hasn't been released with that commit yet. This is the reason for no U-Boot version. Thanks, Jesse T > Best regards, > > Thomas > -- > Thomas Petazzoni, co-owner and CEO, Bootlin > Embedded Linux and Kernel engineering and training > https://bootlin.com
Hi Jesse, On 01/08/22 23:46, Jesse T wrote: > On Mon, Aug 1, 2022 at 4:50 PM Thomas Petazzoni > <thomas.petazzoni@bootlin.com> wrote: >> >> Hello Jesse, >> >> Thanks for your contribution! >> >> On Sat, 30 Jul 2022 02:12:19 -0400 >> Jesse Taube <mr.bossman075@gmail.com> wrote: >> >>> Add defconfig for imxrt1050-evk is a development board from NXP. >>> >>> The i.MXRTxxxx family spreads from i.MXRT1020 to i.MXRT1170 with the >>> first one supporting 1 USB OTG & 100M ethernet with a cortex-M7@500Mhz >>> up to the latter with i.MXRT1170 with cortex-M7@1Ghz and >>> cortex-M4@400Mhz, 2MB of internal SRAM, 2D GPU, 2x 1Gb and >>> 1x 100Mb ENET. The i.MXRT family is NXP's answer to STM32F7xx, as it >>> uses only simple SDRAM, it gives the chance of a 4 or less layer PCBs. >>> Seeing that these chips are comparable to the STM32F7xxs which have >>> buildroot ported to them it seems reasonable to add support for them. >>> >>> https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt1050-evaluation-kit:MIMXRT1050-EVK >>> >>> Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com> >>> Cc: Giulio Benetti <giulio.benetti@benettiengineering.com> >> >> Thanks a lot, it looks mostly good, but I have a few comments/questions. >> >>> N: Giulio Benetti <giulio.benetti@benettiengineering.com> >>> +F: board/freescale/imxrt1050evk/* >>> F: board/olimex/a* >>> F: configs/amarula_vyasa_rk3288_defconfig >>> F: configs/asus_tinker_rk3288_defconfig >>> +F: configs/imxrt1050-evk_defconfig >>> F: configs/olimex_a* >>> F: package/at/ >>> F: package/binutils/ >> >> Any reason to add Giulio here? > > We worked on Linux and U-Boot together. > >> >>> diff --git a/board/freescale/imxrt1050evk/post-build.sh b/board/freescale/imxrt1050evk/post-build.sh >>> new file mode 100755 >>> index 0000000000..476958a691 >>> --- /dev/null >>> +++ b/board/freescale/imxrt1050evk/post-build.sh >>> @@ -0,0 +1,6 @@ >>> +#!/bin/sh >>> +MKIMAGE=$HOST_DIR/bin/mkimage >>> + >>> +if [ -e $BINARIES_DIR/Image ]; then >> >> Why is this test needed? The Image file will be produced by the kernel >> build, so it should be there. If it's not, we should really error out >> hard. So I think doing without the test is better. > > I was using board/nexbox/a95x/post-build.sh as a base, I can drop it. > >>> + $MKIMAGE -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux kernel" -d $BINARIES_DIR/Image $BINARIES_DIR/uImage >>> +fi >>> diff --git a/board/freescale/imxrt1050evk/readme.txt b/board/freescale/imxrt1050evk/readme.txt >>> new file mode 100644 >>> index 0000000000..bbbcd5307f >>> --- /dev/null >>> +++ b/board/freescale/imxrt1050evk/readme.txt >>> @@ -0,0 +1,24 @@ >>> +NXP i.MXRT1050 EVK board >>> +--------------------- >> >> Add the few missing '-' >> >> Also, as requested by Giulio, a short intro about the board + a link >> would be useful here. >> >> >>> +# Kernel >>> +BR2_LINUX_KERNEL=y >>> +BR2_LINUX_KERNEL_CUSTOM_VERSION=y >>> +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19-rc5" >> >> 5.19 is out now, so you can use a non-rc version :) > > Sorry I forgot to change when submitting... > >>> +BR2_LINUX_KERNEL_DEFCONFIG="imxrt" >>> +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y >>> +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="Image" >>> +BR2_LINUX_KERNEL_IMAGE_NAME="Image" >>> +BR2_LINUX_KERNEL_DTS_SUPPORT=y >>> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imxrt1050-evk" >>> + >>> +# Filesystem >>> +BR2_TARGET_ROOTFS_EXT2=y >>> +BR2_TARGET_ROOTFS_EXT2_4=y >>> +BR2_TARGET_ROOTFS_EXT2_LABEL="root" >>> +BR2_TARGET_ROOTFS_EXT2_SIZE="3M" >> >> Why limit to 3 MB ? Is there a strong reason? > > Because that's the nearest ceil(MB) size of the ext4 filesystem. > I like dd-ing the images fast. > > Also, leave the label >> undefined. >> >>> +# Bootloader >>> +BR2_TARGET_UBOOT=y >> >> Please used a version of U-Boot explicitly defined in the defconfig. > > Read below. > >> >>> +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imxrt1050-evk" >>> +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/freescale/imxrt1050evk/uboot.fragment" >>> +BR2_TARGET_UBOOT_FORMAT_IMG=y >>> +BR2_TARGET_UBOOT_SPL=y >>> +BR2_TARGET_UBOOT_SPL_NAME="SPL" >>> +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y >>> + >>> +# Required tools to create the SD card image >>> +BR2_PACKAGE_HOST_GENIMAGE=y >>> +BR2_PACKAGE_HOST_MKPASSWD=y >>> +BR2_PACKAGE_HOST_UBOOT_TOOLS=y >>> + >>> +# Misc >>> +BR2_BINUTILS_VERSION_2_36_X=y >>> +# thumb2 ADR bug introduced in 2.37 fix is not yet in u-boot >> >> Do you have some detail on this bug? Like a link to the bug report, or >> something like this? Note that binutils 2.39 is soon going to arrive, >> so we will get rid of binutils 2.36... which means we will very soon >> have a problem with this defconfig. >> > > https://patchwork.ozlabs.org/project/uboot/patch/20220712110023.3163770-1-andre.przywara@arm.com/ > > The patch above removes the need for binutils 2.36 and a U-Boot > version hasn't been released with that commit yet. Then the best practice is to backport the patch above locally to binutils package for every version. But when trying to compile using an external toolchain(not generated by Buildroot like official ARM toolchain) then it will fail to boot. As Thomas mentioned binutils 2.36.1 will be removed soon in favor of 2.39 that will contain that patch, but 2.37 and 2.38 will create problems, as well as all the external ones. Do you think there is a possible work-around for u-boot to avoid the binutils bug? If yes one possibility is to add a local patch for u-boot for this defconfig only with the work-around. This will make the board to work everytime. It's a patch that doesn't have to be upstreamed but only a local work-around. What about that Thomas? Best regards
Hi Jesse, Thomas, On 02/08/22 00:05, Giulio Benetti wrote: > Hi Jesse, > > On 01/08/22 23:46, Jesse T wrote: >> On Mon, Aug 1, 2022 at 4:50 PM Thomas Petazzoni >> <thomas.petazzoni@bootlin.com> wrote: >>> >>> Hello Jesse, >>> >>> Thanks for your contribution! >>> >>> On Sat, 30 Jul 2022 02:12:19 -0400 >>> Jesse Taube <mr.bossman075@gmail.com> wrote: >>> >>>> Add defconfig for imxrt1050-evk is a development board from NXP. >>>> >>>> The i.MXRTxxxx family spreads from i.MXRT1020 to i.MXRT1170 with the >>>> first one supporting 1 USB OTG & 100M ethernet with a cortex-M7@500Mhz >>>> up to the latter with i.MXRT1170 with cortex-M7@1Ghz and >>>> cortex-M4@400Mhz, 2MB of internal SRAM, 2D GPU, 2x 1Gb and >>>> 1x 100Mb ENET. The i.MXRT family is NXP's answer to STM32F7xx, as it >>>> uses only simple SDRAM, it gives the chance of a 4 or less layer PCBs. >>>> Seeing that these chips are comparable to the STM32F7xxs which have >>>> buildroot ported to them it seems reasonable to add support for them. >>>> >>>> https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt1050-evaluation-kit:MIMXRT1050-EVK >>>> >>>> Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com> >>>> Cc: Giulio Benetti <giulio.benetti@benettiengineering.com> >>> >>> Thanks a lot, it looks mostly good, but I have a few comments/questions. >>> >>>> N: Giulio Benetti <giulio.benetti@benettiengineering.com> >>>> +F: board/freescale/imxrt1050evk/* >>>> F: board/olimex/a* >>>> F: configs/amarula_vyasa_rk3288_defconfig >>>> F: configs/asus_tinker_rk3288_defconfig >>>> +F: configs/imxrt1050-evk_defconfig >>>> F: configs/olimex_a* >>>> F: package/at/ >>>> F: package/binutils/ >>> >>> Any reason to add Giulio here? >> >> We worked on Linux and U-Boot together. >> >>> >>>> diff --git a/board/freescale/imxrt1050evk/post-build.sh >>>> b/board/freescale/imxrt1050evk/post-build.sh >>>> new file mode 100755 >>>> index 0000000000..476958a691 >>>> --- /dev/null >>>> +++ b/board/freescale/imxrt1050evk/post-build.sh >>>> @@ -0,0 +1,6 @@ >>>> +#!/bin/sh >>>> +MKIMAGE=$HOST_DIR/bin/mkimage >>>> + >>>> +if [ -e $BINARIES_DIR/Image ]; then >>> >>> Why is this test needed? The Image file will be produced by the kernel >>> build, so it should be there. If it's not, we should really error out >>> hard. So I think doing without the test is better. >> >> I was using board/nexbox/a95x/post-build.sh as a base, I can drop it. >> >>>> + $MKIMAGE -A arm -O linux -T kernel -C none -a 0x80008000 -e >>>> 0x80008000 -n "Linux kernel" -d $BINARIES_DIR/Image >>>> $BINARIES_DIR/uImage >>>> +fi >>>> diff --git a/board/freescale/imxrt1050evk/readme.txt >>>> b/board/freescale/imxrt1050evk/readme.txt >>>> new file mode 100644 >>>> index 0000000000..bbbcd5307f >>>> --- /dev/null >>>> +++ b/board/freescale/imxrt1050evk/readme.txt >>>> @@ -0,0 +1,24 @@ >>>> +NXP i.MXRT1050 EVK board >>>> +--------------------- >>> >>> Add the few missing '-' >>> >>> Also, as requested by Giulio, a short intro about the board + a link >>> would be useful here. >>> >>> >>>> +# Kernel >>>> +BR2_LINUX_KERNEL=y >>>> +BR2_LINUX_KERNEL_CUSTOM_VERSION=y >>>> +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19-rc5" >>> >>> 5.19 is out now, so you can use a non-rc version :) >> >> Sorry I forgot to change when submitting... >> >>>> +BR2_LINUX_KERNEL_DEFCONFIG="imxrt" >>>> +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y >>>> +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="Image" >>>> +BR2_LINUX_KERNEL_IMAGE_NAME="Image" >>>> +BR2_LINUX_KERNEL_DTS_SUPPORT=y >>>> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imxrt1050-evk" >>>> + >>>> +# Filesystem >>>> +BR2_TARGET_ROOTFS_EXT2=y >>>> +BR2_TARGET_ROOTFS_EXT2_4=y >>>> +BR2_TARGET_ROOTFS_EXT2_LABEL="root" >>>> +BR2_TARGET_ROOTFS_EXT2_SIZE="3M" >>> >>> Why limit to 3 MB ? Is there a strong reason? >> >> Because that's the nearest ceil(MB) size of the ext4 filesystem. >> I like dd-ing the images fast. >> >> Also, leave the label >>> undefined. >>> >>>> +# Bootloader >>>> +BR2_TARGET_UBOOT=y >>> >>> Please used a version of U-Boot explicitly defined in the defconfig. >> >> Read below. >> >>> >>>> +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imxrt1050-evk" >>>> +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/freescale/imxrt1050evk/uboot.fragment" >>>> +BR2_TARGET_UBOOT_FORMAT_IMG=y >>>> +BR2_TARGET_UBOOT_SPL=y >>>> +BR2_TARGET_UBOOT_SPL_NAME="SPL" >>>> +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y >>>> + >>>> +# Required tools to create the SD card image >>>> +BR2_PACKAGE_HOST_GENIMAGE=y >>>> +BR2_PACKAGE_HOST_MKPASSWD=y >>>> +BR2_PACKAGE_HOST_UBOOT_TOOLS=y >>>> + >>>> +# Misc >>>> +BR2_BINUTILS_VERSION_2_36_X=y >>>> +# thumb2 ADR bug introduced in 2.37 fix is not yet in u-boot >>> >>> Do you have some detail on this bug? Like a link to the bug report, or >>> something like this? Note that binutils 2.39 is soon going to arrive, >>> so we will get rid of binutils 2.36... which means we will very soon >>> have a problem with this defconfig. >>> >> >> https://patchwork.ozlabs.org/project/uboot/patch/20220712110023.3163770-1-andre.przywara@arm.com/ >> >> The patch above removes the need for binutils 2.36 and a U-Boot >> version hasn't been released with that commit yet. > > Then the best practice is to backport the patch above locally to > binutils package for every version. But when trying to compile using an > external toolchain(not generated by Buildroot like official ARM > toolchain) then it will fail to boot. > > As Thomas mentioned binutils 2.36.1 will be removed soon in favor of > 2.39 that will contain that patch, but 2.37 and 2.38 will create > problems, as well as all the external ones. > > Do you think there is a possible work-around for u-boot to avoid the > binutils bug? If yes one possibility is to add a local patch for u-boot > for this defconfig only with the work-around. This will make the board > to work everytime. It's a patch that doesn't have to be upstreamed but > only a local work-around. Jesse privately pointed me that the patch is exactly the u-boot patch we need here. So Jesse, please add it under board/frescale/imxrt1050evk/patches/uboot and point to that folder(without /uboot) like this in defconfig: BR2_GLOBAL_PATCH_DIR=board/frescale/imxrt1050evk/patches This way when uboot is built the patch is applied to it. And of course this is valid once you define a specific custom version for u-boot as Thomas pointed you before. Best regards
Hello Jesse, On Mon, 1 Aug 2022 17:46:48 -0400 Jesse T <mr.bossman075@gmail.com> wrote: > > Any reason to add Giulio here? > > We worked on Linux and U-Boot together. Then I think it is worth mentioning in the commit log, as it is surprising to see two people added in the DEVELOPERS file, without any explanation. > > Why is this test needed? The Image file will be produced by the kernel > > build, so it should be there. If it's not, we should really error out > > hard. So I think doing without the test is better. > > I was using board/nexbox/a95x/post-build.sh as a base, I can drop it. Yes, I think this test doesn't make sense, so you can drop it. > > > +# Filesystem > > > +BR2_TARGET_ROOTFS_EXT2=y > > > +BR2_TARGET_ROOTFS_EXT2_4=y > > > +BR2_TARGET_ROOTFS_EXT2_LABEL="root" > > > +BR2_TARGET_ROOTFS_EXT2_SIZE="3M" > > > > Why limit to 3 MB ? Is there a strong reason? > > Because that's the nearest ceil(MB) size of the ext4 filesystem. > I like dd-ing the images fast. You can use bmap-tools to speed up writing a SD card image that is large but mostly empty. > https://patchwork.ozlabs.org/project/uboot/patch/20220712110023.3163770-1-andre.przywara@arm.com/ > > The patch above removes the need for binutils 2.36 and a U-Boot > version hasn't been released with that commit yet. > This is the reason for no U-Boot version. As explained by Giulio, you should use a well-defined version of U-Boot, and backport the U-Boot patch. Thanks a lot! Thomas
diff --git a/DEVELOPERS b/DEVELOPERS index 0afd697b6c..206bac99e0 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1096,9 +1096,11 @@ F: package/webp/ F: package/xapian/ N: Giulio Benetti <giulio.benetti@benettiengineering.com> +F: board/freescale/imxrt1050evk/* F: board/olimex/a* F: configs/amarula_vyasa_rk3288_defconfig F: configs/asus_tinker_rk3288_defconfig +F: configs/imxrt1050-evk_defconfig F: configs/olimex_a* F: package/at/ F: package/binutils/ @@ -1421,6 +1423,10 @@ F: package/wmctrl/ F: package/x11r7/xdriver_xf86-video-imx/ F: package/x11r7/xdriver_xf86-video-imx-viv/ +N: Jesse Taube <Mr.Bossman075@gmail.com> +F: board/freescale/imxrt1050evk/* +F: configs/imxrt1050-evk_defconfig + N: Jianhui Zhao <zhaojh329@gmail.com> F: package/libuhttpd/ F: package/libuwsc/ diff --git a/board/freescale/imxrt1050evk/genimage.cfg b/board/freescale/imxrt1050evk/genimage.cfg new file mode 100644 index 0000000000..7e1e932d37 --- /dev/null +++ b/board/freescale/imxrt1050evk/genimage.cfg @@ -0,0 +1,40 @@ +image boot.vfat { + vfat { + files = { + "uImage", + "imxrt1050-evk.dtb", + } + } + + size = 6M +} + +image sdcard.img { + hdimage { + } + + partition SPL { + in-partition-table = "no" + image = "SPL" + offset = 1K + size = 127K + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.img" + offset = 128K + size = 512K + } + + partition boot { + partition-type = 0xc + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/board/freescale/imxrt1050evk/post-build.sh b/board/freescale/imxrt1050evk/post-build.sh new file mode 100755 index 0000000000..476958a691 --- /dev/null +++ b/board/freescale/imxrt1050evk/post-build.sh @@ -0,0 +1,6 @@ +#!/bin/sh +MKIMAGE=$HOST_DIR/bin/mkimage + +if [ -e $BINARIES_DIR/Image ]; then + $MKIMAGE -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux kernel" -d $BINARIES_DIR/Image $BINARIES_DIR/uImage +fi diff --git a/board/freescale/imxrt1050evk/readme.txt b/board/freescale/imxrt1050evk/readme.txt new file mode 100644 index 0000000000..bbbcd5307f --- /dev/null +++ b/board/freescale/imxrt1050evk/readme.txt @@ -0,0 +1,24 @@ +NXP i.MXRT1050 EVK board +--------------------- + +To build a minimal support for this board: + +$ make imxrt1050-evk_defconfig +$ make + +Buildroot prepares a bootable "sdcard.img" image in the output/images/ +directory, ready to be flashed into the SD card: + +$ dd if=output/images/sdcard.img of=/dev/sdX +Where 'sdX' is the device node of the uSD. + +Jumper settings: + + SW7: 1 0 1 0 + +Where 0 means bottom position and 1 means top position (from the +switch label numbers reference). + +Connect the USB cable between the EVK and the PC for the console. + +Insert the micro SD card in the board, power it up and U-Boot messages should come up. diff --git a/board/freescale/imxrt1050evk/uboot.fragment b/board/freescale/imxrt1050evk/uboot.fragment new file mode 100644 index 0000000000..1c5bb6af35 --- /dev/null +++ b/board/freescale/imxrt1050evk/uboot.fragment @@ -0,0 +1,2 @@ +CONFIG_USE_BOOTCOMMAND=y +CONFIG_BOOTCOMMAND="setenv bootargs console=ttyLP0 root=/dev/mmcblk0p2 rw earlycon rootwait;load mmc 0:1 0x80800000 imxrt1050-evk.dtb;load mmc 0:1 0x80000000 uImage;bootm 0x80000000 - 0x80800000" diff --git a/configs/imxrt1050-evk_defconfig b/configs/imxrt1050-evk_defconfig new file mode 100644 index 0000000000..22da281e3a --- /dev/null +++ b/configs/imxrt1050-evk_defconfig @@ -0,0 +1,44 @@ +# Architecture +BR2_arm=y +BR2_cortex_m7=y + +# Image +BR2_ROOTFS_POST_BUILD_SCRIPT="board/freescale/imxrt1050evk/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/freescale/imxrt1050evk/genimage.cfg" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19-rc5" +BR2_LINUX_KERNEL_DEFCONFIG="imxrt" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="Image" +BR2_LINUX_KERNEL_IMAGE_NAME="Image" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imxrt1050-evk" + +# Filesystem +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_LABEL="root" +BR2_TARGET_ROOTFS_EXT2_SIZE="3M" + + +# Bootloader +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imxrt1050-evk" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/freescale/imxrt1050evk/uboot.fragment" +BR2_TARGET_UBOOT_FORMAT_IMG=y +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="SPL" +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y + +# Required tools to create the SD card image +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MKPASSWD=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y + +# Misc +BR2_BINUTILS_VERSION_2_36_X=y +# thumb2 ADR bug introduced in 2.37 fix is not yet in u-boot
Add defconfig for imxrt1050-evk is a development board from NXP. The i.MXRTxxxx family spreads from i.MXRT1020 to i.MXRT1170 with the first one supporting 1 USB OTG & 100M ethernet with a cortex-M7@500Mhz up to the latter with i.MXRT1170 with cortex-M7@1Ghz and cortex-M4@400Mhz, 2MB of internal SRAM, 2D GPU, 2x 1Gb and 1x 100Mb ENET. The i.MXRT family is NXP's answer to STM32F7xx, as it uses only simple SDRAM, it gives the chance of a 4 or less layer PCBs. Seeing that these chips are comparable to the STM32F7xxs which have buildroot ported to them it seems reasonable to add support for them. https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt1050-evaluation-kit:MIMXRT1050-EVK Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com> Cc: Giulio Benetti <giulio.benetti@benettiengineering.com> --- DEVELOPERS | 6 +++ board/freescale/imxrt1050evk/genimage.cfg | 40 +++++++++++++++++++ board/freescale/imxrt1050evk/post-build.sh | 6 +++ board/freescale/imxrt1050evk/readme.txt | 24 +++++++++++ board/freescale/imxrt1050evk/uboot.fragment | 2 + configs/imxrt1050-evk_defconfig | 44 +++++++++++++++++++++ 6 files changed, 122 insertions(+) create mode 100644 board/freescale/imxrt1050evk/genimage.cfg create mode 100755 board/freescale/imxrt1050evk/post-build.sh create mode 100644 board/freescale/imxrt1050evk/readme.txt create mode 100644 board/freescale/imxrt1050evk/uboot.fragment create mode 100644 configs/imxrt1050-evk_defconfig