
                 Utilisation de MILO (Alpha Miniloader Howto)

David A. Rusling, david.rusling@reo.mts.dec.com

   v0.84, 6 Dcembre 1996
     _________________________________________________________________

   _Ce document expose le fonctionnement du Miniloader, un programme pour
   les machines Alpha qui sert  initialiser le systme et dmarrer
   Linux. Le "Alpha Linux Miniloader" (pour tre exact) est galement
   dnomm MILO._
     _________________________________________________________________

1. Introduction

   Ce document expose le fonctionnement du logiciel MILO (Miniloader)
   pour Alpha AXP. Ce logiciel de console a pour fonction d'initialiser
   le systme Alpha AXP, de charger et dmarrer Linux et, pour finir, il
   met un PALcode  disposition de Linux.

1.1 Droits d'auteurs (Copyright)

   Ce document a t ralis en 1995, 1996, 1997 par David A Rusling. (c)
   Copyright 1995, 1996, 1997.

   Document traduit de l'anglais en 1997 par Frdric Aime
   (fred@castor.unice.fr) et "Les ditions du Soleil" (c) Copyright "Les
   ditions du Soleil" 1997. Maintenance de la version SGML par Miodrag
   Vallat (miodrag@multimania.com).

   _Copyright._ Comme il en est de tous les documents HOWTO pour Linux,
   cette documentation peut tre reproduite, distribue intgralement ou
   en partie seulement sur n'importe quel mdia, physique ou
   lectronique, du moment que cet avertissement sur les droits d'auteur
   est prsent sur toutes les copies. L'utilisation commerciale est
   autorise et encourage ; cependant l'auteur est _dsireux_ d'tre
   averti de ces utilisations. Vous pouvez traduire ce document dans
   n'importe quelle langue  partir du moment o cette note ainsi que la
   dcharge de responsabilit sont conserves intacte et qu'une notice
   prsentant le traducteur y figure.

   _Dcharge de responsabilit._ Bien qu'ayant essay d'inclure les
   informations les plus prcises et correctes  ma disposition, je ne
   peux garantir que l'utilisation faite de ce document n'aboutisse pas 
   des pertes de donnes ou de matriels. Je n'apporte ABSOLUMENT AUCUNE
   GARANTIE quant aux informations contenues dans ce document ; de ce
   fait je ne pourrais tre tenu, en aucun cas, pour responsable des
   consquences de son utilisation.

1.2 Nouvelles versions de ce document

   La dernire version de ce document est disponible  l'adresse
   suivante :
   ftp://gatekeeper.dec.com/pub/Digital/Linux-Alpha/Miniloader/docs et
   David Mosberger-Tang a eu l'amabilit de l'inclure sous la forme d'une
   page Web sur l'excellent site Linux pour Alpha :
   http://www.azstarnet.com/axplinux.

2. Qu'est-ce que MILO ?

   Sur machines Intel, le BIOS configure le systme et ensuite charge,
   depuis le secteur d'amorage d'un disque DOS, une image  excuter.
   Cela est en quelque sorte la fonction principale de MILO sur un
   systme Alpha. Il existe toutefois un certain nombre de diffrences
   entre BIOS et MILO, notamment le fait que MILO intgre certains
   pilotes de priphriques Linux inchangs. MILO est un logiciel appel
   FirmWare,  l'inverse de LILO qui dpend du logiciel FirmWare BIOS
   responsable de son chargement et de son excution en mmoire centrale.
   Les principales fonctions de MILO sont :

    1. PALcode ;
    2. Initialisation du gestionnaire de mmoire. (construction des
       tables de pages et mise en service de l'adressage virtuel) ;
    3. Logiciel d'affichage (Code d'mulation BIOS et TGA (21030)) ;
    4. Une partie du noyau Linux. Incluant, par exemple, un gestionnaire
       d'interruption qui fait office de noyau Linux ;
    5. Gestionnaires de priphriques en mode bloc (par exemple le pilote
       de disquettes) ;
    6. Un support des systmes de fichiers (ext2, MS-DOS et ISO9660) ;
    7. Un logiciel d'interface utilisateur (MILO) ;
    8. Une interface avec le noyau (configure le HWRPB et la cartographie
       de la mmoire spcifiques  linux) ;
    9. Configuration de la NVRAM (mmoire non volatile) pour la gestion
       de variables d'environnement.

   Les paragraphes suivants dcrivent ces fonctionnalits plus en dtail.

   Le PALcode peut tre peru comme une minuscule couche logicielle qui
   prpare le processeur Alpha en vue de l'utilisation d'un systme
   d'exploitation spcifique. Il fonctionne dans un mode spcial du
   processeur (PALmode) qui a certaines limitations mais utilise les
   instructions standard des processeurs Alpha, plus cinq instructions
   supplmentaires. De cette manire le processeur Alpha peut excuter
   une grande diversit de systmes d'exploitation tels que Windows NT,
   OpenVMS, Digital Unix et bien sr Linux. Le PALcode que MILO utilise
   (et in extenso Linux lui-mme) est, comme le reste de MILO un
   freeware. Il est inspir d'un exemple de PALcode pour Digital Unix que
   Digital fournissait avec ses premires cartes d'valuation. Les
   diffrences entre les PALcode sont dues  des diffrences qui existent
   dans la cartographie de la mmoire, dans la gestion des interruptions
   entre les diffrentes versions du processeur Alpha (par exemple le
   21066 possde une cartographie des entres-sorties diffrente de
   l'association du 21064 avec les contrleurs E/S de la famille 2107x,
   en effet le 21066 intgre un quivalent de ce contrleur sur son
   support).

   Pour que MILO fonctionne correctement il lui faut savoir quelle est la
   quantit de mmoire disponible,  quel endroit Linux peut
   ventuellement tre charg en mmoire, et il doit, de plus, tre
   capable d'allouer temporairement de la mmoire pour les pilotes de
   priphriques Linux. Le code contient une cartographie de la mmoire
   qui comporte des espaces disponibles pour une allocation de pages
   mmoire permanentes ou temporaires. Lorsqu'il dmarre, MILO se
   dcompresse  l'emplacement mmoire adquat. Lorsqu'il transfre le
   contrle au noyau Linux, il rserve un espace pour une instance
   compresse de lui-mme, pour le PALcode (indispensable au
   fonctionnement du noyau) ainsi que quelques structures de donnes.
   Cela laisse la quasi-totalit de la mmoire centrale libre pour Linux.

   L'opration finale du gestionnaire mmoire est de configurer et
   d'activer l'adressage virtuel afin que les structures de donnes
   attendues par Linux soient  leur place en mmoire virtuelle.

   MILO contient du code d'initialisation de l'affichage qui prpare le
   systme graphique  l'utilisation de Linux. Il dtectera et utilisera
   un adaptateur VGA s'il est prsent, sinon il essaiera d'utiliser le
   pilote TGA (21030). S'il y a chec de cette initialisation, MILO
   considrera qu'il n'y a aucun priphrique graphique sur le systme.
   L'mulation BIOS incluse dans MILO est en fait celle de Digital qui
   est capable de supporter la plupart, voire la totalit, des cartes
   graphiques disponibles.

   Les pilotes de priphriques de Linux rsident dans le noyau dont ils
   attendent un certain nombre de services. Certains de ces services sont
   directement fournis par le code du noyau Linux inclus dans MILO. Par
   exemple la gestion des interruptions est ralise par un ensemble de
   fonctions similaires  celles du vrai noyau Linux.

   La fonctionnalit la plus puissante de MILO est de permettre
   l'inclusion de n'importe quel pilote Linux sans apporter de
   modifications. Cela lui offre la possibilit d'tre compatible avec
   n'importe quel priphrique compatible avec Linux. MILO contient, en
   standard, tous les pilotes de priphriques en mode bloc du noyau
   Linux.

   MILO charge le noyau Linux depuis un vrai systme de fichiers plutt
   que depuis un secteur d'amorage ou d'autres emplacements tranges. Il
   supporte les systmes de fichiers MSDOS, EXT2 et ISO9660. Les fichiers
   GZIPps sont galement reconnus et recommands, en particulier lors
   d'un chargement  partir d'une disquette qui reste un support
   relativement lent. MILO les reconnat grce  leur suffixe _.gz_.

   Un gestionnaire de clavier rudimentaire est inclus dans MILO si bien
   qu'avec un pilote de priphrique vido d'une simplicit gale il
   dispose d'une interface utilisateur simple. Cette interface permet de
   lister les systmes de fichiers disponibles par le biais de pilotes de
   priphriques configurs, de dmarrer Linux ou des utilitaires de
   mises  jour de la mmoire flash, de dfinir des variables
   d'environnement agissant sur le dmarrage du systme. Comme avec LILO
   vous pouvez transmettre des arguments au noyau.

   MILO doit renseigner le noyau Linux sur la nature du matriel
   sous-jacent (type de carte mre, quantit de mmoire RAM totale et
   quantit libre). Il effectue cela en utilisant les informations
   contenues dans le HWRPB. Celles-ci sont disposes aux emplacements
   appropris en mmoire virtuelle juste avant que le contrle du systme
   ne soit transfr au noyau Linux.

