Compare commits

...

25 Commits

Author SHA1 Message Date
BohdanBuinich e3901ee0d5
Merge c67d7f0b7f into 00d48ae291 2024-03-22 00:10:18 +02:00
Bohdan Buinich c67d7f0b7f add new FW for xmos 2024-03-22 00:10:07 +02:00
Bohdan Buinich 0e46446619 fix flash script 2024-03-21 23:57:11 +02:00
Bohdan Buinich f863b1b20b index on rpi5-initial-support-2: 4bc0f40f [RPI] Initial support of RPI5 2024-03-17 21:10:35 +02:00
Bohdan Buinich 78799248bf [RPI] Initial support of RPI5 2024-03-17 21:10:35 +02:00
j1nx 00d48ae291 [All] Bump buildroot for latest changes 2024-03-01 07:57:48 +00:00
j1nx aa79231bf0 [All] {WIP} The big bump to buildroot 2024.02.x 2024-03-01 07:54:30 +00:00
j1nx 24a7b5beb1 [All] Re-enable systemd notify healthchecks 2024-02-19 19:12:51 +00:00
j1nx c265d718e5 [All] Bump buildroot 2024-02-19 19:12:27 +00:00
j1nx 23a94cc1db [All] Switch back to ovos-messagebus and configured shared volums as such 2024-02-18 19:14:55 +00:00
j1nx 59d3088fb8 Merge branch 'fix/gpio' into develop 2024-02-17 19:38:49 +00:00
j1nx 503e727dbb [All] Fix xz mistake that slipped in 2024-02-17 19:36:37 +00:00
j1nx 783900f225 [RPI] Use vocalfusion 6.6 kernel using new GPIO APIv2 2024-02-17 19:35:47 +00:00
j1nx 3bdd57fb1d Merge branch 'develop' into fix/gpio 2024-02-17 10:10:12 +00:00
j1nx 9e0642fb2d [All] Switch back to userspace overlayfs driver. Overall this gives the best performance 2024-02-17 10:05:29 +00:00
j1nx bad6591e40 [All] Bump buildroot for latest upstream changes and to bump zstd 2024-02-17 10:04:27 +00:00
j1nx 2a361ae00c [RPI4] Bump experimental VocalFusion test driver 2024-02-17 09:55:42 +00:00
j1nx eabf79c3f2 [All] Do not keep uncompressed images in the release folder 2024-02-15 09:21:40 +00:00
j1nx 9dab4692a4 [WIP] Switch to vocalfusion PR driver for test drives 2024-02-11 11:47:38 +00:00
j1nx f628a9f49c [WIP] Add libgpiod2 and tools for debugging 2024-02-11 11:46:51 +00:00
j1nx b1fb2843e0 [All] Remove priority settings from ovos-bus-server 2024-02-10 13:07:48 +00:00
j1nx 75479afcfd Merge remote-tracking branch 'BohdanBuinich/xvf3510-rpi5-compatibility' into fix/gpio 2024-02-10 10:36:48 +00:00
j1nx 1c0833808d Disable PWM and buttons overlays during testing 2024-02-10 10:35:13 +00:00
j1nx 91fcb4e1d6 [RPI] Move cma 384M setting from commandline to config.txt 2024-02-09 17:56:51 +00:00
Bohdan Buinich c0442cc0e6 [RPI] Refactor SPI and GPIO handling for XVF3510 initialization
This commit significantly overhauls the script for setting the XVF3510 board to boot from SPI slave mode and for loading a binary file. The refactor not only aims at improving code readability, maintainability, and robustness but also addresses compatibility issues with the latest Raspberry Pi models, specifically the Raspberry Pi 5, which does not support the RPi.GPIO library.

Changes made:
- Switched from `smbus` to `smbus2` for I2C communication, offering a more modern and robust interface.
- Replaced `RPi.GPIO` and `spidev` with `digitalio` and `busio` from the `adafruit_blinka` library, enhancing cross-platform compatibility and providing a more Pythonic API for GPIO and SPI operations.
- Introduced type annotations for function signatures, improving code readability and type safety.
- Added exception handling around I2C operations and file reading, increasing the script's robustness by gracefully handling potential errors.
- Defined global variables for GPIO pin configurations, making the code cleaner and easier to modify for different setups.
- Encapsulated GPIO setup and reset logic into dedicated functions (`setup_direct_gpio`), streamlining the main logic flow and separating concerns.
- Modularized SPI setup (`setup_spi`) and data transmission logic (`send_data_over_spi` and `handle_block_transfer`), enhancing code organization and maintainability.

Benefits:
- The use of `smbus2` and `adafruit_blinka` libraries modernizes the script and may improve compatibility with a wider range of devices and future Python versions.
- Type annotations and structured exception handling make the script more understandable and safer to execute, reducing the risk of runtime errors.
- The refactoring into more granular functions and the introduction of global variables for configuration parameters make the script easier to read, modify, and extend.
- Improved error handling ensures that the script fails gracefully, providing clear error messages and avoiding potential resource leaks.
2024-02-08 01:25:53 +02:00
297 changed files with 1809 additions and 1691 deletions

4
.gitmodules vendored
View File

@ -1,4 +1,4 @@
[submodule "buildroot"]
path = buildroot
url = https://github.com/j1nx/buildroot.git
branch = ovos-2023.02.x
url = https://github.com/OpenVoiceOS/buildroot.git
branch = ovos-2024.02.x

View File

@ -25,8 +25,8 @@ $(TARGETS): %: $(RELEASE_DIR) %-config
$(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) 2>&1 | tee logs/buildroot_$@_output.txt
rsync -ah --progress $(BUILDROOT)/output/images/disk.img $(RELEASE_DIR)/OpenVoiceOS_$@_$(BUILDDATE).img
rsync -ah --progress $(BUILDROOT)/output/images/rootfs.swu $(RELEASE_DIR)/OpenVoiceOS_$@_$(BUILDDATE).swu
xz -3 -T0 -v -f -k $(RELEASE_DIR)/OpenVoiceOS_$@_$(BUILDDATE).img
xz -3 -T0 -v -f -k $(RELEASE_DIR)/OpenVoiceOS_$@_$(BUILDDATE).swu
xz -3 -T0 -v -f $(RELEASE_DIR)/OpenVoiceOS_$@_$(BUILDDATE).img
xz -3 -T0 -v -f $(RELEASE_DIR)/OpenVoiceOS_$@_$(BUILDDATE).swu
@if [ $@ = "ova_64" ]; then\
qemu-img convert -O vdi $(RELEASE_DIR)/OpenVoiceOS_$@_$(BUILDDATE).img $(RELEASE_DIR)/OpenVoiceOS_$@_$(BUILDDATE).vdi;\
xz -3 -T0 -v -f -k $(RELEASE_DIR)/OpenVoiceOS_$@_$(BUILDDATE).vdi;\

@ -1 +1 @@
Subproject commit e2b977c858a29c91a33324283e649a8aeab4a2dc
Subproject commit 2ce3fc804afcfb988635d5c95164c575423b82b9

View File

@ -93,7 +93,7 @@ menu "KDE Framework and Plasma"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/kf5-threadweaver/Config.in"
endmenu
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/ksm-preload/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/libcanberra/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/libgpiod2/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/libre/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/librem/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/lottie-qml/Config.in"
@ -136,6 +136,7 @@ endmenu
menu "Additional external python modules"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-adafruit-blinka/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-adafruit-circuitpython-neopixel/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-adafruit-circuitpython-typing/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-adafruit-platformdetect/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-adafruit-pureio/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-adapt-parser/Config.in"
@ -143,10 +144,8 @@ menu "Additional external python modules"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-audio-metadata/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-autocommand/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-bitstruct/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-blinker/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-board/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-bs4/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-cachetools/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-casttube/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-click-default-group/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-colour/Config.in"
@ -171,15 +170,14 @@ menu "Additional external python modules"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-gitpython/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-google-api-python-client/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-google-auth-httplib2/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-google-auth/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-google-trans-new/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-gpiod/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-gpsdclient/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-gtts/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-gtts_token/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-h3/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-hijri-converter/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-holidays/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-humanhash3/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-importlib-metadata/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-inflect/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-jaraco-collections/Config.in"
@ -200,7 +198,6 @@ menu "Additional external python modules"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-monotonic/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-msk/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-msm/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-multi-key-dict/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-neon-lang-plugin-libretranslate/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-neon-phal-plugin-fan/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-neon-phal-plugin-linear-led/Config.in"
@ -234,17 +231,13 @@ menu "Additional external python modules"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pyaudio/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pychromecast/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pycpuinfo/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pyee/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pyftdi/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pygithub/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pyjokes/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pymeeus/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pymplayer/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pyowm/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pytube/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pytzdata/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pywebio/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-pyxdg/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-quantulum3/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-quebra-frases/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-rakekeywords/Config.in"
@ -260,7 +253,6 @@ menu "Additional external python modules"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-smbus2/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-smmap/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-sonopy/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-source/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-speech2text/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-speechrecognition/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-sqlalchemy-json/Config.in"
@ -282,7 +274,6 @@ menu "Additional external python modules"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-vosk-api/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-webcolors/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-webrtcvad/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-wheel/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-wikipedia-api/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-wikipedia-for-humans/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-xmlrunner/Config.in"

View File

@ -1 +1 @@
cma=384M mitigations=off snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_compat_alsa=0 dwc_otg.lpm_enable=0 acpi=off cgroup_enable=memory psi=1 usb-storage.quirks=174c:55aa:u,2109:0715:u,152d:0578:u,152d:0579:u,152d:1561:u,174c:0829:u,14b0:0206:u
mitigations=off snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_compat_alsa=0 dwc_otg.lpm_enable=0 acpi=off cgroup_enable=memory psi=1 usb-storage.quirks=174c:55aa:u,2109:0715:u,152d:0578:u,152d:0579:u,152d:1561:u,174c:0829:u,14b0:0206:u

View File

@ -155,7 +155,7 @@ main() {
if [[ ${detection_results[TAS5806]} == true ]] ; then
echo "Installing and configuring SJ-201 HAT"
# Initializing XMOS xvf3510
# Initializing XMOS xvf3510 based SJ-201 HAT
dtoverlay xvf3510
xvf3510-flash --direct "/usr/lib/firmware/xvf3510/app_xvf3510_int_spi_boot_v4_1_0.bin"
# Initializing Texas Instruments 5806 Amplifier
@ -168,10 +168,10 @@ main() {
/usr/sbin/i2cset -a -y 1 0x04 101 30 i
else
echo "Assume revision-10 SJ-201 board"
dtoverlay sj201-rev10-pwm-fan-overlay
#dtoverlay sj201-rev10-pwm-fan-overlay
fi
echo "Configuring buttons"
dtoverlay sj201-buttons-overlay
#dtoverlay sj201-buttons-overlay
fi
if [[ ${detection_results[AIYVOICEBONNET]} == true ]] ; then

View File

@ -1,78 +1,65 @@
# Raspberry Pi 3 Configuration
# Basic setting
arm_64bit=1
# Disable command line tags.
disable_commandline_tags=2
disable_overscan=1
# Specify UEFI firmware file.
armstub=RPI_EFI.fd
# Enable UART for serial communication.
enable_uart=1
uart_2ndstage=1
armstub=RPI_EFI.fd
disable_commandline_tags=2
# Set device tree memory address range.
device_tree_address=0x1f0000
device_tree_end=0x200000
# Please note that this is only a sample, we recommend you to change it to fit
# your needs.
# You should override this file using a post-build script.
# See http://buildroot.org/manual.html#rootfs-custom
# and http://elinux.org/RPiconfig for a description of config.txt syntax
# We always use the same names, the real used variant is selected by
# BR2_PACKAGE_RPI_FIRMWARE_{DEFAULT,X,CD} choice
# Custom bootloader files.
start_file=start_x.elf
fixup_file=fixup_x.dat
#kernel=Image
# To use an external initramfs file
# initramfs rootfs.cpio.gz
# Disable overscan assuming the display supports displaying the full resolution
# If the text shown on the screen disappears off the edge, comment this out
# Disable overscan for full-resolution display.
disable_overscan=1
# Automatically load overlays for detected DSI displays
# Auto-detect DSI displays and load overlays.
display_auto_detect=1
# Enable DRM VC4 V3D driver and setup the mode
dtoverlay=vc4-fkms-v3d
# dtoverlay=vc4-kms-v3d-pi4
# hdmi_drive=2
# hdmi_group=2
# hdmi_mode=14
# Graphics acceleration with VC4 V3D driver, uses 384MB CMA limited to 2 framebuffer.
dtoverlay=vc4-fkms-v3d,cma-384
max_framebuffers=2
# uncomment if you get no picture on HDMI for a default "safe" mode
# Uncomment for HDMI safe mode.
# hdmi_safe=1
# How much memory in MB to assign to the GPU on Pi models having
# 256, 512 or 1024 MB total memory
gpu_mem=256
# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console
# Fixes for serial console on certain Pi models.
dtoverlay=miniuart-bt
# enable autoprobing of Bluetooth driver without need of hciattach/btattach
# Enable Bluetooth driver autoprobing.
dtparam=krnbt=on
# Enable the onboard soundcard
# Enable onboard audio.
dtparam=audio=on
# Enable the hardware random generator
# Enable hardware random number generator.
dtparam=random=on
# Enable camera driver
# dtoverlay=imx219
# dtoverlay=ov5647
# camera_auto_detect=1
# Camera driver settings (uncomment to enable).
# dtoverlay=imx219 # For IMX219 camera module
# dtoverlay=ov5647 # For OV5647 camera module
# camera_auto_detect=1 # Auto-detect camera type
# Disable rainbow color splash
# Disable rainbow splash screen on boot.
disable_splash=1
# Enable some optional hardware interfaces
dtparam=i2c_arm=on
dtparam=i2c_arm_baudrate=100000
dtoverlay=i2s-mmap
dtparam=i2s=on
dtparam=spi=on
# Enable I2C, I2S, and SPI interfaces for peripheral communication.
dtparam=i2c=on,i2s=on,spi=on
# Use DWC2 instead of XHCI on the rpi3 to prevent issues with te RealTime kernel
dtoverlay=dwc2
# Enable boost from 1.5Ghz to 1.8Ghz on compatible models
arm_boost=1

View File

@ -1,73 +1,68 @@
# Raspberry Pi 4 Configuration
# Basic setting
arm_64bit=1
enable_uart=1
enable_gic=1
# Specify UEFI firmware file.
armstub=RPI_EFI.fd
disable_commandline_tags=2
# Enable UART for serial communication.
enable_uart=1
uart_2ndstage=1
# Enable GIC (Generic Interrupt Controller).
enable_gic=1
# Set device tree memory address range.
device_tree_address=0x1f0000
device_tree_end=0x200000
# Please note that this is only a sample, we recommend you to change it to fit
# your needs.
# You should override this file using a post-build script.
# See http://buildroot.org/manual.html#rootfs-custom
# and http://elinux.org/RPiconfig for a description of config.txt syntax
# We always use the same names, the real used variant is selected by
# BR2_PACKAGE_RPI_FIRMWARE_{DEFAULT,X,CD} choice
# Disable command line tags.
disable_commandline_tags=2
# Custom bootloader files.
start_file=start4x.elf
fixup_file=fixup4x.dat
#kernel=Image
# To use an external initramfs file
# initramfs rootfs.cpio.gz
# Disable overscan assuming the display supports displaying the full resolution
# If the text shown on the screen disappears off the edge, comment this out
# Disable overscan for full-resolution display.
disable_overscan=1
# Automatically load overlays for detected DSI displays
# Auto-detect DSI displays and load overlays.
display_auto_detect=1
# Enable DRM VC4 V3D driver and setup the mode
dtoverlay=vc4-fkms-v3d
# dtoverlay=vc4-kms-v3d-pi4
# hdmi_drive=2
# hdmi_group=2
# hdmi_mode=14
# Graphics acceleration with VC4 V3D driver, uses 384MB CMA limited to 2 framebuffer.
dtoverlay=vc4-fkms-v3d,cma-384
max_framebuffers=2
# uncomment if you get no picture on HDMI for a default "safe" mode
# Uncomment for HDMI safe mode.
# hdmi_safe=1
# How much memory in MB to assign to the GPU on Pi models having
# 256, 512 or 1024 MB total memory
gpu_mem=256
# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console
# Fixes for serial console on certain Pi models.
dtoverlay=miniuart-bt
# enable autoprobing of Bluetooth driver without need of hciattach/btattach
# Enable Bluetooth driver autoprobing.
dtparam=krnbt=on
# Enable the onboard soundcard
# Enable onboard audio.
dtparam=audio=on
# Enable the hardware random generator
# Enable hardware random number generator.
dtparam=random=on
# Enable camera driver
# dtoverlay=imx219
# dtoverlay=ov5647
# camera_auto_detect=1
# Camera driver settings (uncomment to enable).
# dtoverlay=imx219 # For IMX219 camera module
# dtoverlay=ov5647 # For OV5647 camera module
# camera_auto_detect=1 # Auto-detect camera type
# Disable rainbow color splash
# Disable rainbow splash screen on boot.
disable_splash=1
# Enable some optional hardware interfaces
dtparam=i2c_arm=on
dtparam=i2c_arm_baudrate=100000
dtoverlay=i2s-mmap
dtparam=i2s=on
dtparam=spi=on
# Enable I2C, I2S, and SPI interfaces for peripheral communication.
dtparam=i2c=on,i2s=on,spi=on
# Enable boost from 1.5Ghz to 1.8Ghz on compatible models
# Enable CPU frequency boost on compatible models.
arm_boost=1

View File

@ -0,0 +1,74 @@
# Raspberry Pi 5 Configuration
# Basic setting
arm_64bit=1
# Specify UEFI firmware file.
armstub=RPI_EFI.fd
# Enable UART for serial communication.
enable_uart=1
uart_2ndstage=1
# Enable GIC (Generic Interrupt Controller).
enable_gic=1
# Set device tree memory address range.
device_tree_address=0x1f0000
device_tree_end=0x210000
# Keep RP1 PCIe configured on boot for PCIe peripherals.
pciex4_reset=0
# Max power to USB ports for high-power devices.
usb_max_current_enable=1
# Run CPU at max speed for better performance.
# force_turbo=1
# Custom bootloader files.
start_file=start4x.elf
fixup_file=fixup4x.dat
# Disable overscan for full-resolution display.
disable_overscan=1
# Auto-detect DSI displays and load overlays.
display_auto_detect=1
# Graphics acceleration with VC4 V3D driver, uses 512MB CMA limited to 2 framebuffer.
dtoverlay=vc4-fkms-v3d,cma-512
max_framebuffers=2
# Uncomment for HDMI safe mode.
# hdmi_safe=1
# How much memory in MB to assign to the GPU on Pi models having
# 256, 512 or 1024 MB total memory
gpu_mem=256
# Fixes for serial console on certain Pi models.
dtoverlay=miniuart-bt
# Enable Bluetooth driver autoprobing.
dtparam=krnbt=on
# Enable onboard audio.
dtparam=audio=on
# Enable hardware random number generator.
dtparam=random=on
# Camera driver settings (uncomment to enable).
# dtoverlay=imx219 # For IMX219 camera module
# dtoverlay=ov5647 # For OV5647 camera module
# camera_auto_detect=1 # Auto-detect camera type
# Disable rainbow splash screen on boot.
disable_splash=1
# Enable I2C, I2S, and SPI interfaces for peripheral communication.
dtparam=i2c=on,i2s=on,spi=on
# Enable CPU frequency boost on compatible models.
arm_boost=1

View File

@ -0,0 +1,67 @@
image esp.vfat {
vfat {
files = {
"bcm2712-rpi-5-b.dtb",
"rpi-firmware/cmdline.txt",
"rpi-firmware/config.txt",
"rpi-firmware/fixup4x.dat",
"rpi-firmware/start4x.elf",
"rpi-firmware/overlays",
"rpi-firmware/RPI_EFI.fd",
"rpi-eeprom/pieeprom.sig",
"rpi-eeprom/pieeprom.upd"
}
file EFI {
image = "efi-part/EFI"
}
}
size = 16M
}
image overlayfs.ext4 {
name = "overlayfs"
ext4 {
use-mke2fs = "true"
}
size = 256M
}
image disk.img {
hdimage {
partition-table-type = "gpt"
}
partition esp {
align = 1M
partition-uuid = 9262aee5-2d23-4e09-baac-280591e2e834
partition-type-uuid = c12a7328-f81f-11d2-ba4b-00a0c93ec93b
bootable = "true"
image = "esp.vfat"
}
partition rootfs-1 {
partition-uuid = c0932a41-44cf-463b-8152-d43188553ed4
partition-type-uuid = 0fc63daf-8483-4772-8e79-3d69d8477de4
image = "rootfs.squashfs"
size = 512M
}
partition rootfs-2 {
partition-uuid = 3adea996-45ad-4928-920e-ffb5aedd00cb
partition-type-uuid = 0fc63daf-8483-4772-8e79-3d69d8477de4
image = "rootfs.squashfs"
size = 512M
}
partition overlayfs {
partition-uuid = f1326040-5236-40eb-b683-aaa100a9afcf
partition-type-uuid = 0fc63daf-8483-4772-8e79-3d69d8477de4
image = "overlayfs.ext4"
}
partition homefs {
partition-uuid = ba3c2691-cce9-4963-b773-42c440c235ec
partition-type-uuid = 0fc63daf-8483-4772-8e79-3d69d8477de4
image = "homefs.ext4"
}
}

View File

@ -0,0 +1,3 @@
BOARD_ID=rpi5-64
BOARD_NAME="RaspberryPi 5 64bit"
CHASSIS=embedded

View File

@ -0,0 +1,21 @@
software =
{
name = "OpenVoiceOS";
description = "Firmware update for OpenVoiceOS";
version = "0.1.1";
bootloader_transaction_marker = false;
bootloader_state_marker = false;
rpi5 = {
hardware-compatibility: ["1.0"];
update: {
rootfs: {
images: ({
filename = "rootfs.squashfs";
device = "/dev/update";
installed-directly = true;
type = "raw";
});
};
};
}
}

View File

@ -143,7 +143,6 @@ BR2_PACKAGE_PYTHON3_PY_PYC=y
BR2_PACKAGE_PYTHON_GOBJECT=y
BR2_PACKAGE_PYTHON_PIP=y
BR2_PACKAGE_PYTHON_PODMAN_COMPOSE=y
BR2_PACKAGE_PYTHON_RPI_GPIO=y
BR2_PACKAGE_PYTHON_SPIDEV=y
BR2_PACKAGE_ALSA_PLUGINS=y
BR2_PACKAGE_LIBVORBIS=y
@ -321,6 +320,8 @@ BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_HOST_PKGCONF=y
BR2_PACKAGE_BTSPEAKER=y
BR2_PACKAGE_HOSTNAME_SERVICE=y
BR2_PACKAGE_LIBGPIOD2=y
BR2_PACKAGE_LIBGPIOD2_TOOLS=y
BR2_PACKAGE_NCPAMIXER=y
BR2_PACKAGE_OVOS_BUS_SERVER=y
BR2_PACKAGE_OVOS_CONTAINERS=y
@ -332,4 +333,5 @@ BR2_PACKAGE_ROC_TOOLKIT=y
BR2_PACKAGE_USERLAND_TOOLS=y
BR2_PACKAGE_VOCALFUSION=y
BR2_PACKAGE_WIFI_CONNECT=y
BR2_PACKAGE_PYTHON_ADAFRUIT_BLINKA=y
BR2_PACKAGE_PYTHON_SMBUS2=y

View File

@ -1,13 +1,9 @@
BR2_aarch64=y
BR2_cortex_a72=y
BR2_PACKAGE_GLIBC_UTILS=y
BR2_BINUTILS_VERSION_2_39_X=y
BR2_GCC_VERSION_12_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_DL_DIR="../../downloads"
BR2_CCACHE=y
BR2_CCACHE_DIR="ccache"
BR2_OPTIMIZE_2=y
BR2_ENABLE_LTO=y
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL)/patches $(BR2_EXTERNAL)/board/ovos/raspberrypi/patches"
BR2_FORCE_HOST_BUILD=y
@ -18,6 +14,7 @@ BR2_TARGET_GENERIC_PASSWD_SHA512=y
BR2_INIT_SYSTEMD=y
# BR2_TARGET_ENABLE_ROOT_LOGIN is not set
BR2_SYSTEM_BIN_SH_BASH=y
# BR2_TARGET_GENERIC_GETTY is not set
# BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set
BR2_SYSTEM_DHCP="eth0"
# BR2_ENABLE_LOCALE_PURGE is not set
@ -30,7 +27,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL)/board/ovos/raspberrypi/rpi4"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,5e78d297b997dcc7a78ba747a62fb28d0b6a10d8)/linux-5e78d297b997dcc7a78ba747a62fb28d0b6a10d8.tar.gz"
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,9e78addad23f9fc66b0c6399d9234e44a89d699a)/linux-9e78addad23f9fc66b0c6399d9234e44a89d699a.tar.gz"
BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL)/kernel/ovos.config $(BR2_EXTERNAL)/kernel/device-drivers.config $(BR2_EXTERNAL)/kernel/docker.config $(BR2_EXTERNAL)/board/ovos/raspberrypi/kernel.config"
BR2_LINUX_KERNEL_LZ4=y
@ -65,11 +62,11 @@ BR2_PACKAGE_FFMPEG_AVRESAMPLE=y
BR2_PACKAGE_FFMPEG_POSTPROC=y
BR2_PACKAGE_FLAC=y
BR2_PACKAGE_PIPEWIRE=y
BR2_PACKAGE_PIPEWIRE_COMPRESS_OFFLOAD=y
BR2_PACKAGE_PIPEWIRE_EXAMPLES=y
BR2_PACKAGE_PIPEWIRE_GSTREAMER=y
BR2_PACKAGE_PIPEWIRE_V4L2=y
BR2_PACKAGE_PULSEAUDIO=y
BR2_PACKAGE_TINYCOMPRESS=y
BR2_PACKAGE_V4L2GRAB=y
BR2_PACKAGE_V4L2LOOPBACK=y
BR2_PACKAGE_V4L2LOOPBACK_UTILS=y
@ -141,7 +138,6 @@ BR2_PACKAGE_PYTHON3_PY_PYC=y
BR2_PACKAGE_PYTHON_GOBJECT=y
BR2_PACKAGE_PYTHON_PIP=y
BR2_PACKAGE_PYTHON_PODMAN_COMPOSE=y
BR2_PACKAGE_PYTHON_RPI_GPIO=y
BR2_PACKAGE_PYTHON_SPIDEV=y
BR2_PACKAGE_ALSA_PLUGINS=y
BR2_PACKAGE_LIBVORBIS=y
@ -180,7 +176,7 @@ BR2_PACKAGE_LIBV4L_UTILS=y
BR2_PACKAGE_JSON_GLIB=y
BR2_PACKAGE_LIBCAMERA=y
BR2_PACKAGE_LIBCAMERA_V4L2=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_RPI_VC4=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC=y
@ -199,7 +195,6 @@ BR2_PACKAGE_ZEROMQ_WEBSOCKET=y
BR2_PACKAGE_LIBCAP_TOOLS=y
BR2_PACKAGE_LIBNPTH=y
BR2_PACKAGE_LIBFRIBIDI=y
BR2_PACKAGE_PCRE2=y
BR2_PACKAGE_AARDVARK_DNS=y
BR2_PACKAGE_AVAHI=y
BR2_PACKAGE_AVAHI_DAEMON=y
@ -299,7 +294,6 @@ BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT=y
BR2_PACKAGE_UTIL_LINUX_PARTX=y
BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT=y
BR2_PACKAGE_UTIL_LINUX_SU=y
BR2_PACKAGE_UTIL_LINUX_SULOGIN=y
BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT=y
BR2_PACKAGE_UTIL_LINUX_ZRAMCTL=y
BR2_PACKAGE_LESS=y
@ -331,5 +325,5 @@ BR2_PACKAGE_ROC_TOOLKIT=y
BR2_PACKAGE_RPI_EEPROM=y
BR2_PACKAGE_USERLAND_TOOLS=y
BR2_PACKAGE_VOCALFUSION=y
BR2_PACKAGE_WIFI_CONNECT=y
BR2_PACKAGE_PYTHON_ADAFRUIT_BLINKA=y
BR2_PACKAGE_PYTHON_SMBUS2=y

View File

