Message ID | cover.1709219325.git.jean@foundationdevices.com |
---|---|
Headers | show |
Series | guix: Add xtensa-ath9k-elf platform. | expand |
On 2024-02-29, Jean-Pierre De Jesus DIAZ wrote: > As the ath9k-htc-firmware package requires a custom toolchain to build > the firmware I thought it was best to have a target for this specific > package as it modifies the default configuration of the Xtensa target in > GCC. > > To work around this a new target is added: xtensa-ath9k-elf. > > It uses binutils@2.33 and the patched version of GCC to properly compile > the firmware. So, as a result it allows using #:target keyword parameter > to cross-compile the firmware and avoids explicitly adding the cross > compiler in the NATIVE-INPUTS field. I am not in a position to evaluate the correctness of the proposed toolchain changes, but conceptually it makes sense. > As a result the ath9k-htc-firmware package was splitted into two and > uses the cmake-build-sytem now to use Guix's cross-compilation support > properly, so it removes the need for the ath9k-htc-firmware-objcopy.patch. This makes sense to me too. > The [PATCH 7/8] contains a patch that was already sent to: > > https://issues.guix.gnu.org/68366 Ok, one of these two patch series will need to be refactored depending on which gets applied first. > I don't have the hardware to test this firmware but the build produces > the same hashes for the firmware so it's safe to say that the firmware > should keep working. I do have some of the hardware to test, though have not had a chance to test the patches... will try to get on that. Obviously producing identical hashes is quite compelling; this is an excellent example of applying Reproducible Builds to refactoring code! > The hashes with this patch series: > > a5481cc67d962b217de1300121a6c7584e847cbe215442553d24a2173ca9202e /gnu/store/0i3zw28pvrr8l85fx79i8lq0f9vmgyjz-ath9k-htc-ar9271-firmware-1.4.0/lib/firmware/htc_9271.fw > eef84c16e3edad3fdec19c985d190b5ed3f5bd5bae20be5579681ab35f001406 /gnu/store/iqbd77grzy4sngkxz9lgyvk52apn8vzj-ath9k-htc-ar7010-firmware-1.4.0/lib/firmware/htc_7010.fw > > And the hashes in master at commit 75bad75367fcf2c289fae3b40dbcc850f92177be: > > a5481cc67d962b217de1300121a6c7584e847cbe215442553d24a2173ca9202e /gnu/store/0m45gn74b5bavxq77158i3l593lh082r-ath9k-htc-firmware-1.4.0/lib/firmware/htc_9271.fw > eef84c16e3edad3fdec19c985d190b5ed3f5bd5bae20be5579681ab35f001406 /gnu/store/0m45gn74b5bavxq77158i3l593lh082r-ath9k-htc-firmware-1.4.0/lib/firmware/htc_7010.fw Yay! live well, vagrant
Hi Jean-Pierre, Looks like this patch series had fallen through the cracks. Jean-Pierre De Jesus DIAZ <jean@foundationdevices.com> skribis: > As the ath9k-htc-firmware package requires a custom toolchain to build > the firmware I thought it was best to have a target for this specific > package as it modifies the default configuration of the Xtensa target in > GCC. > > To work around this a new target is added: xtensa-ath9k-elf. > > It uses binutils@2.33 and the patched version of GCC to properly compile > the firmware. So, as a result it allows using #:target keyword parameter > to cross-compile the firmware and avoids explicitly adding the cross > compiler in the NATIVE-INPUTS field. > > As a result the ath9k-htc-firmware package was splitted into two and > uses the cmake-build-sytem now to use Guix's cross-compilation support > properly, so it removes the need for the ath9k-htc-firmware-objcopy.patch. > > The [PATCH 7/8] contains a patch that was already sent to: > > https://issues.guix.gnu.org/68366 Neat. > I don't have the hardware to test this firmware but the build produces > the same hashes for the firmware so it's safe to say that the firmware > should keep working. > > The hashes with this patch series: > > a5481cc67d962b217de1300121a6c7584e847cbe215442553d24a2173ca9202e /gnu/store/0i3zw28pvrr8l85fx79i8lq0f9vmgyjz-ath9k-htc-ar9271-firmware-1.4.0/lib/firmware/htc_9271.fw > eef84c16e3edad3fdec19c985d190b5ed3f5bd5bae20be5579681ab35f001406 /gnu/store/iqbd77grzy4sngkxz9lgyvk52apn8vzj-ath9k-htc-ar7010-firmware-1.4.0/lib/firmware/htc_7010.fw > > And the hashes in master at commit 75bad75367fcf2c289fae3b40dbcc850f92177be: > > a5481cc67d962b217de1300121a6c7584e847cbe215442553d24a2173ca9202e /gnu/store/0m45gn74b5bavxq77158i3l593lh082r-ath9k-htc-firmware-1.4.0/lib/firmware/htc_9271.fw > eef84c16e3edad3fdec19c985d190b5ed3f5bd5bae20be5579681ab35f001406 /gnu/store/0m45gn74b5bavxq77158i3l593lh082r-ath9k-htc-firmware-1.4.0/lib/firmware/htc_7010.fw Excellent; thanks for taking the time to check this! (FWIW I use a WiFi dongle that relies on this firmware so you’ll soon hear from me if something goes wrong. ;-)) > doc: Add documentation for x86_64-linux-gnux32. > guix: Add xtensa-ath9k-elf platform. > gnu: ath9k-htc-firmware: Remove binary blobs. > gnu: ath9k-htc-firmware: Allow using other targets. > gnu: ath9k-htc-firmware: Use xtensa-ath9k-elf. > gnu: cross-binutils: Use binutils-2.33 for ath9k. > guix: cmake-build-system: Handle unknown systems. > gnu: ath9k-htc-firmware: Split package. Applied, thanks! Ludo’.