3. Images prcompiles de MILO

   Si vous envisagez d'utiliser Linux sur un systme Alpha standard, un
   ensemble d'images prcompiles "standard" est  votre disposition.
   Celles-ci ainsi que leurs sources et bien d'autres choses
   intressantes sont disponibles  l'adresse suivante :
   ftp://gatekeeper.dec.com/pub/Digital/Linux-Alpha/Miniloader.

   Le sous-rpertoire images contient un rpertoire par type de systme
   standard (ex : AlphaPC64) adoptant les conventions de nomenclatures
   suivantes :

    1. MILO - Image de MILO, celle-ci peut tre dmarre de diverses
       manires ;
    2. fmu.gz - Utilitaire de gestion de la mmoire flash ;
    3. MILO.dd - Image d'une disquette bootable de MILO, pouvant tre
       reproduite grce  rawrite.exe sous DOS ou dd sous Linux.

   Le sous-rpertoire test-images contient un ensemble d'images
   exprimentales sous la mme forme que les prcdentes. Bien
   qu'exprimentales, ces images tendent  contenir les dernires
   fonctionnalits.

4. Comment compiler MILO ?

   La compilation de MILO s'effectue de manire indpendante du noyau.
   tant donn qu'il requiert des parties du noyau pour fonctionner, vous
   devrez, en premier lieu, configurer un noyau qui corresponde au
   systme auquel MILO est destin. Cela correspond  attribuer le mme
   numro de version  MILO que celui du noyau utilis pour le
   construire. Ainsi MILO-2.0.25.tar.gz sera compil  l'aide de
   linux-2.0.25.tar.gz. MILO peut tre compil correctement avec une
   version plus rcente du noyau, mais avec celle-ci ce ne sera pas le
   cas. tant donn que les librairies dynamiques sont compltement
   fonctionnelles, il existe deux versions des sources de MILO. Pour
   effectuer la compilation de MILO dans sa version ELF vous devez
   premirement extraire les sources standard puis appliquer un patch 
   ces dernires, correspondant au numro de version du patch ELF. Je
   considrerai, dans la suite de ce document, que les sources et les
   fichiers objets du noyau sont situs dans le rpertoire
   /usr/src/linux, et que le noyau a t correctement compil  l'aide de
   la commande make boot.

   Pour compiler MILO, allez dans le rpertoire contenant les sources de
   MILO et faites appel  la commande make de la manire suivante :

$ make KSRC=/usr/src/linux config

   De mme que pour la compilation du noyau, le systme vous posera un
   certain nombre de questions.

Echo output to the serial port (MINI_SERIAL_ECHO) [y]

   Il est utile d'utiliser le port srie comme redirection de la fonction
   du noyau printk ; celle-ci est effectue vers le port /dev/ttyS0. Si
   vous pouvez (et souhaitez) le faire, entrez 'y', sinon 'n'. Toutes les
   versions prcompiles de MILO utilisent le port COM1 comme cho.