@ -0,0 +1,340 @@
BR2_aarch64=y
BR2_cortex_a76_a55=y
BR2_ARM_FPU_VFPV4=y
BR2_ARM64_PAGE_SIZE_16K=y
BR2_PACKAGE_GLIBC_UTILS=y
BR2_BINUTILS_VERSION_2_39_X=y
BR2_GCC_VERSION_12_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_DL_DIR="/media/psf/OVOSbuildroot/downloads"
BR2_CCACHE=y
BR2_CCACHE_DIR="/media/psf/OVOSbuildroot/ccache"
BR2_OPTIMIZE_2=y
BR2_ENABLE_LTO=y
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL)/patches $(BR2_EXTERNAL)/board/ovos/raspberrypi/patches"
BR2_FORCE_HOST_BUILD=y
BR2_SSP_REGULAR=y
BR2_TARGET_GENERIC_HOSTNAME="OpenVoiceOS"
BR2_TARGET_GENERIC_ISSUE="Welcome to OpenVoiceOS"
BR2_TARGET_GENERIC_PASSWD_SHA512=y
BR2_INIT_SYSTEMD=y
# BR2_TARGET_ENABLE_ROOT_LOGIN is not set
BR2_SYSTEM_BIN_SH_BASH=y
# BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set
BR2_SYSTEM_DHCP="eth0"
# BR2_ENABLE_LOCALE_PURGE is not set
BR2_GENERATE_LOCALE="en_US.UTF-8"
BR2_SYSTEM_ENABLE_NLS=y
BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL)/user_table.txt"
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL)/rootfs-overlay $(BR2_EXTERNAL)/board/ovos/raspberrypi/rootfs-overlay $(BR2_EXTERNAL)/board/ovos/raspberrypi/rpi5/rootfs-overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL)/scripts/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL)/board/ovos/raspberrypi/rpi5"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_DEFCONFIG="bcm2712"
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,5e78d297b997dcc7a78ba747a62fb28d0b6a10d8)/linux-5e78d297b997dcc7a78ba747a62fb28d0b6a10d8.tar.gz"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL)/kernel/ovos.config $(BR2_EXTERNAL)/kernel/device-drivers.config $(BR2_EXTERNAL)/kernel/docker.config $(BR2_EXTERNAL)/board/ovos/raspberrypi/kernel.config"
BR2_LINUX_KERNEL_LZ4=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2712-rpi-5-b"
BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
BR2_PACKAGE_LINUX_TOOLS_GPIO=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/busybox.config"
BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_ALSACONF=y
BR2_PACKAGE_ALSA_UTILS_ACONNECT=y
BR2_PACKAGE_ALSA_UTILS_ALSALOOP=y
BR2_PACKAGE_ALSA_UTILS_ALSAUCM=y
BR2_PACKAGE_ALSA_UTILS_ALSATPLG=y
BR2_PACKAGE_ALSA_UTILS_AMIDI=y
BR2_PACKAGE_ALSA_UTILS_AMIXER=y
BR2_PACKAGE_ALSA_UTILS_APLAY=y
BR2_PACKAGE_ALSA_UTILS_APLAYMIDI=y
BR2_PACKAGE_ALSA_UTILS_ARECORDMIDI=y
BR2_PACKAGE_ALSA_UTILS_ASEQDUMP=y
BR2_PACKAGE_ALSA_UTILS_ASEQNET=y
BR2_PACKAGE_ALSA_UTILS_BAT=y
BR2_PACKAGE_ALSA_UTILS_IECSET=y
BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
BR2_PACKAGE_FFMPEG_GPL=y
BR2_PACKAGE_FFMPEG_NONFREE=y
BR2_PACKAGE_FFMPEG_FFPLAY=y
BR2_PACKAGE_FFMPEG_FFPROBE=y
BR2_PACKAGE_FFMPEG_AVRESAMPLE=y
BR2_PACKAGE_FFMPEG_POSTPROC=y
BR2_PACKAGE_FLAC=y
BR2_PACKAGE_PIPEWIRE=y
BR2_PACKAGE_PIPEWIRE_COMPRESS_OFFLOAD=y
BR2_PACKAGE_PIPEWIRE_EXAMPLES=y
BR2_PACKAGE_PIPEWIRE_GSTREAMER=y
BR2_PACKAGE_PIPEWIRE_V4L2=y
BR2_PACKAGE_PULSEAUDIO=y
BR2_PACKAGE_V4L2GRAB=y
BR2_PACKAGE_V4L2LOOPBACK=y
BR2_PACKAGE_V4L2LOOPBACK_UTILS=y
BR2_PACKAGE_GZIP=y
BR2_PACKAGE_LZIP=y
BR2_PACKAGE_P7ZIP=y
BR2_PACKAGE_UNRAR=y
BR2_PACKAGE_UNZIP=y
BR2_PACKAGE_ZIP=y
BR2_PACKAGE_LSOF=y
BR2_PACKAGE_MEMSTAT=y
BR2_PACKAGE_NMON=y
BR2_PACKAGE_BINUTILS=y
BR2_PACKAGE_CHECK=y
BR2_PACKAGE_DIFFUTILS=y
BR2_PACKAGE_FINDUTILS=y
BR2_PACKAGE_GIT_CRYPT=y
BR2_PACKAGE_GREP=y
BR2_PACKAGE_JO=y
BR2_PACKAGE_JQ=y
BR2_PACKAGE_PATCH=y
BR2_PACKAGE_CPIO=y
BR2_PACKAGE_DOSFSTOOLS=y
BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y
BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y
BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y
BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_E2FSPROGS_FUSE2FS=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
BR2_PACKAGE_FUSE_OVERLAYFS=y
BR2_PACKAGE_MTD=y
BR2_PACKAGE_NFS_UTILS=y
BR2_PACKAGE_NTFS_3G=y
BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_SQUASHFS_LZ4=y
BR2_PACKAGE_SQUASHFS_LZMA=y
BR2_PACKAGE_SQUASHFS_LZO=y
BR2_PACKAGE_SQUASHFS_XZ=y
BR2_PACKAGE_SQUASHFS_ZSTD=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y
BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI=y
BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI_BT=y
BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI_WIFI=y
BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y
BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_X=y
BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_CD=y
BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="$(BR2_EXTERNAL)/board/ovos/raspberrypi/rpi5/config.txt"
BR2_PACKAGE_AVRDUDE=y
BR2_PACKAGE_CRYPTSETUP=y
BR2_PACKAGE_DBUS_PYTHON=y
BR2_PACKAGE_GPTFDISK=y
BR2_PACKAGE_GPTFDISK_GDISK=y
BR2_PACKAGE_GPTFDISK_SGDISK=y
BR2_PACKAGE_GPTFDISK_CGDISK=y
BR2_PACKAGE_I2C_TOOLS=y
BR2_PACKAGE_PARTED=y
BR2_PACKAGE_RASPI_GPIO=y
BR2_PACKAGE_READ_EDID=y
BR2_PACKAGE_RNG_TOOLS=y
BR2_PACKAGE_SPI_TOOLS=y
BR2_PACKAGE_USB_MODESWITCH_DATA=y
BR2_PACKAGE_LUA=y
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON3_PY_PYC=y
BR2_PACKAGE_PYTHON_GOBJECT=y
BR2_PACKAGE_PYTHON_PIP=y
BR2_PACKAGE_PYTHON_PODMAN_COMPOSE=y
BR2_PACKAGE_PYTHON_SPIDEV=y
BR2_PACKAGE_ALSA_PLUGINS=y
BR2_PACKAGE_LIBVORBIS=y
BR2_PACKAGE_LILV=y
BR2_PACKAGE_OPUS=y
BR2_PACKAGE_PORTAUDIO=y
BR2_PACKAGE_SBC=y
BR2_PACKAGE_SBC_TOOLS=y
BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING=y
BR2_PACKAGE_LIBARCHIVE=y
BR2_PACKAGE_LIBDEFLATE=y
BR2_PACKAGE_LZ4_PROGS=y
BR2_PACKAGE_CA_CERTIFICATES=y
BR2_PACKAGE_LIBKSBA=y
BR2_PACKAGE_LIBSSH2=y
BR2_PACKAGE_LIBOPENSSL_BIN=y
BR2_PACKAGE_LIBOPENSSL_ENGINES=y
BR2_PACKAGE_LIBCONFIG=y
BR2_PACKAGE_LIBLOCKFILE=y
BR2_PACKAGE_LIBNFS=y
BR2_PACKAGE_LIBSYSFS=y
BR2_PACKAGE_LOCKDEV=y
BR2_PACKAGE_PHYSFS=y
BR2_PACKAGE_FONTCONFIG=y
BR2_PACKAGE_HARFBUZZ=y
BR2_PACKAGE_LIBEXIF=y
BR2_PACKAGE_LIBPNG=y
BR2_PACKAGE_OPENJPEG=y
BR2_PACKAGE_PIXMAN=y
BR2_PACKAGE_TIFF=y
BR2_PACKAGE_WEBP=y
BR2_PACKAGE_WIREPLUMBER=y
BR2_PACKAGE_ZBAR=y
BR2_PACKAGE_LIBINPUT=y
BR2_PACKAGE_LIBV4L_UTILS=y
BR2_PACKAGE_JSON_GLIB=y
BR2_PACKAGE_LIBCAMERA=y
BR2_PACKAGE_LIBCAMERA_V4L2=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC=y
BR2_PACKAGE_LIBCURL=y
BR2_PACKAGE_LIBCURL_CURL=y
BR2_PACKAGE_LIBDNET=y
BR2_PACKAGE_LIBNICE=y
BR2_PACKAGE_LIBRSYNC=y
BR2_PACKAGE_LIBSOUP=y
BR2_PACKAGE_LIBSRTP=y
BR2_PACKAGE_LIBURIPARSER=y
BR2_PACKAGE_LIBWEBSOCKETS=y
BR2_PACKAGE_SLIRP4NETNS=y
BR2_PACKAGE_ZEROMQ=y
BR2_PACKAGE_ZEROMQ_WEBSOCKET=y
BR2_PACKAGE_LIBCAP_TOOLS=y
BR2_PACKAGE_LIBNPTH=y
BR2_PACKAGE_LIBFRIBIDI=y
BR2_PACKAGE_PCRE2=y
BR2_PACKAGE_AARDVARK_DNS=y
BR2_PACKAGE_AVAHI=y
BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
BR2_PACKAGE_AVAHI_DEFAULT_SERVICES=y
BR2_PACKAGE_BLUEZ_TOOLS=y
BR2_PACKAGE_BLUEZ5_UTILS=y
BR2_PACKAGE_BLUEZ5_UTILS_OBEX=y
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
BR2_PACKAGE_BLUEZ5_UTILS_MONITOR=y
BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HEALTH=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NFC=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SAP=y
BR2_PACKAGE_BLUEZ5_UTILS_TOOLS_HID2HCI=y
BR2_PACKAGE_CRDA=y
BR2_PACKAGE_DNSMASQ=y
BR2_PACKAGE_IFUPDOWN=y
BR2_PACKAGE_IPROUTE2=y
BR2_PACKAGE_IPUTILS=y
BR2_PACKAGE_IW=y
BR2_PACKAGE_NET_TOOLS=y
BR2_PACKAGE_NETAVARK=y
BR2_PACKAGE_NETWORK_MANAGER=y
BR2_PACKAGE_NETWORK_MANAGER_TUI=y
BR2_PACKAGE_NETWORK_MANAGER_CLI=y
BR2_PACKAGE_NETWORK_MANAGER_MODEM_MANAGER=y
BR2_PACKAGE_OPENSSH=y
# BR2_PACKAGE_OPENSSH_SANDBOX is not set
BR2_PACKAGE_WGET=y
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_WEXT=y
BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
BR2_PACKAGE_WPA_SUPPLICANT_MESH_NETWORKING=y
BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y
BR2_PACKAGE_WPA_SUPPLICANT_HOTSPOT=y
BR2_PACKAGE_WPA_SUPPLICANT_DEBUG_SYSLOG=y
BR2_PACKAGE_WPA_SUPPLICANT_WPA3=y
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO=y
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
BR2_PACKAGE_WPA_SUPPLICANT_DBUS=y
BR2_PACKAGE_CATATONIT=y
BR2_PACKAGE_FILE=y
BR2_PACKAGE_GNUPG=y
BR2_PACKAGE_SCREEN=y
BR2_PACKAGE_TIME=y
BR2_PACKAGE_TINI=y
BR2_PACKAGE_WHICH=y
BR2_PACKAGE_ACL=y
BR2_PACKAGE_AUDIT=y
BR2_PACKAGE_COREUTILS=y
BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES=y
BR2_PACKAGE_EFIBOOTMGR=y
BR2_PACKAGE_HTOP=y
BR2_PACKAGE_PODMAN=y
BR2_PACKAGE_PODMAN_DRIVER_BTRFS=y
BR2_PACKAGE_PODMAN_DRIVER_DEVICEMAPPER=y
BR2_PACKAGE_PODMAN_DRIVER_VFS=y
BR2_PACKAGE_PROCPS_NG=y
BR2_PACKAGE_RSYSLOG=y
BR2_PACKAGE_SHADOW=y
BR2_PACKAGE_SHADOW_SHADOWGRP=y
BR2_PACKAGE_SHADOW_ACCOUNT_TOOLS_SETUID=y
BR2_PACKAGE_SHADOW_UTMPX=y
BR2_PACKAGE_SHADOW_SUBORDINATE_IDS=y
BR2_PACKAGE_SWUPDATE=y
BR2_PACKAGE_SWUPDATE_CONFIG="$(BR2_EXTERNAL)/swupdate.config"
BR2_PACKAGE_SWUPDATE_USB=y
BR2_PACKAGE_SYSTEMD_ANALYZE=y
BR2_PACKAGE_SYSTEMD_BACKLIGHT=y
# BR2_PACKAGE_SYSTEMD_PSTORE is not set
BR2_PACKAGE_SYSTEMD_FIRSTBOOT=y
BR2_PACKAGE_SYSTEMD_HIBERNATE=y
# BR2_PACKAGE_SYSTEMD_HWDB is not set
BR2_PACKAGE_SYSTEMD_LOCALED=y
BR2_PACKAGE_SYSTEMD_LOGIND=y
# BR2_PACKAGE_SYSTEMD_NETWORKD is not set
BR2_PACKAGE_SYSTEMD_OOMD=y
BR2_PACKAGE_SYSTEMD_POLKIT=y
BR2_PACKAGE_SYSTEMD_RANDOMSEED=y
BR2_PACKAGE_SYSTEMD_REPART=y
# BR2_PACKAGE_SYSTEMD_RESOLVED is not set
BR2_PACKAGE_SYSTEMD_RFKILL=y
# BR2_PACKAGE_SYSTEMD_VCONSOLE is not set
BR2_PACKAGE_TAR=y
BR2_PACKAGE_UTIL_LINUX_BINARIES=y
BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y
BR2_PACKAGE_UTIL_LINUX_KILL=y
BR2_PACKAGE_UTIL_LINUX_LOGGER=y
BR2_PACKAGE_UTIL_LINUX_LOGIN=y
BR2_PACKAGE_UTIL_LINUX_LSMEM=y
BR2_PACKAGE_UTIL_LINUX_MESG=y
BR2_PACKAGE_UTIL_LINUX_MORE=y
BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT=y
BR2_PACKAGE_UTIL_LINUX_PARTX=y
BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT=y
BR2_PACKAGE_UTIL_LINUX_SU=y
BR2_PACKAGE_UTIL_LINUX_SULOGIN=y
BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT=y
BR2_PACKAGE_UTIL_LINUX_ZRAMCTL=y
BR2_PACKAGE_LESS=y
BR2_PACKAGE_NANO=y
BR2_PACKAGE_VIM=y
BR2_TARGET_ROOTFS_SQUASHFS=y
BR2_TARGET_ROOTFS_SQUASHFS4_LZO=y
# BR2_TARGET_ROOTFS_TAR is not set
BR2_TARGET_GRUB2=y
BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat squash4 part_msdos part_gpt normal efi_gop regexp loadenv echo cat test configfile search search_fs_uuid all_video video font gfxmenu gfxterm gzio xzio"
BR2_TARGET_GRUB2_INSTALL_TOOLS=y
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_E2FSPROGS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MKPASSWD=y
BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_HOST_PKGCONF=y
BR2_PACKAGE_BTSPEAKER=y
BR2_PACKAGE_HOSTNAME_SERVICE=y
BR2_PACKAGE_LIBGPIOD2=y
BR2_PACKAGE_LIBGPIOD2_TOOLS=y
BR2_PACKAGE_NCPAMIXER=y
BR2_PACKAGE_OVOS_BUS_SERVER=y
BR2_PACKAGE_OVOS_CONTAINERS=y
BR2_PACKAGE_OVOS_CONTAINERS_ARCH="arm64"
BR2_PACKAGE_OVOS_CONTAINERS_GUI=y
BR2_PACKAGE_OVOS_SPLASH=y
BR2_PACKAGE_RESPEAKER=y
BR2_PACKAGE_RNNNOISE_LADSPA=y
BR2_PACKAGE_ROC_TOOLKIT=y
BR2_PACKAGE_RPI_EEPROM=y
BR2_PACKAGE_RPI_EEPROM_RPI5=y
BR2_PACKAGE_USERLAND_TOOLS=y
BR2_PACKAGE_VOCALFUSION=y
BR2_PACKAGE_WIFI_CONNECT=y
BR2_PACKAGE_PYTHON_ADAFRUIT_BLINKA=y
BR2_PACKAGE_PYTHON_SMBUS2=y

