Building and flashing images on NXP S32G¶
The process to build an AutoSD image and flash it onto a S32G board has several steps:
- Update the board firmware.
- Build the AutoSD image.
- Build the NXP BSP.
- Optional: Install the NXP BSP kernel into the AutoSD image.
- Install the boot loader into the AutoSD image.
- Flash the image onto an SD card and boot the system.
Updating your S32G firmware¶
Before flashing an AutoSD image onto the S32G board, you must install the updated firmware.
Procedure
- Enable the
@centos-automotive-sig/nxp-board-support
repo:
- Install the
nxp-arm-trusted
firmware:
After you install the firmware, the fip.s32
binary is available in /usr/share/nxp-arm-trusted-firmware/s32g399ardb3/fip.s32
.
The fip.s32
binary is used in the Installing the NXP BSP into the AutoSD image procedure.
Prerequisites
- An AArch64 system with internet access
Next steps
Now that the fip.s32
binary is installed in your host, you can build the AutoSD image.
Building and flashing an AutoSD image on S32G¶
To make an image to flash onto the S32G you must complete the following steps:
- Build the AutoSD image
- Install the secondary boot loader and optionally the NXP BSP kernel into the image
You can then flash this image onto an SD card, insert the SD card into the S32G, and boot the system.
Building the AutoSD image¶
Follow these instructions to build the AutoSD image for your S32G board.
Prerequisites
- An AArch64 system with internet access
Procedure
-
Clone the
sample-images
repository:Note
Ensure that you include the
--recursive
option so that the clone operation includes the submodules within the repository. -
Change to the
automotive-image-builder
directory: -
Build the image using your image name as the target:
Next steps
Now that you have built the autosd-s32g_vnp_rdb3-developer-regular.img
image, install the NXP kernel into it.
Installing the NXP BSP into the AutoSD image¶
At the time of publication, the AutoSD image is not fully supported on the S32G board without modifications. To create a bootable AutoSD image for the S32G board, you must manually install the secondary boot loader (SBL) binary into the AutoSD image. In addition, the included AutoSD kernel based on CentOS Stream 9 has only partial support and not all devices and features work. You can optionally replace it with the NXP BSP kernel.
Prerequisites
- An
autosd-s32g_vnp_rdb3-developer-regular.img
image; for more information, see Building the AutoSD image - An updated
fip.s32
file; for more information, see Updating your S32G firmware
Procedure
-
Optional: Build the NXP vendor kernel:
-
Set the helper environment variables:
-
Create a temporary directory and mount the third and fourth partitions of the AutoSD image as block devices:
-
Optional: Build the NXP kernel:
-
Optional: Copy the NXP kernel to the AutoSD image that you mounted in
./tmpdir
: -
Modify the boot loader:
rm ./tmpdir/boot/loader/* cat << EOF | sudo tee -a ./tmpdir/boot/loader/entries/ffffffffffffffffffffffffffffffff-${kernelversion}.aarch64.conf title Automotive Stream Distribution (${kernelversion}.aarch64) 9 version ${kernelversion}.aarch64 linux /Image-${kernelversion} devicetree /dtb-${kernelversion}/freescale/s32g399a-rdb3.dtb options root=/dev/mmcblk0p4 rw loglevel=4 efi=noruntime acpi=off console=ttyLF0,115200 module.sig_enforce=1 systemd.show_status=auto libahci.ignore_sss=1 slub_debug=FPZ fsck.mode=skip rcupdate.rcu_normal_after_boot=0 rcupdate.rcu_expedited=1 grub_users $grub_users grub_arg --unrestricted grub_class autosd EOF
-
Unmount the filesystem and detach the loop device:
-
Install the SBL binary,
fip.s32
, into the AutoSD image:
Next steps Now that you have installed the SBL binary and optionally the NXP BSP kernel into the AutoSD image, you can flash the image onto the S32G board.
Flashing the AutoSD image onto the S32G board¶
After you customize the AutoSD image and install the NXP kernel and boot loader into the image, you can flash the image onto the S32G board.
Prerequisites
- An SD card
- An S32G board
- An
autosd-s32g_vnp_rdb3-developer-regular.img
image
Procedure
-
Flash the image onto an SD card, replacing
_</dev/sdX>_
with your block device: -
Plug in the SD card and start the system.
Note
Flashed u-boot supports EFI boot, so the system should boot without any user interaction.
-
To see the output, log in to the serial port using default credentials: