On Mon, Oct 21, 2024 at 10:10:44PM GMT, Mark Kettenis wrote:
> > Date: Mon, 21 Oct 2024 20:40:38 +0200
> > From: Tobias Heider <tobias.hei...@stusta.de>
> > 
> > On Mon, Oct 21, 2024 at 08:33:53PM GMT, Mark Kettenis wrote:
> > > > Date: Mon, 21 Oct 2024 14:12:33 +0200
> > > > From: Tobias Heider <tobias.hei...@stusta.de>
> > > > 
> > > > On Mon, Oct 21, 2024 at 01:04:10PM GMT, Stuart Henderson wrote:
> > > > > On 2024/10/21 13:54, Sylvain Saboua wrote:
> > > > > > Are we to understand that the default wireless device
> > > > > > of the Apple M1 is not functional yet with openbsd ?
> > > > > 
> > > > > It was working on M1, but based on this report it looks like a change 
> > > > > on
> > > > > the MacOS side might have broken it for newer MacOS versions.
> > > > > 
> > > > 
> > > > Yeah, can confirm that it breaks with the latest macos update.
> > > > I haven't found the cause yet but I think it breaks at a lower layer,
> > > > battery charge level and some other things also seem to not work 
> > > > anymore.
> > > 
> > > That makes (some) sense.  The bwfm(4) device needs to be powered on
> > > using a GPIO pin that is managed by the SMC.  The SMC also manages the
> > > batter charge level.  So the problem is in aplsmc(4).
> > > 
> > > Most of the firmwares on these machines are tied to the OS and the
> > > stripped down macOS installation used by the Asahi boot process comes
> > > with its own copy of those firmwares.  So in general upgrading the
> > > main macOS installation will not break things.  But the SMC firmware
> > > is an exception as that is part of the system firmware.
> > > 
> > > Tobias, does Linux still work on the upgraded system?
> > 
> > It does yeah. I haven't seen an obvious fix in their tree yet.
> > aplsmc was also my guess, if I remember correctly it even throws
> > an error here:
> > https://github.com/openbsd/src/blob/master/sys/arch/arm64/dev/aplsmc.c#L259-L264
> 
> Hmm, does the diff below help?

Sadly not, still seeing:
aplsmc0 at simplebus0: can't get SRAM address

> 
> Index: arch/arm64/dev/aplsmc.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/arm64/dev/aplsmc.c,v
> diff -u -p -r1.25 aplsmc.c
> --- arch/arm64/dev/aplsmc.c   16 Jul 2023 16:11:11 -0000      1.25
> +++ arch/arm64/dev/aplsmc.c   21 Oct 2024 20:09:38 -0000
> @@ -126,6 +126,7 @@ struct aplsmc_softc {
>       struct rtkit_state      *sc_rs;
>       uint8_t                 sc_msgid;
>       uint64_t                sc_data;
> +     int                     sc_ready;
>  
>       struct gpio_controller  sc_gc;
>  
> @@ -272,6 +273,7 @@ aplsmc_attach(struct device *parent, str
>       printf("\n");
>  
>       aplsmc_sc = sc;
> +     sc->sc_ready = 1;
>  
>       node = OF_getnodebyname(faa->fa_node, "gpio");
>       if (node) {
> @@ -479,13 +481,13 @@ aplsmc_callback(void *arg, uint64_t data
>  {
>       struct aplsmc_softc *sc = arg;
>  
> -     if (SMC_CMD(data) == SMC_NOTIFICATION) {
> -             aplsmc_handle_notification(sc, data);
> +     if (!sc->sc_ready || SMC_CMD(data) != SMC_NOTIFICATION) {
> +             sc->sc_data = data;
> +             wakeup(&sc->sc_data);
>               return;
>       }
>  
> -     sc->sc_data = data;
> -     wakeup(&sc->sc_data);
> +     aplsmc_handle_notification(sc, data);
>  }
>  
>  int
> 

Reply via email to