View File

@ -1,8 +0,0 @@
config BR2_PACKAGE_LIBCANBERRA
bool "libcanberra"
select BR2_PACKAGE_ALSA_LIB
select BR2_PACKAGE_LIBVORBIS
help
Portable sound event library
http://0pointer.de/lennart/projects/libcanberra

View File

@ -1,16 +0,0 @@
#############################################################
#
# libcanberra
#
#############################################################
LIBCANBERRA_VERSION = 0.30
LIBCANBERRA_SOURCE = libcanberra-$(LIBCANBERRA_VERSION).tar.xz
LIBCANBERRA_SITE = http://0pointer.de/lennart/projects/libcanberra
LIBCANBERRA_INSTALL_STAGING = YES
LIBCANBERRA_DEPENDENCIES = libvorbis libtool alsa-lib
LIBCANBERRA_CONF_OPTS += --disable-oss
LIBCANBERRA_LICENSE = LGPLv2.1+
LIBCANBERRA_LICENSE_FILES = LGPL
$(eval $(autotools-package))

View File

@ -0,0 +1,27 @@
config BR2_PACKAGE_LIBGPIOD2
bool "libgpiod2"
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10
depends on !BR2_PACKAGE_LIBGPIOD
help
This is a C library that abstracts the GPIO character
device operations on linux.
https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/
This package is the continuation of the libgpiod package
for versions 2.0 and above.
Note that a kernel of 5.10 or above is required for the
ioctls to work.
if BR2_PACKAGE_LIBGPIOD2
config BR2_PACKAGE_LIBGPIOD2_TOOLS
bool "install tools"
help
Include a set of command-line tools for managing GPIOs.
endif
comment "Consider upgrading to libgpiod2"
depends on BR2_PACKAGE_LIBGPIOD

View File

@ -0,0 +1,4 @@
# From https://www.kernel.org/pub/software/libs/libgpiod/sha256sums.asc
sha256 fa4024a080121c958502f9a46a5bda44bea85e7a4dd7fcb3dead463b6fc4261c libgpiod-2.1.tar.xz
# Hash for license file
sha256 eb17a56966db5d986bec449ee44ed61f01f9e3fafa952e527db67a8f9594fd11 COPYING

View File

@ -0,0 +1,30 @@
################################################################################
#
# libgpiod2
#
################################################################################
# Be careful when bumping versions.
# Dependency on kernel header versions may change.
LIBGPIOD2_VERSION = 2.1
LIBGPIOD2_SOURCE = libgpiod-$(LIBGPIOD2_VERSION).tar.xz
LIBGPIOD2_SITE = https://www.kernel.org/pub/software/libs/libgpiod
LIBGPIOD2_LICENSE = LGPL-2.1+
LIBGPIOD2_LICENSE_FILES = COPYING
LIBGPIOD2_INSTALL_STAGING = YES
LIBGPIOD2_DEPENDENCIES = host-pkgconf host-autoconf-archive
LIBGPIOD2_CONF_OPTS = --disable-tests --disable-examples --disable-bindings-python
ifeq ($(BR2_PACKAGE_LIBGPIOD2_TOOLS),y)
LIBGPIOD2_CONF_OPTS += --enable-tools
else
LIBGPIOD2_CONF_OPTS += --disable-tools
endif
ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
LIBGPIOD2_CONF_OPTS += --enable-bindings-cxx
else
LIBGPIOD2_CONF_OPTS += --disable-bindings-cxx
endif
$(eval $(autotools-package))

View File

@ -9,8 +9,10 @@ OVOS_CONTAINERS_LICENSE = Apache License 2.0
OVOS_CONTAINERS_LICENSE_FILES = $(BR2_EXTERNAL_OPENVOICEOS_PATH)/../LICENSE
OVOS_CONTAINERS_SITE = $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/ovos-containers
OVOS_CONTAINERS_SITE_METHOD = local
#OVOS_CONTAINERS_DEPENDENCIES = host-skopeo host-podman host-jq
OVOS_CONTAINERS_IMAGES = ovos-phal \
ovos-messagebus \
ovos-listener-dinkum \
ovos-audio \
ovos-core \

View File

@ -1,11 +1,14 @@
config BR2_PACKAGE_PYTHON_ADAFRUIT_BLINKA
bool "python-adafruit-blinka"
select BR2_PACKAGE_PYTHON_ADAFRUIT_CIRCUITPYTHON_TYPING # runtime
select BR2_PACKAGE_PYTHON_ADAFRUIT_PLATFORMDETECT # runtime
select BR2_PACKAGE_PYTHON_ADAFRUIT_PUREIO # runtime
select BR2_PACKAGE_PYTHON_PYFTDI # runtime
select BR2_PACKAGE_PYTHON_ADAFRUIT_CIRCUITPYTHON_TYPING
select BR2_PACKAGE_PYTHON_ADAFRUIT_PLATFORMDETECT
select BR2_PACKAGE_PYTHON_ADAFRUIT_PUREIO
select BR2_PACKAGE_PYTHON_PYFTDI
select BR2_PACKAGE_PYTHON_RPI_GPIO
select BR2_PACKAGE_PYTHON_SYSV_IPC
select BR2_PACKAGE_PYTHON_GPIOD
help
CircuitPython APIs for non-CircuitPython versions of Python
such as CPython on Linux and MicroPython.
CircuitPython APIs for non-CircuitPython versions of Python such as
CPython on Linux and MicroPython.
https://github.com/adafruit/Adafruit_Blinka
https://pypi.org/project/Adafruit-Blinka

View File

@ -1,5 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/adafruit-blinka/json
md5 b15a11eb7e0910af0d5825ed386b71d6 Adafruit-Blinka-8.6.0.tar.gz
sha256 b05f03468edc898aa07af59bafa88ca78e1b50f7d263a53e6573ace0050f64eb Adafruit-Blinka-8.6.0.tar.gz
md5 835cabd601befbe78dc64720f7efacd6 Adafruit-Blinka-8.31.0.tar.gz
sha256 720edca821066022e912dffcb364ea04bd3e3f208132b975876a21b2a2daa850 Adafruit-Blinka-8.31.0.tar.gz
# Locally computed sha256 checksums
sha256 50e0c3b5b4486be0ed420639f8a1f6f115f29101feee6bcd954a4b81db04d0f3 LICENSE

View File

@ -4,11 +4,13 @@
#
################################################################################
PYTHON_ADAFRUIT_BLINKA_VERSION = 8.6.0
PYTHON_ADAFRUIT_BLINKA_VERSION = 8.31.0
PYTHON_ADAFRUIT_BLINKA_SOURCE = Adafruit-Blinka-$(PYTHON_ADAFRUIT_BLINKA_VERSION).tar.gz
PYTHON_ADAFRUIT_BLINKA_SITE = https://files.pythonhosted.org/packages/76/29/541a6a22d923fbe0d4cf52f953a2c737370cb717f8df1cbd95ab97fe2fba
PYTHON_ADAFRUIT_BLINKA_SITE = https://files.pythonhosted.org/packages/74/ed/e51689be726338ba16f2a88373ad4690702c5ddf8668be1b0289cb279840
PYTHON_ADAFRUIT_BLINKA_SETUP_TYPE = setuptools
PYTHON_ADAFRUIT_BLINKA_LICENSE = MIT
PYTHON_ADAFRUIT_BLINKA_LICENSE_FILES = LICENSE
PYTHON_ADAFRUIT_BLINKA_BIN_ARCH_EXCLUDE = usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/adafruit_blinka/microcontroller/bcm283x/pulseio
PYTHON_ADAFRUIT_BLINKA_BIN_ARCH_EXCLUDE += usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/adafruit_blinka/microcontroller/amlogic/a311d/pulseio
$(eval $(python-package))

View File

@ -0,0 +1,6 @@
config BR2_PACKAGE_PYTHON_ADAFRUIT_CIRCUITPYTHON_TYPING
bool "python-adafruit-circuitpython-typing"
help
Types needed for type annotation that are not in `typing`
https://pypi.org/project/adafruit-circuitpython-typing

View File

@ -0,0 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/adafruit-circuitpython-typing/json
md5 3ff67f52cdb0ece5df86a477b1be5572 adafruit-circuitpython-typing-1.9.6.tar.gz
sha256 dc69ed6362dcb890f7103d4da0db94b7d1849bc66804598d34508f413724d152 adafruit-circuitpython-typing-1.9.6.tar.gz
# Locally computed sha256 checksums
sha256 50e0c3b5b4486be0ed420639f8a1f6f115f29101feee6bcd954a4b81db04d0f3 LICENSE

View File

@ -0,0 +1,14 @@
################################################################################
#
# python-adafruit-circuitpython-typing
#
################################################################################
PYTHON_ADAFRUIT_CIRCUITPYTHON_TYPING_VERSION = 1.9.6
PYTHON_ADAFRUIT_CIRCUITPYTHON_TYPING_SOURCE = adafruit-circuitpython-typing-$(PYTHON_ADAFRUIT_CIRCUITPYTHON_TYPING_VERSION).tar.gz
PYTHON_ADAFRUIT_CIRCUITPYTHON_TYPING_SITE = https://files.pythonhosted.org/packages/c7/2e/acfeeed27e42cfcb0450bc4afe0746e4d8ddd5d9081b7d7cec01705149e1
PYTHON_ADAFRUIT_CIRCUITPYTHON_TYPING_SETUP_TYPE = setuptools
PYTHON_ADAFRUIT_CIRCUITPYTHON_TYPING_LICENSE = MIT
PYTHON_ADAFRUIT_CIRCUITPYTHON_TYPING_LICENSE_FILES = LICENSE LICENSES/CC-BY-4.0.txt LICENSES/MIT.txt LICENSES/Unlicense.txt
$(eval $(python-package))

View File

@ -1,5 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/Adafruit-PlatformDetect/json
md5 7e7b10a48f6e6a7c650bb6bd432ec613 Adafruit-PlatformDetect-3.32.0.tar.gz
sha256 31bad17fb91c3cd61bd62fb9712902bcef5225bbeb3c078a196c6d7e2d4599a4 Adafruit-PlatformDetect-3.32.0.tar.gz
md5 4e80a7d7200a67d4528d580b16d3ca98 Adafruit-PlatformDetect-3.60.0.tar.gz
sha256 644deb113c00ba1bfba4703fcd80cab52b5638d4a1146f2d58378df4af09746f Adafruit-PlatformDetect-3.60.0.tar.gz
# Locally computed sha256 checksums
sha256 50e0c3b5b4486be0ed420639f8a1f6f115f29101feee6bcd954a4b81db04d0f3 LICENSE

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_ADAFRUIT_PLATFORMDETECT_VERSION = 3.32.0
PYTHON_ADAFRUIT_PLATFORMDETECT_VERSION = 3.60.0
PYTHON_ADAFRUIT_PLATFORMDETECT_SOURCE = Adafruit-PlatformDetect-$(PYTHON_ADAFRUIT_PLATFORMDETECT_VERSION).tar.gz
PYTHON_ADAFRUIT_PLATFORMDETECT_SITE = https://files.pythonhosted.org/packages/15/42/2192f64a9732878ddb39bb4359864d1398849e90f39f5591a23005e65d8e
PYTHON_ADAFRUIT_PLATFORMDETECT_SITE = https://files.pythonhosted.org/packages/e5/e3/71ba7ff4cbcecf40783613c192bd0ec6c69a70053915567a998ce41050bc
PYTHON_ADAFRUIT_PLATFORMDETECT_SETUP_TYPE = setuptools
PYTHON_ADAFRUIT_PLATFORMDETECT_LICENSE = MIT
PYTHON_ADAFRUIT_PLATFORMDETECT_LICENSE_FILES = LICENSE

