Raspberry PI information
Havard Eidnes <[email protected]>
| Newsgroups | gmane.os.netbsd.ports.arm |
|---|---|
| Message-ID | <[email protected]> |
Hi, I'm a long-time NetBSD user and developer, and have run NetBSD on various hardware (alpha, i386, amd64, sparc, sparc64, macppc...). I also run qemu-based arm and aarch64 systems, but have so far not had my hands on actual arm hardware. Raspberry PI is as far as I understand fairly "mainstream", so I'm looking at https://wiki.netbsd.org/ports/evbarm/raspberry_pi/ and I'm trying to figure out what works and what doesn't, and how one operates such systems. Am I the only one who comes out of this with waay too many un-answered questions than expected? Who's willing to work with me to improve this? Some examples: 1: status of RPI5 support: As of early 2024, NetBSD does not support the Raspberry Pi 5. but later under "NetBSD current" (unspecified version): RPI5 general support (UEFI firmware required) so which is it? 2: do we run on CM4? What about CM5? Same as RPI5? 3: CPU types does not mention any of the RPI5 variants 4: UEFI in general Under "NetBSD 10" is mentioned: RPI4 general support (UEFI firmware required) and under "NetBSD current" is mentioned: RPI5 general support (UEFI firmware required) There is a separate section named UEFI booting but it is IMHO short on concrete details for how to go about using it. Later under "RPI4 xhci" is mentioned One workaround is to switch to UEFI, but that leads to a 3GB memory limit and needing a monitor. Is this still accurate? Is it impossible to use a serial console when booting using the UEFI boot image? And is the 3GB memory limit still a thing? Makes it kind of pointless to try to run on an 8GB RPI5, no? 5: SD card structure and booting process This section finishes off with a non-clickable URL to https://www.raspberrypi.org/documentation/configuration/config-txt/boot.md which redirects to https://www.raspberrypi.com/documentation/computers/configuration.html and which starts by talking about raspi-config. Is that program even available on NetBSD? I also have a general sense that this section could be expanded. 6: Ability to boot from other media? I've understood that microSD cards are the easiest way to boot a raspberry pi, but that they wear out rather quickly. How does one use e.g. an eMMC card instead? Without going the route via first installing Linux? What about these newfangled nVME HATs available for use with the RPI5? 7: vcgencmd says The program vcgencmd, referenced in the boot section, can be found in pkgsrc/misc/raspberrypi-userland. No such mention is made in the boot section, though. And ... what's that supposed to do? 8: Updating the kernel ends with \todo Explain if updating firmware is necessary when e.g. moving from 8 to 9, or 9 to current. "current" here probably refers to pre-10, no? Could perhaps be updated with more current information? 9: RPI4 UEFI 3 GB says To work around bugs in hardware (that may or may not be fixed in recent RPI4) and because not all OSes have workarounds, the UEFI firmware's default is to limit RAM to 3GB. NetBSD 10 can be used with more, so this needs to be configured in UEFI. How? Does this also apply to RPI5 with -current? 10: Updating dtb files This whole section goes on about this without saying where these files are supposed to come from?!? 11: Updating the firmware It is somewhat likely that running NetBSD from a given branch X with firmware from a branch Y < X will not go well. It is unclear if firmware from a branch Y > X will work. It is standard practice to use firmware from the right branch. An alternative view is that newer firmware is usually better, and the the firmware needs to be new enough for the hardware. The first sentence is kind of scary. However, this does not say where the firmware (is supposed to) come from. Is it maintained inside the NetBSD source tree as a binary blob (it sounds like it)? I suppose it originally comes from elsewhere? Where, both in-tree and elsewhere? Is the information in this section indendent of the RPI model? 12: X11 on aarch64? Status is still "does not work"? 13: more loose ends There are quite a number of \todo entries elsewhere in the text. Generally, I was hoping for something here which could tell me how to do the system-dependent tasks from NetBSD. E.g. how does one go about adjusting the EEPROM settings, to enable booting from an nVME HAT? I'm assuming the Linux command to edit the EEPROM settings is not available, since it's not mentioned? Always referring to the "upstream" documentation gives the task of distringuishing betwen "system-dependent" and "Linux- dependent" parts of the documentation, and then finding out how to do the corresponding task in NetBSD is left as a task for the user to figure out. Surely, we can do better to make it easier to figure out this stuff for new and prospective users? Sorry for this being a bit negative; I'm willing to work with whoever is able to provide me with accurate information in this area. Best regards, - Håvard