Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Raspberry PI information



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


Home | Main Index | Thread Index | Old Index