Use Digital's BIOS emulation code (not free) \
                   (MINI_DIGITAL_BIOS_EMU) [y]

   Ce code est inclus en tant que bibliothque de fonctions dont la
   distribution est gratuite si elle est utilise sur une machine  base
   de processeur Alpha. Les sources n'en sont pas disponibles. Si vous
   rpondez 'n', l'mulation BIOS quivalente freeware sera compile.
   Sachez que vous ne pouvez pas encore choisir le systme de Digital
   utilisant le systme ELF (la bibliothque n'est pas encore prte).
   Vous devrez donc rpondre 'n'  cette question.

Build PALcode from sources (Warning this is dangerous) \
                   (MINI_BUILD_PALCODE_FROM_SOURCES) [n]

   Vous ne devrez utiliser cette option que si vous avez chang les
   sources du PALcode ; dans tous les autres cas, utilisez la version
   standard prcompile du PALcode fourni avec MILO.

   Tout est dsormais prt, vous pouvez lancer la compilation :

$ make KSRC=/usr/src/linux

   Lorsque la compilation s'est acheve avec succs, l'image de MILO est
   crite dans le fichier milo. Il y a un grand nombre de fichiers
   appels milo.*, ceux-ci devront tre ignors.

5. Comment charger MILO ?

   La manire la plus courante et la plus simple pour charger MILO est de
   le faire  partir de la console ARC. Cependant il est possible de
   raliser cette opration de diverses manires :
     * une disquette bootable dite failsafe ;
     * firmware ARC pour Windows NT ;
     * Windows NT AlphaBlOS ;
     * Console SRM de Digital ;
     * un Debug Monitor existant sur les cartes d'valuations de Digital,
     * flash/ROM.

5.1 Chargement de MILO depuis la console ARC pour Windows NT

   La plupart, sinon la totalit, des systmes  base d'Alpha AXP
   intgrent le firmware ARC pour Windows NT et cela est la mthode
   recommande pour dmarrer MILO et de surcrot Linux. Une fois que vous
   disposez de ce firmware et de la version adquate de MILO, la mthode
   est compltement gnrique.

   Le firmware ARC pour Windows NT offre un environnement dans lequel les
   programmes peuvent demander  celui-ci d'effectuer des oprations. Le
   programme OSLoader de Windows NT ralise exactement cela. Linload.exe
   est comparable mais beaucoup plus simple, il fait juste ce qui est
   ncessaire au chargement et  l'excution de MILO. Il charge le
   fichier image adquat en mmoire  l'adresse 0x00000000 puis il
   excute les deux instructions swap-PAL puis PALcall  cette adresse.
   MILO, comme Linux, utilise un PALcode diffrent de celui utilis par
   Windows NT, cela expliquant pourquoi l'instruction swap est
   ncessaire. MILO se reloge lui-mme  l'adresse 0x200000 puis poursuit
   la rinitialisation du PALcode  cette nouvelle adresse.

   Avant d'ajouter des options de dmarrage pour Linux, vous devrez
   copier linload.exe et MILO  un endroit que la console ARC pourra
   lire. Dans l'exemple suivant on suppose que le dmarrage s'effectue 
   partir d'une disquette au format DOS.

    1. Choisissez "Supplementary menu..."
    2. Au "Supplementary menu" choisissez "Set up the system..."
    3. Au "Setup menu" choisissez "Manage boot selection menu..."
    4. Dans "Boot selections menu" choisissez "Add a boot selection"
    5. Choisissez "Floppy Disk 0"
    6. Entrez "linload.exe" dans la rubrique OSLOADER
    7. Rpondez "yes"  la question suivante (qui stipule que linload.exe
       est au mme endroit que le systme d'exploitation ; pour la
       console ARC, MILO est vu comme un systme d'exploitation  part
       entire)
    8. Entrez '\' ensuite (stipulant que la racine du systme est la
       racine de notre disquette)
    9. Entrez le nom de ce choix de dmarrage (Linux par exemple !)
   10. Rpondez 'No'  la question 'Initialize debugger at boot time ?'
   11. Vous vous retrouvez maintenant dans la section "Boot selections
       menu" : choisissez "Change a boot selection option" et
       slectionnez le nom que vous avez choisi ci-dessus dans le but de
       l'diter.
   12. Avec les flches, slectionnez "OSLOADFILENAME" puis saisissez le
       nom de l'image MILO que vous souhaitez utiliser. Par exemple
       noname.arc ou milo suivi de Entre.
   13. Retournez  la section "Boot Selections menu"  l'aide de la
       touche Esc
   14. Tapez la touche Esc de nouveau et choisissez "Supplementary menu,
       and save changes"
   15. Retournez au "Boot menu" et vous pouvez alors essayer de dmarrer
       MILO.

   Aprs avoir ralis cela, vous devriez avoir un 'boot selection' de la
   forme :

LOADIDENTIFIER=Linux
SYSTEMPARTITION=multi(0)disk(0)fdisk(0)
OSLOADER=multi(0)disk(0)fdisk(0)\linload.exe
OSLOADPARTITION=multi(0)disk(0)fdisk(0)
OSLOADFILENAME=\noname.arc
OSLOADOPTIONS=

   Vous pouvez dsormais dmarrer MILO (puis Linux). Vous pouvez aussi
   charger linload.exe et MILO depuis un systme de fichiers que Windows
   NT comprend. Par exemple NTFS ou DOS sur un disque dur.

   Le contenu de la variable OSLOADOPTIONS est pass  MILO qui
   l'interprte comme une commande. Donc, pour dmarrer Linux sans
   attente, il faudra fournir une valeur du type :

boot sda2:vmlinux.gz root=/dev/sda2

   Reportez-vous  la section L'interface utilisateur de MILO pour de
   plus amples renseignements sur les commandes disponibles.

   Une autre mthode de dmarrage de MILO via la console ARC (bien que
   tortueuse) est d'appeler MILO fwupdate.exe puis de choisir l'option
   'Upgrade Firmware'.

5.2 Dmarrage de MILO depuis l'AlphaBIOS Windows NT

   Avec l'apparition des machines de la srie XLT, Digital a chang la
   console ARC pour ses systmes Windows NT et l'a remplace par
   l'AlphaBIOS. Cette nouvelle console offre l'avantage d'une plus grande
   convivialit. Ce changement d'interface implique un changement de
   procdure de configuration pour ceux qui souhaitent dmarrer Linux
   pour Alpha dans ce contexte.

   La premire chose  faire est d'installer la dernire version de
   l'AlphaBIOS sur votre systme. Celle-ci est disponible  l'adresse
   suivante : http://www.windows.digital.com/support/sysoft.htp.

   Tlchargez le fichier ZIP, dcompactez-le et installez-le comme suit
   :
    1. Copiez le fichier sur une disquette DOS ;
    2. Allumez l'ordinateur et insrez la disquette. Lors de l'affichage
       des premires informations  l'cran, enfoncez la touche F2 pour
       entrer dans le setup ;
    3. Choisissez "Upgrade AlphaBIOS" ;
    4. Suivez les instructions.

   Une fois que l'AlphaBIOS est mis  jour, vous pouvez dmarrer votre
   machine comme suit :
    1. Crez une disquette DOS contenant les fichiers linload.exe et
       milo ;
    2. Allumez le systme et entrez dans le setup ;
    3. Choisissez "Utilities->OS Selection Setup" ;
    4. Appuyez sur INSERT pour ajouter une nouvelle entre ;
    5. Pour "Boot Name" entrez un nom de votre choix (ici Linux) puis
       pressez Tab pour changer de champ ;
    6. Avec les flches, choisissez 'A:' pour la variable "Boot File is",
       passez au champ suivant ;
    7. Entrez "linload.exe". Deux fois TAB ;
    8. Entrez "\" pour la variable "OS Path load file" ;
    9. Pressez ENTREE pour valider.

    ce moment l'AlphaBIOS devrait afficher une bote de dialogue
   angoissante indiquant : "Warning: Operating System Selection not
   valid!". Ne tenez pas compte de cette erreur (cela ne pose de problme
   qu' NT), pressez Entre pour valider.
    1. Pressez F10 puis Entre pour valider ces changements ;
    2. Pressez Esc jusqu' arriver  l'cran d'accueil ;
    3. Choisissez,  l'aide des flches, l'entre que vous venez de
       saisir, pressez Entre pour lancer MILO.

   Si la premire partition de votre disque dur est un systme de
   fichiers DOS de petite taille destin au dmarrage (ainsi que la
   procdure d'installation le recommande), lorsque Linux sera install,
   vous devrez y copier linload.exe et MILO. Au dmarrage suivant, vous
   devrez configurer votre firmware de telle sorte qu'il aille chercher
   ces programmes  l'emplacement voulu. Pour ce faire je vous recommande
   d'utiliser la dmarche suivante :
    1. Entrez dans le setup (F2  l'cran de dmarrage) ;
    2. Choisissez "Utilities->OS Selection setup" ;
    3. Slectionnez l'entre correspondant  Linux, puis pressez F6 pour
       la modifier ;
    4. Placez le curseur sur l'entre correspondant  la partie
       priphrique de la ligne "Boot File" (device pour les versions en
       Anglais). Avec les flches, choisissez la partition sur laquelle
       rsident linload.exe et MILO. Appuyez sur Entre pour valider.
    5. Si vous souhaitez que votre systme dmarre automatiquement aprs
       le chargement de MILO positionnez-vous ( l'aide de la touche TAB)
       sur la variable "OS Options" puis spcifiez ici quelle est la
       ligne de commande  fournir  MILO, par exemple : "boot
       sda2:vmlinux.gz". Pressez Entre pour valider ;
    6. Utilisez la touche F10 pour sauvegarder les modifications.

   Cela fait que l'utilisation de Linux sur une plate-forme utilisant
   AlphaBIOS devient quasiment identique  celles utilisant la console
   ARC.

5.3 Dmarrage de MILO depuis le Debug Monitor des cartes d'valuation

   Les cartes d'valuation (et souvent les cartes conues  partir de
   leur exemple) proposent un logiciel appel "debug monitor".
   Reportez-vous  la documentation de votre systme avant d'envisager
   cette possibilit. Les systmes suivants _proposent_ cette
   fonctionnalit :
     * AlphaPC64 (Section AlphaPC64 (Cabriolet))
     * EB64+ (Section EB 64+)
     * EB66+ (Section EB 66+)
     * EB164 (Section EB 164)
     * PC164 (Section PC164)

   Sachez avant toute chose que, sur certaines anciennes versions, ce
   logiciel n'inclut pas de gestionnaire cran / clavier. Vous devrez
   donc vous prparer  connecter un terminal srie  votre systme. Son
   interface est trs simple et une commande d'aide (help) documente une
   grande quantit de commandes. Les plus intressantes de ces commandes
   incluent les mots boot et load.

   Le debug monitor peut charger une image  partir du rseau (netboot)
   ou d'une disquette (flboot). Dans tous les cas, l'image doit tre
   charge  l'adresse 0x200000 (utilisez la commande bootadr 200000).

   Si l'image se trouve sur une disquette (notez que le seul format de
   disquette reconnu est DOS) vous devrez utiliser la commande suivante :

AlphaPC64> flboot <MILO-image-name>

5.4 Chargement de MILO depuis une disquette de dmarrage failsafe

   D'aprs les informations _dont je dispose_, seul l'AXPpci33 propose la
   reconnaissance de secteur d'amorage de type failsafe floppy (Section
   AXPpci33 (Noname)).

   Si vous ne disposez pas d'une image MILO standard prcompile, vous
   devrez confectionner une disquette au format SRM. Une fois MILO
   compil, vous devrez excuter les instructions suivantes sous Digital
   Unix :

