Skip to content

Issues with BCM serial driver #171

@Ivan-Velickovic

Description

@Ivan-Velickovic

A while ago I tried to get the RPi4 into the seL4 CI due to how fragile the platform is. After some fixes/work I thought it was ready to go but then it got blocked on not working in release mode (seL4/ci-actions#278).

seL4test would just hang in release mode. What seems to be causing this is the BCM serial driver as applying this patch fixes everything:

diff --git a/libplatsupport/src/mach/bcm/serial.c b/libplatsupport/src/mach/bcm/serial.c
index 0091c15..ec77a7d 100644
--- a/libplatsupport/src/mach/bcm/serial.c
+++ b/libplatsupport/src/mach/bcm/serial.c
@@ -185,7 +185,7 @@ int uart_init(const struct dev_defn *defn, const ps_io_ops_t *ops, ps_chardevice
 
     }
 
-    uart_gpio_configure(defn->id, ops);
+    // uart_gpio_configure(defn->id, ops);
 
     uart_funcs.uart_init(defn, ops, dev);

I don't know anything about GPIO and don't really have the chance to understand it right now so I don't know why this works. In fact, I don't even remember why I tried commenting out this.

Debug mode of sel4test does not make use of the actual serial driver (which seems weird in my opinion now that I think about it) which is why this issue only came up in release mode.

If someone more familiar with GPIO could take a look at this that would be great.

Metadata

Metadata

Assignees

No one assigned

    Labels

    CIrelated to continuous integration and testinghelp wantedhw-testsel4test hardware builds + runs

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions