TSC
Linux
要讓 CPU 跑 linux 基本要有幾個組件
• flash.bin: Fit image containing U-Boot and the ATF
• zImage: Kernel image
• zImage-*.dtb: Device tree
注意事項:
ref:
執行會進行 EULA 簽署,輸入 y 即可
distro name:
machine name:
i.MX 8
其他config 定義至 source/meta-xxx/conf/machine 的 xxx.conf
example: imx8mmddr3lval in "/sources/meta-imx/meta-bsp/conf/machine"
Restarting a build environment
If a new terminal window is opened or the machine is rebooted after a build directory is set up, the setup environment script should
be used to set up the environment variables and run a build again. The full imx-setup-release.sh is not needed.
這個步驟需要等待 4~5 小時
最後會在 tmp/deploy/sdk 目錄下會產出
fsl-xxxx.sh
(toolchain install Script file)
執行 toolchain install script file
example:
預設安裝置 /opt 下
run environment-setup script
or use source
由於sdk 採用動態設定環境變數,若充新開啟 terminal ,請重新執行 'run environment-setup script
Bootloader 包含以下組件:
SECO: NXP 只提供 Binary file,主要啟動過程中的一些安全認證。
以下路徑會有所需的 bin 檔
firmware-imx-8.13/firmware/ddr/synopsys
atf: ARM Trusted FW
usage: make [PLAT=<platform>] [OPTIONS] [TARGET]
detail please run make help
example build the bl31 binary image:
PLAT: Platform define
imx Platform
Path: imx-atf/plat/imx
bl31: EL3 Firmware
建置結果
Only clone lf-5.10.52-2.1.0 branch
linux host (ubuntu should install libncurses5-dev)
apt install libncurses5-dev
should check the compiler is valid
tools/mkimage
spl/u-boot-spl.bin
u-boot-nodtb.bin
arch/arm/dts/imx8mm-ddr4-evk.dtb
Only clone lf-5.10.52-2.1.0 branch
for ddr4 copy
for lpddr4 copy
run make help
for DDR4
for LPDDR4
for LPDDR3L
建置成功將於 imx-mkimage/iMX8M
輸出 flash.bin
in soc.mak file
PLAT = imx8mp
HDMI = no
SPL_LOAD_ADDR = 0x920000
SPL_FSPI_LOAD_ADDR = 0x920000
TEE_LOAD_ADDR = 0x56000000
ATF_LOAD_ADDR = 0x00970000
VAL_BOARD = val
#define the F(Q)SPI header file
QSPI_HEADER = ../scripts/fspi_header
QSPI_PACKER = ../scripts/fspi_packer.sh
VERSION = v2
LPDDR_FW_VERSION = _202006
DDR_FW_VERSION = _202006
PLAT = imx8mm
HDMI = no
SPL_LOAD_ADDR = 0x7E1000
SPL_FSPI_LOAD_ADDR = 0x7E2000
TEE_LOAD_ADDR ?= 0xbe000000
ATF_LOAD_ADDR = 0x00920000
VAL_BOARD = val
#define the F(Q)SPI header file
QSPI_HEADER = ../scripts/fspi_header 0
QSPI_PACKER = ../scripts/fspi_packer.sh
VERSION = v1
Only clone lf-5.10.52-2.1.0 branch
“error : openssl/bio.h :No such file or folder”
sudo apt install libssl-dev
請參考 Linux Image 製作方式
https://hackmd.io/NhzRJ7rqTeuBoc4iEhy4yg
example:
https://github.com/SolidRun/imx8mp_build/blob/master/runme.sh
https://coldnew.github.io/9cbf4b94/
iMX8QXP BSP Standalone Building Up
https://www.wpgdadatong.com/tw/blog/detail?BID=B1395
LF5.10.35_2.0.0 IMX_LINUX_RELEASE_NOTES
https://www.nxp.com/docs/en/release-note/IMX_LINUX_RELEASE_NOTES.pdf
IMX_YOCTO_PROJECT_USERS_GUIDE
https://www.nxp.com/docs/en/user-guide/IMX_YOCTO_PROJECT_USERS_GUIDE.pdf
imx8m mini 中如何手动将kernel和dtb拷贝到eMMC上
https://www.wpgdadatong.com/tw/blog/detail?BID=B1656
在Imx8m mini 上通过TFTP实现NFS启动
https://www.wpgdadatong.com/tw/blog/detail?BID=B1503
imx8m mini中jailhouse hypervisor的应用
https://www.wpgdadatong.com/tw/blog/detail?BID=B2215
【ATU Book-i.MX8系列】 NXP i.MX8M Mini 環境建置
https://www.wpgdadatong.com/tw/blog/detail?BID=B1134
https://www.wpgdadatong.com/tw/profile?uid=64902&type=blogPost&timeSort=2&title=blogPost
https://www.wpgdadatong.com/tw/profile?uid=60572&type=blogPost&timeSort=2&title=blogPost
https://www.wpgdadatong.com/cn/profile?uid=66412&type=blogPost&timeSort=2&title=blogPost
https://www.wpgdadatong.com/tw/profile?uid=62865&type=blogPost&timeSort=2&title=blogPost
https://www.wpgdadatong.com/tw/profile?uid=72266&type=blogPost&timeSort=2&title=blogPost
https://www.wpgdadatong.com/tw/profile?uid=64710&type=blogPost&timeSort=2&title=blogPost
https://www.wpgdadatong.com/tw/profile?uid=60836&type=blogPost&timeSort=2&title=blogPost
https://www.wpgdadatong.com/tw/profile?uid=60459&type=blogPost&timeSort=2&title=blogPost
https://getiot.tech/imx8/build-imx-yocto-bsp-image.html
http://ess-wiki.advantech.com.tw/view/Test_Report_vA0076
iMX8QXP BSP Standalone Building Up
https://www.wpgdadatong.com/tw/blog/detail?BID=B1395