#904

Halt-to-quantum on one core breaks another core

Openbunnieopened 4mo ago

#902 reports this:

Additionally, assigning specific code to a specific core breaks the halt-to-quantum mechanism on another core. Details in the code.

I'm still trying to figure out if this is a bug or if this is "as-intended". The "code" as write just says this:

        // The plan was to give lower IDs to more important cores but putting the tx core in core 3 breaks
        // halt-to-quantum for the rx core. To demonstrate, switch core 0 and core 3 and compare the output
        // on the dbg pin.
        // Solution: Leave it like this for now, isolate the bug later.
        bio_ss.init_core(resource_grant.cores[3], dbg_kernel, config_clk)?;
        bio_ss.init_core(resource_grant.cores[1], clk_kernel, config_clk)?;
        bio_ss.init_core(resource_grant.cores[2], rx_kernel, config_rx)?;
        bio_ss.init_core(resource_grant.cores[0], tx_kernel, config_tx)?;

however I need to tease apart other potential confounders in this example because it might also be using clocked-edge quantum halts, which is known to have unintended cross-core effects.

Activity

1
bunnie4mo ago

@hanatonikkou it would be very helpful if you can provide either test cases for the CAN bus integration that would allow me to see this or provide a distilled test case.