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> |