Switch to Xilinx Linux kernel

The Xilinx Linux kernel supports uploading FPGA bitstreams from Linux.
This commit is contained in:
Joris van Rantwijk 2024-01-12 19:16:02 +01:00
parent de94d4e085
commit b5c7ddaff3
4 changed files with 34 additions and 56 deletions

View File

@ -4,8 +4,5 @@ set -e
. script_env . script_env
mkdir -p "$DOWNLOAD_DIR" git clone https://github.com/Xilinx/linux-xlnx.git --single-branch --branch xilinx-v2023.2
wget -P "$DOWNLOAD_DIR" "https://cdn.kernel.org/pub/linux/kernel/v6.x/${LINUX_VERSION}.tar.xz"
tar xf "${DOWNLOAD_DIR}/${LINUX_VERSION}.tar.xz"

View File

@ -12,5 +12,5 @@ if [ ! -x "$DTC" ]; then
exit 1 exit 1
fi fi
$DTC --symbols -I dts -O dtb -i "$LINUX_DIR/arch/arm/boot/dts/xilinx" -o devicetree/devicetree.dtb devicetree/redpitaya_puzzlefw.dts $DTC --symbols -I dts -O dtb -i "$LINUX_DIR/arch/arm/boot/dts" -o devicetree/devicetree.dtb devicetree/redpitaya_puzzlefw.dts

View File