fddisk -fmt /dev/rfd0a
cat mboot bootm > /dev/rfd0a
disklabel -rw rfd0a lrx231 mboot bootm

   Ou bien les commandes suivantes sous Linux :

cat mboot bootm > /dev/fd0

   Si vous disposez d'une image MILO prcompile vous pourrez construire
   la disquette de la manire suivante :

dd if=MILO.dd of=/dev/fd0

5.5 Dmarrage de MILO  partir de la mmoire Flash

   Il existe certains systmes qui permettent d'intgrer MILO directement
   dans la PROM Flash, permettant ainsi le dmarrage direct de Linux
   (sans avoir  utiliser de console du type ARC) :
     * AlphaPC64 (Section AlphaPC64 (Cabriolet))
     * EB64+ (Section EB 64+)
     * EB66+ (Section EB 66+)
     * EB164 (Section EB 164)
     * PC164 (Section PC164)

5.6 Dmarrage de MILO par le biais de la console SRM

   La console SRM (abrviation de System Reference Manual) ne reconnat
   aucun systme de fichiers ni mme aucune partition disque. Elle
   s'attend tout simplement  trouver le logiciel d'amorage  une
   position physique dmarrant  un emplacement donn (il s'agit d'un
   offset ou position relative). L'information dcrivant ce logiciel
   d'amorage (sa taille et sa position relative) est dcrite dans le
   premier bloc de 512 octets du disque. Pour charger MILO depuis la SRM
   vous devez gnrer cette structure de donnes en bonne et due forme
   sur un support que la console peut atteindre. Cela explique
   l'existence des fichiers mboot et bootm.

   Pour charger MILO depuis un priphrique de dmarrage, compilez mboot
   et bootm puis crivez-les sur disque  l'aide de la commande
   suivante :

$ cat mboot bootm > /dev/fd0

   ou bien tlchargez une image approprie de MILO  partir d'un site
   Web, puis utilisez soit RAWRITE.EXE soit dd pour l'inscrire sur
   disque.

   Cela fait, vous pouvez envisager de dmarrer MILO depuis la console
   SRM, puis d'utiliser une de ses nombreuses commandes pour dmarrer.
   Par exemple, pour dmarrer depuis une disquette, vous devrez effectuer
   l'opration suivante :

>>>boot dva0
(boot dva0.0.0.0.1 -flags 0)
block 0 of dva0.0.0.0.1 is a valid boot block
reading 621 blocks from dva0.0.0.0.1
bootstrap code read in
base = 112000, image-start = 0, image-bytes 4da00
initializing HWRPB at 2000
initializing page table at 104000
 initializing machine state
setting affinity to the primary CPU
jumping to bootstrap code
MILO Stub: V1.1
Unzipping MILO into position
Allocating memory for unzip
####...

   Les systmes suivants sont compatibles avec la console SRM :
     * Noname (Section AXPpci33 (Noname))
     * AlphaPC64 (Section AlphaPC64 (Cabriolet))
     * EB164 (Section EB 164)
     * PC164 (Section PC164)

5.7 Informations spcifiques  certains systmes

  AXPpci33 (Noname)

   La carte Noname est capable de charger MILO depuis une console ARC ou
   SRM ou depuis une disquette failsafe. Un utilitaire de gestion de la
   mmoire PROM flash, excutable depuis MILO permet de copier ce dernier
   en mmoire flash. En revanche, nous tenons  vous avertir que cette
   manipulation est trs prilleuse car la Noname ne comportant que 256
   Ko de mmoire flash, elle ne peut contenir qu'une image en PROM. Si
   l'image que vous copiez en flash est corrompue, votre systme ne
   dmarrera plus.

   La mthode de dmarrage des cartes Noname est contrle par les
   jumpers J29 et J28. Ils sont disposs comme suit :

