diff mbox series

[v1] configs/imxrt1050-evk: new defconfig

Message ID 20220723160901.272373-1-Mr.Bossman075@gmail.com
State Superseded
Headers show
Series [v1] configs/imxrt1050-evk: new defconfig | expand

Commit Message

Jesse T July 23, 2022, 4:09 p.m. UTC
The imxrt1050-evk is a development board from NXP.

Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>
---
 DEVELOPERS                                  |  6 ++++
 board/freescale/imxrt1050evk/genimage.cfg   | 34 ++++++++++++++++++
 board/freescale/imxrt1050evk/post-build.sh  |  4 +++
 board/freescale/imxrt1050evk/readme.txt     | 23 ++++++++++++
 board/freescale/imxrt1050evk/uboot.fragment |  2 ++
 configs/imxrt1050-evk_defconfig             | 40 +++++++++++++++++++++
 6 files changed, 109 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

Comments

Giulio Benetti July 29, 2022, 10:05 p.m. UTC | #1
Hi Jesse!

On 23/07/22 18:09, Jesse Taube wrote:
> The imxrt1050-evk is a development board from NXP.

Please here provide a brief description of the board and
an URL pointing to the board page.

> Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
> Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>
> ---
>   DEVELOPERS                                  |  6 ++++
>   board/freescale/imxrt1050evk/genimage.cfg   | 34 ++++++++++++++++++
>   board/freescale/imxrt1050evk/post-build.sh  |  4 +++
>   board/freescale/imxrt1050evk/readme.txt     | 23 ++++++++++++
>   board/freescale/imxrt1050evk/uboot.fragment |  2 ++
>   configs/imxrt1050-evk_defconfig             | 40 +++++++++++++++++++++
>   6 files changed, 109 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
> 
> 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

Thank you for adding me :-)

>   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..e9f224516f
> --- /dev/null
> +++ b/board/freescale/imxrt1050evk/genimage.cfg
> @@ -0,0 +1,34 @@
> +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"
> +	}
> +}

genimage.cfg has a standard format to follow that you can find in
Buildroot's manual:
https://buildroot.org/downloads/manual/manual.html#writing-genimage-cfg

You're missing most all newlines after every closing curly parenthesis.

> diff --git a/board/freescale/imxrt1050evk/post-build.sh b/board/freescale/imxrt1050evk/post-build.sh
> new file mode 100755
> index 0000000000..47557566f9
> --- /dev/null
> +++ b/board/freescale/imxrt1050evk/post-build.sh
> @@ -0,0 +1,4 @@
> +#!/bin/sh
> +rm output/images/uImage
> +mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux kernel" -d output/images/Image output/images/uImage

This ^^^ can be achieved by using BR2_LINUX_KERNEL_UIMAGE=y instead of
the default selected BR2_LINUX_KERNEL_ZIMAGE.

> +./support/scripts/genimage.sh $2 $3

This ^^^ can be achieved with:
BR2_ROOTFS_POST_IMAGE_SCRIPT
and
BR2_ROOTFS_POST_SCRIPT_ARGS

you can take as reference:
https://gitlab.com/buildroot.org/buildroot/-/blob/master/configs/olimex_a33_olinuxino_defconfig#L46-47 


> diff --git a/board/freescale/imxrt1050evk/readme.txt b/board/freescale/imxrt1050evk/readme.txt
> new file mode 100644
> index 0000000000..d9c183a38f
> --- /dev/null
> +++ b/board/freescale/imxrt1050evk/readme.txt
> @@ -0,0 +1,23 @@
> +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:
> +
> +$ sudo dd status=progress oflag=sync bs=4k if=output/images/sdcard.img of=/dev/<sd-card-device>; sync

This:
```
     # dd if=output/images/sdcard.img of=/dev/sdX

Where 'sdX' is the device node of the uSD.
```
is sufficient.

> +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..03a47c1fd6
> --- /dev/null
> +++ b/configs/imxrt1050-evk_defconfig
> @@ -0,0 +1,40 @@
> +# Architecture
> +BR2_arm=y
> +BR2_cortex_m7=y
> +
> +# Image
> +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/imxrt1050evk/post-build.sh"
> +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/freescale/imxrt1050evk/genimage.cfg"

After modified like above for post-build.sh you have to modify these 2 
lines ^^^ and drop post-build.sh script.

> +
> +# Kernel
> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_CUSTOM_VERSION=y
> +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19-rc5"

Here it would be better using a stable version. 5 days ago Linux
5.19-rc8 has been released so I expect the final release to land
on Sunday or in the beginning of the next week. So please, use version
5.19.

> +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"

As pointed above here ^^^ use uImage.

> +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"
> +
> +# Required tools to create the SD card image
> +BR2_PACKAGE_HOST_GENIMAGE=y
> +BR2_PACKAGE_HOST_MKPASSWD=y
> +
> +# Misc
> +BR2_BINUTILS_VERSION_2_36_X=y