View File

@ -1,5 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/Adafruit-PureIO/json
md5 f7d2f93db567333321b4097b4858bea5 Adafruit_PureIO-1.1.9.tar.gz
sha256 2caf22fb07c7f771d83267f331a76cde314723f884a9570ea6f768730c87a879 Adafruit_PureIO-1.1.9.tar.gz
md5 f9ddf83f2166ce69522a25f82d1fcdf7 Adafruit_PureIO-1.1.11.tar.gz
sha256 c4cfbb365731942d1f1092a116f47dfdae0aef18c5b27f1072b5824ad5ea8c7c Adafruit_PureIO-1.1.11.tar.gz
# Locally computed sha256 checksums
sha256 aa5e54136c840ed2e333f65d43fecbc6c0e8fff62ebaece4ff281cd2a6672088 LICENSE

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_ADAFRUIT_PUREIO_VERSION = 1.1.9
PYTHON_ADAFRUIT_PUREIO_VERSION = 1.1.11
PYTHON_ADAFRUIT_PUREIO_SOURCE = Adafruit_PureIO-$(PYTHON_ADAFRUIT_PUREIO_VERSION).tar.gz
PYTHON_ADAFRUIT_PUREIO_SITE = https://files.pythonhosted.org/packages/df/ca/9162d4648669d12af16d5a66d808bdef6967eb684cbed9b1a3ebc19b361a
PYTHON_ADAFRUIT_PUREIO_SITE = https://files.pythonhosted.org/packages/e5/b7/f1672435116822079bbdab42163f9e6424769b7db778873d95d18c085230
PYTHON_ADAFRUIT_PUREIO_SETUP_TYPE = setuptools
PYTHON_ADAFRUIT_PUREIO_LICENSE = MIT
PYTHON_ADAFRUIT_PUREIO_LICENSE_FILES = LICENSE

View File

@ -1,6 +0,0 @@
config BR2_PACKAGE_PYTHON_BLINKER
bool "python-blinker"
help
Fast, simple object-to-object and broadcast signaling.
http://pythonhosted.org/blinker/

View File

@ -1,5 +0,0 @@
# md5, sha256 from https://pypi.org/pypi/blinker/json
md5 8b3722381f83c2813c52de3016b68d33 blinker-1.4.tar.gz
sha256 471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6 blinker-1.4.tar.gz
# Locally computed sha256 checksums
sha256 ee99a909e1b04f53f3d49383e6462ba268cf49388bb3a657455dac9e38cdf0ea LICENSE

View File

@ -1,14 +0,0 @@
################################################################################
#
# python-blinker
#
################################################################################
PYTHON_BLINKER_VERSION = 1.4
PYTHON_BLINKER_SOURCE = blinker-$(PYTHON_BLINKER_VERSION).tar.gz
PYTHON_BLINKER_SITE = https://files.pythonhosted.org/packages/1b/51/e2a9f3b757eb802f61dc1f2b09c8c99f6eb01cf06416c0671253536517b6
PYTHON_BLINKER_SETUP_TYPE = setuptools
PYTHON_BLINKER_LICENSE = MIT
PYTHON_BLINKER_LICENSE_FILES = LICENSE
$(eval $(python-package))

View File

@ -1,6 +0,0 @@
config BR2_PACKAGE_PYTHON_CACHETOOLS
bool "python-cachetools"
help
Extensible memoizing collections and decorators.
https://github.com/tkem/cachetools

View File

@ -1,5 +0,0 @@
# md5, sha256 from https://pypi.org/pypi/cachetools/json
md5 aced22583c2ce8672f73e570e5430bd7 cachetools-2.1.0.tar.gz
sha256 90f1d559512fc073483fe573ef5ceb39bf6ad3d39edc98dc55178a2b2b176fa3 cachetools-2.1.0.tar.gz
# Locally computed sha256 checksums
sha256 67aece1bc071b753da8a24bcf8953b0e7cd873780aeddce5990864822fdb734b LICENSE

View File

@ -1,14 +0,0 @@
################################################################################
#
# python-cachetools
#
################################################################################
PYTHON_CACHETOOLS_VERSION = 2.1.0
PYTHON_CACHETOOLS_SOURCE = cachetools-$(PYTHON_CACHETOOLS_VERSION).tar.gz
PYTHON_CACHETOOLS_SITE = https://files.pythonhosted.org/packages/87/41/b3e00059f3c34b57a653d2120d213715abb4327b36fee22e59c1da977d25
PYTHON_CACHETOOLS_SETUP_TYPE = setuptools
PYTHON_CACHETOOLS_LICENSE = MIT
PYTHON_CACHETOOLS_LICENSE_FILES = LICENSE
$(eval $(python-package))

View File

@ -1,10 +0,0 @@
config BR2_PACKAGE_PYTHON_GOOGLE_AUTH
bool "python-google-auth"
select BR2_PACKAGE_PYTHON_PYASN1_MODULES # runtime
select BR2_PACKAGE_PYTHON_RSA # runtime
select BR2_PACKAGE_PYTHON_SIX # runtime
select BR2_PACKAGE_PYTHON_CACHETOOLS # runtime
help
Google Authentication Library.
https://github.com/GoogleCloudPlatform/google-auth-library-python

View File

@ -1,5 +0,0 @@
# md5, sha256 from https://pypi.org/pypi/google-auth/json
md5 d231e262e5e3bf835b1a118b6904a81c google-auth-1.5.1.tar.gz
sha256 9ca363facbf2622d9ba828017536ccca2e0f58bd15e659b52f312172f8815530 google-auth-1.5.1.tar.gz
# Locally computed sha256 checksums
sha256 c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE

View File

@ -1,14 +0,0 @@
################################################################################
#
# python-google-auth
#
################################################################################
PYTHON_GOOGLE_AUTH_VERSION = 1.5.1
PYTHON_GOOGLE_AUTH_SOURCE = google-auth-$(PYTHON_GOOGLE_AUTH_VERSION).tar.gz
PYTHON_GOOGLE_AUTH_SITE = https://files.pythonhosted.org/packages/7e/cd/dae5c39974b040741215ed346263152c93af21a22dc124c7ad451fbee417
PYTHON_GOOGLE_AUTH_SETUP_TYPE = setuptools
PYTHON_GOOGLE_AUTH_LICENSE = Apache-2.0
PYTHON_GOOGLE_AUTH_LICENSE_FILES = LICENSE
$(eval $(python-package))

View File

@ -0,0 +1,14 @@
config BR2_PACKAGE_PYTHON_GPIOD
bool "python-gpiod"
depends on !BR2_PACKAGE_LIBGPIOD
help
This is a C library that abstracts the GPIO character
device operations on linux.
https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/
This package is the continuation of the libgpiod package
for versions 2.0 and above.
Note that a kernel of 5.10 or above is required for the
ioctls to work.

View File

@ -0,0 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/gpiod/json
md5 faf8736f9584a28426e4832fe22f38f4 gpiod-2.1.3.tar.gz
sha256 a33193d6cab79d252329f71666a35a3668e04f1f82bf9b93ee2c9ae852398b20 gpiod-2.1.3.tar.gz
# Locally computed sha256 checksums
sha256 50e0c3b5b4486be0ed420639f8a1f6f115f29101feee6bcd954a4b81db04d0f3 LICENSE

View File

@ -0,0 +1,13 @@
################################################################################
#
# python-gpiod
#
################################################################################
PYTHON_GPIOD_VERSION = 2.1.3
PYTHON_GPIOD_SOURCE = gpiod-$(PYTHON_GPIOD_VERSION).tar.gz
PYTHON_GPIOD_SITE = https://files.pythonhosted.org/packages/a8/56/730573fe8d03c4d32a31e7182d27317b0cef298c9170b5a2994e2248986f
PYTHON_GPIOD_SETUP_TYPE = setuptools
#PYTHON_LIBGPIOD_DEPENDENCIES = libgpiod
$(eval $(python-package))

View File

@ -1,6 +0,0 @@
config BR2_PACKAGE_PYTHON_HUMANHASH3
bool "python-humanhash3"
help
Human-readable representations of digests.
https://github.com/blag/humanhash

View File

@ -1,3 +0,0 @@
# md5, sha256 from https://pypi.org/pypi/humanhash3/json
md5 c892640cca499ba5a83cfe152d295b9d humanhash3-0.0.6.tar.gz
sha256 89ae15f6034bdb07e53ac2b2e246cc7131940766d2b2b70b7398dd27c640b1ab humanhash3-0.0.6.tar.gz

View File

@ -1,13 +0,0 @@
################################################################################
#
# python-humanhash3
#
################################################################################
PYTHON_HUMANHASH3_VERSION = 0.0.6
PYTHON_HUMANHASH3_SOURCE = humanhash3-$(PYTHON_HUMANHASH3_VERSION).tar.gz
PYTHON_HUMANHASH3_SITE = https://files.pythonhosted.org/packages/01/06/733ffbb45b78c34eba21d72e71a67f44af6efcdfb2e31ccaa837eb5144be
PYTHON_HUMANHASH3_SETUP_TYPE = distutils
PYTHON_HUMANHASH3_LICENSE = Public Domain
$(eval $(python-package))

View File

@ -1,6 +0,0 @@
config BR2_PACKAGE_PYTHON_MULTI_KEY_DICT
bool "python-multi-key-dict"
help
Multi key dictionary implementation.
https://github.com/formiaczek/multi_key_dict

View File

@ -1,3 +0,0 @@
# md5, sha256 from https://pypi.org/pypi/multi-key-dict/json
md5 fea179deaaf496872c9db77dab30d523 multi_key_dict-2.0.3.tar.gz
sha256 deebdec17aa30a1c432cb3f437e81f8621e1c0542a0c0617a74f71e232e9939e multi_key_dict-2.0.3.tar.gz

View File

@ -1,13 +0,0 @@
################################################################################
#
# python-multi-key-dict
#
################################################################################
PYTHON_MULTI_KEY_DICT_VERSION = 2.0.3
PYTHON_MULTI_KEY_DICT_SOURCE = multi_key_dict-$(PYTHON_MULTI_KEY_DICT_VERSION).tar.gz
PYTHON_MULTI_KEY_DICT_SITE = https://files.pythonhosted.org/packages/6d/97/2e9c47ca1bbde6f09cb18feb887d5102e8eacd82fbc397c77b221f27a2ab
PYTHON_MULTI_KEY_DICT_SETUP_TYPE = distutils
PYTHON_MULTI_KEY_DICT_LICENSE = MIT
$(eval $(python-package))

View File

@ -1,6 +0,0 @@
config BR2_PACKAGE_PYTHON_PYEE
bool "python-pyee"
help
A port of node.js's EventEmitter to python.
https://github.com/jfhbrook/pyee

View File

@ -1,3 +0,0 @@
# md5, sha256 from https://pypi.org/pypi/pyee/json
md5 5e7dd623f031e8b22a9e1fa64bf00a5c pyee-5.0.0.tar.gz
sha256 2770c4928abc721f46b705e6a72b0c59480c4a69c9a83ca0b00bb994f1ea4b32 pyee-9.0.4.tar.gz

View File

@ -1,14 +0,0 @@
################################################################################
#
# python-pyee
#
################################################################################
PYTHON_PYEE_VERSION = 9.0.4
PYTHON_PYEE_SOURCE = pyee-$(PYTHON_PYEE_VERSION).tar.gz
PYTHON_PYEE_SITE = https://files.pythonhosted.org/packages/99/d0/32803671d5d9dc032c766ad6c0716db98fa9b2c6ad9ec544f04849e9d3c7
PYTHON_PYEE_SETUP_TYPE = distutils
PYTHON_PYEE_LICENSE = MIT
PYTHON_PYEE_DEPENDENCIES = host-python-pytest-runner
$(eval $(python-package))

View File

@ -1,5 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/pyftdi/json
md5 d8969beb9cd11c123f1249963bf8c0d8 pyftdi-0.54.0.tar.gz
sha256 8df9af22077d17533d2f95b508b1d87959877627ea5dc2369056e90a3b5a232d pyftdi-0.54.0.tar.gz
md5 fa9feda5b80db51d538ed9b98e25504e pyftdi-0.55.0.tar.gz
sha256 a747bbbccc4eeea26cefa2c8bd3d2b8bef8c94ecb6969bb9c75a63640887519a pyftdi-0.55.0.tar.gz
# Locally computed sha256 checksums
sha256 7342c9ccf3ec21eee9a23c6c74af15fb08ac1b79ddbccb4e063ddeaa6ef7c52d pyftdi/doc/license.rst

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_PYFTDI_VERSION = 0.54.0
PYTHON_PYFTDI_VERSION = 0.55.0
PYTHON_PYFTDI_SOURCE = pyftdi-$(PYTHON_PYFTDI_VERSION).tar.gz
PYTHON_PYFTDI_SITE = https://files.pythonhosted.org/packages/49/a3/6cd09c0493662b285b2ba87a08b1378a5b13e5cab44eb6a3f740c801c804
PYTHON_PYFTDI_SITE = https://files.pythonhosted.org/packages/da/db/b900789a154e32dba50f132a2a76837331801f8b521b7e1bcbb852b01a35
PYTHON_PYFTDI_SETUP_TYPE = setuptools
PYTHON_PYFTDI_LICENSE = FIXME: please specify the exact BSD version
PYTHON_PYFTDI_LICENSE_FILES = pyftdi/doc/license.rst

View File

@ -1,6 +0,0 @@
config BR2_PACKAGE_PYTHON_PYMPLAYER
bool "python-pymplayer"
help
mplayer python api.
https://github.com/JarbasAl/py_mplayer

View File

