We use cookies to provide our visitors with an optimal site experience. View our privacy notice and cookie notice to learn more about how we use cookies and how to manage your settings. By proceeding on our website you consent to the use of cookies.
I’ve been trying to update everything on my i.MX287. Since I have a few of these lying around, I wanted to run something more modern on it. I am trying to follow this guide and adapt it for the i.MX28 as needed.
here are my settings:
I am using Ubuntu 22.04 as my build environment (inside a VM)
GCC 7.5 from here (gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi.tar.xz),
v2022.07 U-boot tag from the u-boot repo (could not find a right U-boot patch for this board),
Used this config for building u-boot: mx28evk_config,
Linux 5.3 kernel from RobertCNelson/armv5_devel repo,
I managed to go all the way through the tutorial (applying small fixes and adjustments as needed). When I try to boot from the microSD card however, it throws this error: 0x80502008.
The only thing I can think of is that U-boot didn’t work, or that I need to either do an extra step in getting it to work, or I need a patch for the i.MX28.
The main goal here is to get a modern compiler (GCC 7 or higher) on my build machine so that I can run apps built on newer versions of C++ on my target board. It does seem possible, but perhaps I’m missing a step somewhere.
I have a few custom boards we built several years ago based on the i.MX28 Eval kit.
Based on the mail link you sent, am I correct in interpreting that as using v2020.01 branch? Or does that mean I need to use something older than v2020.01?
Also, another instruction that I was confused about from the original getting started tutorial was u-boot patches, as I did not find any for mx28evk. Should I just skip that step and assume that there are no new patches for this board?
I will try those toolchains in that order - thanks!
@RobertCNelson just to add on what else I did to get it to build:
When configuring u-boot, I used the following command:
make ARCH=arm CROSS_COMPILE=${CC} mx28evk_config
where mx28evk_config replaces mx23_olinuxino_defconfig from the original guide.
I added support for Ubuntu 22.04 in kernelbuildscripts/scripts/host_det.sh by adding a case for jammy under “Future Debian names”.
I forced the build script to use the proper toolchain. In kernelbuildscripts/build_kernel.sh, there’s a line of code:
unset CC
This causes the script to download whatever it thinks the latest ARM toolchain is. If you comment out this line, it will use the toolchain we set our CC variable to point to.
When running the build_kernel.sh script, it fails halfway through by throwing this error:
multiple definition of ‘yylloc’; scripts/dtc/dtc-lexer.lex.o:
In order to fix this, I edited the file kernelbuildscripts/KERNEL/scripts/dtc/dtc-lexer.lex.c. I changed the line YYLTYPE yylloc and to extern YYLTYPE yylloc, saved it and closed the file.
Doing this will be detected as a change by git, so I went back to build_kernel.sh, commented out the line:
and then in copy_defconfig() function, I removed the word distclean from this line:
make ARCH=${KERNEL_ARCH} CROSS_COMPILE="${CC}" distclean
Now running the build_kernel.sh script again, it continues through the build process. I did see a few unrelated warnings pop up, but it still compiled at the end.
When the kernel compiles, it asks for configuration. I setup the following default command string:
Then proceed on with installing the kernel and root file system on a microSD card. Unfortunately, it still throws the same error as the previous post when trying to boot the board from the SD card.
Hi @akram.ali how much memory does your board have? the 64MB of ram on the mx23 really struggles with Debian 11… I’ve been pruning things but with systemd, we might be the end of the mx23 family on ‘stable’ debian…
As far as u-boot… something changed after… v2021.07, updated the wiki page and git repo…
Even thou, i checked out v2021.10… it shows up as…
@RobertCNelson sorry for the delayed reply on this thread; I got sidetracked with other projects as it always happens Just getting back to this now.
How were you able to boot test the latest kernel on the board? Did you use U-boot v2022.01 or something older than v2021.07? I’m just trying to get this board (iMX287evk) to boot and I’m unable to do so. I’m getting the 0x80502008 error when trying to boot, so I’m wondering if U-boot needs to be fixed.
There are also patches listed for iMX233, but not sure if there are any updated ones for iMX28evk.