I remember there is a reason to force using binutils 2.36, maybe the
thumb2 ADR bug in u-boot? If yes, please briefly explain why this is
here.

I've given a build using Buildroot's utils/docker-run but it fails due
to missing BR2_TARGET_UBOOT_NEEDS_OPENSSL=y. So please next time build
with utils/docker-run to catch any possible missing host dependency.

Waiting for V2 then.

Thanks for contributing!
Kind regards
Jesse T July 29, 2022, 10:11 p.m. UTC | #2
On 7/29/22 18:05, Giulio Benetti wrote:
> Hi Jesse!
> 
> On 23/07/22 18:09, Jesse Taube wrote:
>> The imxrt1050-evk is a development board from NXP.
> 
> Please here provide a brief description of the board and
> an URL pointing to the board page.
> 
>> Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
>> Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>
>> ---
>>    DEVELOPERS                                  |  6 ++++
>>    board/freescale/imxrt1050evk/genimage.cfg   | 34 ++++++++++++++++++
>>    board/freescale/imxrt1050evk/post-build.sh  |  4 +++
>>    board/freescale/imxrt1050evk/readme.txt     | 23 ++++++++++++
>>    board/freescale/imxrt1050evk/uboot.fragment |  2 ++
>>    configs/imxrt1050-evk_defconfig             | 40 +++++++++++++++++++++
>>    6 files changed, 109 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
>>
>> 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
> 
> Thank you for adding me :-)
> 
>>    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..e9f224516f
>> --- /dev/null
>> +++ b/board/freescale/imxrt1050evk/genimage.cfg
>> @@ -0,0 +1,34 @@
>> +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"
>> +	}
>> +}
> 
> genimage.cfg has a standard format to follow that you can find in
> Buildroot's manual:
> https://buildroot.org/downloads/manual/manual.html#writing-genimage-cfg
OH... I didn't see this.
> You're missing most all newlines after every closing curly parenthesis.
> 
>> diff --git a/board/freescale/imxrt1050evk/post-build.sh b/board/freescale/imxrt1050evk/post-build.sh
>> new file mode 100755
>> index 0000000000..47557566f9
>> --- /dev/null
>> +++ b/board/freescale/imxrt1050evk/post-build.sh
>> @@ -0,0 +1,4 @@
>> +#!/bin/sh
>> +rm output/images/uImage
>> +mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux kernel" -d output/images/Image output/images/uImage
> 
> This ^^^ can be achieved by using BR2_LINUX_KERNEL_UIMAGE=y instead of
> the default selected BR2_LINUX_KERNEL_ZIMAGE.
BR2_LINUX_KERNEL_UIMAGE=y doesn't let me select compression `-C none` 
u-boot runs out of memory as it is running in the 512kB address space 
and not the 32MB
>> +./support/scripts/genimage.sh $2 $3
> 
> This ^^^ can be achieved with:
> BR2_ROOTFS_POST_IMAGE_SCRIPT
> and
> BR2_ROOTFS_POST_SCRIPT_ARGS
> 
> you can take as reference:
> https://gitlab.com/buildroot.org/buildroot/-/blob/master/configs/olimex_a33_olinuxino_defconfig#L46-47
> 
> 
>> diff --git a/board/freescale/imxrt1050evk/readme.txt b/board/freescale/imxrt1050evk/readme.txt
>> new file mode 100644
>> index 0000000000..d9c183a38f
>> --- /dev/null
>> +++ b/board/freescale/imxrt1050evk/readme.txt
>> @@ -0,0 +1,23 @@
>> +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:
>> +
>> +$ sudo dd status=progress oflag=sync bs=4k if=output/images/sdcard.img of=/dev/<sd-card-device>; sync
> 
> This:
> ```
>       # dd if=output/images/sdcard.img of=/dev/sdX
> 
> Where 'sdX' is the device node of the uSD.
> ```
> is sufficient.
> 
>> +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..03a47c1fd6
>> --- /dev/null
>> +++ b/configs/imxrt1050-evk_defconfig
>> @@ -0,0 +1,40 @@
>> +# Architecture
>> +BR2_arm=y
>> +BR2_cortex_m7=y
>> +
>> +# Image
>> +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/imxrt1050evk/post-build.sh"
>> +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/freescale/imxrt1050evk/genimage.cfg"
> 
> After modified like above for post-build.sh you have to modify these 2
> lines ^^^ and drop post-build.sh script.
> 
>> +
>> +# Kernel
>> +BR2_LINUX_KERNEL=y
>> +BR2_LINUX_KERNEL_CUSTOM_VERSION=y
>> +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19-rc5"
> 
> Here it would be better using a stable version. 5 days ago Linux
> 5.19-rc8 has been released so I expect the final release to land
> on Sunday or in the beginning of the next week. So please, use version
> 5.19.
> 
>> +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"
> 
> As pointed above here ^^^ use uImage.
> 
>> +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"
>> +
>> +# Required tools to create the SD card image
>> +BR2_PACKAGE_HOST_GENIMAGE=y
>> +BR2_PACKAGE_HOST_MKPASSWD=y
>> +
>> +# Misc
>> +BR2_BINUTILS_VERSION_2_36_X=y
> 
> I remember there is a reason to force using binutils 2.36, maybe the
> thumb2 ADR bug in u-boot? If yes, please briefly explain why this is
> here.
> 
> I've given a build using Buildroot's utils/docker-run but it fails due
> to missing BR2_TARGET_UBOOT_NEEDS_OPENSSL=y. So please next time build
> with utils/docker-run to catch any possible missing host dependency.
> 
> Waiting for V2 then.
> 
> Thanks for contributing!
> Kind regards
Giulio Benetti July 29, 2022, 10:28 p.m. UTC | #3
On 30/07/22 00:11, Jesse Taube wrote:
> 
> 
> On 7/29/22 18:05, Giulio Benetti wrote:
>> Hi Jesse!
>>
>> On 23/07/22 18:09, Jesse Taube wrote:
>>> The imxrt1050-evk is a development board from NXP.
>>
>> Please here provide a brief description of the board and
>> an URL pointing to the board page.
>>
>>> Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
>>> Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>
>>> ---
>>>    DEVELOPERS                                  |  6 ++++
>>>    board/freescale/imxrt1050evk/genimage.cfg   | 34 ++++++++++++++++++
>>>    board/freescale/imxrt1050evk/post-build.sh  |  4 +++
>>>    board/freescale/imxrt1050evk/readme.txt     | 23 ++++++++++++
>>>    board/freescale/imxrt1050evk/uboot.fragment |  2 ++
>>>    configs/imxrt1050-evk_defconfig             | 40 
>>> +++++++++++++++++++++
>>>    6 files changed, 109 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
>>>
>>> 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
>>
>> Thank you for adding me :-)
>>
>>>    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..e9f224516f
>>> --- /dev/null
>>> +++ b/board/freescale/imxrt1050evk/genimage.cfg
>>> @@ -0,0 +1,34 @@
>>> +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"
>>> +    }
>>> +}
>>
>> genimage.cfg has a standard format to follow that you can find in
>> Buildroot's manual:
>> https://buildroot.org/downloads/manual/manual.html#writing-genimage-cfg
> OH... I didn't see this.
>> You're missing most all newlines after every closing curly parenthesis.
>>
>>> diff --git a/board/freescale/imxrt1050evk/post-build.sh 
>>> b/board/freescale/imxrt1050evk/post-build.sh
>>> new file mode 100755
>>> index 0000000000..47557566f9
>>> --- /dev/null
>>> +++ b/board/freescale/imxrt1050evk/post-build.sh
>>> @@ -0,0 +1,4 @@
>>> +#!/bin/sh
>>> +rm output/images/uImage
>>> +mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 
>>> 0x80008000 -n "Linux kernel" -d output/images/Image output/images/uImage
>>
>> This ^^^ can be achieved by using BR2_LINUX_KERNEL_UIMAGE=y instead of
>> the default selected BR2_LINUX_KERNEL_ZIMAGE.
> BR2_LINUX_KERNEL_UIMAGE=y doesn't let me select compression `-C none` 
> u-boot runs out of memory as it is running in the 512kB address space 
> and not the 32MB

