Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Jun 2023 15:08:00 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        Nuno Teixeira <eduardo@freebsd.org>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: keyboard doesn't work at Boot Menu
Message-ID:  <EB48AEA2-7027-4576-9A7D-F74BA9CF0912@yahoo.com>
In-Reply-To: <5875BDD2-B792-4FE1-8F42-99D996CAE71D@yahoo.com>
References:  <CAFDf7ULWff1YNA675-0ZdSgRM-t6RnCHO9RSTshPS0k8xfc6xw@mail.gmail.com> <99542360-6350-4636-A9EA-CA9BBCC93C60@yahoo.com> <CAFDf7U%2B3NR8ETaxg2W9j%2BXkm-sNaCdFSCXNMLA_GmxnRayeZuQ@mail.gmail.com> <5D8D94E2-781D-4945-B721-EDD0BF56A8F2@yahoo.com> <CAFDf7UKZmZZS6aKf=43-A_2eXDHq3%2BPcC3Hqbp1s7umrcJDA_g@mail.gmail.com> <C3CF38DD-A4F9-430F-9FD4-8BA6E5FCB2EA@yahoo.com> <D29F33D9-DF25-4BD7-853D-50DED525C4FF@yahoo.com> <70CC43FC-2055-409E-A94E-76F934C14AE2@yahoo.com> <5875BDD2-B792-4FE1-8F42-99D996CAE71D@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
[Commenting out beastie_disable=3D"YES" and loader_color=3D"NO"
in stable/13.]

On Jun 17, 2023, at 14:42, Mark Millard <marklmi@yahoo.com> wrote:

