- v2.6 changes to FIP instead of SSBL boot.
- This requires switching to u-boot.bin in U-Boot, and using that
instead of .stm32 in ATF.
- fiptool expects dtb to be split off from u-boot.bin, so need custom
u-boot-nodtb.bin in addition to u-boot.dtb.
Caveat: this is perhaps not really obligatory, but the ATF
documentation explains it like that.
- The partition must be named fip (while it must be named ssbl for
SSBL boot).
- Since the partition name is set in the common template, all
defconfigs using that template must be bumped in a single commit
- ATF now produces both fip.bin and <boardname>.stm32, so fip.bin has
been added to the configs
- While we're at it, add the structuring comments to
avenger96_defconfig similar like the other defconfigs
Signed-off-by: Marleen Vos <marleen.vos@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
The regex was a bit too strict in which characters it allowed. Thus,
if e.g. a file name appears in the
BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES string, it no
longer matches, and we end up with an empty ATF_VARIABLES. This makes
the subsequent grep fail, and the post-image.sh script fails without
any error message (thanks to the -e option).
Simplify the regex to match everything except the closing quotation
mark. Note that Kconfig doesn't allow quotation marks at all inside a
string (even escaped ones), so this regular expression is always OK.
Signed-off-by: Marleen Vos <marleen.vos@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
The post-image.sh script is used in several STM32MP157-based board
configs. It had hardcoded device tree file names for the supported
boards which were used for matching the expected TF-A binary name.
Replace this mechanism with a pair of grep and sed that build the TF-A
binary name from the device tree file name. For example, if
BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES contained
DTB_FILE_NAME=stm32mp157c-dk2.dtb, the appropriate TF-A file would be
named tf-a-stm32mp157c-dk2.stm32.
Since the Bash Here Strings are removed with this change, I took the
opportunity to remove the only other non-POSIX command, "local", and
then I was able to change the shebang to plain /bin/sh, with -eu for
simpler error handling.
Signed-off-by: Grzegorz Szymaszek <gszymaszek@short.pl>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Kernel is built without network support, so network utils are useless.
This has a positive impact on the size of busybox and xipImage, making
them smaller.
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Reviewed-by: Giulio Benetti <giulio.benetti@benettiegineering.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Board support package includes the following components:
- mainline Linux kernel 5.15.108
- mainline U-Boot 2023.04
- default packages from buildroot
Note: There is a problem in u-boot display management. It should display
the ST microelectronics logo but "noise" is displayed (like when running
the command dd if=/dev/urandom of=/dev/fb0 in Linux). I also tried to
change version (even the first version in which this feature was
introduced), but without success. Despite this I decided not to disable
the video management configuration to remind us that it needs to be
fixed :).
Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>
Link: https://www.st.com/en/evaluation-tools/32f769idiscovery.html
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Reviewed-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Kernel is built without network support. It is useless to compile the
package and then remove it from rootfs.
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
After booting Linux the userspace is unusable since every command issued,
that is a symlink to busybox, fails because of no free ram. So let's
disable IIO in linux.config to give some more ram to userspace.
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
The gpt = "true" form is deprecated in genimage, use
partition-table-type = "gpt" instead.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Rename the configuration to explicitly distinguish between sd and xip.
As a result, the readme files have also been changed.
Signed-off-by: Dario Binacchi <dariobin@libero.it>
Acked-by: Christophe Priouzeau <christophe.priouzeau@foss.st.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
The kernel generated by the configuration for the STM32f429-discovery
board is buggy:
Fixes:
Unhandled exception: IPSR = 00000006 LR = fffffff1
CPU: 0 PID: 1 Comm: init Not tainted 4.11.0 #2
Hardware name: STM32 (Device Tree Support)
task: 9041a000 task.stack: 907c0000
PC is at ret_fast_syscall+0x2/0x4a
LR is at tty_ioctl+0x1ad/0x75c
pc : [<0800d942>] lr : [<080c2e05>] psr: 4000000b
sp : 907c1fa8 ip : 0000001c fp : 905961a2
r10: 00000000 r9 : 907c0000 r8 : 0800dae0
r7 : 00000036 r6 : 905e7e60 r5 : 00000000 r4 : 905e7ebc
r3 : 00000000 r2 : 00000000 r1 : 00000000 r0 : 00000000
xPSR: 4000000b
CPU: 0 PID: 1 Comm: init Not tainted 4.11.0 #2
Hardware name: STM32 (Device Tree Support)
[<0800fbf9>] (unwind_backtrace) from [<0800f05b>] (show_stack+0xb/0xc)
[<0800f05b>] (show_stack) from [<0800f553>] (__invalid_entry+0x4b/0x4c)
Inspired by commit a3e3d9c198 ("configs/stm32f469_disco_xip_defconfig:
alternative defconfig for XIP"), update the stm32f429_disco_defconfig
configuration to use a newer kernel. Current setup kernel + rootfs fits
in 1.6MB on-chip flash memory.
The kernel has been moved to new flash bank due to growth of dtb size.
Remove upstream patch.
For better binary size optimization gcc LTO is turned on.
Signed-off-by: Dario Binacchi <dariobin@libero.it>
Acked-by: Christophe Priouzeau <christophe.priouzeau@foss.st.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Newer versions of the kernel generate device trees that are not
storable in a single 16kB sector. In these cases the kernel load address
must be changed.
The commit 2e499dcff3ef ("Add possibility to use custom kernel load address")
adds the possibility to override the default (0x08008000) kernel load
address.
This also required changes to the stm32f429_disco_defconfig and
stm32f469_disco_xip_defconfig configurations. Patching is no longer
needed.
Also update whitespaces in hash file (2 spaces).
Signed-off-by: Dario Binacchi <dariobin@libero.it>
Acked-by: Christophe Priouzeau <christophe.priouzeau@foss.st.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
The current configuration fails to boot on the stm32f469-disco board.
Make it bootable again by reverting the DRAM patches.
Also change the kernel load address from 0x8010000 to 0x800C000 to
allocate more space to the kernel, since 32kB for the device tree is
enough.
Also clean up the rootfs a bit with the common stm32-post-build.sh
script.
Signed-off-by: Dario Binacchi <dariobin@libero.it>
Acked-by: Christophe Priouzeau <christophe.priouzeau@foss.st.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Beatify this genimage .cfg file to have consistency with all genimage .cfg
files in Buildroot.
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
The patch [1], which is required for DRM to work properly, has been
merged into Linux version 5.14-rc3. There's a 5.14.12 now in stable, so
I took that one.
After Linux boots, /dev/fb0 will be accessible. You can control the
brightness of the display after enabling the framebuffer by running the
following commands:
~ # echo 0 0 > /sys/class/graphics/fb0/pan
~ # echo 255 >/sys/class/backlight/40016c00.dsi.0/brightness
The brightness ranges from 0 to 255, as you can see running the
command:
~ # cat /sys/class/backlight/40016c00.dsi.0/max_brightness
[1] 24b5b1978cd5 ("clk: stm32f4: fix post divisor setup for I2S/SAI PLLs")
Signed-off-by: Dario Binacchi <dariobin@libero.it>
Acked-by: Christophe Priouzeau <christophe.priouzeau@foss.st.com>
[Arnout: add explanation to readme.txt]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Update STM32F469-disco configuration files to operate with new kernel.
Result of make tinyconfig was taken as a starting point to fit kernel
into flash memory.
Current setup kernel + rootfs fits in 1.6MB on-chip flash memory
Fixes:
- Move kernel to new flash bank due to growth of dtb size
- Fix kernel start address in bootloader
- Remove outdated path which doesn't affect normal operation mode
For better binary size optimization gcc LTO is turned on.
Signed-off-by: Yauheni Saldatsenka <eugentoo@gmail.com>
[Arnout:
- squash 3 patches into 1;
- remove unused dts file;
- move linux/linux.config to linux-xip.config;
- add a sentence to readme to say SD card is not needed.
]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Running stm32mp1 watchdog is properly recognized and handled by kernel
watchdog framework since Linux v5.6.
Reported-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Pierre-Jean Texier <texier.pj2@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Running stm32mp1 watchdog is properly recognized and handled by kernel
watchdog framework since Linux v5.6. For details see the Linux commit
85fdc63fe256 ("drivers: watchdog: stm32_iwdg: set WDOG_HW_RUNNING at
probe"). So U-Boot config fragment can be safely removed without
adding userspace watchdog daemon.
Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
The stm32mp157 images successfully boot only once. Subsequent boot
attempts fail to reach U-Boot. The root cause turns out to be in U-Boot
corruption during the first boot. The stm32mp1 U-Boot stores its
environment at the end of GPT partition named 'ssbl' since v2020.10-rc2.
However Buildroot genimage template for stm32mp157 boards creates 'ssbl'
partition w/o extra space for U-Boot primary and redundant environments.
This patch explicitly specifies 'ssbl' partition size that should be
enough for both u-boot.stm32 image (~1M) and both environments (16K).
Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
Tested-by: Pierre-Jean Texier <texier.pj2@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
As described by [1], the kernel generated by the configuration for the
STM32f469 Discovery board is buggy. Using a newer kernel, as suggested
by [1], increases the dtb and Kernel image size. In particular, the
5.12 version of the kernel generates a dtb and a kernel image whose sum
exceeds the 2 MByte of the flash module.
So I decided to replace the afboot-stm32 bootloader in the flash with
U-boot to easily boot the system from sdcard without having to worry
about the size of dtb, kernel and rootfs generated by the configuration.
This solution allows you to fix the kernel boot issue and makes it
possible to use its future versions.
[1] http://buildroot-busybox.2317881.n4.nabble.com/Bug-11746-New-stm32f469-didn-t-work-correctly-td219644.html
Signed-off-by: Dario Binacchi <dariobin@libero.it>
Acked-by: Christophe Priouzeau <christophe.priouzeau@foss.st.com>
Tested-by: Christophe Priouzeau <christophe.priouzeau@foss.st.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[Arnout:
- specify headers version explicitly, even though it's default;
- bump kernel to 5.12.11]
Very similar to the other stm32mp157-based boards, except that we use the
multi_v7 defconfig for ease of maintenance.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit changes the stm32mp1 configurations to use the TF-A ->
U-Boot boot flow (called "trusted boot flow" by ST) instead of the
U-Boot SPL -> U-Boot boot flow. ST recommands this trusted boot, and
it's also the only one that allows to use the STM32 Cube Programmer
for reflashing devices.
As part of this, the genimage configuration file is now generated, as
it contains some file names that depend on the platform. Removing
partition-type from genimage.cfg is mandatory, since it would cause a
hybrid MBR partition table to be created, which itself would prevent
ATF from finding the ssbl parition.
Signed-off-by: Shlomi Vaknin <shlomi.39sd@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Let's clean up "boards/stmicroelectronics" directory a bit
to have everything in particular directories.
Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
The board support package includes the following components:
- U-Boot 2020.01
- Linux 5.4.26
- Buildroot default packages
Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
It will be useful for the upcoming introducing stm32mp157a dk2 board.
Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Let genimage to match the size of the rootfs image instead.
Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Now that the metadata_csum ext4 option is disabled, we no longer need
the U-Boot workaround.
Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
That is useful and needed for upcoming introducing stm32mp157a-dk1 board.
Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Change partition name according to the U-Boot requirements.
Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit adds a minimal defconfig to build a Buildroot system for
the STM32MP157 Discovery Kit, which is the low-cost evaluation
platform for the new STM32MP157 system-on-chip from ST. This
system-on-chip features a single or dual Cortex-A7, a single
Cortex-M4, and a wide variety of peripherals.
This commit includes a custom linux configuration file, because there
is no specific defconfig for this platform in the kernel, only
multi_v7_defconfig supports it, which is really a massive
defconfig. That's why a custom linux configuration file is added.
A small U-Boot config fragment allows to disable the watchdog, so that
userspace by default doesn't need to have a watchdog daemon running.
The vendor U-Boot and Linux trees are used for the moment, but the
platform support is being upstreamed, so switching to upstream
versions will be possible in the relatively near future.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Manual change because the script uses ${OUTPUT_DIR}/host instead of
${HOST_DIR}.
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Manual change because the script uses ${OUTPUT_DIR}/host instead of
${HOST_DIR}.
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Use kernel 4.11 for stm32f4 discovery board
(stm32f429i-disco and stm32f469i-disco).
Signed-off-by: Christophe Priouzeau <christophe.priouzeau@st.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Since the bump of OpenOCD from 0.9.0 to 0.10.0 in commit
3b6c74d708, stm32f469_disco_defconfig
fails to build:
- 0001-add-config.patch was merged in upstream OpenOCD (commit
26045588f462476cee356d15a24944d6c26befb4).
- 0002-flash-nor.patch was merged in upstream OpenOCD (commit
3e219648c80a27f0519003f3b088cbb846e255d8)
Therefore, this commit removes the two patches that are no longer
necessary.
Fixes:
https://gitlab.com/buildroot.org/buildroot/builds/15762279
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This change renders the stm32f429discovery a bit more generic and reuse most
of its settings for the stm32f429-disc1 board.
Cc: Waldemar Brodkorb <wbx@openadk.org>
Cc: Davide Viti <zinosat@tiscali.it>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Config can be used by other noMMU targets as qemu-system-m68k
with coldfire emulation.
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Similar to stm32f429_disco, this commit adds a configuration for the
Cortex-M4 based STM32F469 platform.
It requires a few kernel patches, which have already been submitted
upstream, as well as a small OpenOCD patch. Besides that, it re-uses
most of what has been added for the STM32F429 platform.
Signed-off-by: Lee Jones <lee.jones@linaro.org>
[Thomas:
- squash multiple patches from Lee Jones into one
- improve the readme.txt file
- sync the defconfig with the adaptations made to the stm32f429
configuration.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit adds a defconfig for the STM32F429 platform, which is
based on a Cortex-M4 core from ST Microelectronics. It is therefore
the first noMMU ARM platform supported in Buildroot.
This commit includes some files that will be common to several STM32
platforms (hence in board/stmicroelectronics) and some files that are
specific to the STM32F429 (hence in
board/stmicroelectronics/stm32f429-disco). More specifically, this
commit adds:
- A minimal Busybox configuration, which is small enough to boot
without causing OOM on such small noMMU platforms. The resulting
Busybox, statically linked with uClibc-ng, weights around 220
KB. For now, this file is located in board/stmicroelectronics/, but
we might consider moving it to package/busybox/ in the future if
needed.
- A post-build script that removes the mounting of /dev/pts (not
enabled in the kernel and not very useful for a system that has no
network and no X), and removes the network related init script and
configuration files (no network support).
- A flash.sh script, to perform the right OpenOCD invocations to
reflash the board.
- One small kernel patch to adjust the kernel command line in the
Device Tree, since it's the only way to do so.
- The usual readme.txt file.
Signed-off-by: Lee Jones <lee.jones@linaro.org>
[Thomas:
- squashed multiple patches from Lee Jones together
- added the minimal Busybox configuration
- added the post-build script
- improved the flashing script to not hardcode the location of the
output directory
- add the small kernel patch
- improve the readme.txt file
- test on HW the resulting image, after using the internal toolchain.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>