Numro de broche   4
     J29       2 x x x 6
               1 x x x 5


     J28       2 x x x 6
               1 x x x 5
                   3

   Les deux options de configuration qui nous intressent sont sur J28,
   dont les plots 1-3, qui dmarrent la console depuis la flash et J29,
   dont les plots 1-3 permettent de dmarrer la console depuis une
   disquette. La seconde option est celle dont vous avez besoin pour
   dmarrer MILO la premire fois. Une fois que les jumpers auront t
   configurs pour l'utilisation d'une disquette de dmarrage, insrez la
   disquette contenant MILO en version bootable dans le lecteur puis
   relancez l'ordinateur. En l'espace de quelques secondes (aprs
   l'extinction de la lumire du lecteur), vous devrez constater que
   l'cran passe du noir au blanc et y lire les informations relatives 
   l'excution de MILO. Si les aspects techniques vous intressent,
   sachez que la carte Noname charge le contenu de la disquette 
   l'adresse 0x104000 et les images provenant de la mmoire flash en
   0x100000. Pour cette raison, MILO intgre son PALcode  l'adresse
   0x200000. Lors de son dmarrage, il se reloge lui-mme  l'adresse
   correcte.

  AlphaPC64 (Cabriolet)

   L'AlphaPC64 est dot, en standard, du Firmware Windows NT (Section
   Chargement de MILO depuis la console ARC pour Windows NT), de la
   console SRM (Section Dmarrage de MILO par le biais de la console SRM)
   et du Debug Monitor (Section Dmarrage de MILO depuis le debug monitor
   des cartes d'valuation). Ces images sont en flash et il reste de la
   place dans cette mmoire pour ajouter l'image de MILO de manire 
   pouvoir dmarrer MILO directement depuis la PROM. Un utilitaire de
   gestion de la mmoire flash est disponible sous MILO, ainsi il est
   possible d'intgrer MILO  la mmoire flash lorsque celui-ci s'excute
   (Section Excution du gestionnaire de mmoire flash). Ce procd
   accepte l'utilisation de variables d'environnement MILO.

   Il est possible de choisir parmi les options de dmarrage (ARC, SRM,
   MILO) en utilisant une combinaison de jumpers et de dfinir des
   options de dmarrage qui seront sauvegardes dans la NVRAM de
   l'horloge TOY ("CMOS").

   Il s'agit du jumper J2 ; les bits 6 et 7 ont la fonction suivante :
     * SP Bit 6 doit toujours tre ouvert (pas de jumper) ; dans le cas
       contraire le mini-debugger sera excut.
     * SP Bit 7 ferm : Excuter l'image dfinie dans la NVRAM
     * SP Bit 7 ouvert : Excuter la premire image.

   Donc, si le SP Bit 7 est ouvert, le Debug Monitor sera excut car il
   est toujours positionn en premire place dans la PROM. Et si le SP
   Bit 7 est ferm, l'image excute sera celle dfinie dans l'horloge
   systme (TOY). L'ARC, le Debug Monitor et MILO acceptent cette
   option ; il faut, cependant, tre trs prudent lors de son
   utilisation. Par exemple, vous ne pouvez pas dfinir d'option qui vous
   permettra de dmarrer MILO au dmarrage suivant : lors de
   l'utilisation de la console ARC, cette dernire vous permet de passer
   en mode Debug Monitor ou ARC lors du dmarrage, mais elle ne permet
   pas de passer en mode MILO.

   Pour inclure MILO dans la mmoire flash via le Debug Monitor, vous
   aurez besoin d'une image adquate (dite flashable). La commande de
   compilation est : make MILO.rom, mais vous pouvez aussi construire une
   image rom  l'aide de l'outil makerom du Debug Monitor.

> makerom -v -i7 -1200000 MILO -o mini.flash

   (tapez makerom pour comprendre ce que signifient les paramtres, '7'
   reprsente un identificateur d'image flash utilis par la SROM et
   -l200000 indique l'adresse de chargement de cette image).

   Pour charger cette image en mmoire, utilisez une des commandes
   flload, netload, ...  l'adresse 0x200000, puis insrez l'image en
   mmoire flash de la manire suivante :

AlphaPC64> flash 200000 8

   200000 est l'adresse de chargement et 8 est le numro du segment de
   mmoire  utiliser. Il y a 16 segments de 64 Ko (soit 512 Ko) dans la
   SROM. (Le Debug Monitor est au segment 0 et l'ARC au segment 4).

   Dfinissez l'image que la SROM va excuter au dmarrage en donnant une
   valeur  la variable TOY bootopt :

AlphaPC64> bootopt 131

   (131 indique la 3me image, 129 la 1re image, 130 la 2me, etc...)

   teignez la machine, mettez le jumper 7 en place et redmarrez la
   machine. Vous devrez alors pouvoir observer MILO s'excuter.
   Flicitations ! Vous pouvez remonter la machine (enfin !). Si ce n'est
   pas le cas, conservez le tournevis pour plus tard, et enlevez 
   nouveau le jumper 7 pour redmarrer en mode Debug Monitor, reprenez
   les tapes les unes  la suite des autres, mthodiquement, en prenant
   garde de ne rien oublier.

  EB 66+

   La carte EB66+, comme toutes les cartes d'valuation de Digital,
   contient le Debug Monitor, et de ce fait celui-ci va nous permettre de
   charger MILO. Souvent (mais pas toujours), les cartes drives des
   cartes d'valuation possdent ce logiciel. Habituellement, ces cartes
   contiennent la console ARC. Un utilitaire de gestion de la mmoire
   flash est disponible sous MILO, ainsi il est possible d'intgrer MILO
    la mmoire flash lorsque celui-ci s'excute (Section Excution du
   gestionnaire de mmoire flash). Ce systme accepte les variables
   d'environnement MILO.

   Ces cartes disposent de plusieurs images en mmoire flash contrles
   par jumper. Les deux bancs de jumpers sont J18 et J16 et se situent au
   centre bas de la carte (considrant que le processeur Alpha se situe
   en haut de la carte). Vous pouvez choisir l'option de dmarrage par
   ces jumpers (et MILO lorsqu'il est charg) ainsi qu'une variable
   d'environnement sauvegarde dans la mmoire non volatile (NVRAM TOY).

   jumper 7-8 Ferm signifie qu'il faut utiliser l'image dsigne par la
   variable bootopt, lorsqu'il est ouvert le Debug Monitor est excut.

   Pour le reste de la configuration, reportez vous au paragraphe
   prcdent traitant de l'AlphaPC64 (Section AlphaPC64 (Cabriolet)).

  EB 64+ / Aspen Alpine

   Cette carte est trs similaire  l'AlphaPC64 except qu'elle ne
   contient pas de mmoire flash utilisable par MILO. Cette carte possde
   deux ROMS, l'une contenant l'ARC, l'autre contenant le Debug Monitor.

   L'Aspen Alpine, quant  elle, ne contient qu'une ROM o est grave la
   console ARC.

  Universal Desktop Box (Multia)

   C'est une station ultra compacte  base d'AXP 21066 qui intgre un
   sous-systme graphique TGA (21030). De plus il n'y a de place que pour
   une carte graphique PCI demi-hauteur. Elle utilise la console ARC
   (Windows NT) et il est donc recommand de l'utiliser pour le dmarrage
   de MILO (Section Chargement de MILO depuis la console ARC pour Windows
   NT).

  EB 164

   La carte EB164, comme toutes les cartes d'valuation de Digital,
   contient le Debug Monitor, et de ce fait celui-ci va nous permettre de
   charger MILO. Souvent (mais pas toujours) les cartes drives des
   cartes d'valuation possdent ce logiciel. Habituellement, ces cartes
   contiennent la console ARC. Un utilitaire de gestion de la mmoire
   flash est disponible sous MILO, ainsi il est possible d'intgrer MILO
    la mmoire flash lorsque celui-ci s'excute (Section Excution du
   gestionnaire de mmoire flash). Ce systme accepte les variables
   d'environnement MILO. La console SRM est, de plus, disponible (Section
   Dmarrage de MILO par le biais de la console SRM).

   Ces cartes disposent de plusieurs images en mmoire flash contrles
   par jumper. Le banc de deux jumpers s'appelle J1 et se situe en bas 
   gauche de la carte (considrant que le processeur Alpha se situe en
   haut de la carte). Vous pouvez choisir l'option de dmarrage par ces
   jumpers (et MILO lorsqu'il est charg) ainsi qu'une variable
   d'environnement sauvegarde dans la mmoire non volatile (NVRAM TOY).

   jumper SP-11 de J1 ferm signifie qu'il faut utiliser l'image dsigne
   par la variable bootopt ; lorsqu'il est ouvert le Debug Monitor est
   excut.

   Pour le reste de la configuration, reportez-vous au paragraphe
   prcdent traitant de l'AlphaPC64 (Section AlphaPC64 (Cabriolet)).

  PC164

   La carte PC164, comme toutes les cartes d'valuation de Digital,
   contient le Debug Monitor, et de ce fait celui-ci va nous permettre de
   charger MILO. Souvent (mais pas toujours) les cartes drives des
   cartes d'valuation possdent ce logiciel. Habituellement, ces cartes
   contiennent la console ARC. Un utilitaire de gestion de la mmoire
   flash est disponible sous MILO, ainsi il est possible d'intgrer MILO
    la mmoire flash lorsque celui-ci s'excute (Section Excution du
   gestionnaire de mmoire flash). Ce systme accepte les variables
   d'environnement MILO. La console SRM est, de plus, disponible (Section
   Dmarrage de MILO par le biais de la console SRM).

   Ces cartes disposent de plusieurs images en mmoire flash contrles
   par jumpers. Le banc principal de jumpers s'appelle J30, il contient
   les jumpers de configuration. Le jumper CF6 ferm signifie que le
   systme dmarrera le Debug Monitor, il est par dfaut ouvert.

   Pour le reste de la configuration, reportez-vous au paragraphe
   prcdent traitant de l'AlphaPC64(Section AlphaPC64 (Cabriolet)).

  XL266

   Le XL266 est un des systmes connus sous le nom d'Avanti. Il possde
   une carte fille sur laquelle rsident le processeur Alpha et le cache
   qui se connecte  la carte mre. Cette carte remplace une carte fille
   Pentium quivalente.

   Certains de ces systmes sont vendus avec la console SRM, mais
   certains autres ne sont livrs qu'avec la console ARC (Section
   Chargement de MILO depuis la console ARC pour Windows NT).

   Voici une liste compatible avec cette srie :
     * AlphaStation 400 (Avanti),
     * AlphaStation 250,
     * AlphaStation 200 (Mustang),
     * XL. Il en existe deux modles, XL266 et XL233 qui ne diffrent que
       par la vitesse du processeur et la taille de la mmoire cache.

   _Note :_ Le systme que j'utilise pour dvelopper et tester MILO est
   un XL266 ; de ce fait, c'est le seul sur lequel je peux garantir un
   fonctionnement correct. Cela dit les autres systmes sont,
   techniquement, quivalents. Ils possdent les mmes chipsets et les
   mmes mcanismes d'interruptions.

  Platform2000

   Il s'agit d'un systme  base de processeur 21066  233 Mhz.