@ -1,7 +1,8 @@
CONFIG_LOCALVERSION="-xilinx"
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_NO_HZ_IDLE=y CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y CONFIG_HIGH_RES_TIMERS=y
# CONFIG_CPU_ISOLATION is not set CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_IKCONFIG=y CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
@ -12,43 +13,39 @@ CONFIG_BLK_DEV_INITRD=y
# CONFIG_RD_LZO is not set # CONFIG_RD_LZO is not set
# CONFIG_RD_LZ4 is not set # CONFIG_RD_LZ4 is not set
# CONFIG_RD_ZSTD is not set # CONFIG_RD_ZSTD is not set
CONFIG_EXPERT=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_BUG is not set
CONFIG_EMBEDDED=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_ARCH_ZYNQ=y CONFIG_ARCH_ZYNQ=y
# CONFIG_VDSO is not set
CONFIG_PL310_ERRATA_588369=y CONFIG_PL310_ERRATA_588369=y
CONFIG_PL310_ERRATA_727915=y CONFIG_PL310_ERRATA_727915=y
CONFIG_PL310_ERRATA_753970=y
CONFIG_PL310_ERRATA_769419=y CONFIG_PL310_ERRATA_769419=y
CONFIG_ARM_ERRATA_430973=y
CONFIG_ARM_ERRATA_720789=y
CONFIG_ARM_ERRATA_754322=y CONFIG_ARM_ERRATA_754322=y
CONFIG_ARM_ERRATA_754327=y CONFIG_ARM_ERRATA_754327=y
CONFIG_ARM_ERRATA_764369=y CONFIG_ARM_ERRATA_764369=y
CONFIG_ARM_ERRATA_764319=y CONFIG_ARM_ERRATA_764319=y
CONFIG_ARM_ERRATA_775420=y CONFIG_ARM_ERRATA_775420=y
CONFIG_ARM_ERRATA_798181=y
CONFIG_SMP=y CONFIG_SMP=y
CONFIG_SCHED_MC=y CONFIG_SCHED_MC=y
CONFIG_HAVE_ARM_ARCH_TIMER=y CONFIG_HAVE_ARM_ARCH_TIMER=y
CONFIG_ARM_PSCI=y
# CONFIG_ARM_PATCH_IDIV is not set # CONFIG_ARM_PATCH_IDIV is not set
CONFIG_ARCH_FORCE_MAX_ORDER=11
CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE=y
CONFIG_ARM_ZYNQ_CPUIDLE=y CONFIG_ARM_ZYNQ_CPUIDLE=y
CONFIG_VFP=y CONFIG_VFP=y
CONFIG_NEON=y CONFIG_NEON=y
# CONFIG_SUSPEND is not set # CONFIG_SUSPEND is not set
CONFIG_PM=y # CONFIG_STACKPROTECTOR_STRONG is not set
# CONFIG_SECCOMP is not set
# CONFIG_STACKPROTECTOR is not set
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_PARTITION_ADVANCED=y CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_CMDLINE_PARTITION=y
# CONFIG_MQ_IOSCHED_DEADLINE is not set
# CONFIG_MQ_IOSCHED_KYBER is not set # CONFIG_MQ_IOSCHED_KYBER is not set
# CONFIG_IOSCHED_BFQ is not set # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
# CONFIG_SWAP is not set # CONFIG_SWAP is not set
CONFIG_SLAB=y
# CONFIG_COMPACTION is not set
CONFIG_CMA=y CONFIG_CMA=y
CONFIG_CMA_SYSFS=y CONFIG_CMA_SYSFS=y
CONFIG_NET=y CONFIG_NET=y
@ -56,33 +53,33 @@ CONFIG_PACKET=y
CONFIG_UNIX=y CONFIG_UNIX=y
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_OPTIMISTIC_DAD=y
CONFIG_INET6_AH=y CONFIG_INET6_AH=y
CONFIG_INET6_ESP=y CONFIG_INET6_ESP=y
CONFIG_INET6_IPCOMP=y
# CONFIG_IPV6_SIT is not set # CONFIG_IPV6_SIT is not set
CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETWORK_PHY_TIMESTAMPING=y
# CONFIG_WIRELESS is not set # CONFIG_WIRELESS is not set
CONFIG_UEVENT_HELPER=y
CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y CONFIG_DEVTMPFS_MOUNT=y
CONFIG_FW_UPLOAD=y
# CONFIG_ALLOW_DEV_COREDUMP is not set
# CONFIG_ARM_SMCCC_SOC_ID is not set
CONFIG_MTD=y CONFIG_MTD=y
CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_BLOCK=y CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_STAA=y CONFIG_MTD_CFI_STAA=y
CONFIG_MTD_SPI_NOR=y CONFIG_MTD_SPI_NOR=y
# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
CONFIG_MTD_SPI_NOR_SWP_KEEP=y CONFIG_MTD_SPI_NOR_SWP_KEEP=y
CONFIG_OF_OVERLAY=y CONFIG_OF_OVERLAY=y
CONFIG_OF_CONFIGFS=y
CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=65536 CONFIG_BLK_DEV_RAM_SIZE=16384
CONFIG_EEPROM_AT24=y CONFIG_EEPROM_AT24=y
CONFIG_EEPROM_AT25=y CONFIG_EEPROM_AT25=y
CONFIG_SCSI=y CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_SCSI_LOWLEVEL is not set # CONFIG_SCSI_LOWLEVEL is not set
CONFIG_NETDEVICES=y CONFIG_NETDEVICES=y
# CONFIG_NET_VENDOR_ALACRITECH is not set # CONFIG_NET_VENDOR_ALACRITECH is not set
@ -104,11 +101,13 @@ CONFIG_MACB=y
# CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HISILICON is not set
# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_HUAWEI is not set
# CONFIG_NET_VENDOR_INTEL is not set # CONFIG_NET_VENDOR_INTEL is not set
# CONFIG_NET_VENDOR_WANGXUN is not set
# CONFIG_NET_VENDOR_ADI is not set # CONFIG_NET_VENDOR_ADI is not set
# CONFIG_NET_VENDOR_LITEX is not set # CONFIG_NET_VENDOR_LITEX is not set
# CONFIG_NET_VENDOR_MARVELL is not set # CONFIG_NET_VENDOR_MARVELL is not set
# CONFIG_NET_VENDOR_MELLANOX is not set # CONFIG_NET_VENDOR_MELLANOX is not set
# CONFIG_NET_VENDOR_MICREL is not set # CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_NET_VENDOR_MICROSEMI is not set # CONFIG_NET_VENDOR_MICROSEMI is not set
# CONFIG_NET_VENDOR_MICROSOFT is not set # CONFIG_NET_VENDOR_MICROSOFT is not set
# CONFIG_NET_VENDOR_NI is not set # CONFIG_NET_VENDOR_NI is not set
@ -127,12 +126,9 @@ CONFIG_MACB=y
# CONFIG_NET_VENDOR_SYNOPSYS is not set # CONFIG_NET_VENDOR_SYNOPSYS is not set
# CONFIG_NET_VENDOR_VERTEXCOM is not set # CONFIG_NET_VENDOR_VERTEXCOM is not set
# CONFIG_NET_VENDOR_VIA is not set # CONFIG_NET_VENDOR_VIA is not set
# CONFIG_NET_VENDOR_WANGXUN is not set
# CONFIG_NET_VENDOR_WIZNET is not set # CONFIG_NET_VENDOR_WIZNET is not set
CONFIG_XILINX_AXI_EMAC=y # CONFIG_NET_VENDOR_XILINX is not set
CONFIG_INTEL_XWAY_PHY=y CONFIG_INTEL_XWAY_PHY=y
CONFIG_MARVELL_PHY=y
CONFIG_VITESSE_PHY=y
CONFIG_MDIO_BITBANG=y CONFIG_MDIO_BITBANG=y
# CONFIG_USB_NET_DRIVERS is not set # CONFIG_USB_NET_DRIVERS is not set
# CONFIG_WLAN is not set # CONFIG_WLAN is not set
@ -140,21 +136,17 @@ CONFIG_MDIO_BITBANG=y
CONFIG_INPUT_EVDEV=y CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_KEYBOARD is not set # CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_MOUSE is not set
# CONFIG_LEGACY_TIOCSTI is not set # CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_XILINX_PS_UART=y CONFIG_SERIAL_XILINX_PS_UART=y
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
# CONFIG_HW_RANDOM is not set # CONFIG_HW_RANDOM is not set
# CONFIG_DEVPORT is not set
CONFIG_I2C=y CONFIG_I2C=y
# CONFIG_I2C_COMPAT is not set
CONFIG_I2C_CHARDEV=y CONFIG_I2C_CHARDEV=y
CONFIG_I2C_CADENCE=y CONFIG_I2C_CADENCE=y
CONFIG_SPI=y CONFIG_SPI=y
CONFIG_SPI_CADENCE=y CONFIG_SPI_CADENCE=y
CONFIG_SPI_XILINX=y CONFIG_SPI_XILINX=y
CONFIG_SPI_ZYNQ_QSPI=y CONFIG_SPI_ZYNQ_QSPI=y
# CONFIG_PTP_1588_CLOCK_KVM is not set
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_XILINX=y CONFIG_GPIO_XILINX=y
CONFIG_GPIO_ZYNQ=y CONFIG_GPIO_ZYNQ=y
@ -166,17 +158,13 @@ CONFIG_CPU_THERMAL=y
CONFIG_WATCHDOG=y CONFIG_WATCHDOG=y
CONFIG_XILINX_WATCHDOG=y CONFIG_XILINX_WATCHDOG=y
CONFIG_CADENCE_WATCHDOG=y CONFIG_CADENCE_WATCHDOG=y
CONFIG_TWL4030_CORE=y
CONFIG_TWL4030_POWER=y
CONFIG_REGULATOR=y CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
# CONFIG_HID_SUPPORT is not set
CONFIG_USB=y CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_HCD=y
CONFIG_USB_ACM=y
CONFIG_USB_STORAGE=y CONFIG_USB_STORAGE=y
CONFIG_USB_CHIPIDEA=y CONFIG_USB_CHIPIDEA=y
CONFIG_USB_CHIPIDEA_HOST=y CONFIG_USB_CHIPIDEA_HOST=y
# CONFIG_USB_CHIPIDEA_MSM is not set
# CONFIG_USB_CHIPIDEA_IMX is not set # CONFIG_USB_CHIPIDEA_IMX is not set
# CONFIG_USB_CHIPIDEA_TEGRA is not set # CONFIG_USB_CHIPIDEA_TEGRA is not set
CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL=y
@ -185,7 +173,6 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
CONFIG_NOP_USB_XCEIV=y CONFIG_NOP_USB_XCEIV=y
CONFIG_USB_ULPI=y CONFIG_USB_ULPI=y
CONFIG_MMC=y CONFIG_MMC=y
CONFIG_MMC_BLOCK_MINORS=16
CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_OF_ARASAN=y CONFIG_MMC_SDHCI_OF_ARASAN=y
@ -197,6 +184,7 @@ CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_ONESHOT=y CONFIG_LEDS_TRIGGER_ONESHOT=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_CPU=y CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_LEDS_TRIGGER_TRANSIENT=y CONFIG_LEDS_TRIGGER_TRANSIENT=y
CONFIG_DMADEVICES=y CONFIG_DMADEVICES=y
@ -204,39 +192,32 @@ CONFIG_PL330_DMA=y
CONFIG_XILINX_DMA=y CONFIG_XILINX_DMA=y
CONFIG_UIO=y CONFIG_UIO=y
CONFIG_UIO_PDRV_GENIRQ=y CONFIG_UIO_PDRV_GENIRQ=y
CONFIG_UIO_XILINX_APM=y
# CONFIG_VIRTIO_MENU is not set # CONFIG_VIRTIO_MENU is not set
# CONFIG_VHOST_MENU is not set # CONFIG_VHOST_MENU is not set
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_MEMORY=y CONFIG_MEMORY=y
CONFIG_IIO=y CONFIG_IIO=y
CONFIG_IIO_SW_TRIGGER=y
CONFIG_XILINX_XADC=y CONFIG_XILINX_XADC=y
CONFIG_XILINX_INTC=y CONFIG_XILINX_INTC=y
CONFIG_GENERIC_PHY=y
CONFIG_RAS=y CONFIG_RAS=y
CONFIG_FPGA=y CONFIG_FPGA=y
CONFIG_FPGA_MGR_ZYNQ_FPGA=y CONFIG_FPGA_MGR_ZYNQ_FPGA=y
CONFIG_FPGA_MGR_XILINX_SPI=y CONFIG_FPGA_MGR_ZYNQ_AFI_FPGA=y
CONFIG_FPGA_BRIDGE=y CONFIG_FPGA_BRIDGE=y
CONFIG_XILINX_PR_DECOUPLER=y CONFIG_XILINX_PR_DECOUPLER=y
CONFIG_FPGA_REGION=y CONFIG_FPGA_REGION=y
CONFIG_OF_FPGA_REGION=y CONFIG_OF_FPGA_REGION=y
CONFIG_EXT4_FS=y CONFIG_EXT4_FS=y
# CONFIG_DNOTIFY is not set
CONFIG_MSDOS_FS=y CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y CONFIG_VFAT_FS=y
CONFIG_TMPFS=y CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_MISC_FILESYSTEMS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ASCII=y CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y CONFIG_NLS_UTF8=y
CONFIG_CRYPTO_AES_ARM=y
CONFIG_DMA_CMA=y CONFIG_DMA_CMA=y
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
# CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_SCHED_DEBUG is not set
# CONFIG_SLUB_DEBUG is not set CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_RCU_TRACE is not set
# CONFIG_FTRACE is not set # CONFIG_FTRACE is not set
# CONFIG_RUNTIME_TESTING_MENU is not set

View File

@ -11,8 +11,8 @@ TOOLCHAIN_DIR="$(realpath -m "$BUILDROOT_DIR/output/host/bin")"
UBOOT_VERSION="v2023.10" UBOOT_VERSION="v2023.10"
UBOOT_DIR="u-boot" UBOOT_DIR="u-boot"
LINUX_VERSION="linux-6.6.10" LINUX_VERSION="xilinx-v2023.2"
LINUX_DIR="$LINUX_VERSION" LINUX_DIR="linux-xlnx"
BOOTIMG_DIR="boot_img" BOOTIMG_DIR="boot_img"
SDCARD_DIR="sdcard_files" SDCARD_DIR="sdcard_files"