@ -1,2 +0,0 @@
# sha256 from https://pypi.org
sha256 4e8e4581761fffdd8915829baf2b16b83265a6aa75455f1647667fdc8091bad2 python-pymplayer-eaa0a1dbfc60cb0f4f1b3e495d665714c089474a-br1.tar.gz

View File

@ -1,13 +0,0 @@
################################################################################
#
# python-pymplayer
#
################################################################################
PYTHON_PYMPLAYER_VERSION = eaa0a1dbfc60cb0f4f1b3e495d665714c089474a
PYTHON_PYMPLAYER_SITE = https://github.com/JarbasAl/py_mplayer.git
PYTHON_PYMPLAYER_SITE_METHOD = git
PYTHON_PYMPLAYER_SETUP_TYPE = distutils
PYTHON_PYMPLAYER_LICENSE = MIT
$(eval $(python-package))

View File

@ -1,9 +0,0 @@
config BR2_PACKAGE_PYTHON_PYOWM
bool "python-pyowm"
help
PyOWM is a client Python wrapper library for the
OpenWeatherMap web API. It allows quick and easy
consumption of OWM weather data from Python applications
via a simple object model and in a human-friendly fashion.
http://github.com/csparpa/pyowm

View File

@ -1,2 +0,0 @@
# sha256 from https://pypi.org/pypi/
sha256 5d41bcc3b6169d3cc606bffe80945ab4b65578ed7818ef13db8e16d836845442 pyowm-2.6.1.tar.gz

View File

@ -1,13 +0,0 @@
################################################################################
#
# python-pyowm
#
################################################################################
PYTHON_PYOWM_VERSION = 2.6.1
PYTHON_PYOWM_SOURCE = pyowm-$(PYTHON_PYOWM_VERSION).tar.gz
PYTHON_PYOWM_SITE = https://files.pythonhosted.org/packages/3a/1b/94282ac9ea7f737a6eea9520fed026200b63853b3196392814506c456b00
PYTHON_PYOWM_SETUP_TYPE = distutils
PYTHON_PYOWM_LICENSE = MIT
$(eval $(python-package))

View File

@ -1,6 +0,0 @@
config BR2_PACKAGE_PYTHON_PYXDG
bool "python-pyxdg"
help
PyXDG is a python library to access freedesktop.org standards..
https://freedesktop.org/wiki/Software/pyxdg/

View File

@ -1,2 +0,0 @@
# md5, sha256 from https://pypi.org/pypi/pyxdg/json
sha256 fe2928d3f532ed32b39c32a482b54136fe766d19936afc96c8f00645f9da1a06 pyxdg-0.26.tar.gz

View File

@ -1,12 +0,0 @@
################################################################################
#
# python-pyxdg
#
################################################################################
PYTHON_PYXDG_VERSION = 0.26
PYTHON_PYXDG_SOURCE = pyxdg-$(PYTHON_PYXDG_VERSION).tar.gz
PYTHON_PYXDG_SITE = https://files.pythonhosted.org/packages/47/6e/311d5f22e2b76381719b5d0c6e9dc39cd33999adae67db71d7279a6d70f4
PYTHON_PYXDG_SETUP_TYPE = distutils
$(eval $(python-package))

View File

@ -1,5 +1,5 @@
# md5, sha256 from https://pypi.org/pypi/smbus2/json
md5 ea4bba25b43863aecd6ec33b2252fdae smbus2-0.4.1.tar.gz
sha256 6276eb599b76c4e74372f2582d2282f03b4398f0da16bc996608e4f21557ca9b smbus2-0.4.1.tar.gz
md5 ab83d83e9eb3bd1d0bef8d6fd64b1398 smbus2-0.4.3.tar.gz
sha256 36f2288a8e1a363cb7a7b2244ec98d880eb5a728a2494ac9c71e9de7bf6a803a smbus2-0.4.3.tar.gz
# Locally computed sha256 checksums
sha256 6ee9cf18c3a75dd76fb549a4b607ae34eedc31a796c48157895e2ad28d66ce79 LICENSE

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_SMBUS2_VERSION = 0.4.1
PYTHON_SMBUS2_VERSION = 0.4.3
PYTHON_SMBUS2_SOURCE = smbus2-$(PYTHON_SMBUS2_VERSION).tar.gz
PYTHON_SMBUS2_SITE = https://files.pythonhosted.org/packages/d9/33/787448c69603eec96af07d36f7ae3a7e3fce4020632eddb55152dc903233
PYTHON_SMBUS2_SITE = https://files.pythonhosted.org/packages/98/17/9663936e52a348b3ad1c85e6ca6071d2abf00a5f64f2df50bec8dcca6e16
PYTHON_SMBUS2_SETUP_TYPE = setuptools
PYTHON_SMBUS2_LICENSE = MIT
PYTHON_SMBUS2_LICENSE_FILES = LICENSE

View File

@ -1,6 +0,0 @@
config BR2_PACKAGE_PYTHON_SOURCE
bool "python-source"
help
A simple printer of source list.
http://www.cctv.com

View File

@ -1,3 +0,0 @@
# md5, sha256 from https://pypi.org/pypi/source/json
md5 75cfced3e80a80e06e60a90b4118dfa5 source-1.2.0.zip
sha256 c72a255f39264da1b495da33fd68ae026e4b6247f0da4fd0c1414d685be9bde0 source-1.2.0.zip

View File

