Existe-t-il des normes de démarrage pour les ordinateurs ARM?

Comme indiqué dans le titre de la question – il est commun de savoir qu'il existe des normes, selon lesquelles, si vous formatez votre pendrive, en y intégrant un chargeur de démarrage x86 et une partition avec le système, vous pouvez obtenir une clé USB x86 qui démarrera à peu près Tout ordinateur. Existe-t-il des normes similaires pour les ordinateurs (comme les ordinateurs portables) avec des processeurs ARM?

Il y avait un document à plusieurs pagines sur "Démarrage de ARM Linux". Malheureusement, le lien Web vers ce document est maintenant brisé, mais une copie semble être ici . Cependant, ce document n'a pas spécifié ni conseillé un chargeur de démarrage spécifique ni aucune organisation de fichiers / données sur les supports de démarrage.

Les éléments que je rappelle sont des éléments comme le noyau qui doivent être liés pour s'exécuter au début de la mémoire principale physique + 0x8000.

ARM Linux nécessite également une liste de différents paramètres de mémoire, de carte et de machine (appelés ARM Tags ou liste ATAG) pour passer dans un tampon mémoire au noyau lors du démarrage. Le chargeur de démarrage serait responsable de la construction des ATAG et de la ligne de commande du noyau dans les tampons de mémoire. Les ATAG ont apparemment été obsolètes et remplacés par Device Tree dans les nouvelles versions du noyau Linux.

Le chargeur de démarrage devait également configurer et initialiser la RAM (ce qui implique la configuration des horloges / oscillateurs), initialiser un port série ou une console et détecter le type de machine ARM.

Notez que la plupart des SoCs ARM utilisent une séquence de démarrage multi-étapes, et le chargeur de démarrage qui charge le noyau Linux est parfois le démarreur de troisième étape.

Il n'y a pas de normes. Chaque fournisseur SoC utilise son propre démarreur.