diff --git a/README.md b/README.md index ddc5dfca60dac1a71a778bd8b95b299c96205830..2621394f5b2ea159a9b64f07b8ae8c252041e331 100644 --- a/README.md +++ b/README.md @@ -52,10 +52,10 @@ $ git clone https://gitedu.hesge.ch/soma/scalp_firmware.git $ cd scalp_firmware ``` -#### Checkout the SCALP-SAFEv-X.Y tag +Then checkout the **SCALP-SAFE-v0.5** tag. ``` -$ git checkout SCALP-SAFE-v0.01 +$ git checkout SCALP-SAFE-v0.5 ``` ## PetaLinux safe firmware @@ -99,13 +99,13 @@ $ git clone https://gitedu.hesge.ch/soma/scalp_petalinux.git $ cd scalp_petalinux ``` -Then checkout the **SCALP-SAFE-v0.4.3** tag. +Then checkout the **SCALP-SAFE-v0.5** tag. ``` -$ git checkout SCALP-SAFE-v0.4.3 +$ git checkout SCALP-SAFE-v0.5 ``` -**Use version 0.4.3 only for the GIT scalp_petalinux repository and not for the GIT scalp_firmware repository. The version difference is not an error.** +**Use version 0.5 for the GIT scalp_petalinux repository and version 0.5 for the GIT scalp_firmware repository. Be careful, sometimes the versions are identical, but depending on the evolution of the FPGA firmware and the PetaLinux firmware, the versions may be different.** ### Create a new Scalp Safe Petalinux project from a BSP @@ -117,7 +117,7 @@ $ petalinux-create --type project -s <path-to-bsp> --name <PROJECT NAME> $ cd <PROJECT NAME> ``` -In my case **\<path-to-bsp\>** corresponds to /home/jo/Documents/Projets/Hepia/scalp_project/scalp_petalinux/bsp/SCALP-SAFE-FIRMWARE-BSP-V0.4.3.bsp +In my case **\<path-to-bsp\>** corresponds to /home/jo/Documents/Projets/Hepia/scalp_project/scalp_petalinux/bsp/SCALP-SAFE-FIRMWARE-BSP-V0.5.bsp ### Importing hardware configuration @@ -125,10 +125,11 @@ In my case **\<path-to-bsp\>** corresponds to /home/jo/Documents/Projets/Hepia/s ``` $ export SCALP_FIRMWARE_PATH="\<PATH_TO_SCALP_FIRMWARE_PROJECT\>" -$ petalinux-config --get-hw-description=$(find ${SCALP_FIRMWARE_PATH} -name scalp_safe_firmware.xsa) --silentconfig +$ export SCALP_SAFE_FIRMWARE="\<SCALP_SAFE_FIRMWARE\>" +$ petalinux-config --get-hw-description=$(find ${SCALP_FIRMWARE_PATH} -name ${SCALP_SAFE_FIRMWARE}.xsa) --silentconfig ``` -In my case **\<PATH_TO_SCALP_FIRMWARE_PROJECT\>** corresponds to /home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ +In my case **\<PATH_TO_SCALP_FIRMWARE_PROJECT\>** corresponds to /home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ and **\<SCALP_SAFE_FIRMWARE\>** corresponds to **scalp_safe_firmware**. #### Directory tree @@ -346,25 +347,40 @@ $ cp image.ub datafs-vol/ Creating the U-Boot script ``` -$ echo -e "echo ===== Scalp board boot settings =====; -echo ===== Check if the file /\${KERNEL_FIT_IMAGE_NAME} exists =====; +$ echo -e "echo [INFO] ===== Scalp board boot settings =====; +echo [INFO] Setup MAC address and IP address; +run setup_eth; +setenv boot_from_qspi \"ubi part \${UBI_PART_NAME} && ubifsmount \${UBI_PART_ID}:\${UBI_DATAFS_VOL_NAME} && ubifsload \${UBI_VOL_LOAD_ADDR} /\${KERNEL_FIT_IMAGE_NAME} && ubifsumount && ubi detach && iminfo \${UBI_VOL_LOAD_ADDR} && bootm \${UBI_VOL_LOAD_ADDR}\"; +setenv boot_from_mmc \"bootm \${loadaddr}\" +setenv bootargs_ubifs \"\${mtdparts} ubi.mtd=1 root=ubi0:rootfs-vol rootfstype=ubifs rw earlyprintk cpuidle.off=1 crashkernel=256M ip=\${ipaddr}:::::eth0\" +setenv bootargs_ext4 \"\${mtdparts} root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait earlyprintk cpuidle.off=1 crashkernel=256M ip=\${ipaddr}:::::eth0\" +setenv custom_autoboot \"echo Scalp board autoboot from QSPI && run boot_from_qspi\" +setenv bootcmd \"run spi_init && run uenv_scr_load\"; +echo [INFO] Check if the file /\${KERNEL_FIT_IMAGE_NAME} exists; if ext4load mmc 0:1 \${loadaddr} /\${KERNEL_FIT_IMAGE_NAME} ; then -echo \${KERNEL_FIT_IMAGE_NAME} found; -echo ===== Check if the file /init exists =====; +echo [INFO] \${KERNEL_FIT_IMAGE_NAME} found; +echo [INFO] Check if the file /init exists; if ext4load mmc 0:2 \${initloadaddr} /init ; then -echo /init found; -setenv bootargs \${bootargs_ext4}; -setenv custom_autoboot echo Scalp board autoboot from MMC && run boot_from_mmc +echo [INFO] /init found; +echo [INFO] Config bootargs for MMC EXT4; +setenv bootargs \"\${mtdparts} root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait earlyprintk cpuidle.off=1 crashkernel=256M ip=\${ipaddr}:::::eth0\"; +echo [INFO] Config boot mode from MMC; +setenv custom_autoboot \"echo Scalp board autoboot from MMC && run boot_from_mmc\"; else -echo init not found; -setenv bootargs \${bootargs_ubifs}; -setenv custom_autoboot echo Scalp board autoboot from QSPI && run boot_from_qspi +echo [INFO] init not found; +echo [INFO] Config bootargs for UBI/UBIFS; +setenv bootargs \"\${mtdparts} ubi.mtd=1 root=ubi0:rootfs-vol rootfstype=ubifs rw earlyprintk cpuidle.off=1 crashkernel=256M ip=\${ipaddr}:::::eth0\"; +echo [INFO] Config boot mode from SPI NOR; +setenv custom_autoboot \"echo Scalp board autoboot from QSPI && run boot_from_qspi\"; fi else -echo /\${KERNEL_FIT_IMAGE_NAME} not found; -setenv bootargs \${bootargs_ubifs}; -setenv custom_autoboot echo Scalp board autoboot from QSPI && run boot_from_qspi -fi" > uenv.scr.txt +echo [INFO] /\${KERNEL_FIT_IMAGE_NAME} not found; +echo [INFO] Config bootargs for UBI/UBIFS; +setenv bootargs \"\${mtdparts} ubi.mtd=1 root=ubi0:rootfs-vol rootfstype=ubifs rw earlyprintk cpuidle.off=1 crashkernel=256M ip=\${ipaddr}:::::eth0\"; +echo [INFO] Config boot mode from SPI NOR; +setenv custom_autoboot \"echo Scalp board autoboot from QSPI && run boot_from_qspi\"; +fi +run custom_autoboot" > uenv.scr.txt ``` ``` @@ -706,14 +722,14 @@ The user firmware must be installed on an MMC card with an EXT4 file system. The **If you have not gone through the Clone of the GIT Scalp Firmware repository section, please go to section [Clone of the GIT Scalp Firmware repository](#clone-of-the-git-scalp-firmware-repository).** -#### Checkout the SCALP-USERv-X.Y tag +#### Checkout the current tag + +Then checkout the **SCALP-SAFE-v0.5** tag. ``` -$ git checkout SCALP-SAFE-v0.01 +$ git checkout SCALP-USER-v0.5 ``` -**Currently it is the same tag as for the safe firmware.** - **If you have not gone through the scalp\_safe\_petalinux firmware creation section, please go to section [Copy Scalp board files](#copy-scalp-board-files).** #### Build the user bitstream file. @@ -731,23 +747,25 @@ $ open_gui and File -> Export -> Export Hardware -> include bitstream ``` -In my case **\<SCALP_USER_FIRMWARE\>** corresponds to "scalp_firmware". +In my case **\<SCALP_USER_FIRMWARE\>** corresponds to "scalp\_user\_firmware". **If you have not gone through the scalp\_safe\_petalinux firmware creation process, please follow the instructions below to clone the scalp\_petalinux GIT repository.** +**ONLY IF YOU HAVEN'T DONE IT YET.** + ``` $ cd <SCALP_PROJECT_FOLDER> $ git clone https://gitedu.hesge.ch/soma/scalp_petalinux.git $ cd scalp_petalinux ``` -Then checkout the **SCALP-USER-v0.1** tag. +Then checkout the **SCALP-USER-v0.5** tag. ``` -$ git checkout SCALP-USER-v0.1 +$ git checkout SCALP-USER-v0.5 ``` -**Use version 0.1 only for the GIT scalp_petalinux repository and not for the GIT scalp_firmware repository. The version difference is not an error.** +**Use version 0.5 for the GIT scalp_petalinux repository and version 0.5 for the GIT scalp_firmware repository. Be careful, sometimes the versions are identical, but depending on the evolution of the FPGA firmware and the PetaLinux firmware, the versions may be different.** ### Create a new Scalp User Petalinux project from a BSP @@ -759,7 +777,7 @@ $ petalinux-create --type project -s <path-to-bsp> --name <PROJECT NAME> $ cd <PROJECT NAME> ``` -In my case **\<path-to-bsp\>** corresponds to /home/jo/Documents/Projets/Hepia/scalp_project/scalp_petalinux/bsp/SCALP-USER-FIRMWARE-BSP-V0.1.bsp +In my case **\<path-to-bsp\>** corresponds to /home/jo/Documents/Projets/Hepia/scalp_project/scalp_petalinux/bsp/SCALP-USER-FIRMWARE-BSP-V0.5.bsp ### Importing hardware configuration @@ -768,10 +786,10 @@ In my case **\<path-to-bsp\>** corresponds to /home/jo/Documents/Projets/Hepia/s ``` $ export SCALP_FIRMWARE_PATH="\<PATH_TO_SCALP_FIRMWARE_PROJECT\>" $ export SCALP_USER_FIRMWARE="\<SCALP_USER_FIRMWARE\>" -$ petalinux-config --get-hw-description=$(find ${SCALP_FIRMWARE_PATH} -name ${SCALP_USER_FIRMWARE=}.xsa) --silentconfig +$ petalinux-config --get-hw-description=$(find ${SCALP_FIRMWARE_PATH} -name ${SCALP_USER_FIRMWARE}.xsa) --silentconfig ``` -In my case **\<PATH_TO_SCALP_FIRMWARE_PROJECT\>** corresponds to /home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ and **\<SCALP_USER_FIRMWARE\>** corresponds to **scalp_firmware**. +In my case **\<PATH_TO_SCALP_FIRMWARE_PROJECT\>** corresponds to /home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/ and **\<SCALP_USER_FIRMWARE\>** corresponds to **scalp_user_firmware**. **In the case of user firmware, it is not necessary to configure U-Boot. It is not used.** @@ -780,6 +798,7 @@ In my case **\<PATH_TO_SCALP_FIRMWARE_PROJECT\>** corresponds to /home/jo/Docume If they are not already present, we will start by adding some network utilities and support for Python. ``` +$ petalinux-build -x mrproper -f $ petalinux-config -c rootfs ``` @@ -794,12 +813,29 @@ Configuration [*] packagegroup-petalinux-networking-stack packagegroup-petalinux-python-modules ---> [*] packagegroup-petalinux-python-modules + packagegroup-petalinux-utils ---> + [*] packagegroup-petalinux-utils ``` Then select 3 times EXIT... And save the configuration. +### Automatic loading of the bitstream configuration file + +Open the main script file of the bitstream-conf application and check the following variable : + +``` +$ cat project-spec/meta-user/recipes-apps/bitstream-conf/files/bitstream-conf | grep "export BITSTREAM_FILE_NAME" +> export BITSTREAM_FILE_NAME="scalp_user_firmware.bit.bin" +``` + +The name of the bitstream file before the .bit.bin extension must be the same as the firmware name defined in the export environment variable SCALP\_USER\_FIRMWARE="\<SCALP\_USER\_FIRMWARE>" described in the section [Importing hardware configuration](#importing-hardware-configuration). + +In my case, the environment variable **BITSTREAM\_FILE\_NAME** corresponds to **scalp\_user\_firmware.bit.bin**. + +Otherwise, the bitstream configuration file will not be automatically taken into account. + ### Build the PetaLinux project ``` @@ -822,7 +858,7 @@ $ sudo ./virtfs.sh $ cd ../.. $ lsblk <----- With the SD card inserted. $ lsblk <----- Without the SD card inserted. -$ sudo dd if=./virtualfs-ext4.img of=/dev/\<MMC_DEV_NODE\> status=progress <----- Beware of danger, be sure. +$ sudo dd if=./images/linux/virtualfs-ext4.img of=/dev/\<MMC_DEV_NODE\> status=progress <----- Beware of danger, be sure. ``` **P.S. We cannot be held responsible if your computer does not start and you have lost all your data that you did not backup. Too bad for you ;D** @@ -831,6 +867,8 @@ $ sudo dd if=./virtualfs-ext4.img of=/dev/\<MMC_DEV_NODE\> status=progress <--- ## HOWTO +**This section contains HOWTO documentation. It is not necessary to follow them to produce firmware.** + ### Howto access UBIFS partitions from U-Boot. The SPI NOR memory is activated. diff --git a/bsp/SCALP-SAFE-FIRMWARE-BSP-V0.5.bsp b/bsp/SCALP-SAFE-FIRMWARE-BSP-V0.5.bsp new file mode 100644 index 0000000000000000000000000000000000000000..f95b1d447be5e1bef08021287be9d16fad53d540 Binary files /dev/null and b/bsp/SCALP-SAFE-FIRMWARE-BSP-V0.5.bsp differ diff --git a/bsp/SCALP-USER-FIRMWARE-BSP-V0.5.bsp b/bsp/SCALP-USER-FIRMWARE-BSP-V0.5.bsp new file mode 100644 index 0000000000000000000000000000000000000000..c5edf5475aa1084655c3fdc72802d04f4238dde3 Binary files /dev/null and b/bsp/SCALP-USER-FIRMWARE-BSP-V0.5.bsp differ diff --git a/scalp_safe_petalinux/.petalinux/metadata b/scalp_safe_petalinux/.petalinux/metadata index d84a63bb72df3200f3f3ed45487078bcc0828a95..a156097bfb49072597eb217932587c0bd9539389 100644 --- a/scalp_safe_petalinux/.petalinux/metadata +++ b/scalp_safe_petalinux/.petalinux/metadata @@ -1,6 +1,6 @@ PETALINUX_VER=2020.2 VALIDATE_HW_CHKSUM=1 HARDWARE_PATH=/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/designs/vivado/scalp_safe_firmware/2020.2/lin64/scalp_safe_firmware/scalp_safe_firmware.xsa -HARDWARE_CHECKSUM=72f49d0d33b4551d3f8f8137e35bae48 +HARDWARE_CHECKSUM=22057c831a5da395a402d5607574725d YOCTO_SDK=5ff8fc5f85d1566b314bb73eaa378212 RFSCONFIG_CHKSUM=cbbefadac8312a93a2731682ecb50ade diff --git a/scalp_safe_petalinux/SCALP-SAFE-FIRMWARE-BSP-V0.5.bsp b/scalp_safe_petalinux/SCALP-SAFE-FIRMWARE-BSP-V0.5.bsp new file mode 100644 index 0000000000000000000000000000000000000000..f95b1d447be5e1bef08021287be9d16fad53d540 Binary files /dev/null and b/scalp_safe_petalinux/SCALP-SAFE-FIRMWARE-BSP-V0.5.bsp differ diff --git a/scalp_safe_petalinux/project-spec/configs/config b/scalp_safe_petalinux/project-spec/configs/config index 601c6ea1cdba5328ac14eb4bc2ef061a947ba49f..7c2c70627239b6251eb61e12c3d98997760e9806 100644 --- a/scalp_safe_petalinux/project-spec/configs/config +++ b/scalp_safe_petalinux/project-spec/configs/config @@ -176,7 +176,7 @@ CONFIG_SUBSYSTEM_EXTRA_DT_FILES="" # CONFIG_SUBSYSTEM_BOOTARGS_AUTO=y CONFIG_SUBSYSTEM_BOOTARGS_EARLYPRINTK=y -CONFIG_SUBSYSTEM_BOOTARGS_GENERATED="console=ttyPS0,115200 earlycon" + CONFIG_SUBSYSTEM_DEVICETREE_COMPILER_FLAGS="-@" # CONFIG_SUBSYSTEM_DTB_OVERLAY is not set # CONFIG_SUBSYSTEM_REMOVE_PL_DTB is not set @@ -270,3 +270,4 @@ CONFIG_YOCTO_NETWORK_SSTATE_FEEDS_URL="http://petalinux.xilinx.com/sswreleases/r # User Layers # CONFIG_USER_LAYER_0="" +CONFIG_SUBSYSTEM_BOOTARGS_GENERATED="console=ttyPS0,115200 earlycon" diff --git a/scalp_safe_petalinux/project-spec/hw-description/scalp_safe_firmware.bit b/scalp_safe_petalinux/project-spec/hw-description/scalp_safe_firmware.bit index 23eb74d76dece145f45538952c942a7f8de9eec0..738ba71a3a5e32e05d359c4541c80dd7737559f0 100644 Binary files a/scalp_safe_petalinux/project-spec/hw-description/scalp_safe_firmware.bit and b/scalp_safe_petalinux/project-spec/hw-description/scalp_safe_firmware.bit differ diff --git a/scalp_safe_petalinux/project-spec/hw-description/system.xsa b/scalp_safe_petalinux/project-spec/hw-description/system.xsa index 5d18795d6fe6b33532d6e4287580d2f70772f40f..561d925b9ad188674f9925dc1f8e63da23e7dd54 100644 Binary files a/scalp_safe_petalinux/project-spec/hw-description/system.xsa and b/scalp_safe_petalinux/project-spec/hw-description/system.xsa differ diff --git a/scalp_safe_petalinux/project-spec/meta-user/recipes-bsp/u-boot/files/devtool-fragment.cfg b/scalp_safe_petalinux/project-spec/meta-user/recipes-bsp/u-boot/files/devtool-fragment.cfg index cd45b916992512d834e1d5e5470fb2f936ab2ac0..515b4ebf737703376a9234a463b08df3216c021e 100644 --- a/scalp_safe_petalinux/project-spec/meta-user/recipes-bsp/u-boot/files/devtool-fragment.cfg +++ b/scalp_safe_petalinux/project-spec/meta-user/recipes-bsp/u-boot/files/devtool-fragment.cfg @@ -89,3 +89,14 @@ CONFIG_NOP_PHY=y #CONFIG_SCALP_SJA1105=y CONFIG_PHY_XILINX=y CONFIG_PHY_FIXED=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBIFS=y +CONFIG_ENV_IS_IN_UBI=y +# CONFIG_SYS_REDUNDAND_ENVIRONMENT is not set +CONFIG_ENV_UBI_PART="ubi" +CONFIG_ENV_UBI_VOLUME="uenv-vol" +CONFIG_ENV_UBI_VID_OFFSET=0 +CONFIG_PHY_XILINX=y +CONFIG_PHY_FIXED=y +CONFIG_ZYNQ_SPI=y +CONFIG_LZO=y diff --git a/scalp_safe_petalinux/project-spec/meta-user/recipes-bsp/u-boot/files/platform-top.h b/scalp_safe_petalinux/project-spec/meta-user/recipes-bsp/u-boot/files/platform-top.h index 4eea2507409f05b8e0c850798bb1dc5332400690..aad0ddbe1a6673144264bab2603cfe6cdcd663a5 100644 --- a/scalp_safe_petalinux/project-spec/meta-user/recipes-bsp/u-boot/files/platform-top.h +++ b/scalp_safe_petalinux/project-spec/meta-user/recipes-bsp/u-boot/files/platform-top.h @@ -6,6 +6,20 @@ "custom_board_name=\"Zynq Scalp Board\"\0" \ "custom_board_version=\"RevB 2008\"\0" \ "custom_board_vendor=\"Hepia CoRES - LSN\"\0" \ + "baudrate=115200\0" \ + "bootargs=ip=${ipaddr}:::::eth0\0" \ + "bootdelay=2\0" \ + "distro_bootcmd=run bootcmd\0" \ + "serverip=10.197.10.10\0" \ + "netmask=255.0.0.0\0" \ + "gatewayip=10.197.10.1\0" \ + "ethact=eth0\0" \ + "ethprime=eth0\0" \ + "loadaddr=0x2000000\0" \ + "initloadaddr=0x1000000\0" \ + "macmemaddr=0x1000000\0" \ + "mtdids=nor0=nor_flash\0" \ + "mtdparts=mtdparts=nor_flash:5m(boot)ro,-(ubi)\0" \ "SCALP_BOOT_PARTITION_OFFSET=0x0\0" \ "SCALP_BOOT_PARTITION_SIZE=0x500000\0" \ "SCALP_UBI_PARTITION_OFFSET=0x500000\0" \ @@ -17,10 +31,10 @@ "UBI_ROOTFS_VOL_NAME=rootfs-vol\0" \ "UBI_VOL_LOAD_ADDR=0x2000000\0" \ "UENV_SCR_NAME=uenv.scr\0" \ - "UENV_LD_ADDR=0x1100000\0" \ + "UENV_LOAD_ADDR=0x1F00000\0" \ "KERNEL_FIT_IMAGE_NAME=image.ub\0" \ "spi_init=sf probe 0 0 0\0" \ - "macmemaddr=0x1000000\0" \ + "uenv_scr_load=ubi part ${UBI_PART_NAME} && ubifsmount ${UBI_PART_ID}:${UBI_DATAFS_VOL_NAME} && if ubifsload ${UENV_LOAD_ADDR} /${UENV_SCR_NAME}; then echo ${UENV_SCR_NAME} found; else echo ${UENV_SCR_NAME} notfound;fi && ubifsumount && ubi detach\0" \ "readmac=i2c dev 0; i2c read 0x53 0xfa.1 6 ${macmemaddr}\0" \ "buildmac=\n" \ "e=\" 02:00:00\"; sep=\":\"\n" \ @@ -39,30 +53,11 @@ "e=\"$e$sep${b_ulong}\"\n" \ "sep=\".\"\n" \ "done &&\n" \ - "setenv ipaddr $e &&\n" \ - "setenv bootargs \"${mtdparts} ubi.mtd=1 root=${UBI_PART_ID}:${UBI_ROOTFS_VOL_NAME} rootfstype=ubifs rw earlyprintk cpuidle.off=1 crashkernel=256M ip=${ipaddr}:::::eth0\"\0" \ + "setenv ipaddr $e &&\n" \ + "setenv bootargs \"\0" \ "setup_eth=run readmac buildmac buildip\0" \ - "boot_from_qspi=ubi part ${UBI_PART_NAME} && ubifsmount ${UBI_PART_ID}:${UBI_DATAFS_VOL_NAME} && ubifsload ${UBI_VOL_LOAD_ADDR} /${KERNEL_FIT_IMAGE_NAME} && ubifsumount && ubi detach && iminfo ${UBI_VOL_LOAD_ADDR} && bootm ${UBI_VOL_LOAD_ADDR}\0" \ - "boot_from_mmc=bootm ${loadaddr}\0" \ - "uenv_scr_load=ubi part ${UBI_PART_NAME} && ubifsmount ${UBI_PART_ID}:${UBI_DATAFS_VOL_NAME} && if ubifsload ${UENV_LD_ADDR} /${UENV_SCR_NAME}; then echo ${UENV_SCR_NAME} found; else echo ${UENV_SCR_NAME} notfound;fi && ubifsumount && ubi detach\0" \ - "custom_autoboot=echo Scalp board autoboot from QSPI && run boot_from_qspi\0" \ - "baudrate=115200\0" \ - "bootargs=ip=${ipaddr}:::::eth0\0" \ - "bootdelay=2\0" \ - "bootcmd=run spi_init && run setup_eth && run uenv_scr_load && source ${UENV_LD_ADDR} && run custom_autoboot\0" \ - "distro_bootcmd=run bootcmd\0" \ - "serverip=10.197.10.10\0" \ - "netmask=255.0.0.0\0" \ - "gatewayip=10.197.10.1\0" \ - "ethact=eth0\0" \ - "ethprime=eth0\0" \ - "load_ext4_fit_image=ext4load mmc 0:1 /${KERNEL_FIT_IMAGE_NAME}\0" \ - "load_ext4_init=ext4load mmc 0:2 /init\0" \ - "bootargs_ext4=${mtdparts} root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait earlyprintk cpuidle.off=1 crashkernel=256M ip=${ipaddr}:::::eth0\0" \ - "bootargs_ubifs=${mtdparts} ubi.mtd=1 root=ubi0:rootfs-vol rootfstype=ubifs rw earlyprintk cpuidle.off=1 crashkernel=256M ip=${ipaddr}:::::eth0\0" \ - "loadaddr=0x2000000\0" \ - "initloadaddr=0x1000000\0" \ - + "bootcmd=echo [INFO] SPI init && run spi_init && run uenv_scr_load && source ${UENV_LOAD_ADDR}\0" \ + //#define CONFIG_IPADDR "10.197.100.100" //#define CONFIG_ETHADDR "02:00:00:c5:64:64" #define MTDIDS_DEFAULT "nor0=nor_flash" diff --git a/scalp_safe_petalinux/project-spec/meta-user/recipes-bsp/u-boot/files/u-boot-zynq-scalp-dts-sja1105-official.patch b/scalp_safe_petalinux/project-spec/meta-user/recipes-bsp/u-boot/files/u-boot-zynq-scalp-dts-sja1105-official.patch deleted file mode 100644 index 9ed6eda5500abed132840951bc1bea5e684bf9ce..0000000000000000000000000000000000000000 --- a/scalp_safe_petalinux/project-spec/meta-user/recipes-bsp/u-boot/files/u-boot-zynq-scalp-dts-sja1105-official.patch +++ /dev/null @@ -1,276 +0,0 @@ -diff --git a/arch/arm/dts/zynq-scalp.dts b/arch/arm/dts/zynq-scalp.dts -new file mode 100644 -index 0000000000..2e1ab071e6 ---- /dev/null -+++ b/arch/arm/dts/zynq-scalp.dts -@@ -0,0 +1,270 @@ -+/* -+ * Scalp Board DTS -+ * -+ * Copyright (c) 2018-2021 Hepia -+ * Joachim Schmidt <joachim.schmidt@hesge.ch> -+ * -+ */ -+ -+/dts-v1/; -+#include "zynq-7000.dtsi" -+#include <dt-bindings/gpio/gpio.h> -+ -+/ { -+ model = "Zynq Scalp Board"; -+ compatible = "xlnx,zynq-scalp", "xlnx,zynq-7000"; -+ -+ aliases { -+ serial0 = &uart0; /* Bottom : MIO 46 - 47 (Switch on schematic) */ -+ serial1 = &uart1; /* Top : MIO 48 - 49 */ -+ ethernet0 = &gem0; /* MIO 16 - 27 */ -+ /* Switch the name. QSPI first */ -+ spi0 = &qspi; /* MIO 1 - 6 */ -+ spi1 = &spi0; /* MIO 40 - 41, 45 */ -+ spi2 = &spi1; /* EMIO */ -+ mmc0 = &sdhci1; /* MIO 10 - 15, 9 (card detect) */ -+ usb0 = &usb0; /* MIO 28 - 39 */ -+ i2c0 = &i2c0; /* MIO 50 - 51 */ -+ can0 = &can1; /* MIO 52 - 53 */ -+ //gpio0 = &gpio0; /* MIO 0, 7, 8, 43, 44 */ -+ }; -+ -+ /* 256 MB DDR3 */ -+ memory@0 { -+ device_type = "memory"; -+ reg = <0 0x10000000>; -+ }; -+ -+ chosen { -+ bootargs = "earlyprintk cpuidle.off=1 crashkernel=256M rw"; -+ stdout-path = "serial0:115200n8"; -+ xlnx,eeprom = &eeprom; -+ }; -+}; -+ -+/* PS_Clk50M_i */ -+&clkc { -+ fclk-enable = <0x1>; -+ ps-clk-frequency = <50000000>; -+}; -+ -+&intc { -+ num_cpus = <2>; -+ num_interrupts = <96>; -+}; -+ -+/* serial0 */ -+&uart0 { -+ u-boot,dm-pre-reloc; -+ cts-override ; -+ device_type = "serial"; -+ port-number = <0>; -+ status = "okay"; -+}; -+ -+/* serial1 */ -+&uart1 { -+ u-boot,dm-pre-reloc; -+ cts-override ; -+ device_type = "serial"; -+ port-number = <1>; -+ status = "okay"; -+}; -+ -+&qspi { -+ u-boot,dm-pre-reloc; -+ status = "okay"; -+ is-dual = <0>; -+ num-cs = <1>; -+ -+ /* Erase sector size of 64KB */ -+ flash@0 { -+ /* compatible = "s25fl256s_64k"; drivers/mtd/spi/spi_flash_ids.c */ -+ /* compatible = "spansion,s25fl256s1", "jedec,spi-nor"; */ -+ /* compatible = "spansion,S25FL256S_64K", "spi-flash"; */ -+ compatible = "spansion,s25fl256s", "jedec,spi-nor"; -+ reg = <0x0>; -+ spi-tx-bus-width = <1>; -+ spi-rx-bus-width = <4>; -+ spi-max-frequency = <50000000>; -+ /* m25p,fast-read; */ -+ #address-cells = <1>; -+ #size-cells = <1>; -+ -+ /* 5242880 Bytes */ -+ partition@boot { -+ label = "boot"; -+ reg = <0x0 0x500000>; -+ }; -+ -+ /* 28311552 Bytes */ -+ partition@ubi { -+ label = "ubi"; -+ reg = <0x500000 0x1B00000>; -+ }; -+ }; -+}; -+ -+/* Switch Ethernet 5 ports - SPI0 - MIO 40, 41, 42, 45 */ -+ -+/* -+ * Port 0 => East -+ * Port 1 => Local -+ * Port 2 => Bottom -+ * Port 3 => Top -+ * Port 4 => West -+ */ -+ -+/* (PYH + Delay) -+ * Top 3 -+ * -+ * 4 (MAC) West East (PHY + Delay) 0 -+ * -+ * Bottom 2 -+ * (MAC) -+ * -+ */ -+ -+&spi0 { -+ bus-num = <0>; -+ status = "okay"; -+ -+ sja1105@0 { -+ reg = <0>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ compatible = "nxp,sja1105t"; -+ reset-gpios = <&gpio0 44 GPIO_ACTIVE_LOW>; -+ spi-max-frequency = <12000000>; -+ spi-cpha; -+ -+ ports { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ swp0_east: port@0 { -+ label = "swp0_east"; -+ phy-mode = "rgmii"; -+ reg = <0>; -+ //sja1105,role-phy; -+ -+ fixed-link { -+ speed = <1000>; -+ full-duplex; -+ }; -+ }; -+ -+ port@1 { -+ ethernet = <&gem0>; -+ phy-mode = "rgmii"; -+ reg = <1>; -+ //sja1105,role-phy; -+ -+ fixed-link { -+ speed = <1000>; -+ full-duplex; -+ }; -+ }; -+ -+ swp2_bottom: port@2 { -+ label = "swp2_bottom"; -+ phy-mode = "rgmii"; -+ reg = <2>; -+ //sja1105,role-mac; -+ -+ fixed-link { -+ speed = <1000>; -+ full-duplex; -+ }; -+ }; -+ -+ swp3_top: port@3 { -+ label = "swp3_top"; -+ phy-mode = "rgmii"; -+ reg = <3>; -+ //sja1105,role-phy; -+ -+ fixed-link { -+ speed = <1000>; -+ full-duplex; -+ }; -+ }; -+ -+ swp4_west: port@4 { -+ label = "swp4_west"; -+ phy-mode = "rgmii"; -+ reg = <4>; -+ //sja1105,role-mac; -+ -+ fixed-link { -+ speed = <1000>; -+ full-duplex; -+ }; -+ }; -+ }; -+ }; -+}; -+ -+/* ethernet0 */ -+&gem0 { -+ status = "okay"; -+ phy-mode = "rgmii"; /* "rgmii_id" */ -+ //phy-handle = <ðernet_phy>; -+ xlnx,ptp-enet-clock = <0x7735940>; -+ //local-mac-address = [00 0a 35 00 00 00]; -+ -+ fixed-link { -+ speed = <1000>; -+ full-duplex; -+ }; -+ -+ //ethernet_phy: ethernet-phy@0 { -+ // reg = <0>; -+ //}; -+}; -+ -+/* spi2 */ -+&spi1 { -+ u-boot,dm-pre-reloc; -+ is-decoded-cs = <0>; -+ num-cs = <3>; -+ status = "okay"; -+}; -+ -+&gpio0 { -+ emio-gpio-width = <64>; -+ gpio-mask-high = <0x0>; -+ gpio-mask-low = <0x5600>; -+}; -+ -+/* mmc0 */ -+&sdhci1 { -+ u-boot,dm-pre-reloc; -+ xlnx,has-cd = <0x1>; -+ xlnx,has-power = <0x0>; -+ xlnx,has-wp = <0x0>; -+ status = "okay"; -+}; -+ -+/* usb0 */ -+/*&usb0 { -+ u-boot,dm-pre-reloc; -+ phy_type = "ulpi"; -+ status = "okay"; -+};*/ -+ -+/* i2c0 */ -+&i2c0 { -+ status = "okay"; -+ -+ eeprom: eeprom@53 { -+ compatible = "microchip,24aa02e48"; -+ reg = <0x53>; -+ }; -+}; -+ -+/* can0 */ -+&can1 { -+ u-boot,dm-pre-reloc; -+ status = "okay"; -+}; diff --git a/scalp_safe_petalinux/project-spec/meta-user/recipes-bsp/u-boot/u-boot-xlnx_%.bbappend b/scalp_safe_petalinux/project-spec/meta-user/recipes-bsp/u-boot/u-boot-xlnx_%.bbappend index 991bd37a607f4ac34e651a85365d3e33e8f16fc6..01df19d88dd1cfadd3b797ef80aa12cfb498e66f 100644 --- a/scalp_safe_petalinux/project-spec/meta-user/recipes-bsp/u-boot/u-boot-xlnx_%.bbappend +++ b/scalp_safe_petalinux/project-spec/meta-user/recipes-bsp/u-boot/u-boot-xlnx_%.bbappend @@ -5,7 +5,6 @@ SRC_URI += "file://platform-top.h \ " SRC_URI += "file://u-boot-setexpt.patch" SRC_URI += "file://u-boot-scalp-sja1105-official.patch" -SRC_URI += "file://u-boot-zynq-scalp-dts-sja1105-official.patch" do_configure_append () { if [ "${U_BOOT_AUTO_CONFIG}" = "1" ]; then diff --git a/scalp_user_petalinux/.petalinux/metadata b/scalp_user_petalinux/.petalinux/metadata index 32b6d70ba4539914655048de7fbcb51e09df2d49..dc52f639dae39e814ca06019a3f283e82da74bae 100644 --- a/scalp_user_petalinux/.petalinux/metadata +++ b/scalp_user_petalinux/.petalinux/metadata @@ -1,6 +1,6 @@ PETALINUX_VER=2020.2 VALIDATE_HW_CHKSUM=1 -HARDWARE_CHECKSUM=8f048176f77066c123d156862240c01c +HARDWARE_CHECKSUM=59c7f9b9ce074eccc39c685baf22b9c8 YOCTO_SDK=5ff8fc5f85d1566b314bb73eaa378212 -RFSCONFIG_CHKSUM=f66a0c34b6f3834a24aa5ee5fd1bc12c -HARDWARE_PATH=/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/designs/vivado/scalp_firmware/2020.2/lin64/scalp_firmware/scalp_firmware.xsa +RFSCONFIG_CHKSUM=68e7a39ee8a3ea7b75a4d172a70a3a69 +HARDWARE_PATH=/home/jo/Documents/Projets/Hepia/scalp_project/scalp_firmware/designs/vivado/scalp_user_firmware/2020.2/lin64/scalp_user_firmware/scalp_user_firmware.xsa diff --git a/scalp_user_petalinux/SCALP-USER-FIRMWARE-BSP-V0.5.bsp b/scalp_user_petalinux/SCALP-USER-FIRMWARE-BSP-V0.5.bsp new file mode 100644 index 0000000000000000000000000000000000000000..c5edf5475aa1084655c3fdc72802d04f4238dde3 Binary files /dev/null and b/scalp_user_petalinux/SCALP-USER-FIRMWARE-BSP-V0.5.bsp differ diff --git a/scalp_user_petalinux/project-spec/configs/rootfs_config b/scalp_user_petalinux/project-spec/configs/rootfs_config index 87c5dd22e1ed4b387706aa80de362bf16548b4fb..310f14b90083ce4502f7d999a66a03a201aa6964 100644 --- a/scalp_user_petalinux/project-spec/configs/rootfs_config +++ b/scalp_user_petalinux/project-spec/configs/rootfs_config @@ -41,7 +41,7 @@ CONFIG_system-zynq=y # # bc # -# CONFIG_bc is not set +CONFIG_bc=y # CONFIG_bc-dev is not set # CONFIG_bc-dbg is not set @@ -128,12 +128,12 @@ CONFIG_system-zynq=y # # elfutils # -# CONFIG_elfutils is not set -# CONFIG_libdw is not set +CONFIG_elfutils=y +CONFIG_libdw=y # CONFIG_elfutils-dev is not set # CONFIG_elfutils-binutils is not set -# CONFIG_libelf is not set -# CONFIG_libasm is not set +CONFIG_libelf=y +CONFIG_libasm=y # CONFIG_elfutils-dbg is not set # @@ -227,7 +227,7 @@ CONFIG_mtd-utils=y # # netbase # -# CONFIG_netbase is not set +CONFIG_netbase=y # CONFIG_netbase-dbg is not set # CONFIG_netbase-dev is not set @@ -468,7 +468,7 @@ CONFIG_can-utils=y # # curl # -# CONFIG_curl is not set +CONFIG_curl=y # CONFIG_curl-dev is not set # CONFIG_libcurl is not set # CONFIG_curl-dbg is not set @@ -511,10 +511,10 @@ CONFIG_can-utils=y # # nfs-utils # -# CONFIG_nfs-utils is not set +CONFIG_nfs-utils=y # CONFIG_nfs-utils-dev is not set -# CONFIG_nfs-utils-client is not set -# CONFIG_nfs-utils-stats is not set +CONFIG_nfs-utils-client=y +CONFIG_nfs-utils-stats=y # CONFIG_nfs-utils-dbg is not set # @@ -556,7 +556,7 @@ CONFIG_openssh-sftp-server=y # # rsync # -# CONFIG_rsync is not set +CONFIG_rsync=y # CONFIG_rsync-dev is not set # CONFIG_rsync-dbg is not set @@ -585,7 +585,7 @@ CONFIG_openssh-sftp-server=y # # wget # -# CONFIG_wget is not set +CONFIG_wget=y # CONFIG_wget-dev is not set # CONFIG_wget-dbg is not set @@ -674,7 +674,7 @@ CONFIG_openssh-sftp-server=y # # grep # -# CONFIG_grep is not set +CONFIG_grep=y # CONFIG_grep-dbg is not set # CONFIG_grep-dev is not set @@ -703,7 +703,7 @@ CONFIG_openssh-sftp-server=y # # less # -# CONFIG_less is not set +CONFIG_less=y # CONFIG_less-dev is not set # CONFIG_less-dbg is not set @@ -729,7 +729,7 @@ CONFIG_openssh-sftp-server=y # # mc # -# CONFIG_mc is not set +CONFIG_mc=y # CONFIG_mc-dev is not set # CONFIG_mc-helpers-perl is not set # CONFIG_mc-helpers is not set @@ -762,7 +762,7 @@ CONFIG_pciutils=y # # sed # -# CONFIG_sed is not set +CONFIG_sed=y # CONFIG_sed-dbg is not set # CONFIG_sed-dev is not set @@ -783,14 +783,14 @@ CONFIG_pciutils=y # # strace # -# CONFIG_strace is not set +CONFIG_strace=y # CONFIG_strace-dev is not set # CONFIG_strace-dbg is not set # # sysstat # -# CONFIG_sysstat is not set +CONFIG_sysstat=y # CONFIG_sysstat-dev is not set # CONFIG_sysstat-dbg is not set @@ -812,20 +812,20 @@ CONFIG_pciutils=y # # vim # -# CONFIG_vim is not set -# CONFIG_vim-syntax is not set +CONFIG_vim=y +CONFIG_vim-syntax=y # CONFIG_vim-dev is not set # CONFIG_vim-help is not set -# CONFIG_vim-common is not set -# CONFIG_vim-vimrc is not set +CONFIG_vim-common=y +CONFIG_vim-vimrc=y # CONFIG_vim-tutor is not set -# CONFIG_vim-tools is not set +CONFIG_vim-tools=y # CONFIG_vim-dbg is not set # # zip # -# CONFIG_zip is not set +CONFIG_zip=y # CONFIG_zip-dev is not set # CONFIG_zip-dbg is not set @@ -3427,7 +3427,7 @@ CONFIG_bridge-utils=y # # netcat # -# CONFIG_netcat is not set +CONFIG_netcat=y # CONFIG_netcat-dbg is not set # CONFIG_netcat-dev is not set @@ -3984,7 +3984,7 @@ CONFIG_packagegroup-petalinux-python-modules=y # # packagegroup-petalinux-utils # -# CONFIG_packagegroup-petalinux-utils is not set +CONFIG_packagegroup-petalinux-utils=y # CONFIG_packagegroup-petalinux-utils-dbg is not set # CONFIG_packagegroup-petalinux-utils-dev is not set diff --git a/scalp_user_petalinux/project-spec/hw-description/scalp_firmware.bit b/scalp_user_petalinux/project-spec/hw-description/scalp_user_firmware.bit similarity index 75% rename from scalp_user_petalinux/project-spec/hw-description/scalp_firmware.bit rename to scalp_user_petalinux/project-spec/hw-description/scalp_user_firmware.bit index 003817476b7420f4b232ba0b4b2e91dbac445cff..518043dde86d47aa142f7138494d460a1af90109 100644 Binary files a/scalp_user_petalinux/project-spec/hw-description/scalp_firmware.bit and b/scalp_user_petalinux/project-spec/hw-description/scalp_user_firmware.bit differ diff --git a/scalp_user_petalinux/project-spec/hw-description/system.xsa b/scalp_user_petalinux/project-spec/hw-description/system.xsa index f07f9f960680f7949e708806074b448e117e3621..d461f7119ebc8bf932f04023de7d5e5fde89a922 100644 Binary files a/scalp_user_petalinux/project-spec/hw-description/system.xsa and b/scalp_user_petalinux/project-spec/hw-description/system.xsa differ diff --git a/scalp_user_petalinux/project-spec/meta-user/recipes-apps/bitstream-conf/files/bitstream-conf b/scalp_user_petalinux/project-spec/meta-user/recipes-apps/bitstream-conf/files/bitstream-conf index ff5414211067b726a895121928c86727c9d0931e..58493068002416eef318d024d21644083f5fa3bd 100644 --- a/scalp_user_petalinux/project-spec/meta-user/recipes-apps/bitstream-conf/files/bitstream-conf +++ b/scalp_user_petalinux/project-spec/meta-user/recipes-apps/bitstream-conf/files/bitstream-conf @@ -2,7 +2,7 @@ export FIRMWARE_FOLDER_PATH="/lib/firmware/" export FIRMWARE_BASE_FOLDER_PATH=${FIRMWARE_FOLDER_PATH}"base/" -export BITSTREAM_FILE_NAME="scalp_safe_firmware.bit.bin" +export BITSTREAM_FILE_NAME="scalp_user_firmware.bit.bin" export BITSTREAM_PATH=${FIRMWARE_FOLDER_PATH}${BITSTREAM_FILE_NAME} export BITSTREAM_BASE_PATH=${FIRMWARE_BASE_FOLDER_PATH}${BITSTREAM_FILE_NAME}