@ -1,18 +0,0 @@
################################################################################
#
# python-source
#
################################################################################
PYTHON_SOURCE_VERSION = 1.2.0
PYTHON_SOURCE_SOURCE = source-$(PYTHON_SOURCE_VERSION).zip
PYTHON_SOURCE_SITE = https://files.pythonhosted.org/packages/cd/44/8dfdedc238dbab3abacebbe4f76308847af8ff71bee20c668326b7941f76
PYTHON_SOURCE_SETUP_TYPE = distutils
define PYTHON_SOURCE_EXTRACT_CMDS
$(UNZIP) -d $(@D) $(DL_DIR)/python-source/$(PYTHON_SOURCE_SOURCE)
mv $(@D)/source-$(PYTHON_SOURCE_VERSION)/* $(@D)
$(RM) -r $(@D)/source-$(PYTHON_SOURCE_VERSION)
endef
$(eval $(python-package))

View File

@ -1,8 +0,0 @@
config BR2_PACKAGE_PYTHON_WHEEL
bool "python-wheel"
help
This library is the reference implementation
of the Python wheel packaging standard, as
defined in PEP 427.
https://github.com/pypa/wheel

View File

@ -1,2 +0,0 @@
# sha256 from https://pypi.org/pypi/
sha256 e2ef7239991699e3355d54f8e968a21bb940a1dbf34a4d226741e64462516fad wheel-0.37.0.tar.gz

View File

@ -1,13 +0,0 @@
################################################################################
#
# python-wheel
#
################################################################################
PYTHON_WHEEL_VERSION = 0.37.0
PYTHON_WHEEL_SOURCE = wheel-$(PYTHON_WHEEL_VERSION).tar.gz
PYTHON_WHEEL_SITE = https://files.pythonhosted.org/packages/4e/be/8139f127b4db2f79c8b117c80af56a3078cc4824b5b94250c7f81a70e03b
PYTHON_WHEEL_SETUP_TYPE = setuptools
$(eval $(python-package))
$(eval $(host-python-package))

View File

@ -3,16 +3,16 @@
# rpi-eeprom
#
#############################################################
RPI_EEPROM_VERSION = 8855da988935f0c09ed4cc772103d4c5408a1afb
RPI_EEPROM_VERSION = 36e58db5c2a2656e553441f4f48f32227809105d
RPI_EEPROM_SITE = $(call github,raspberrypi,rpi-eeprom,$(RPI_EEPROM_VERSION))
RPI_EEPROM_LICENSE = BSD-3-Clause
RPI_EEPROM_LICENSE_FILES = LICENSE
RPI_EEPROM_INSTALL_IMAGES = YES
ifeq ($(BR2_PACKAGE_RPI_EEPROM_RPI4),y)
RPI_EEPROM_FIRMWARE_PATH = firmware-2711/stable/pieeprom-2023-05-11.bin
RPI_EEPROM_FIRMWARE_PATH = firmware-2711/stable/pieeprom-2024-01-22.bin
else ifeq ($(BR2_PACKAGE_RPI_EEPROM_RPI5),y) # Raspberry Pi 5
RPI_EEPROM_FIRMWARE_PATH = firmware-2712/stable/pieeprom-2024-01-05.bin
RPI_EEPROM_FIRMWARE_PATH = firmware-2712/stable/pieeprom-2024-02-16.bin
endif
define RPI_EEPROM_BUILD_CMDS

View File

@ -1,2 +1,2 @@
# Locally computed
sha256 88bec397f9bf2a6887efa39cb660d37ef1f08e2e378a81a1b88d3b14798e44da vocalfusion-cc7c690176416998ee6a918f439130224fa24699.tar.gz
sha256 c974fd4a6eeac9ce676827ca617674ee43ad40c98c31e6dd0a878591467ecd69 vocalfusion-fdf7e4efbe3237d68eb0d00388e57b0c891366b3.tar.gz

View File

@ -4,7 +4,7 @@
#
################################################################################
VOCALFUSION_VERSION = cc7c690176416998ee6a918f439130224fa24699
VOCALFUSION_VERSION = fdf7e4efbe3237d68eb0d00388e57b0c891366b3
VOCALFUSION_SITE = $(call github,OpenVoiceOS,VocalFusionDriver,$(VOCALFUSION_VERSION))
VOCALFUSION_MODULE_SUBDIRS = driver

View File

@ -3,207 +3,246 @@
# requires dtparam=spi=on in /boot/config.txt
"""
This script configures the XVF3510 board in boot from SPI slave and load a
binary file. It requires a bin file as input parameter.
This script configures the XVF3510 board to boot from SPI slave and loads a
binary file. It requires a bin file as an input parameter.
"""
import sys
import os
import time
import argparse
import spidev
import RPi.GPIO as GPIO
from smbus import SMBus
from smbus2 import SMBus
import digitalio
import busio
from pathlib import Path
import board
from typing import Optional
if sys.version[0] != '3':
print("Run this script with Python 3")
# Global variables for GPIO pins
BOOT_SEL_PIN = digitalio.DigitalInOut(board.D26) # GPIO pin used for boot selection (PIN 37)
RST_N_PIN = digitalio.DigitalInOut(board.D27) # GPIO pin used for reset (PIN 13)
I2C_ADDRESS = 0x2C # I2C address for the I/O expander. TODO: 0x20 was in original code, misstake?
if sys.version_info[0] < 3:
print("This script requires Python 3.")
sys.exit(1)
def bit_reversed_byte(byte_to_reverse):
def bit_reversed_byte(byte_to_reverse: int) -> int:
"""
Function to reverse the bit-order of a byte
Reverse the bits of a byte.
Args:
byte_to_reverse: byte to process
Retruns:
byte in reversed order
"""
return int('{:08b}'.format(byte_to_reverse)[::-1], 2)
def set_boot_sel():
"""
Function to set XVF3510 board in SPI slave boot mode
Args:
None
byte_to_reverse (int): The byte to reverse.
Returns:
None
int: The reversed byte.
"""
bus = SMBus(1)
# reset BOOT_SEL
bus.write_byte_data(0x20, 3, 0xFE)
bus.write_byte_data(0x20, 7, 0xFF)
state = {}
for i in [2, 6]:
state[i] = bus.read_byte_data(0x20, i)
# start reset
data_to_write = 0x00 | (state[2] & 0xDF)
bus.write_byte_data(0x20, 2, data_to_write)
data_to_write = 0x00 | (state[6] & 0xDF)
bus.write_byte_data(0x20, 6, data_to_write)
# set BOOT_SEL high
data_to_write = 0x01
bus.write_byte_data(0x20, 3, data_to_write)
data_to_write = 0xFE
bus.write_byte_data(0x20, 7, data_to_write)
# stop reset
data_to_write = 0x20 | (state[2] & 0xDF)
bus.write_byte_data(0x20, 2, data_to_write)
data_to_write = 0x20 | (state[6] & 0xDF)
bus.write_byte_data(0x20, 6, data_to_write)
return int("{:08b}".format(byte_to_reverse)[::-1], 2)
def send_image(bin_filename, verbose=False, max_spi_speed_mhz = 5, block_transfer_pause_ms = 1, direct = False, delay = False):
def set_boot_sel() -> None:
"""
Function to send the given image to the device via SPI slave
Set XVF3510 board in SPI slave boot mode using I2C to manipulate BOOT_SEL pin.
"""
try:
with SMBus(1) as bus:
# Reset BOOT_SEL to default
bus.write_byte_data(I2C_ADDRESS, 3, 0xFE)
bus.write_byte_data(I2C_ADDRESS, 7, 0xFF)
# Preserve other settings while manipulating BOOT_SEL
state = {i: bus.read_byte_data(I2C_ADDRESS, i) for i in [2, 6]}
# Start reset sequence
for i in [2, 6]:
bus.write_byte_data(I2C_ADDRESS, i, 0x00 | (state[i] & 0xDF))
# Set BOOT_SEL high
bus.write_byte_data(I2C_ADDRESS, 3, 0x01)
bus.write_byte_data(I2C_ADDRESS, 7, 0xFE)
# End reset sequence
for i in [2, 6]:
bus.write_byte_data(I2C_ADDRESS, i, 0x20 | (state[i] & 0xDF))
except Exception as e:
print(f"Error setting BOOT_SEL via I2C: {e}")
sys.exit(1)
def send_image(
bin_filename: str,
verbose: bool = False,
max_spi_speed_mhz: float = 5,
block_transfer_pause_ms: float = 1,
direct: bool = False,
delay: bool = False,
) -> None:
"""
Send the given image to the device via SPI slave.
Args:
bin_filename: binary file containing the image to boot
verbose: flag to print debug printouts
direct: Use Pi GPIO outputs rather than the XVF3510 Pi HAT
delay: Release BootSel early to delay startup on version 4.0.0 onwards
Returns:
None
bin_filename (str): Binary file name.
verbose (bool, optional): Enable verbose output. Defaults to False.
max_spi_speed_mhz (float, optional): Max SPI speed in MHz. Defaults to 5.
block_transfer_pause_ms (float, optional): Pause between blocks in milliseconds. Defaults to 1.
direct (bool, optional): Direct mode flag. Defaults to False.
delay (bool, optional): Delay startup flag. Defaults to False.
"""
binary_size = Path(bin_filename).stat().st_size
print(f'Read file "{bin_filename}" size: {binary_size} Bytes')
if direct:
#setup GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
BOOT_SEL_PIN.switch_to_input()
RST_N_PIN.switch_to_output()
RST_N_PIN.value=1
#boot_sel = 8
#rst_n = 10
'''
Mycroft board update
'''
#GPIO.setmode(GPIO.BCM)
boot_sel = 37 #26 #= 25 # fix these numbers to be Wiring Pi
rst_n = 13 #27 #= 2
GPIO.setup(boot_sel, GPIO.IN) # Normally, the Pi should not drive this
GPIO.setup(rst_n, GPIO.OUT, initial=GPIO.HIGH)
#setup SPI
spi = spidev.SpiDev()
bus_spi = 0
device = 0
spi.open(bus_spi, device)
#SPI Settings
spi.max_speed_hz = int(max_spi_speed_mhz * 1000000)
spi.mode = 0b00 #XMOS supports 00 or 11
spi_block_size = 4096 #Limitation in spidev and xfer2 doesn't work!
spi = setup_spi(max_spi_speed_mhz)
if direct:
GPIO.output(rst_n, 0)
GPIO.setup(boot_sel, GPIO.OUT, initial=GPIO.HIGH)
GPIO.output(rst_n, 1)
RST_N_PIN.value=False
BOOT_SEL_PIN.switch_to_output()
BOOT_SEL_PIN.value=True
RST_N_PIN.value=True
else:
set_boot_sel()
# Create a table to map byte values to their bit-reversed values
reverse_table = [bit_reversed_byte(byte) for byte in range(256)]
reverse_table = [bit_reversed_byte(byte) for byte in range(256)]
data = []
with open(bin_filename, "rb") as f:
bytes_read = f.read()
data = list(bytes_read)
binary_size = len(data)
block_count = 0
print('Read file "{0}" size: {1} Bytes'.format(args.bin_filename, binary_size))
if binary_size % spi_block_size != 0:
print("Warning - binary file not a multiple of {} - {} remainder".format( \
spi_block_size, binary_size % spi_block_size))
while binary_size > 0:
block = [reverse_table[byte] for byte in data[:spi_block_size]]
del data[:spi_block_size]
binary_size = len(data)
if verbose:
print("Sending {} Bytes in block {} checksum 0x{:X}".format( \
len(block), block_count, sum(block)))
spi.xfer(block)
try:
with open(bin_filename, "rb") as f:
data = list(f.read())
except Exception as e:
print(f"Error reading binary file: {e}")
sys.exit(1)
if block_count == 0:
#Long delay for PLL reboot
time.sleep(0.1)
send_data_over_spi(data, spi, reverse_table, verbose, block_transfer_pause_ms, direct, delay)
if delay:
# release boot_sel early to prevent startup
if direct:
GPIO.setup(boot_sel, GPIO.IN)
else:
#bus = smbus.SMBus(1)
bus = SMBus(1)
data_to_write = 0xFE
bus.write_byte_data(0x20, 3, data_to_write)
data_to_write = 0xFF
bus.write_byte_data(0x20, 7, data_to_write)
elif binary_size > 0:
time.sleep(block_transfer_pause_ms / 1000)
block_count += 1
print("Sending complete")
if direct:
GPIO.setup(boot_sel, GPIO.IN) # Once booted, the Pi should not need to drive boot_sel
GPIO.setup(rst_n, GPIO.OUT, initial=GPIO.HIGH) # Once booted, the Pi should not need to drive reset
#GPIO.cleanup()
# Once booted, the Pi should not need to drive boot_sel and reset
BOOT_SEL_PIN.switch_to_input()
RST_N_PIN.value=True
else:
#bus = smbus.SMBus(1)
bus = SMBus(1)
# reset BOOT_SEL
data_to_write = 0xFE
bus.write_byte_data(0x20, 3, data_to_write)
data_to_write = 0xFF
bus.write_byte_data(0x20, 7, data_to_write)
# Reset BOOT_SEL to default state
with SMBus(1) as bus:
bus.write_byte_data(I2C_ADDRESS, 3, 0xFE)
bus.write_byte_data(I2C_ADDRESS, 7, 0xFF)
def setup_spi(max_spi_speed_mhz: float) -> busio.SPI:
"""
Set up the SPI bus.
Args:
max_spi_speed_mhz (float): Max SPI speed in MHz.
Returns:
busio.SPI: Configured SPI bus.
"""
spi = busio.SPI(board.SCLK, MOSI=board.MOSI, MISO=board.MISO)
while not spi.try_lock():
pass
spi.configure(baudrate=max_spi_speed_mhz * 1_000_000)
return spi
def send_data_over_spi(
data: list,
spi: busio.SPI,
reverse_table: list,
verbose: bool,
pause_ms: float,
direct: bool,
delay: bool,
) -> None:
"""
Send data over SPI, handling block transfers and optional delays.
Args:
data (list): Data to send.
spi (busio.SPI): Configured SPI bus.
reverse_table (list): Table of bit-reversed byte values.
verbose (bool): Enable verbose output.
pause_ms (float): Pause between blocks in milliseconds.
direct (bool): Direct mode flag.
delay (bool): Delay startup flag.
"""
spi_block_size = 4096
block_count = 0
total_data_length = len(data)
for i in range(0, total_data_length, spi_block_size):
block = [reverse_table[byte] for byte in data[i : i + spi_block_size]]
if verbose:
print(f"Sending {len(block)} Bytes in block {block_count} checksum 0x{sum(block):X}")
spi.write(block)
# Update the remaining data length after each block transfer
remaining_data_length = total_data_length - (i + len(block))
handle_block_transfer(
block_count, delay, direct, pause_ms, remaining_data_length
)
block_count += 1
def handle_block_transfer(
block_count: int, delay: bool, direct: bool, pause_ms: float, remaining_data_length: int
) -> None:
"""
Handle specifics of block transfer, including initial delays and conditional logic for direct mode.
Args:
block_count (int): Number of blocks sent.
delay (bool): Delay startup flag.
direct (bool): Direct mode flag.
pause_ms (float): Pause between blocks in milliseconds.
remaining_data_length (int): Length of remaining data to send.
"""
if block_count == 0:
# Long delay for PLL reboot
time.sleep(0.1)
if delay:
# release boot_sel early to prevent startup
if direct:
# release boot_sel early to prevent startup
BOOT_SEL_PIN.switch_to_input()
else:
# Reset BOOT_SEL to default state
with SMBus(1) as bus:
bus.write_byte_data(I2C_ADDRESS, 3, 0xFE)
bus.write_byte_data(I2C_ADDRESS, 7, 0xFF)
elif remaining_data_length > 0:
time.sleep(pause_ms / 1000)
if __name__ == "__main__":
start_time = time.time()
parser = argparse.ArgumentParser(description='Load an image via SPI slave from an RPi')
parser.add_argument('bin_filename', help='binary file name')
parser.add_argument('--direct', action='store_true', \
help='Use just direct GPIO outputs rather than using the XVF3510 Development Kit Pi HAT')
parser.add_argument('--delay', action='store_true', \
help='Delay xvf3510 device start. Release the BootSel pin early to prevent the XVF3510 (V4.0.0 onwards) from starting with the default I2S configuration. This gives AP a chance to configure and start the XVF3510 device.')
parser.add_argument('--max-spi-speed-mhz', type=float, default=5, \
help='Max SPI speed in MHz')
parser.add_argument('--block-transfer-pause-ms', type=float, default=1, \
help='pause between SPI transfers in milliseconds, default 1ms')
parser.add_argument('--verbose', action='store_true', \
help='print debug information')
parser = argparse.ArgumentParser(description="Load an image via SPI slave from an RPi")
parser.add_argument("bin_filename", help="binary file name")
parser.add_argument("--direct", action="store_true", help="Use direct GPIO outputs rather than the XVF3510 Development Kit Pi HAT")
parser.add_argument("--delay", action="store_true", help="Delay xvf3510 device start")
parser.add_argument("--max-spi-speed-mhz", type=float, default=5, help="Max SPI speed in MHz")
parser.add_argument("--block-transfer-pause-ms", type=float, default=1, help="Pause between SPI transfers in milliseconds")
parser.add_argument("--verbose", action="store_true", help="Print debug information")
args = parser.parse_args()
if not Path(args.bin_filename).is_file():
print("Error: input file {} not found".format(args.bin_filename))
exit(1)
send_image(args.bin_filename, args.verbose, args.max_spi_speed_mhz, args.block_transfer_pause_ms, args.direct, args.delay)
bin_path = Path(args.bin_filename)
if not bin_path.is_file():
print(f"Error: input file {bin_path} not found")
sys.exit(1)
start_time = time.time()
send_image(
bin_path,
args.verbose,
args.max_spi_speed_mhz,
args.block_transfer_pause_ms,
args.direct,
args.delay,
)
end_time = time.time()
BOOT_SEL_PIN.deinit()
RST_N_PIN.deinit()
if args.verbose:
print("Sending image took {:.3} seconds".format(end_time - start_time))
print(f"Sending image took {end_time - start_time:.3f} seconds")

View File

@ -1,73 +0,0 @@
From 7eaacdbf00ec29931553384f914c229c6078582e Mon Sep 17 00:00:00 2001
Message-Id: <7eaacdbf00ec29931553384f914c229c6078582e.1652945863.git.stefan@agner.ch>
In-Reply-To: <184b6a054e04bb4c7fb4885a30d62314229dc551.1652945863.git.stefan@agner.ch>
References: <184b6a054e04bb4c7fb4885a30d62314229dc551.1652945863.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch>
Date: Thu, 5 May 2022 15:46:51 +0200
Subject: [PATCH] efidisk: pass buffers with higher alignment
Some devices report a IoAlign value of 2, however seem to require a
buffer with higher alignment.
The UEFI specification is saying: "IoAlign values of 0 and 1 mean that
the buffer can be placed anywhere in memory. Otherwise, IoAlign must
be a power of 2, and the requirement is that the start address of a
buffer must be evenly divisible by IoAlign with no remainder."
It seems that this got misinterpreted by some vendors assuming IoAlign
is 2^IoAlign. There is also such a hint in an example in earlier
versions of the Driver Writer's Guide:
ScsiPassThruMode.IoAlign = 2; // Data must be alligned on 4-byte boundary
However, it is unsafe to just blindly align buffers by 2^IoAlign, as
this would lead to an overflow for systems which use block size
alignment (e.g. 512 bytes, for example U-Boot).
Ontop of that, some devices seem to report no alignment requirements
but seem to read corrupt data or report read errors if the buffer is
not aligned.
Work around by using an alignment of at least BlockSize (typically 512
bytes) in any casea. Also make sure that IoAlign is still respected as
per UEFI specification if a higher alignment than block size is
requested.
Note: The problem has only noticed with compressed squashfs. It seems
that ext4 (and presumably other file system drivers) pass buffers with
a higher alignment already.
Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
grub-core/disk/efi/efidisk.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/grub-core/disk/efi/efidisk.c b/grub-core/disk/efi/efidisk.c
index 9e20af70e..c6e37f131 100644
--- a/grub-core/disk/efi/efidisk.c
+++ b/grub-core/disk/efi/efidisk.c
@@ -553,8 +553,19 @@ grub_efidisk_readwrite (struct grub_disk *disk, grub_disk_addr_t sector,
d = disk->data;
bio = d->block_io;
- /* Set alignment to 1 if 0 specified */
- io_align = bio->media->io_align ? bio->media->io_align : 1;
+ /*
+ * If IoAlign is > 1, it should represent the required alignment. However,
+ * some UEFI implementation on Intel NUC systems seem to use IoAlign=2 but
+ * require 2^IoAlign. Some implementation seem to require alignment despite
+ * not reporting any requirements.
+ *
+ * Make sure to align to at least block size in any case.
+ */
+ if (bio->media->io_align < bio->media->block_size)
+ io_align = bio->media->block_size;
+ else
+ io_align = bio->media->io_align;
+
num_bytes = size << disk->log_sector_size;
if ((grub_addr_t) buf & (io_align - 1))
--
2.36.1

View File