Ok, I've forgotten about that. So you can go with that script but take
as an example this one:
https://gitlab.com/buildroot.org/buildroot/-/blob/master/board/nexbox/a95x/post-build.sh

This because you have to use Buildroot's variable for executables and
paths like $MKIMAGE, $BINARIES_DIR and so on

Kind regards!
diff mbox series

Patch

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..e9f224516f
--- /dev/null
+++ b/board/freescale/imxrt1050evk/genimage.cfg
@@ -0,0 +1,34 @@ 
+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..47557566f9
--- /dev/null
+++ b/board/freescale/imxrt1050evk/post-build.sh
@@ -0,0 +1,4 @@ 
+#!/bin/sh
+rm output/images/uImage
+mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n "Linux kernel" -d output/images/Image output/images/uImage
+./support/scripts/genimage.sh $2 $3
diff --git a/board/freescale/imxrt1050evk/readme.txt b/board/freescale/imxrt1050evk/readme.txt
new file mode 100644
index 0000000000..d9c183a38f
--- /dev/null
+++ b/board/freescale/imxrt1050evk/readme.txt
@@ -0,0 +1,23 @@ 
+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:
+
+$ sudo dd status=progress oflag=sync bs=4k if=output/images/sdcard.img of=/dev/<sd-card-device>; sync
+
+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..03a47c1fd6
--- /dev/null
+++ b/configs/imxrt1050-evk_defconfig
@@ -0,0 +1,40 @@ 
+# Architecture
+BR2_arm=y
+BR2_cortex_m7=y
+
+# Image
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/imxrt1050evk/post-build.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"
+
+# Required tools to create the SD card image
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MKPASSWD=y
+
+# Misc
+BR2_BINUTILS_VERSION_2_36_X=y