> [This time I add continuing the sequence to test the stable/13 =
snapshot.]
>=20
> On Jun 17, 2023, at 13:56, Mark Millard <marklmi@yahoo.com> wrote:
>=20
>> On Jun 17, 2023, at 13:53, Mark Millard <marklmi@yahoo.com> wrote:
>>=20
>>> I'm just making a status report for my experiments.
>>>=20
>>> I did a:
>>>=20
>>> dd if=3DFreeBSD-13.2-RELEASE-arm64-aarch64-RPI.img of=3D/dev/da1 =
bs=3D1m conv=3Dfsync,sync status=3Dprogress
>>>=20
>>> I made no adjustments.
>>>=20
>>> I then tried using the USB3 media to start a boot of
>>> a 8 GiByte RPi4B. It took my typing to the RPi
>>> keyboard just fine: I did not have to wait for
>>> the timeout when I hit <return>. The (official) RPi
>>> keyboard was plugged into a USB2 port.
>>>=20
>>> Unfortunately there is a known issue for my context where it
>>> gets:
>>>=20
>>> uhub_reattach_port: port 3 reset failed, error=3DUSB_ERR_TIMEOUT
>>> uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port =
3
>>> mountroot: waiting for device /dev/ufs/rootfs...
>>> Mounting from ufs:/dev/ufs/rootfs failed with error 19.
>>>=20
>>> So booting all the way requires me to make an adjustment
>>> in the config.txt by adding at the end something like:
>>>=20
>>>=20
>>> [all]
>>> #
>>> # Local addition that avoids USB3 SSD boot failures that look like:
>>> #   uhub_reattach_port: port ? reset failed, error=3DUSB_ERR_TIMEOUT
>>> #   uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling =
port ?
>>> initial_turbo=3D60
>>>=20
>>> [It appears that with modern EEPROM context, the RPi* is
>>> dynamically adjusting the frequency/voltage combinations
>>> even during early booting. The initial_turbo use delays
>>> that for the indicated number of seconds (up to 60 sec).
>>> FreeBSD seems to not handle the variability and the above
>>> gives FreeBSD a stable context for such properties for
>>> early booting.]
>>>=20
>>> I conclude that there is nothing about use of the RPi
>>> keyboard that stops it from working during early booting
>>> of 13.2-RELEASE. The RPi* firmware, U-Boot, and FreeBSD
>>> UEFI loader all work, other than possibly needing a
>>> initial_turbo addition (or analogous that would span
>>> at least that early boot time frame).
>>>=20
>>> If you had/have problems for the 13.2-RELEASE context,
>>> they are likely somehow specific to your context in some
>>> respect that deviates from the above.
>>>=20
>>> In some respects, investigating in the older context may
>>> be better than dealing with stable/13 . It may be keyboard
>>> specific in some way if the keyboard is not an RPi
>>> keyboard. I did not have a mouse plugged in. An Ethernet
>>> cable was plugged in for the booting.
>>=20
>> I forgot to mention having the HDMI connection plugged
>> into the HDMI port nearest the USB3 power connector.
>>=20
>> As I remember, the other port stops updating its display
>> at some point during the boot.
>>=20
>>> I just retried with the RPi keyboard plugged into a USB3
>>> port instead. It worked the same. (The boot media is also
>>> plugged into a USB3 port and is USB3 capable SSD media.)
>>>=20
>>> FYI:
>>>=20
>>> # more /boot/msdos/config.txt=20
>>> [all]
>>> arm_64bit=3D1
>>> dtparam=3Daudio=3Don,i2c_arm=3Don,spi=3Don
>>> dtoverlay=3Dmmc
>>> dtoverlay=3Ddisable-bt
>>> device_tree_address=3D0x4000
>>> kernel=3Du-boot.bin
>>>=20
>>> [pi4]
>>> hdmi_safe=3D1
>>> armstub=3Darmstub8-gic.bin
>>>=20
>>> [all]
>>> #
>>> # Local addition that avoids USB3 SSD boot failures that look like:
>>> #   uhub_reattach_port: port ? reset failed, error=3DUSB_ERR_TIMEOUT
>>> #   uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling =
port ?
>>> initial_turbo=3D60
>>>=20
>>> # more /boot/loader.conf
>>> # Configure USB OTG; see usb_template(4).
>>> hw.usb.template=3D3
>>> umodem_load=3D"YES"
>>> # Multiple console (serial+efi gop) enabled.
>>> boot_multicons=3D"YES"
>>> boot_serial=3D"YES"
>>> # Disable the beastie menu and color
>>> beastie_disable=3D"YES"
>>> loader_color=3D"NO"
>>>=20
>>> (That is unchanged from the image's /boot/loader.conf content.)
>>>=20
>>>=20
>>> I'll see about stable/13's snapshot with the u-boot.bin
>>> substitution.
>>>=20
>>>=20
>>> Side note: I've other USB3 boot media for which having
>>> usb_pgood_delay=3D2000 in U-Boot is sufficient but default
>>> U-Boot contexts do not find the media suring the USB scan.
>>> (There could be a better setting to use for all I know:
>>> sufficient but possibly not necessary.)
>=20
> This is based on:
>=20
> dd =
if=3DFreeBSD-13.2-STABLE-arm64-aarch64-RPI-20230615-894492f5bf4e-255597.im=
g of=3D/dev/da0 bs=3D1m conv=3Dfsync,sync status=3Dprogress
>=20
> First dealing with the U-Boot vintage-avoidance issue:
>=20
> # mount -onoatime -tmsdosfs /dev/da1s1 /media
> # mount -onoatime -tmsdosfs /dev/da0s1 /mnt
>=20
> # ls -Tld /media/u-boot.bin /mnt/u-boot.bin
> -rwxr-xr-x  1 root  wheel  601096 Apr  6 19:47:52 2023 =
/media/u-boot.bin
> -rwxr-xr-x  1 root  wheel  602552 Jun 14 19:43:46 2023 /mnt/u-boot.bin
>=20
> # cp -aRx /media/u-boot.bin /mnt/
>=20
> Then dealing with the initial_turbo issue:
>=20
> # diff /media/config.txt /mnt/config.txt=20
> 12,18d11
> <  < [all]
> < #
> < # Local addition that avoids USB3 SSD boot failures that look like:
> < #   uhub_reattach_port: port ? reset failed, error=3DUSB_ERR_TIMEOUT
> < #   uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling =
port ?
> < initial_turbo=3D60
> # cp -aRx /media/config.txt /mnt/
>=20
> Finally, checking things overall in the msdosfs:
>=20
> # diff -rq /media/ /mnt/
> Files /media/EFI/BOOT/bootaa64.efi and /mnt/EFI/BOOT/bootaa64.efi =
differ
>=20
> # ls -Tld /media/EFI/*/* /mnt/EFI/*/*
> -rwxr-xr-x  1 root  wheel  1180860 Apr  6 20:48:14 2023 =
/media/EFI/BOOT/bootaa64.efi
> -rwxr-xr-x  1 root  wheel  1182604 Jun 14 20:47:12 2023 =
/mnt/EFI/BOOT/bootaa64.efi
>=20
> So: No other differences than the vintage of the FreeBSD UEFI
> loader.
>=20
> This also booted just fine, taking my input to avoid having
> to wait for the timeout. The only difference is which USB3
> SSD was plugged in (the boot drive), in this case the one
> with a stable/13 snapshot instead of a releng/13.2 snapshot.
> The rest of the ports were as they had been.
>=20
> FYI:
>=20
> # uname -apKU
> FreeBSD generic 13.2-STABLE FreeBSD 13.2-STABLE =
stable/13-n255597-894492f5bf4e GENERIC arm64 aarch64 1302505 1302505
>=20
> Having confirmed this much for both releng/13.2 and stable.13 ,
> I'll go back and look at your notes about file content and the
> like and see if I notice any distinctions vs. the above that
> might be important.
>=20
>=20
> Notes:
>=20
> I doubt that the RPi4B EEPROM image vintage would contribute, but
> it is something we have not been explicit about.
>=20
> I do have various debug outputs enabled, including for
> the EEPROM stage. The following is what it reports=20
> about the EEPROM content ("BOOTLOADER release") at
> power down after FreeBSD is done:
>=20
> RPi: BOOTLOADER release VERSION:8ba17717 DATE: 2023/01/11 TIME: =
17:40:52
> BOOTMODE: 0x06 partition 63 build-ts BUILD_TIMESTAMP=3D1673458852 =
serial c740af3c boardrev d03115 stc 421180
> Halt: wake: 1 power_off: 0
>=20
> The "boardrev d03115" indicates a "C0T" Rev1.5 vintage part
> that does not require the bounce buffer work around since
> the wrapper logic is fixed. (FreeBSD keeps working as if
> the bounce buffer was required: it is the only style of
> operation the kernel code has for the category of part.)
>=20
> I have access to a 8 GiByte Rev 1.4 RPi4B and a Rev 1.1
> 4 GiByte RPi4B and could test those with the same media
> and such. All would have the same "BOOTLOADER release"
> as above, as I remember.
>=20
>=20
> A you sure you have the HDMI plugged into the correct HDMI
> port on the RPi4B, the one closest to the USB3 power
> connection?

[I have also changed the /bin/csh defaults to /bin/sh
(which is my normal context).]

# more /boot/loader.conf
# Configure USB OTG; see usb_template(4).
hw.usb.template=3D3
umodem_load=3D"YES"
# Multiple console (serial+efi gop) enabled.
boot_multicons=3D"YES"
boot_serial=3D"YES"
# Disable the beastie menu and color
# beastie_disable=3D"YES"
# loader_color=3D"NO"

# shutdown -r now

And the beastie shows up and works just fine,
operated from the USB RPi keyboard.


My bias here is to have minimal differences from
the RELEASE and snapshot builds relative to the
reported problem. I still see no evidence of any
problem with use of the RPi keyboard to control
booting.


=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?EB48AEA2-7027-4576-9A7D-F74BA9CF0912>