6. L'interface utilisateur de MILO

   Aprs avoir correctement install MILO (Abrv. de MIniLOader) vous
   devrez obtenir l'invite de commande de MILO. Il y a une interface de
   commandes trs simple que vous pouvez utiliser dans le but de dmarrer
   une image Linux particulire. Utilisez la commande help pour obtenir
   une description sommaire des commandes.

6.1 La commande help

   Probablement la commande la plus utile de MILO.


MILO> help
MILO command summary:
ls [-t fs] [dev:[dir]]
                        - List files in directory on device
boot [-t fs] [dev:file] [boot string]
                        - Boot Linux from the specified device and file
run [-t fs] dev:file
                        - Run the standalone program dev:file
show                    - Display all known devices and file systems
set VAR VALUE           - Set the variable VAR to the specified VALUE
unset VAR               - Delete the specified variable
reset                   - Delete all variables
print                   - Display current variable settings
help [var]              - Print this help text

Devices are specified as: fd0, hda1, hda2, sda1...
Use the '-t filesystem-name' option if you want to use
anything but the default filesystem ('ext2').
Use the 'show' command to show known devices and filesystems.
Type 'help var' for a list of variables.

   _Note :_ la commande bootopt n'apparat que pour les systmes
   AlphaPC64 (et quivalents).

   _Priphriques._ Jusqu' ce que vous utilisiez une commande qui
   ncessite l'utilisation d'un des priphriques, aucune initialisation
   n'est ralise sur ces derniers. La premire commande show, ls, boot
   ou run provoquera l'initialisation des priphriques. Les pilotes de
   priphriques portent exactement les mmes noms que ceux de Linux.
   Donc le premier disque IDE sera appel hda et la premire partition
   sera hda1. Utilisez la commande show pour obtenir une liste des
   priphriques disponibles.

   _Systmes de fichiers._ MILO est compatible avec trois diffrents
   types de systmes de fichiers : MSDOS, EXT2 et ISO9660.  partir du
   moment o un priphrique est disponible pour lui, MILO est  mme de
   charger et d'excuter n'importe quelle image disponible. Le systme de
   fichiers par dfaut est EXT2. Toutes les commandes utilisant les
   systmes de fichiers permettent d'en prciser le type par le biais de
   l'option -t filesystem. Donc si vous souhaitez obtenir une liste du
   contenu d'un CDROM il suffit d'entrer la commande :

