This shows you the differences between two versions of the page.
ass:laboratoare:01:tasks:02 [2023/07/17 23:23] florin.stancu |
ass:laboratoare:01:tasks:02 [2024/08/04 22:07] (current) florin.stancu [02. Creating the Firmware Image Package] |
||
---|---|---|---|
Line 66: | Line 66: | ||
=== 02-C. Build U-Boot (both BL2 and BL33) === | === 02-C. Build U-Boot (both BL2 and BL33) === | ||
- | For the last two components of our Firmware Package we'll be using [[https://github.com/TechNexion/u-boot-tn-imx|U-Boot]] (clone it!). | + | For the last two components of our Firmware Package we'll be using [[https://github.com/TechNexion/u-boot-tn-imx|this U-Boot fork]] (clone it!). |
Each of them has a very specific purpose. | Each of them has a very specific purpose. | ||
Line 153: | Line 153: | ||
Since 2022, U-Boot's tool of choice for this task is [[https://u-boot.readthedocs.io/en/latest/develop/package/binman.html|binman]]. This tool uses a platform-specific config file that specifies what components should be included and where they should be placed in memory. For our platform (i.e.: i.MX8M Quad) this file would be ''arch/arm/dts/imx8mq-u-boot.dtsi''. | Since 2022, U-Boot's tool of choice for this task is [[https://u-boot.readthedocs.io/en/latest/develop/package/binman.html|binman]]. This tool uses a platform-specific config file that specifies what components should be included and where they should be placed in memory. For our platform (i.e.: i.MX8M Quad) this file would be ''arch/arm/dts/imx8mq-u-boot.dtsi''. | ||
- | **However**, since the U-Boot version that we are using is older and the board manufacturer did not add proper support for binman, **we are going to use the older method**, based on [[https://linux.die.net/man/1/mkimage|mkimage]] (part of the U-Boot repo or as a package on most distros). In order to spare ourselves some pain, we are going to use NXP's [[https://github.com/nxp-imx/imx-mkimage/tree/lf-5.15.32_2.0.0|imx-mkimage]] implementation which knows the proper offsets where the images should be loaded. | + | **However**, since the U-Boot version that we are using is older and [[https://github.com/TechNexion/u-boot-tn-imx/commit/ca11907c0e7b7efd22f037793295fb0427e05ecb|the board manufacturer did not add proper support for binman]], **we are going to use the older method**, based on [[https://linux.die.net/man/1/mkimage|mkimage]] (part of the U-Boot repo or as a package on most distros). In order to spare ourselves some pain, we are going to use NXP's [[https://github.com/nxp-imx/imx-mkimage/tree/lf-5.15.32_2.0.0|imx-mkimage]] implementation which knows the proper offsets where the images should be loaded. |
In their source tree you will find a number of subdirectories corresponding to different versions of the i.MX platform. Select the one which corresponds to our board (remember, the base model is called //iMX8M//). | In their source tree you will find a number of subdirectories corresponding to different versions of the i.MX platform. Select the one which corresponds to our board (remember, the base model is called //iMX8M//). |