memory test
La commande memory test teste la mémoire principale. Cette commande teste toute une gamme de DRAM principales à l'aide d'un algorithme de test, tel que défini par les options de commande, et pour une durée définie par l'option time, sur un ou plusieurs processeurs.
Syntaxe de la commande
udiag memory test { ALGORITHM } [ RANGE ] [ TIME ] [ MP ]
Options
|
|
ALGORITHM = addr0 | pat0 | pat1 | walk1 | walk0 | rand0 | rand1 | block0 | refresh0
|
|
addr0
|
Teste l'unicité de chaque emplacement d'adresse.
|
pat0
|
Remplit la mémoire avec tous les 0 et vérifie les données (pour stuck-at-1).
|
pat1
|
Remplit la mémoire avec tous les 1 et vérifie les données (pour stuck-at-0).
|
walk1
|
Remplit la mémoire avec 0x01 décalé à gauche 8 fois et vérifie les données.
|
walk0
|
Remplit la mémoire avec 0xFE décalé à gauche 8 fois et vérifie les données.
|
rand0
|
Remplit la mémoire avec des données aléatoires, vérifie, inverse et vérifie de nouveau les données.
|
rand1
|
Ecrit des données aléatoires à des emplacements aléatoires, vérifie, inverse et vérifie de nouveau les données.
|
block0
|
Divise la plage de mémoire en deux blocs avec des données aléatoires. Les données sont échangées entre les blocs (copiées à l'inverse, du haut vers le bas ou du bas vers le haut). Les données sont de nouveau échangées et le contenu de la mémoire vérifié.
|
refresh0
|
Remplit la mémoire avec tous les 0, attend 5 minutes et vérifie les données. Remplit ensuite la mémoire avec tous les 1, attend 5 minutes et vérifie les données.
|
RANGE = -s <start_address> [-e <end_address_plus_one>]
|
|
-s
|
Indique l'adresse de début d'un bloc de mémoire à tester. L'adresse est saisie au format hexadécimal et doit être alignée à la limite de 4 Ko.
|
-e
|
Indique l'adresse de fin d'un bloc de mémoire à tester + 1 octet. Si l'indicateur n'est pas donné, le test utilise la fin du bloc contigu sélectionné par le service d'allocation de mémoire UEFI. Si la valeur RANGE n'est pas spécifiée, le test utilise le plus grand bloc de mémoire disponible. Notez que <start_address> doit être inférieur à <end_address>.
|
TIME = -time <test_time_in_seconds>
|
|
-time
|
Indique la durée maximale du test en secondes, au format hexadécimal. La valeur par défaut est 0, ce qui indique qu'il n'y a aucune limite de temps.
|
|
Exigences en ressources
ANY_PROC; MULTIPLE_INSTANCES
Exemples
Pour exécuter le test addr0 dans une plage d'adresses spécifique, tapez :
fs0:/> udiag memory test addr0 -s 100000000 -e 110000000
Pour exécuter le test walk1 dans une plage d'adresses spécifique, tapez :
fs0:/> udiag memory test walk1 -s 100000000 -e 110000000
Pour exécuter le test rand0 sur tous les processeurs, tapez :
fs0:/> udiag memory test rand0 -np all
Pour exécuter le test rand1 sur des processeurs spécifiques pendant une durée particulière (en secondes), tapez :
fs0:/> udiag memory test rand1 5f/5e/5d/1/2/3 -time 258