PetaLinux Design Flow

0. Environment set up

  • PetaLinux relies on Python 2.7. It would ease the process by creating a Conda environment with Python 2.7 enabled and doing PetaLinux work in it.
  • Sometime you should source the following file to run PetaLinux smoothly
    $PetaLinux/components/yocto/source/arm/environment-setup-cortexa9t2hf-neon-xilinx-linux-gnueabi

1. Create a new project

petalinux-create -t project --template zynq -n $(project_name)

or

petalinux-create -t project -s $(bsp_file)

2. Import hardware information and configure

Refer to the directory where the .hdf file is instead of the path to the .hdf file.

petalinux-config --get-hw-description=$(path_to_hdf)

The following is a list of requirements for a Zynq hardware project to boot Linux (UG980):

  1. One Triple Timer Counter (TTC) (Required)
    IMPORTANT:
    If multiple TTCs are enabled, the Zynq Linux kernel uses the first TTC block from the device tree.
    Please make sure the TTC is not used by others.
  2. External memory controller with at least 32MB of memory (Required)
  3. UART for serial console (Required)
    IMPORTANT: If soft IP is used, ensure the interrupt signal is connected
  4. Non-volatile memory (Optional) e.g. QSPI Flash, SD/MMC
  5. Ethernet (Optional, essential for network access)
    IMPORTANT: If soft IP is used, ensure the interrupt signal is connected

HDF文件是一個zip文件,可以直接使用7zip解壓;也可以把后綴改為zip初家,使用其它工具解壓。解壓后可以得到文件design_1.hwh, design_1_bd.tcl, design_1_wrapper.bit, psu_init.c, psu_init.h, psu_init.html, psu_init.tcl, psu_init_gpl.c, psu_init_gpl.h, sysdef.xml蝇闭。

  • psu_init.c, psu_init.h是Vivado根據(jù)工程師配置的硬件信息,產(chǎn)生的C代碼硬毕,會被編譯進FSBL呻引,用于初始化MPSoC的MIO,DDR等吐咳。
  • design_1_bd.tcl是一個TCL腳本逻悠,Vivado可以執(zhí)行這個腳本恢復整個Vivado工程元践。
  • sysdef.xml,design_1_bd.tcl都含有工具版本信息童谒,可以查看Vivado的版本单旁。

2.1 Ethernet configuration

Subsystem AUTO Hardware Settings \rightarrow Ethernet Settings

2.2 tftp server configuration

u-boot Configuration \rightarrow TFTP server IP address

Image Packaging Configuration \rightarrow tftpboot directory

2.3 Firmware information

Firmware Version Configuration \rightarrow

2.4 Change to boot from SD card

Image Packaging Configuration \rightarrow Root filesystem type \rightarrow SD card

3. Create a new application/module

petalinux-create -t apps -n $(app_name)
petalinux-create -t modules -n $(module_name)

The PL device tree is located at:
./components/plnx_workspace/device-tree/device-tree/pl.dtsi

4. Configure kernel

petalinux-config -c kernel

For DMA, may need to disable DMAS engine:
Device Drivers \rightarrow DMA Engine support \rightarrow Xilinx AXI DMAS Engine. Uncheck the option. (per https://lauri.vosandi.com/hdl/zynq/xilinx-dma.html)

5. Configure rootfs

petalinux-config -c rootfs

Select modules/apps to be enabled:

apps \rightarrow

6. Build

petalinux-build

7. Create BOOT.bin

petalinux-package --boot --fsbl images/linux/zynq_fsbl.elf --fpga images/linux/system.bit --u-boot --force

or

create a file, e.g., boot.bif (UG1283)

image : {
        [bootloader] images/linux/zynq_fsbl.elf
        images/linux/system.bit
        images/linux/u-boot.elf
}

And then, run command:

bootgen -image boot.bif -o i BOOT.BIN -w on

8. Boot file system from SD card

a) Change configuration if using standalone rootfs

When reading hardware configuration (petalinux-config --get-hw-description=xxx)

Select Image Packaging Configuration \rightarrow Root filesystem type \rightarrow SD card

Or when configuring:

petalinux-config

Select Image Packaging Configuration \rightarrow Root filesystem type \rightarrow SD card

If using default rootfs, keep this option unchanged:
Image Packaging Configuration \rightarrow Root filesystem type \rightarrow INITRAMFS

b) Generate images

petalinux-build
petalinux-package --boot --fsbl images/linux/zynq_fsbl.elf --fpga images/linux/system.bit --u-boot --force

c) Prepare SD card

cp /tftpboot/BOOT.BIN /media/$(username)/BOOT/.
cp /tftpboot/image.ub /media/$(username)/BOOT/.
cp /tftpboot/boot.scr /media/$(username)/BOOT/.

PetaLinux 2020.1 changed uboot so that it requires boot.scr also in the BOOT partition of the SD card.

If use rootfs images created by PetaLinux:

cp images/linux/rootfs.cpio /media/$(username)/rootfs

If use standalone rootfs:

sudo cp -a /path-to-compiled-rootfs/* /media/$(username)/rootfs/.

Then

petalinux-util --update-sdcard -d /media/$(username)/BOOT

Unmount and eject the SD card.

Reference

  • UG980
  • UG1144
  • UG1157
  • UG1283
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市饥伊,隨后出現(xiàn)的幾起案子象浑,更是在濱河造成了極大的恐慌,老刑警劉巖撵渡,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件融柬,死亡現(xiàn)場離奇詭異,居然都是意外死亡趋距,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門越除,熙熙樓的掌柜王于貴愁眉苦臉地迎上來节腐,“玉大人,你說我怎么就攤上這事摘盆∫砣福” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵孩擂,是天一觀的道長狼渊。 經(jīng)常有香客問我,道長类垦,這世上最難降的妖魔是什么狈邑? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮蚤认,結果婚禮上米苹,老公的妹妹穿的比我還像新娘。我一直安慰自己砰琢,他們只是感情好蘸嘶,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著陪汽,像睡著了一般训唱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挚冤,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天况增,我揣著相機與錄音,去河邊找鬼你辣。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的羊壹。 我是一名探鬼主播绷柒,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼馒吴!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤丧靡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后籽暇,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體温治,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年戒悠,在試婚紗的時候發(fā)現(xiàn)自己被綠了熬荆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡绸狐,死狀恐怖卤恳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寒矿,我是刑警寧澤突琳,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站符相,受9級特大地震影響拆融,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜啊终,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一镜豹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧孕索,春花似錦逛艰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至肄渗,卻和暖如春镇眷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背翎嫡。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工欠动, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓具伍,卻偏偏與公主長得像翅雏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子人芽,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容