This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
hw:zynq:linux:petalinux:boot_kernel_trenz [2019/06/05 12:00] jakub.moron created |
hw:zynq:linux:petalinux:boot_kernel_trenz [2019/08/01 12:39] (current) jakub.moron |
||
|---|---|---|---|
| Line 19: | Line 19: | ||
| -> dtb image settings : set ‘image storage media’ option to ‘primary sd’ | -> dtb image settings : set ‘image storage media’ option to ‘primary sd’ | ||
| -> SD/SDIO Settings -> Primary SD/SDIO: set to 'psu_sd_1' | -> SD/SDIO Settings -> Primary SD/SDIO: set to 'psu_sd_1' | ||
| - | Image Packaging Configurations -> ‘Root filesystem type’: set to ‘SD card’ | + | |
| - | -> 'Device node of SD device': set to '/dev/mmcblk1p2' | + | Image Packaging Configurations -> ‘Root filesystem type’: set to ‘SD card’ |
| - | -> 'Copy final images to tfpboot': uncheck | + | -> 'Device node of SD device': set to '/dev/mmcblk1p2' |
| + | -> 'Copy final images to tfpboot': uncheck | ||
| + | |||
| + | Firmware Version Configuration -> Set 'Hostname', 'Product name' and 'Firmware Version' according to your preferences | ||
| | | ||
| </code> Select ''Exit'' to write the configuration.\\ \\ In case you want to reconfigure boot settings, run: <code> | </code> Select ''Exit'' to write the configuration.\\ \\ In case you want to reconfigure boot settings, run: <code> | ||
| Line 29: | Line 31: | ||
| - Check whether all required drivers/modules are enabled in kernel config: <code> | - Check whether all required drivers/modules are enabled in kernel config: <code> | ||
| petalinux-config -c kernel | petalinux-config -c kernel | ||
| - | </code> Hint: you can use vim-like search ''/<search_string>'' to list all enabled drivers/modules.\\ **Remember to __Save__ changes before exit -- it seems taht there is no autosave!** \\ | + | </code> Hint: you can use vim-like search ''/<search_string>'' to list all enabled drivers/modules.\\ **Remember to __Save__ changes before exit -- it seems taht there is no autosave!** \\ I.e. set hostname: <code> |
| - | - Make the I2C mul | + | General setup -> Default hostname: set the hostname |
| - | - In order to use the generic UIO driver ''uio_pdrv_genirq'' enable kernel modules in kernel config: <code> | + | </code> |
| - | petalinux-config -c kernel | + | - Make the I2C multiplexers drivers compiled as kernel module (not build up - there should be '<M>', not '<*>'): <code> |
| - | </code> by navigating through settings tree and enabling modules (there should be '<M>', not '<*>'): <code> | + | Device Drivers -> <*> I2C support -> Multiplexer I2C chip support -> <M> NXP PCA9541 I2C Master Selector |
| + | <M> Philips PCA954x I2C Mux/switches | ||
| + | </code> | ||
| + | - In order to use the generic UIO driver ''uio_pdrv_genirq'' enable kernel modules in kernel config by navigating through settings tree and enabling modules (there should be '<M>', not '<*>'): <code> | ||
| Device Drivers -> <*> Userspace I/O drivers -> <M> Userspace I/O platform driver with generic IRQ handling | Device Drivers -> <*> Userspace I/O drivers -> <M> Userspace I/O platform driver with generic IRQ handling | ||
| <M> Userspace platform driver with generic irq and dynamic memory | <M> Userspace platform driver with generic irq and dynamic memory | ||
| + | </code> | ||
| + | - Fix device tree for TEBF0808. In file <code> | ||
| + | vim ./project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi | ||
| + | </code> and add the entry at the end of this file: <code> | ||
| + | /* SD */ | ||
| + | &sdhci1 { | ||
| + | // disable-wp; | ||
| + | no-1-8-v; | ||
| + | }; | ||
| + | |||
| + | /* ETH PHY */ | ||
| + | &gem3 { | ||
| + | phy-handle = <&phy0>; | ||
| + | phy0: phy0@1 { | ||
| + | device_type = "ethernet-phy"; | ||
| + | reg = <1>; | ||
| + | }; | ||
| + | }; | ||
| + | |||
| + | /* QSPI */ | ||
| + | &qspi { | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | status = "okay"; | ||
| + | flash0: flash@0 { | ||
| + | compatible = "jedec,spi-nor"; | ||
| + | reg = <0x0>; | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <1>; | ||
| + | }; | ||
| + | }; | ||
| + | |||
| + | /* I2C */ | ||
| + | &i2c0 { | ||
| + | i2cswitch@73 { // u | ||
| + | compatible = "nxp,pca9548"; | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <0x73>; | ||
| + | i2c-mux-idle-disconnect; | ||
| + | |||
| + | i2c@2 { // PCIe | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <2>; | ||
| + | }; | ||
| + | i2c@3 { // i2c SFP | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <3>; | ||
| + | }; | ||
| + | i2c@4 { // i2c SFP | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <4>; | ||
| + | }; | ||
| + | i2c@5 { // i2c EEPROM | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <5>; | ||
| + | }; | ||
| + | i2c@6 { // i2c FMC | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <6>; | ||
| + | |||
| + | si570_2: clock-generator3@5d { | ||
| + | #clock-cells = <0>; | ||
| + | compatible = "silabs,si570"; | ||
| + | reg = <0x5d>; | ||
| + | temperature-stability = <50>; | ||
| + | factory-fout = <156250000>; | ||
| + | clock-frequency = <78800000>; | ||
| + | }; | ||
| + | }; | ||
| + | i2c@7 { // i2c USB HUB | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <7>; | ||
| + | }; | ||
| + | }; | ||
| + | i2cswitch@77 { // u | ||
| + | compatible = "nxp,pca9548"; | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <0x77>; | ||
| + | i2c-mux-idle-disconnect; | ||
| + | i2c@0 { // i2c PMOD | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <0>; | ||
| + | }; | ||
| + | i2c@1 { // i2c Audio Codec | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <1>; | ||
| + | /* | ||
| + | adau1761: adau1761@38 { | ||
| + | compatible = "adi,adau1761"; | ||
| + | reg = <0x38>; | ||
| + | }; | ||
| + | */ | ||
| + | }; | ||
| + | i2c@2 { // i2c FireFly A | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <2>; | ||
| + | }; | ||
| + | i2c@3 { // i2c FireFly B | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <3>; | ||
| + | }; | ||
| + | i2c@4 { // i2c PLL | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <4>; | ||
| + | }; | ||
| + | i2c@5 { // i2c SC | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <5>; | ||
| + | }; | ||
| + | i2c@6 { // i2c | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <6>; | ||
| + | }; | ||
| + | i2c@7 { // i2c | ||
| + | #address-cells = <1>; | ||
| + | #size-cells = <0>; | ||
| + | reg = <7>; | ||
| + | }; | ||
| + | }; | ||
| + | }; | ||
| </code> | </code> | ||
| - In order to use the generic UIO driver modify the device tree to assign the compatibility with this driver to your hardware: <code> | - In order to use the generic UIO driver modify the device tree to assign the compatibility with this driver to your hardware: <code> | ||
| Line 67: | Line 207: | ||
| </code> | </code> | ||
| - Create ''BOOT.BIN'' image: <code> | - Create ''BOOT.BIN'' image: <code> | ||
| - | petalinux-package --boot --format BIN --fsbl ./images/linux/zynq_fsbl.elf --fpga ./images/linux/<bit_filename>.bit --u-boot | + | petalinux-package --boot --format BIN --fsbl ./images/linux/zynqmp_fsbl.elf --fpga ./images/linux/<bit_filename>.bit --u-boot |
| </code> | </code> | ||