MILO> ls -t iso9660 scd0:

   _Variables._ MILO contient quelques variables qui aident au processus
   de dmarrage. Si vous dmarrez  partir de la console ARC, MILO
   utilisera les variables d'environnement dfinies par ce firmware. Pour
   certains systmes (tels que l'AlphaPC64), MILO dispose de son propre
   jeu de variables qui ne changent pas d'un dmarrage  l'autre. Ces
   variables sont :

MILO> help var
Variables that MILO cares about:
  MEMORY_SIZE           - System memory size in megabytes
  BOOT_DEV              - Specifies the default boot device
  BOOT_FILE             - Specifies the default boot file
  BOOT_STRING           - Specifies the boot string to pass to the kernel
  SCSIn_HOSTID          - Specifies the host id of the n-th SCSI controller.
  PCI_LATENCY           - Specifies the PCI master device latency
  AUTOBOOT              - If set, MILO attempts to boot on powerup
                          and enters command loop only on failure.
  AUTOBOOT_TIMEOUT      - Seconds to wait before auto-booting on powerup.

   _ATTENTION_  l'utilisation de la variable AUTOBOOT sans dfinir de
   valeur dlai (AUTOBOOT_TIMEOUT) car MILO dmarrera aprs avoir attendu
   0 seconde. Ce n'est peut-tre pas ce que vous souhaitez.

   PCI_LATENCY reprsente le nombre de cycles PCI qu'un priphrique
   fonctionnant en bus master se rserve lorsqu'il acquiert le contrle
   du bus. La valeur par dfaut est de 32 et la maximum de 255. Dfinir
   une valeur leve revient  dire que chaque fois qu'un priphrique
   prend le contrle du bus PCI, il transfrera plus de donnes.
   Cependant cela signifie aussi qu'un priphrique devra attendre plus
   longtemps pour obtenir le contrle du bus.

6.2 Dmarrage de Linux

   La commande boot charge et dmarre un noyau5114')
               ON DUPLICATE KEY UPDATE spam_count = GREATEST(spam_count + '0', 0),
                                       ham_count = GREATEST(ham_count + '1', 0),
                                       atime = GREATEST(atime, '1224985114')
		 212681 Query       INSERT INTO bayes_token
               (id, token, spam_count, ham_count, atime)
               VALUES ('1','B;','0','1','1224985114')
               ON DUPLICATE KEY UPDATE spam_count = GREATEST(spam_count + '0', 0),
                                       ham_count = GREATEST(ham_count + '1', 0),
                                       atime = GREATEST(atime, '1224985114')
		 212681 Query       INSERT INTO bayes_token
               (id, token, spam_count, ham_count, atime)
               VALUES ('1','L','0','1','1224985114')
               ON DUPLICATE KEY UPDATE spam_count = GREATEST(spam_count + '0', 0),
                                       ham_count = GREATEST(ham_count + '1', 0),
                                       atime = GREATEST(atime, '1224985114')
		 212681 Query       INSERT INTO bayes_token
               (id, token, spam_count, ham_count, atime)
               VALUES ('1','Q','0','1','1224985114')
               ON DUPLICATE KEY UPDATE spam_count = GREATEST(spam_count + '0', 0),
                                       ham_count = GREATEST(ham_count + '1', 0),
                                       atime = GREATEST(atime, '1224985114')
		 212681 Query       INSERT INTO bayes_token
               (id, token, spam_count, ham_count, atime)
               VALUES ('1',')','0','1','1224985114')
               ON DUPLICATE KEY UPDATE spam_count = GREATEST(spam_count + '0', 0),
                                       ham_count = GREATEST(ham_count + '1', 0),
                                       atime = GREATEST(atime, '1224985114')
		 212681 Query       INSERT INTO bayes_token
               (id, token, spam_count, ham_count, atime)
               VALUES ('1','+w','0','1','1224985114')
               ON DUPLICATE KEY UPDATE spam_count = GREATEST(spam_count + '0', 0),
                                       ham_count = GREATEST(ham_count + '1', 0),
                                       atime = GREATEST(atime, '1224985114')
		 212681 Query       INSERT INTO bayes_token
               (id, token, spam_count, ham_count, atime)
               VALUES ('1','T)\n','0','1','1224985114')
               ON DUPLICATE KEY UPDATE spam_count = GREATEST(spam_count + '0', 0),
                                       ham_count = GREATEST(ham_count + '1', 0),
                                       atime = GREATEST(atime, '1224985114')
		 212681 Query       INSERT INTO bayes_token
               (id, token, spam_count, ham_count, atime)
               VALUES ('1','K','0','1','1224985114')
               ON DUPLICATE KEY UPDATE spam_count = GREATEST(spam_count + '0', 0),
                                       ham_count = GREATEST(ham_count + '1', 0),
                                       atime = GREATEST(atime, '1224985114')
		 212681 Query       INSERT INTO bayes_token
               (id, token, spam_count, ham_count, atime)
               VALUES ('1','NG','0','1','1224985114')
               ON DUPLICATE KEY UPDATE spam_count = GREATEST(spam_count + '0', 0),
                                       ham_count = GREATEST(ham_count + '1', 0),
                                       atime = GREATEST(atime, '1224985114')
		 212681 Query       INSERT INTO bayes_token
               (id, token, spam_count, ham_count, atime)
               VALUES ('1',';','0','1','1224985114')
               ON DUPLICATE KEY UPDATE spam_count = GREATEST(spam_count + '0', 0),
                                       ham_count = GREATEST(ham_count + '1', 0),
                                       atime = GREATEST(atime, '1224985114')
		 212681 Query       INSERT INTO bayes_token
               (id, token, spam_count, ham_count, atime)
               VALUES ('1','&*','0','1','1224985114')
               ON DUPLICATE KEY UPDATE spam_count = GREATEST(spam_count + '0',de commandes.  nouveau la commande help est
   salvatrice.

Linux MILO Flash Management Utility V1.0
Flash device is an Intel 28f008SA
16 segments, each of 0x10000 (65536) bytes
Scanning Flash blocks for usage
Block 12 contains the environment variables
FMU>

   Notez que sur les systmes qui permettent la sauvegarde de variables
   d'environnement et qui disposent de plus d'un bloc de mmoire flash
   (par exemple l'AlphaPC64), le gestionnaire de mmoire flash cherchera
   un bloc disponible pour la sauvegarde des variables d'environnement de
   MILO. Si un tel bloc existe, le gestionnaire de mmoire flash vous
   indiquera son emplacement. Dans le cas contraire, vous devrez utiliser
   la commande environment pour dfinir un bloc et l'initialiser. Dans
   l'exemple ci-dessus le bloc numro 12 de la mmoire flash renferme les
   variables d'environnement de MILO.

7.1 La commande ''help''

FMU> help
FMU command summary:

list            - List the contents of flash
program         - program an image into flash
quit            - Quit
environment     - Set which block should contain the environment variables
bootopt num     - Select firmware type to use on next power up
help            - Print this help text
FMU>

   _Note :_ les commandes environment et bootopt ne sont disponibles que
   sur les systmes EB66+, EB164, PC164 et AlphaPC64 (ainsi que leur
   clones).

7.2 La commande ''list''

   La commande ''list'' affiche les informations sur l'utilisation de la
   mmoire flash. Pour les systmes disposant de plus d'un bloc, l'usage
   de chaque bloc est affich.

FMU> list
Flash blocks:  0:DBM  1:DBM  2:DBM  3:WNT  4:WNT  5:WNT  6:WNT  7:WNT  8:MILO
        9:MILO 10:MILO 11:MILO 12:MILO 13:U 14:U 15:WNT
Listing flash Images
  Flash image starting at block 0:
    Firmware Id: 0 (Alpha Evaluation Board Debug Monitor)
    Image size is 191248 bytes (3 blocks)
    Executing at 0x300000
  Flash image starting at block 3:
    Firmware Id: 1 (Windows NT ARC)
    Image size is 277664 bytes (5 blocks)
    Executing at 0x300000
  Flash image starting at block 8:
    Firmware Id: 7 (MILO/Linux)
    Image size is 217896 bytes (4 blocks)
    Executing at 0x200000
FMU>

7.3 La commande ''program''

   Le gestionnaire de mmoire flash contient une copie compresse d'une
   image flash de MILO. Cette commande vous permet de sauvegarder cette
   image dans la PROM. La commande vous permet de revenir en arrire,
   mais avant de l'utiliser vous devriez utiliser la commande list pour
   dfinir o il faut mettre MILO. Si MILO est dj dans la mmoire
   flash, le gestionnaire de mmoire flash vous demandera si vous
   souhaitez remplacer la version actuellement en PROM.

FMU> program
Image is:
    Firmware Id: 7 (MILO/Linux)
    Image size is 217896 bytes (4 blocks)
    Executing at 0x200000
Found existing image at block 8
Overwrite existing image? (N/y)? y
Do you really want to do this (y/N)? y
Deleting blocks ready to program: 8 9 10 11
Programming image into flash
Scanning Flash blocks for usage
FMU>

   _!!! IMPORTANT !!!_ Attendez que cela soit fini avant d'teindre votre
   ordinateur.

   _!!! IMPORTANT !!!_ Je n'insisterai jamais assez sur le fait que vous
   devez tre extrmement prudent lorsque vous effectuez ce genre de
   manipulation. Une trs bonne rgle  respecter est de ne jamais
   effacer le Debug Monitor.

7.4 La commande ''environment''

   Cette commande dtermine quel est le bloc qui recevra les variables
   d'environnement.

7.5 La commande ''bootopt''

   Il s'agit de la mme commande que celle de MILO (Section La commande
   ''bootopt'').

7.6 La commande ''quit''

   Cette commande n'a que peu de sens, car la seule manire possible pour
   se retrouver sous MILO est de redmarrer le systme.

8. Restrictions

   Malheureusement la perfection n'tant pas de ce monde, il existe des
   restrictions auxquelles il faut se plier.

   MILO n'est pas conu pour charger d'autres systmes d'exploitation que
   Linux, cependant il peut charger et excuter des images dont
   l'excution est possible au mme emplacement mmoire que Linux (c'est
    dire : 0xFFFFFC0000310000). C'est ce qui permet au gestionnaire de
   mmoire flash de fonctionner.

   Les sources du PALcode contenues dans miniboot/palcode/_toto_ sont
   correctes, mais ce PALcode est problmatique lorsqu'il est compil
   avec la dernire version de gas. Problme qui n'existe pas avec
   l'ancien excutable gas fourni avec les cartes d'valuation. J'essaie
   actuellement de trouver quelqu'un capable de rsoudre ce problme.
   Pour l'instant, j'ai fourni un PALcode prcompil pour les cartes
   supportant MILO et David Mosberger-Tang a une version de gas corrige
   sur son site ftp.

9. Dpannage

   Voici un ensemble de problmes courants que certaines personnes ont
   rencontrs ; vous trouverez, ensuite, leur solution.

   _Lecture de disques DOS depuis le Debug Monitor._

   Quelques versions du Debug Monitor (pr-version 2.0) ont un problme
   avec le gestionnaire DOS gnr  partir de Linux. Ce problme se
   manifeste de la manire suivante : le Debug Monitor semble lire
   correctement les premiers secteurs de la disquette, puis affiche, en
   boucle, le message "Bad Sectors". Cela vient apparemment du fait qu'il
   existe une diffrence entre le systme de fichiers DOS tel que
   l'attend le Debug Monitor et l'implmentation de DOSFS sous Linux.
   Afin de rsoudre ce problme, utilisez un PC sous DOS pour
   confectionner la disquette (et non pas Linux). Par exemple, si le
   chargement du fichier MILO.cab ne fonctionne pas, effectuez les
   oprations suivantes sur une machine DOS :

copy a:MILO.cab c:
copy c:MILO.cab a:
del c:MILO.cab

   Et ressayez de dmarrer depuis cette disquette. Cela devrait rsoudre
   le problme.

   _Milo affiche une srie de _O>_ et n'accepte pas de commandes._ Ceci
   arrive quand MILO a t compil pour utiliser COM1 comme console
   secondaire. Dans ce cas, MILO reproduit l'affichage sur COM1 et
   accepte des saisies depuis ce dernier. C'est excellent pour dboguer,
   mais pas tant que a si vous avez un priphrique autre qu'un terminal
   srie connect. Si cela arrive, dconnectez le priphrique attach au
   port COM1 ou mettez-le hors tension jusqu' ce que le noyau Linux ait
   dmarr.  ce stade tout devrait fonctionner correctement.

   _MILO se plaint de ce que l'image du noyau possde un mauvais 'magic
   number'._

   Les anciennes versions de MILO ne sont pas compatibles avec les
   fichiers objets de type ELF. Cela pourrait tre la source de vos
   ennuis. Si c'tait le cas, passez  la version la plus rcente que
   vous pourrez trouver. Toutes les versions  partir de la 2.0.20 sont
   compatibles avec les objets ELF. D'autre part il se pourrait que
   l'image de MILO soit corrompue, ou qu'il faille ajouter l'extension
   '.gz' au nom du fichier noyau.

   _MILO affiche "...turning on virtual addressing and jumping to the
   Linux Kernel" puis rien ne se passe._

   Une des causes possibles est que l'image du noyau est configure de
   manire incorrecte ou qu'elle a t produite pour un autre type de
   machine Alpha. Une autre possibilit est que la carte vido est une
   TGA (ZLXp) et que le noyau est configur pour utiliser le VGA (ou
   l'inverse). Il est utile de compiler le noyau pour qu'il affiche sa
   console sur COM1 (echo console) et donc de pouvoir, dans ce cas,
   connecter un terminal srie ou alors d'essayer le noyau qui tait
   livr avec votre distribution Linux.

   _MILO ne reconnat pas les priphriques SCSI._

   L'image standard de MILO comporte autant de pilotes de priphriques
   qu'il en existe de stables pour Alpha (au moment de la rdaction de ce
   manuel il contient les pilotes pour : NCR810, QLOGIC ISP, Buslogic et
   Adaptec 294x/394x). Si votre carte n'est pas supporte c'est peut-tre
   que le pilote n'est pas encore suffisamment stable sur plate-forme
   Alpha. Vous pouvez obtenir la liste des priphriques SCSI supports
   par une image MILO avec la commande show.

10. Remerciements

   Je souhaiterais remercier :
     * Eric Rasmussen et Eilleen Samberg, les auteurs du PALcode ;
     * Jim Paradis pour le pilote clavier, l'interface originelle de MILO
       et son travail sur AlphaBIOS ;
     * Jay Estabrook pour son aide et ses dbogages ;
     * David Mosberger-Tang pour la version freeware de l'mulateur BIOS
       et son appui et ses encouragements ;
     * Le dernier, et pas des moindres, Linus Torvalds pour le code du
       timer et celui du noyau.

   Beaucoup de choses restent  faire sous MILO ; s'il y a quelque chose
   que vous souhaitez faire ou ajouter vous-mme, faites-le moi savoir :
   david.rusling@reo.mts.dec.com, afin de ne pas dvelopper deux fois la
   mme chose.

   Pour finir, un grand merci  Digital pour le dveloppement d'un si
   merveilleux processeur (et pour le salaire qu'ils me versent afin de
   le faire).