@ -1,7 +1,7 @@
From 71103fe2c85e989e7b5374cead80c0d75425f1de Mon Sep 17 00:00:00 2001
From f75402b89331eb0888900ae15fe7a8ec08564e90 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Fri, 8 Sep 2023 18:22:48 +0200
Subject: [PATCH 001/195] sched: Constrain locks in sched_submit_work()
Subject: [PATCH 001/196] sched: Constrain locks in sched_submit_work()
Even though sched_submit_work() is ran from preemptible context,
it is discouraged to have it use blocking locks due to the recursion
@ -50,5 +50,5 @@ index a854b71836dd..a9bf40d18cec 100644
static void sched_update_worker(struct task_struct *tsk)
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From 30c0fabb5665235a7e6dd945be69945e9c6dc069 Mon Sep 17 00:00:00 2001
From ac013e45d292b1339ee9da48307bc36e860e075e Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 8 Sep 2023 18:22:49 +0200
Subject: [PATCH 002/195] locking/rtmutex: Avoid unconditional slowpath for
Subject: [PATCH 002/196] locking/rtmutex: Avoid unconditional slowpath for
DEBUG_RT_MUTEXES
With DEBUG_RT_MUTEXES enabled the fast-path rt_mutex_cmpxchg_acquire()
@ -82,5 +82,5 @@ index d1473c624105..c7196de838ed 100644
ww_mutex_set_context_fastpath(lock, ww_ctx);
return 0;
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From 67e70cee63df0dcf79656f4902fb1a563a9bd28f Mon Sep 17 00:00:00 2001
From 441d37212b3185e39a4eba30acb9f2aefc8f157a Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 8 Sep 2023 18:22:50 +0200
Subject: [PATCH 003/195] sched: Extract __schedule_loop()
Subject: [PATCH 003/196] sched: Extract __schedule_loop()
There are currently two implementations of this basic __schedule()
loop, and there is soon to be a third.
@ -59,5 +59,5 @@ index a9bf40d18cec..ed5f5e3f6239 100644
NOKPROBE_SYMBOL(schedule_rtlock);
#endif
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From 9e47eb505e7f3ed5408d3d66e91ebb6982768023 Mon Sep 17 00:00:00 2001
From a8e46d57627a4d965d528b7ba8ed107d500257f6 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Fri, 8 Sep 2023 18:22:51 +0200
Subject: [PATCH 004/195] sched: Provide rt_mutex specific scheduler helpers
Subject: [PATCH 004/196] sched: Provide rt_mutex specific scheduler helpers
With PREEMPT_RT there is a rt_mutex recursion problem where
sched_submit_work() can use an rtlock (aka spinlock_t). More
@ -133,5 +133,5 @@ index ed5f5e3f6239..90f9124ac027 100644
{
if (pi_task)
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From be4c4dd6d8b7daa71457f2d02eead010dc5b77b5 Mon Sep 17 00:00:00 2001
From 1516b657591d065dbad2dbcd031a419802536191 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 8 Sep 2023 18:22:52 +0200
Subject: [PATCH 005/195] locking/rtmutex: Use rt_mutex specific scheduler
Subject: [PATCH 005/196] locking/rtmutex: Use rt_mutex specific scheduler
helpers
Have rt_mutex use the rt_mutex specific scheduler helpers to avoid
@ -187,5 +187,5 @@ index 48a19ed8486d..842037b2ba54 100644
/*
* The common functions which get wrapped into the rwlock API.
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From beef31a7b4f8b038bfd4490f654df84668b806dc Mon Sep 17 00:00:00 2001
From 6e0ef4c9025663e48a28d0f9f37117f7468884b9 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 8 Sep 2023 18:22:53 +0200
Subject: [PATCH 006/195] locking/rtmutex: Add a lockdep assert to catch
Subject: [PATCH 006/196] locking/rtmutex: Add a lockdep assert to catch
potential nested blocking
There used to be a BUG_ON(current->pi_blocked_on) in the lock acquisition
@ -62,5 +62,5 @@ index 842037b2ba54..38e292454fcc 100644
rtlock_slowlock(rtm);
}
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From 067017a07e06c6ab7a99d0a9da097d3cdbc07d74 Mon Sep 17 00:00:00 2001
From c727d5f5dcbe3a30ed56920957f32cade3dfd2cf Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Fri, 15 Sep 2023 17:19:44 +0200
Subject: [PATCH 007/195] futex/pi: Fix recursive rt_mutex waiter state
Subject: [PATCH 007/196] futex/pi: Fix recursive rt_mutex waiter state
Some new assertions pointed out that the existing code has nested rt_mutex wait
state in the futex code.
@ -200,5 +200,5 @@ index cba8b1a6a4cc..4c73e0b81acc 100644
/*
* Fixup the pi_state owner and possibly acquire the lock if we
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From 854cc4a6294ebc631fceda57138d1419977e9c87 Mon Sep 17 00:00:00 2001
From ed5e3fcceec56a9401a00bfdd6e2545e064ea774 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 3 Aug 2023 12:09:31 +0200
Subject: [PATCH 008/195] signal: Add proper comment about the preempt-disable
Subject: [PATCH 008/196] signal: Add proper comment about the preempt-disable
in ptrace_stop().
Commit 53da1d9456fe7 ("fix ptrace slowness") added a preempt-disable section
@ -48,5 +48,5 @@ index 09019017d669..051ed8114cd4 100644
preempt_disable();
read_unlock(&tasklist_lock);
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From 819c398c8fc580efa6af71d8880e57d762c7b53a Mon Sep 17 00:00:00 2001
From b9cc1762c1cb78dc3ea579526c2810aaa5095b76 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 3 Aug 2023 12:09:32 +0200
Subject: [PATCH 009/195] signal: Don't disable preemption in ptrace_stop() on
Subject: [PATCH 009/196] signal: Don't disable preemption in ptrace_stop() on
PREEMPT_RT.
On PREEMPT_RT keeping preemption disabled during the invocation of
@ -49,5 +49,5 @@ index 051ed8114cd4..b71026341056 100644
cgroup_leave_frozen(true);
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From beec053e6c4b3efcfb0c71e5594de0df4651d6f8 Mon Sep 17 00:00:00 2001
From 940963fd380191ddc53a1519e9a43e9f64acff7d Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 21 Sep 2023 16:15:12 +0200
Subject: [PATCH 010/195] drm/amd/display: Remove migrate_en/dis from
Subject: [PATCH 010/196] drm/amd/display: Remove migrate_en/dis from
dc_fpu_begin().
This is a revert of the commit mentioned below while it is not wrong, as
@ -87,5 +87,5 @@ index 172aa10a8800..86f4c0e04654 100644
if (cpu_has_feature(CPU_FTR_VSX_COMP)) {
disable_kernel_vsx();
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From 13345b6e1dccf7f0404111eb4081834eaf628563 Mon Sep 17 00:00:00 2001
From 5a4030acca5d80c89c7c5d456ce6d368c8b06c3d Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 21 Sep 2023 16:15:13 +0200
Subject: [PATCH 011/195] drm/amd/display: Simplify the per-CPU usage.
Subject: [PATCH 011/196] drm/amd/display: Simplify the per-CPU usage.
The fpu_recursion_depth counter is used to ensure that dc_fpu_begin()
can be invoked multiple times while the FPU-disable function itself is
@ -128,5 +128,5 @@ index 86f4c0e04654..8bd5926b47e0 100644
+ preempt_enable();
}
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From 533bd452afe45e25b387a11ab7748f9633995fee Mon Sep 17 00:00:00 2001
From 571a36167db85f02eee543494804642690368288 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 21 Sep 2023 16:15:14 +0200
Subject: [PATCH 012/195] drm/amd/display: Add a warning if the FPU is used
Subject: [PATCH 012/196] drm/amd/display: Add a warning if the FPU is used
outside from task context.
Add a warning if the FPU is used from any context other than task
@ -27,5 +27,5 @@ index 8bd5926b47e0..4ae4720535a5 100644
depth = __this_cpu_inc_return(fpu_recursion_depth);
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From 7c34575c85d40e203f3b18ccb63e526d978b1c78 Mon Sep 17 00:00:00 2001
From ac9bf004c54c34415488830ec5cbdd2c85a77619 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 21 Sep 2023 16:15:15 +0200
Subject: [PATCH 013/195] drm/amd/display: Move the memory allocation out of
Subject: [PATCH 013/196] drm/amd/display: Move the memory allocation out of
dcn21_validate_bandwidth_fp().
dcn21_validate_bandwidth_fp() is invoked while FPU access has been
@ -92,5 +92,5 @@ index c51badf7b68a..a81a0b9e6884 100644
void dcn21_clk_mgr_set_bw_params_wm_table(struct clk_bw_params *bw_params);
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From bf3d7bb0ed627ca816eb490b7ac2b26ec02e63d5 Mon Sep 17 00:00:00 2001
From 3f2c3255ff61a58382c5a9ade34c950b92fa2a10 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 21 Sep 2023 16:15:16 +0200
Subject: [PATCH 014/195] drm/amd/display: Move the memory allocation out of
Subject: [PATCH 014/196] drm/amd/display: Move the memory allocation out of
dcn20_validate_bandwidth_fp().
dcn20_validate_bandwidth_fp() is invoked while FPU access has been
@ -126,5 +126,5 @@ index a81a0b9e6884..b6c34198ddc8 100644
struct pp_smu_wm_range_sets *ranges,
struct _vcs_dpi_soc_bounding_box_st *loaded_bb);
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From 30de1da993f600f4771b3f3724ce0667f66ac69b Mon Sep 17 00:00:00 2001
From 1ae5a33601b65a31467bdb074b566d48296b1359 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 15 Aug 2022 17:29:50 +0200
Subject: [PATCH 015/195] net: Avoid the IPI to free the
Subject: [PATCH 015/196] net: Avoid the IPI to free the
skb_attempt_defer_free() collects a skbs, which was allocated on a
remote CPU, on a per-CPU list. These skbs are either freed on that
@ -40,7 +40,7 @@ index b8e60a20416b..ffa5248a90e2 100644
static inline void input_queue_head_incr(struct softnet_data *sd)
diff --git a/net/core/dev.c b/net/core/dev.c
index e480afb50d4c..227338b8cda8 100644
index d72a4ff689ca..3c08e3dd115b 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4705,15 +4705,6 @@ static void rps_trigger_softirq(void *data)
@ -92,7 +92,7 @@ index e480afb50d4c..227338b8cda8 100644
static int napi_threaded_poll(void *data)
{
struct napi_struct *napi = data;
@@ -11606,7 +11623,11 @@ static int __init net_dev_init(void)
@@ -11615,7 +11632,11 @@ static int __init net_dev_init(void)
INIT_CSD(&sd->csd, rps_trigger_softirq, sd);
sd->cpu = i;
#endif
@ -124,5 +124,5 @@ index 011d69029112..9a9fbe18bf2f 100644
static void skb_splice_csum_page(struct sk_buff *skb, struct page *page,
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From c17f2c393b160199e64c464189661283345d2e73 Mon Sep 17 00:00:00 2001
From d312cf65a294c2b7b473cb487f8bda3161b9d72d Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 7 Aug 2019 18:15:38 +0200
Subject: [PATCH 016/195] x86: Allow to enable RT
Subject: [PATCH 016/196] x86: Allow to enable RT
Allow to select RT.
@ -24,5 +24,5 @@ index fe3292e310d4..984068efd48b 100644
select HAVE_ARCH_SOFT_DIRTY
select MODULES_USE_ELF_RELA
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From 44e5f60ede7f2407fe12fa477b09f1a156e0634b Mon Sep 17 00:00:00 2001
From 06505d443d8b5674ebf4577ce6f372c939a36998 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 7 Nov 2019 17:49:20 +0100
Subject: [PATCH 017/195] x86: Enable RT also on 32bit
Subject: [PATCH 017/196] x86: Enable RT also on 32bit
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
@ -30,5 +30,5 @@ index 984068efd48b..1b445e289190 100644
select ARCH_USE_MEMTEST
select ARCH_USE_QUEUED_RWLOCKS
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From f4ac796216884ec5942d1d74fde86d1ed5f1f695 Mon Sep 17 00:00:00 2001
From a52edbca61751c78ec7f0a0d386c726f3ed609cd Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 1 Aug 2023 17:26:48 +0200
Subject: [PATCH 018/195] sched/rt: Don't try push tasks if there are none.
Subject: [PATCH 018/196] sched/rt: Don't try push tasks if there are none.
I have a RT task X at a high priority and cyclictest on each CPU with
lower priority than X's. If X is active and each CPU wakes their own
@ -59,5 +59,5 @@ index 904dd8534597..563161845e79 100644
rd->rto_cpu = -1;
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From ddbe9f49b78c945704d68bd7333b354b13527703 Mon Sep 17 00:00:00 2001
From 196e6be48c3feb1e5c17c651431b96dd16377788 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 1 Dec 2021 17:41:09 +0100
Subject: [PATCH 019/195] softirq: Use a dedicated thread for timer wakeups.
Subject: [PATCH 019/196] softirq: Use a dedicated thread for timer wakeups.
A timer/hrtimer softirq is raised in-IRQ context. With threaded
interrupts enabled or on PREEMPT_RT this leads to waking the ksoftirqd
@ -194,10 +194,10 @@ index 210cf5f8d92c..c29c30106eb8 100644
}
early_initcall(spawn_ksoftirqd);
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
index 760793998cdd..9f4d7ab03e39 100644
index edb0f821dcea..a7290012179a 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -1808,7 +1808,7 @@ void hrtimer_interrupt(struct clock_event_device *dev)
@@ -1809,7 +1809,7 @@ void hrtimer_interrupt(struct clock_event_device *dev)
if (!ktime_before(now, cpu_base->softirq_expires_next)) {
cpu_base->softirq_expires_next = KTIME_MAX;
cpu_base->softirq_activated = 1;
@ -206,7 +206,7 @@ index 760793998cdd..9f4d7ab03e39 100644
}
__hrtimer_run_queues(cpu_base, now, flags, HRTIMER_ACTIVE_HARD);
@@ -1921,7 +1921,7 @@ void hrtimer_run_queues(void)
@@ -1922,7 +1922,7 @@ void hrtimer_run_queues(void)
if (!ktime_before(now, cpu_base->softirq_expires_next)) {
cpu_base->softirq_expires_next = KTIME_MAX;
cpu_base->softirq_activated = 1;
@ -229,5 +229,5 @@ index 63a8ce7177dd..7cad6fe3c035 100644
/*
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From f089c645b517d22f97433deffaaedc9fd6f9b598 Mon Sep 17 00:00:00 2001
From 5cad67f914fcb553250226df80262091c892b24b Mon Sep 17 00:00:00 2001
From: Frederic Weisbecker <frederic@kernel.org>
Date: Tue, 5 Apr 2022 03:07:51 +0200
Subject: [PATCH 020/195] rcutorture: Also force sched priority to timersd on
Subject: [PATCH 020/196] rcutorture: Also force sched priority to timersd on
boosting test.
ksoftirqd is statically boosted to the priority level right above the
@ -76,5 +76,5 @@ index c29c30106eb8..1277abc94228 100644
static unsigned int local_pending_timers(void)
--
2.43.0
2.43.2

View File

@ -1,7 +1,7 @@
From ed846d5dfed571d1dc9ab756a1240a93018004b5 Mon Sep 17 00:00:00 2001
From 258f3ad84b7913d34d1ba886504d32c6035e9062 Mon Sep 17 00:00:00 2001
From: Frederic Weisbecker <frederic@kernel.org>
Date: Tue, 5 Apr 2022 03:07:52 +0200
Subject: [PATCH 021/195] tick: Fix timer storm since introduction of timersd
Subject: [PATCH 021/196] tick: Fix timer storm since introduction of timersd
If timers are pending while the tick is reprogrammed on nohz_mode, the
next expiry is not armed to fire now, it is delayed one jiffy forward
@ -98,7 +98,7 @@ index 1277abc94228..a4d359e2c2b5 100644
static void wake_timersd(void)
{
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 5cbd0cee83c0..2d7036714c81 100644
index 55cbc49f70d1..1a0ed106b192 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -795,7 +795,7 @@ static void tick_nohz_restart(struct tick_sched *ts, ktime_t now)
@ -111,5 +111,5 @@ index 5cbd0cee83c0..2d7036714c81 100644
static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu)
--
2.43.0
2.43.2

Some files were not shown because too many files have changed in this diff Show More