-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Prepare 15.1.rc1 #3977
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Prepare 15.1.rc1 #3977
Changes from all commits
Commits
Show all changes
29 commits
Select commit
Hold shift + click to select a range
668c849
Bump docker/build-push-action from 6.14.0 to 6.15.0 (#3909)
dependabot[bot] c72cf09
Bump docker/setup-buildx-action from 3.9.0 to 3.10.0 (#3910)
dependabot[bot] a39b8a9
Bump OS to development version 15.1.dev0
sairon 610ced0
Add test that no AppArmor denied events are produced (#3912)
sairon d4e11af
Update RPi firmware to fix boot with 2025-02-11 bootloader (#3913)
sairon 36d9057
Bump os-agent to v1.7.2 (#3914)
sairon 6c4f32a
Use shell script instead of OS Agent for device wipe (#3916)
sairon 4a1d2b7
Improve tests traceability, add test for Systemd dependency cycles (#…
sairon 3fb9c16
Linux: Update kernel to 6.12.18 (#3919)
sairon 173a438
Update Hailo PCIe driver and firmware to v4.20.1 (#3922)
sairon 04debe2
Fix runtime device permissions update in runc v1.2.x (#3921)
sairon 24640c1
Ensure haos-wipe service can be called only once per boot (#3924)
sairon 248af90
Bump OS to release version 15.0
sairon d259bf8
Linux: Update kernel to 6.12.19 (#3929)
sairon a3b0232
Add landing page test to the basic test set (#3928)
sairon 1e69fb2
Merge branch 'main' into dev
sairon 6d77c03
Bump docker/login-action from 3.3.0 to 3.4.0 (#3934)
dependabot[bot] fd2c16d
Move ODROID-N2/C2/C4 U-Boot patch to correct folder to fix eMMC issue…
sairon ce961e0
Add patches missing for ODROID-N2/C2/C4 to fix missing serial/I2C (#3…
sairon 0abfee2
Enable amdgpu SI and CIK support for x86 (#3957)
sairon 05830da
Change i915 to module for proper initialization in VM passthrough (#3…
sairon 15e59ea
Update generic_raw_uart and eq3_char_loop to latest versions (#3964)
jens-maus ff1eadf
Fix incorrect buildroot reference after #3964 merge (#3968)
sairon 73b6cce
Add Mellanox ConnectX-3 NIC support for kernel 6.12 (#3969)
greyltc ab6214b
Linux: Update kernel to 6.12.20 (#3971)
sairon 5e9c47a
Backport RPi patches for PIO/RP1 firmware probing errors (#3972)
sairon ed53f04
Set initial_turbo=0 in config.txt on Raspberry Pi 3 (#3973)
sairon 00203b8
Update Docker to v28.0.4 (#3974)
sairon 8407de3
Bump OS to pre-release version 15.1.rc1
sairon File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule buildroot
updated
8 files
File renamed without changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
44 changes: 44 additions & 0 deletions
44
...oard/raspberrypi/patches/linux/0005-misc-rp1-pio-Error-out-on-incompatible-firmware.patch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| From ab1d73e2b5101689fcd1737e588119b4fde3a5ff Mon Sep 17 00:00:00 2001 | ||
| From: Phil Elwell <phil@raspberrypi.com> | ||
| Date: Mon, 3 Feb 2025 14:44:08 +0000 | ||
| Subject: [PATCH] misc: rp1-pio: Error out on incompatible firmware | ||
|
|
||
| If the RP1 firmware has reported an error then return that from the PIO | ||
| probe function, otherwise defer the probing. | ||
|
|
||
| Link: https://github.com/raspberrypi/linux/issues/6642 | ||
|
|
||
| Signed-off-by: Phil Elwell <phil@raspberrypi.com> | ||
| --- | ||
| drivers/misc/rp1-pio.c | 11 +++++++++-- | ||
| 1 file changed, 9 insertions(+), 2 deletions(-) | ||
|
|
||
| diff --git a/drivers/misc/rp1-pio.c b/drivers/misc/rp1-pio.c | ||
| index dbf69279e313d..7e875811509f8 100644 | ||
| --- a/drivers/misc/rp1-pio.c | ||
| +++ b/drivers/misc/rp1-pio.c | ||
| @@ -1268,8 +1268,10 @@ static int rp1_pio_probe(struct platform_device *pdev) | ||
| return dev_err_probe(dev, pdev->id, "alias is missing\n"); | ||
|
|
||
| fw = devm_rp1_firmware_get(dev, dev->of_node); | ||
| - if (IS_ERR_OR_NULL(fw)) | ||
| - return dev_err_probe(dev, -ENOENT, "failed to contact RP1 firmware\n"); | ||
| + if (!fw) | ||
| + return dev_err_probe(dev, -EPROBE_DEFER, "failed to find RP1 firmware driver\n"); | ||
| + if (IS_ERR(fw)) | ||
| + return dev_err_probe(dev, PTR_ERR(fw), "failed to contact RP1 firmware\n"); | ||
| ret = rp1_firmware_get_feature(fw, FOURCC_PIO, &op_base, &op_count); | ||
| if (ret < 0) | ||
| return ret; | ||
| @@ -1346,6 +1348,11 @@ static void rp1_pio_remove(struct platform_device *pdev) | ||
|
|
||
| if (g_pio == pio) | ||
| g_pio = NULL; | ||
| + | ||
| + device_destroy(pio->dev_class, pio->dev_num); | ||
| + cdev_del(&pio->cdev); | ||
| + class_destroy(pio->dev_class); | ||
| + unregister_chrdev_region(pio->dev_num, 1); | ||
| } | ||
|
|
||
| static const struct of_device_id rp1_pio_ids[] = { |
105 changes: 105 additions & 0 deletions
105
...ternal/board/raspberrypi/patches/linux/0006-firmware-rp1-Linger-on-firmware-failure.patch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,105 @@ | ||
| From b1bcedb44c54a65a8e494158385eb23199572217 Mon Sep 17 00:00:00 2001 | ||
| From: Phil Elwell <phil@raspberrypi.com> | ||
| Date: Mon, 3 Feb 2025 14:51:52 +0000 | ||
| Subject: [PATCH] firmware: rp1: Linger on firmware failure | ||
|
|
||
| To avoid pointless retries, let the probe function succeed if the | ||
| firmware interface is configured correctly but the firmware is | ||
| incompatible. The value of the private drvdata field holds the outcome. | ||
|
|
||
| Link: https://github.com/raspberrypi/linux/issues/6642 | ||
|
|
||
| Signed-off-by: Phil Elwell <phil@raspberrypi.com> | ||
| --- | ||
| drivers/firmware/rp1.c | 28 ++++++++++++++-------------- | ||
| 1 file changed, 14 insertions(+), 14 deletions(-) | ||
|
|
||
| diff --git a/drivers/firmware/rp1.c b/drivers/firmware/rp1.c | ||
| index 0b0760ca77764..a258452c8b33e 100644 | ||
| --- a/drivers/firmware/rp1.c | ||
| +++ b/drivers/firmware/rp1.c | ||
| @@ -114,7 +114,8 @@ static void rp1_firmware_delete(struct kref *kref) | ||
|
|
||
| void rp1_firmware_put(struct rp1_firmware *fw) | ||
| { | ||
| - kref_put(&fw->consumers, rp1_firmware_delete); | ||
| + if (!IS_ERR_OR_NULL(fw)) | ||
| + kref_put(&fw->consumers, rp1_firmware_delete); | ||
| } | ||
| EXPORT_SYMBOL_GPL(rp1_firmware_put); | ||
|
|
||
| @@ -157,7 +158,7 @@ struct rp1_firmware *rp1_firmware_get(struct device_node *client) | ||
| const char *match = rp1_firmware_of_match[0].compatible; | ||
| struct platform_device *pdev; | ||
| struct device_node *fwnode; | ||
| - struct rp1_firmware *fw; | ||
| + struct rp1_firmware *fw = NULL; | ||
|
|
||
| if (!client) | ||
| return NULL; | ||
| @@ -166,17 +167,17 @@ struct rp1_firmware *rp1_firmware_get(struct device_node *client) | ||
| return NULL; | ||
| if (!of_device_is_compatible(fwnode, match)) { | ||
| of_node_put(fwnode); | ||
| - return NULL; | ||
| + return ERR_PTR(-ENXIO); | ||
| } | ||
|
|
||
| pdev = of_find_device_by_node(fwnode); | ||
| of_node_put(fwnode); | ||
|
|
||
| if (!pdev) | ||
| - goto err_exit; | ||
| + return ERR_PTR(-ENXIO); | ||
|
|
||
| fw = platform_get_drvdata(pdev); | ||
| - if (!fw) | ||
| + if (IS_ERR_OR_NULL(fw)) | ||
| goto err_exit; | ||
|
|
||
| if (!kref_get_unless_zero(&fw->consumers)) | ||
| @@ -188,7 +189,7 @@ struct rp1_firmware *rp1_firmware_get(struct device_node *client) | ||
|
|
||
| err_exit: | ||
| put_device(&pdev->dev); | ||
| - return NULL; | ||
| + return fw; | ||
| } | ||
| EXPORT_SYMBOL_GPL(rp1_firmware_get); | ||
|
|
||
| @@ -204,8 +205,8 @@ struct rp1_firmware *devm_rp1_firmware_get(struct device *dev, struct device_nod | ||
| int ret; | ||
|
|
||
| fw = rp1_firmware_get(client); | ||
| - if (!fw) | ||
| - return NULL; | ||
| + if (IS_ERR_OR_NULL(fw)) | ||
| + return fw; | ||
|
|
||
| ret = devm_add_action_or_reset(dev, devm_rp1_firmware_put, fw); | ||
| if (ret) | ||
| @@ -270,19 +271,18 @@ static int rp1_firmware_probe(struct platform_device *pdev) | ||
| init_completion(&fw->c); | ||
| kref_init(&fw->consumers); | ||
|
|
||
| - platform_set_drvdata(pdev, fw); | ||
| - | ||
| ret = rp1_firmware_message(fw, GET_FIRMWARE_VERSION, | ||
| NULL, 0, &version, sizeof(version)); | ||
| if (ret == sizeof(version)) { | ||
| dev_info(dev, "RP1 Firmware version %08x%08x%08x%08x%08x\n", | ||
| version[0], version[1], version[2], version[3], version[4]); | ||
| - ret = 0; | ||
| - } else if (ret >= 0) { | ||
| - ret = -EIO; | ||
| + platform_set_drvdata(pdev, fw); | ||
| + } else { | ||
| + rp1_firmware_put(fw); | ||
| + platform_set_drvdata(pdev, ERR_PTR(-ENOENT)); | ||
| } | ||
|
|
||
| - return ret; | ||
| + return 0; | ||
| } | ||
|
|
||
| static int rp1_firmware_remove(struct platform_device *pdev) | ||
32 changes: 32 additions & 0 deletions
32
...l/board/raspberrypi/patches/linux/0007-mailbox-rp1-Don-t-claim-channels-in-of_xlate.patch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| From 97e6955cef61340165e8ec276084841d335335e9 Mon Sep 17 00:00:00 2001 | ||
| From: Phil Elwell <phil@raspberrypi.com> | ||
| Date: Tue, 4 Feb 2025 13:18:45 +0000 | ||
| Subject: [PATCH] mailbox: rp1: Don't claim channels in of_xlate | ||
|
|
||
| The of_xlate method saves the calculated event mask in the con_priv | ||
| field. It also rejects subsequent attempt to use that channel because | ||
| the mask is non-zero, which causes a repeated instantiation of a client | ||
| driver to fail. | ||
|
|
||
| The of_xlate method is not meant to be a point of resource acquisition. | ||
| Leave the con_priv initialisation, but drop the test that it was | ||
| previously zero. | ||
|
|
||
| Signed-off-by: Phil Elwell <phil@raspberrypi.com> | ||
| --- | ||
| drivers/mailbox/rp1-mailbox.c | 2 -- | ||
| 1 file changed, 2 deletions(-) | ||
|
|
||
| diff --git a/drivers/mailbox/rp1-mailbox.c b/drivers/mailbox/rp1-mailbox.c | ||
| index bf71db1dd9fae..0e8af098b62b2 100644 | ||
| --- a/drivers/mailbox/rp1-mailbox.c | ||
| +++ b/drivers/mailbox/rp1-mailbox.c | ||
| @@ -133,8 +133,6 @@ static struct mbox_chan *rp1_mbox_xlate(struct mbox_controller *mbox, | ||
| return ERR_PTR(-EINVAL); | ||
|
|
||
| chan = &mbox->chans[doorbell]; | ||
| - if (chan->con_priv) | ||
| - return ERR_PTR(-EBUSY); | ||
|
|
||
| chan->con_priv = (void *)(uintptr_t)(1 << doorbell); | ||
|
|
34 changes: 34 additions & 0 deletions
34
.../board/raspberrypi/patches/linux/0008-misc-rp1-pio-Demote-fw-probe-error-to-warning.patch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| From c8cf0694d8ecd5acaa03c26fc404e66dea9308fd Mon Sep 17 00:00:00 2001 | ||
| From: Phil Elwell <phil@raspberrypi.com> | ||
| Date: Tue, 25 Feb 2025 12:16:33 +0000 | ||
| Subject: [PATCH] misc: rp1-pio: Demote fw probe error to warning | ||
|
|
||
| Support for the RP1 firmware mailbox API is rolling out to Pi 5 EEPROM | ||
| images. For most users, the fact that the PIO is not available is no | ||
| cause for alarm. Change the message to a warning, so that it does not | ||
| appear with "quiet" in cmdline.txt. | ||
|
|
||
| Link: https://github.com/raspberrypi/linux/issues/6642 | ||
|
|
||
| Signed-off-by: Phil Elwell <phil@raspberrypi.com> | ||
| --- | ||
| drivers/misc/rp1-pio.c | 6 ++++-- | ||
| 1 file changed, 4 insertions(+), 2 deletions(-) | ||
|
|
||
| diff --git a/drivers/misc/rp1-pio.c b/drivers/misc/rp1-pio.c | ||
| index 7e875811509f8..a04dc8edcf5b8 100644 | ||
| --- a/drivers/misc/rp1-pio.c | ||
| +++ b/drivers/misc/rp1-pio.c | ||
| @@ -1270,8 +1270,10 @@ static int rp1_pio_probe(struct platform_device *pdev) | ||
| fw = devm_rp1_firmware_get(dev, dev->of_node); | ||
| if (!fw) | ||
| return dev_err_probe(dev, -EPROBE_DEFER, "failed to find RP1 firmware driver\n"); | ||
| - if (IS_ERR(fw)) | ||
| - return dev_err_probe(dev, PTR_ERR(fw), "failed to contact RP1 firmware\n"); | ||
| + if (IS_ERR(fw)) { | ||
| + dev_warn(dev, "failed to contact RP1 firmware\n"); | ||
| + return PTR_ERR(fw); | ||
| + } | ||
| ret = rp1_firmware_get_feature(fw, FOURCC_PIO, &op_base, &op_count); | ||
| if (ret < 0) | ||
| return ret; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Ensure all call sites handle error pointers properly.
Returning
ERR_PTR(-ENXIO)instead ofNULLmakes it easier to distinguish between different error conditions, but be sure to update all callers ofrp1_firmware_getso they check for error pointers (usingIS_ERR()or similar) rather than justNULL.You can verify that all callers properly handle error pointers by running:
🏁 Script executed:
Length of output: 7024
Action Required: Update Error Handling in All Callers
The update to
rp1_firmware_getnow returns an error pointer (ERR_PTR(-ENXIO)) instead ofNULLon failure. However, our search shows that some call sites (for example, in the patches under0008-misc-rp1-pio-Demote-fw-probe-error-to-warning.patchand0005-misc-rp1-pio-Error-out-on-incompatible-firmware.patch) still first check for aNULLvalue usingif (!fw). Since an error pointer isn’tNULL, these checks won’t catch error conditions properly.Please update the callers to consistently use error-pointer checks (i.e. using
IS_ERR()orIS_ERR_OR_NULL()) rather than relying solely on aNULLcheck.buildroot-external/board/raspberrypi/patches/linux/0008-misc-rp1-pio-Demote-fw-probe-error-to-warning.patch:
Replace the existing
if (!fw)condition with anif (IS_ERR(fw))(or combinedIS_ERR_OR_NULL(fw)) check.buildroot-external/board/raspberrypi/patches/linux/0005-misc-rp1-pio-Error-out-on-incompatible-firmware.patch:
Update the corresponding
NULLcheck to useIS_ERR()so that all error cases are correctly detected.This adjustment is required to ensure that any error returned as an error pointer is properly handled by all call sites.