On 5/13/21 2:40 PM, Lev Serebryakov wrote:
On 13.05.2021 15:13, Henri Hennebert via freebsd-current wrote:

I’m not sure if this is an interesting data point or not,
but a warm boot without the card inserted succeeds after
a cold boot with the card inserted.

  It could explain, why my tests with "same code path" gave different results!

With a "cold" boot and without a card inserted did you see something like:

rtsx0: <2.0c Realtek ...
rtsx0: Card present
mmc0: <MMC/SD bus> on rtsx0
rtsx0: Interrupt card inserted/removed
rtsx0: Card absent
  When it panics, it panics before rtsx0 prints something in my case.

Does iwm0 / mmc0 is shown during boot?

can you try a verbose boot (boot -s)
 do you mean "boot -v"? :) It runs very fast, and there are not so much lines on the screen (is it possible to change screen reoslution before loading i915kms?)

OUPS yes boot -v

 Ok, now I've recorded cold boot without SD, without verbose, with my phone (yes, screenshots by photocamera, I fell so low!) and I was wrong, there is rtsx0:



rtsx0: <2.0c .....>
rtsx0: Card present
mmc0: <MMC/SD bus> on rtsx0
rtsx0: Interrupt card inserted/removed
rtsx0: Card absent
...

This must be the culprit this change from present/absent

PANIC! (without rtsx0 in stacktrace, again it is run_interrupt_driven_config_hooks()).

if you can't see the verbose output which is too fast on the display:
try a boot -p
 Oooops, keyboard is unresponsive after first pause and I can not unpause output :-(

 Looks like another bug of early boot — EFI boot can not access keywboard before it is detected as `atkbd` (keyboard in loader works!)


try to rebuild your kernel with the attached patch.



diff --git a/sys/dev/rtsx/rtsx.c b/sys/dev/rtsx/rtsx.c
index 4400fbef541..a2410d76fe8 100644
--- a/sys/dev/rtsx/rtsx.c
+++ b/sys/dev/rtsx/rtsx.c
@@ -3715,7 +3715,7 @@ rtsx_attach(device_t dev)
         * Schedule a card detection as we won't get an interrupt
         * if the card is inserted when we attach
         */
-       DELAY(500);
+       DELAY(1000);
        if (rtsx_is_card_present(sc))
                device_printf(sc->rtsx_dev, "Card present\n");
        else
_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to