Obligement - L'Amiga au maximum

Vendredi 06 juin 2025 - 11:55  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Bidouille : AmigaOne XE - partie 2, cartes graphiques AGP et PCIe
(Article écrit par Martina Hrebcová et extrait d'Intuition Base - octobre 2024)


Cet article a été initialement publié sur amigaportal.cz en octobre 2022. Dans cette nouvelle version, certaines inexactitudes ont été corrigées et le paragraphe 7.1 GfxBench2D a été étendu.

AmigaOne XE

AmigaOne XE

Même si l'on peut jouer à de nombreux jeux intéressants sur AmigaOS 4.1 FE, j'aimerais tester l'AmigaOne XE avec des cartes PCIe modernes, comme je l'ai fait avec la Sam440ep-flex à l'époque. Cela nous permettrait également d'exécuter des jeux nécessitant des API plus modernes.

AmigaOne XE

Dans cet article, vous découvrirez également un endroit curieux appelé "Le coin de l'alchimiste". Vous pouvez ignorer ces curiosités, elles ne servent qu'à démontrer la capacité de l'AmigaOne XE avec U-Boot 1.1.1 à dérouter les testeurs et à compliquer leur travail.

1. Les cartes que nous allons tester

Avec l'AmigaOne XE, nous pouvons utiliser des cartes pour trois bus différents : PCI, AGP et PCIe.

J'ai utilisé les cartes graphiques PCI pour déboguer les cartes graphiques PCIe, mais nous ne testerons pas leur vitesse. Toutes les cartes PCI gérées sont moins puissantes que les cartes AGP.

Les cartes AGP fonctionnent nativement dans le port AGP. La plus rapide et entièrement gérée par AmigaOS 4.1 FE est la Radeon 9000 PRO avec la puce RV250. Pour ces cartes, nous pouvons utiliser les bibliothèques AmigaOS classiques comme Warp3D et MiniGL.

Théoriquement, des cartes plus rapides de même génération, comme la Radeon 8500 ou la Fire GL 8800 avec puce R200, devraient également fonctionner sous AmigaOS. Elles fonctionnent, mais génèrent des artefacts graphiques qui les rendent inutilisables.

La carte AGP la plus rapide que nous pouvons connecter à l'AmigaOne XE est la nouvelle génération de la Radeon 9800 PRO (puce R350), mais les pilotes ne gèrent que SDL au niveau matériel, nous ne l'essaierons donc pas non plus.

Les cartes PCIe Radeon Southern Islands (HD7xxx, R7 xxx, R9 xxx) permettent d'utiliser les pilotes modernes Warp3D Nova et Ogles2 (intégrés au Enhancer Software d'A-EON Technology). Ces cartes sont bien plus puissantes et offrent de nombreux jeux et applications modernes. Que diriez-vous de jouer au nouveau Doom 3 (Dhewm3) de Hugues Nouvel sur AmigaOne XE ?

2. Pour commencer, encore un peu de théorie

Cette fois, juste brièvement (tout est en détail dans l'un de mes précédents articles sur la Sam440ep-flex, intitulé Les cartes graphiques pour Sam440ep-flex).

2.1 Pilotes graphiques

AmigaOne XE
Schéma réalisé avec l'aide des fichiers "readme" et sans grande expertise de ma part

Warp3D et MiniGL : pilotes 3D sous AmigaOS 4.1 FE.

Warp3DNova et Ogles2 : nouvelle API 3D pour les cartes modernes.

GL4ES : OpenGL 2.x/1.5, GL ES 2.0/1.1 et OpenGL 3.x (version limitée). Bibliothèque de transition largement gérée sur des machines telles que Pandora, ODroid, OrangePI, CHIP, Raspberry PI et Android. Elle permet le portage aisé de nouveaux logiciels.

MiniGL4GL4ES : un composant important pour les cartes modernes. Il s'agit d'une API MiniGL identique à l'API classique, mais qui redirige les calculs vers Warp3DNova, permettant ainsi l'exécution d'applications MiniGL même sur les cartes PCIe. Ce n'est qu'un simple adaptateur, qui ne permet pas d'exécuter plusieurs applications MiniGL simultanément, par exemple, mais il est utile.

2.2 À quoi ressemble le bus PCI dans un AmigaOne XE

Le bus PCI de l'AmigaOne XE est contrôlé par le northbridge, alors regardons-le de plus près.

AmigaOne XE
Schéma de connexion du northbridge de l'AmigaOne XE

Voici un schéma simple du northbridge Articia S de Mai Logic sur AmigaOne XE. Outre sa capacité à connecter jusqu'à deux processeurs PowerPC (éventuellement MIPS ou x86) et sa gestion de 2 Go de mémoire, nous sommes intéressés par son rôle d'arbitrage pour deux bus PCI :

Caractéristiques du bus PCI 0
  • Interface PCI 32 bits, 66/33 MHz.
  • Entrées/sorties 3,3 V (tolérance 5 V).
  • Arbitrage pour cinq périphériques PCI externes, optimisé pour les performances PCI.
L'AmigaOne dispose d'un southbridge et d'une carte réseau 100 MbE connectée en interne à ce contrôleur, ainsi que de trois ports d'extension PCI.

Caractéristiques du bus PCI 1
  • L'interface peut être configurée pour les modes AGP 32 bits ou PCI 32 bits 66/33 MHz.
  • Le mode AGP gère l'adressage en bande latérale, les vitesses AGP x1 ou x2 et GART.
  • Le mode PCI dispose d'un arbitrage pour deux périphériques PCI externes.
Il n'y a rien de connecté en interne sur ce contrôleur, mais il y a deux ports d'extension : un AGP et un PCI.

De cela, nous pouvons théoriquement déduire quelques petites choses :
  • Les trois ports du bus PCI 0 ne peuvent être utilisés qu'en mode 33 MHz, car le bus contient déjà des périphériques 33 MHz (NIC et southbridge).

  • Deux périphériques peuvent théoriquement fonctionner simultanément sur le bus PCI 1 en mode PCI.

  • Sur le bus PCI 1, dans le port AGP, seules les cartes compatibles 3,3 V sont autorisées, c'est-à-dire celles qui gèrent l'AGP x1 ou x2 (celles dont le connecteur possède deux encoches ou une encoche près de la plaque arrière). Bien qu'il soit possible d'insérer physiquement des cartes AGP plus récentes, uniquement x4 et x8 (elles ont une encoche loin de la plaque arrière), dans le port AGP, il est déconseillé de le faire. Elles sont à 1,5 ou 0,8 V et risquent de ne pas fonctionner.

  • Dans tous les ports PCI, vous pouvez utiliser des cartes 5 V uniquement (encoche éloignée de la plaque arrière) ou des cartes universelles 5 V/3,3 V (deux encoches). L'Articia S peut également gérer des cartes 3,3 V uniquement, mais le bus PCI de la carte mère est uniquement 5 V et non 3,3 V.
3. Ce dont nous aurons besoin pour utiliser une carte PCIe

Alors que pour les cartes PCI ou AGP, nous avons bien sûr déjà tout sur la carte mère, pour les cartes PCIe, nous devrons à nouveau préparer quelques éléments.

3.1 Pont PCI vers PCIe

Tout d'abord, nous avons besoin d'un pont PCI-PCIe. Or, une fois de plus, il s'avère que le PEX 8111/8112 recommandé avec un pilote matériel optimisé ne fonctionne pas, mais seulement le PEX transparent (dans mon cas, avec la puce P17C9X).

AmigaOne XE
Adaptateur PCI/PCIe

Comme nous le savons déjà, l'utilisation de n'importe quel pont PCI-PCIe ralentira le transfert sur le bus et augmentera la latence - la puce doit transformer le trafic PCI parallèle 32 bits en série 1 bit pour PCIe.

Nous avons également besoin d'une carte en équerre PCIe x1 - PCIe x16, principalement pour l'alimentation. Notre bus PCI ne délivre que 25 W et ne peut pas gérer les cartes PCIe, qui peuvent consommer jusqu'à 75 W. Heureusement, il n'y a pas de ralentissement supplémentaire ici : il s'agit d'une ligne série pure (plus précisément, deux lignes série ; avec le PCIe, les lignes sont toujours par paires : une pour la réception, l'autre pour l'émission).

AmigaOne XE
Carte en équerre PCIe

3.2 Pilotes

Nous devons préinstaller le pilote de carte PCIe HD ("RadeonHD.chip" réalisé par Hans de Ruiter) dans AmigaOS.

Et nous devrions également avoir Warp3DNova et ogles2.library pour les tests de jeux, tout est inclus dans Software Enhancer.

Il est important de préciser que la version prête à l'emploi fonctionne mieux avec Enhancer Softwate 1.5, équipé de la puce RadeonHD v2.22. Certains autres jeux (comme ioquake3) ne fonctionnent pas avec les versions plus récentes d'Enhancer Software 2.0 et 2.2.

3.3 Autres

Pour la mise en route initiale de la carte PCIe, il est nécessaire d'activer le débogage via une liaison série (définir "os4_cmdline" sur "debuglevel=7 serial") et de connecter le câble à un autre Amiga avec un terminal Term, ou à un PC avec TeraTerm.

Et comme je l'ai mentionné dans l'article précédent, il est conseillé de désactiver tous les périphériques inutiles dans U-Boot, en particulier USB.

Le programme SYS:Utilities/Ranger est également utile, nous l'utiliserons pour parcourir le bus PCI.

Une fois la carte PCIe mise en route, pour les tests de vitesse, définissez à nouveau "debuglevel=0".

3.4 Micrologiciel U-Boot

Pour utiliser une carte graphique dans un port PCI, nous devons d'abord configurer U-Boot, notamment la configuration du contrôleur AGP/PCI et la sortie vidéo.

AmigaOne XE

Dans le menu "Video settings" (Paramètres vidéo), nous pouvons définir de quelle carte proviendra la sortie vidéo au démarrage, nous avons les options "Boot from AGP" (Démarrer depuis l'AGP) ou "Boot from PCI" (Démarrer depuis le PCI).

Ce menu doit être configuré si vous utilisez deux cartes graphiques, et comme je l'ai écrit dans le premier article, c'est un peu bizarre et parfois un peu déroutant.

"Boot from AGP" signifie généralement que la sortie vidéo durant le démarrage proviendra d'une carte graphique connectée à l'AGP ou au PCI 66 MHz - c'est-à-dire le bus PCI 1.

"Boot from PCI" signifie généralement que la sortie vidéo pendant le démarrage proviendra d'une carte graphique connectée au bus PCI 0, c'est-à-dire PCI 33 MHz.

Mais cela ne fonctionne que si vous connectez les deux cartes au câble VGA.

Si vous essayez de brancher deux cartes graphiques simultanément sur les ports AGP et PCI 66 MHz, toutes deux sur le bus PCI 1 (en mode PCI !), vous n'y parviendrez pas. U-Boot ne reconnaîtra ni l'une ni l'autre.

Et une petite digression - nous verrons combien de cartes graphiques U-Boot a réellement trouvé dans serialdebug :

Deux cartes :

VGA: 0 ...

1 ..

Une carte :

VGA: 0 ...

Pas de carte :

VGA: NOT PRESENT

ou

VGA: and blinking cursor

Si nous n'avons qu'une seule carte graphique (ou si U-Boot n'en reconnaît qu'une), la sortie vidéo passe généralement par celle-ci, quels que soient les paramètres vidéo. Ou alors, elle ne passe pas du tout.

Il est également important de noter qu'il ne s'agit que d'une sortie vidéo au démarrage. AmigaOS définit ensuite la sortie en fonction de lui-même, c'est-à-dire en fonction des données de SYS:Prefs/Monitors et Screenmode. J'ajouterais simplement que si vous n'avez qu'un seul moniteur dans DEVS:Monitors, AmigaOS ne voit qu'une seule carte, comme U-Boot. Si vous avez également un autre moniteur PCIGraphics (voir le tutoriel de Hans De Ruiter sur deux cartes graphiques sous AmigaOS), vous pouvez sélectionner l'endroit où le Workbench sera affiché dans Screenmode.
Le coin de l'alchimiste n°1

Là encore, la connaissance de l'alchimie est indispensable. L'intention des auteurs d'U-Boot est évidente, mais malheureusement, elle n'a pas fonctionné comme dans les cas suivants :

Avec le paramètre "Boot from PCI" (Démarrer à partir du PCI), la configuration du port pour la carte AGP "câble AGPgfx+VGA" et le port PCI 33 "câble PCIgfx+DVI", la sortie de l'écran U-Boot se trouve sur la carte AGP.

Si nous définissons ensuite "Boot from AGP" (Démarrer à partir de l'AGP) et commutez les câbles vers les cartes, soit le port AGP "câble AGPgfx+DVI" et le port PCI 33 "câble PCIgfx+VGA", On démarre tranquillement depuis la carte PCI. Magnifique, non ?

Il arrive souvent que U-Boot utilise une carte différente de celle configurée. Si nous avons deux cartes, nous devons donc consacrer du temps à essayer les "Video settings" (Paramètres vidéo).
Le menu "PCI/AGP" est bien plus important et, heureusement, sans ambiguïté. Nous pouvons y définir deux paramètres.

Le premier est "IRQ level" (niveau IRQ) pour les interruptions PCI. Nous n'aborderons pas ce sujet maintenant, mais nous le traiterons probablement dans un prochain article.

La deuxième partie, plus importante pour nous, est "AGP bridge" (pont AGP).

AmigaOne XE
Il s'agit du paramètre de mode pour le bus PCI 1

"On" sur "AGP Bus" signifie mode AGP. Nous ne pouvons utiliser qu'une seule carte, et c'est en AGP. AGP n'est pas vraiment un bus, mais une connexion point à point dédiée d'une seule carte au contrôleur.

"off" sur "AGP Bus" signifie mode PCI, nous pouvons utiliser les deux connecteurs, c'est-à-dire une carte AGP (en mode PCI) ou une carte PCI 66 MHz.

Il est absolument nécessaire de désactiver le bus AGP si une carte graphique (ou autre) est branchée sur le port PCI 66 MHz, sinon elle risque d'être endommagée. Heureusement, la carte PCI que je croyais avoir endommagée la dernière fois en mode AGP est toujours fonctionnelle. Elle a simplement surchauffé et a dû prendre du repos.

Pour "Sideband enable" (Activation de la bande latérale), si nous sommes en mode AGP, nous utilisons l'accélération de l'adressage de la bande latérale.

Enfin, pour "AGP Speed" (Vitesse AGP), "1x" ou "2x" ne nécessite aucune explication. Et c'est uniquement pour le mode AGP.

3.5 Un peu hors sujet - plusieurs configurations système différentes

(il ne s'agit absolument pas de tester des cartes. Vous pouvez passer ce chapitre si vous le souhaitez)

Lors du test de cartes graphiques fonctionnant sur différents bus, il est indispensable d'essayer différents pilotes. Il est parfois difficile de restaurer le système à son état d'origine, car on oublie souvent les modifications et on ne fait pas de sauvegarde avant chaque étape. Lors de ma troisième installation complète du système, j'ai effectué d'autres configurations.

Je voulais ces configurations de démarrage :
  • AmigaOS 4.1 FE pur, mis à jour.
  • AmigaOS 4.1 FE, mis à jour + Enhancer Software 1.5.
  • AmigaOS 4.1 FE, mis à jour + Enhancer Software 2.0.
  • AmigaOS 4.1 FE, mis à jour + Enhancer Software 2.2.
Sur AmigaOne XE, cette opération est beaucoup plus laborieuse que sur AmigaOne X1000 ou Pegasos 2, mais elle est possible. Elle est laborieuse en raison des propriétés du chargeur d'amorçage de premier et de second niveau (slb_v2).

Le chargeur d'amorçage de premier niveau (il fait partie d'U-Boot) fonctionne de telle manière qu'il analyse séquentiellement les périphériques de démarrage dans l'ordre dans lequel vous les avez saisis dans "Amiga multiboot options" (options multiboot Amiga), par exemple, l'ordre du DVD IDE, du disque dur IDE... et s'arrête au premier qu'il trouve et n'analyse pas les autres périphériques dans l'ordre (par exemple PCI IDE ou PCI SATA).

S'il n'utilise pas simplement le message magique "No SLB found" (Aucun SLB trouvé), il chargera slb_v2 (qui est écrit sur le disque dur lorsque le système est installé) à partir du disque et l'exécutera.

SLB recherche le noyau de démarrage sur le disque depuis lequel il a démarré (plus précisément, la partition avec l'indicateur d'amorce défini, la priorité d'amorçage la plus élevée et le répertoire Kickstart/kernel modules). Il ne regarde plus les autres disques.

Si, dans notre cas (disque dur IDE), vous avez plusieurs partitions système sur le disque, vous n'avez pas de chance. SLB choisira celle ayant la priorité la plus élevée, ou la première si elles ont la même priorité, et démarrera à partir de celle-ci. Vous n'aurez pas le choix. Nous devons procéder différemment : il suffit de placer tous les noyaux sur une seule partition de démarrage.

Comme vous l'avez appris dans le dernier article, je possède une carte CompactFlash avec des modules de noyau déjà connectés au bus IDE. Initialement, c'était une nécessité, car mon Amiga refusait de démarrer directement depuis la carte SATA, mais nous allons maintenant en profiter.

Sur la carte CompactFlash, j'ai une seule partition FFS, nommée "BootCF:", et dedans quatre répertoires pour quatre noyaux différents, correspondant aux configurations système ci-dessus :
  • /Kickstart
  • /KickstartE15
  • /KickstartE20
  • /KickstartE22
Ensuite, quatre disques système sur le disque SATA, toujours par analogie :
  • DH0: System:
  • DH0E15: SystemE15:
  • DH0E20: SystemE20:
  • DH0E22: SystemE22:
La procédure suivante consiste à installer AmigaOS 4.1 FE sur DH0: à partir du CD, effectuez toutes les mises à jour et tous les paramètres (et NetFS !) et n'oubliez pas de copier le répertoire System:Kickstart/ sur la carte CompactFlash BootCF:Kickstart/.

Dans l'autre /Kickstart* et System*: nous copierons également la même chose comme base sur laquelle nous installerons ensuite différentes versions d'Enhancer Software.

Pour la copie (et les sauvegardes), je préfère utiliser le programme BackUp (de Daniel Westerberg, Onyxsoft.se). Il pèse 68 ko pour AmigaOS 2.x, mais il est l'un des rares à pouvoir copier correctement les liens symboliques. Il dispose d'une interface graphique et peut également être utilisé depuis le Shell.

Ensuite, vous devez ajouter les fichiers "BootDevice" contenant les noms des disques à partir desquels vous souhaitez démarrer à tous les répertoires /Kickstart* comme suit :

echo DH0 > BootCF:Kickstart/BootDevice

...

echo DH0E22 > BootCF:KickstartE22/BootDevice

Ensuite, nous devons ajouter la ligne "MODULE Kickstart/BootDevice" à la fin de chacun des quatre fichiers /Kickstart*/Kicklayout.

Cela garantira que lorsque le noyau est chargé, il démarrera à partir du disque écrit dans le fichier BootDevice, quelles que soient les priorités de démarrage définies.

Vient ensuite la partie difficile : étant donné que slb_v2 ne peut charger qu'une seule configuration de noyau à partir du fichier /Kickstart/Kicklayout (le fichier Kicklayout contient les noms des modules à charger), nous devons écrire toutes les variantes de modules de noyau que nous voulons utiliser dans ce premier Kicklayout.

Commençons par changer la ligne "LABEL ..." dans ce Kicklayout principal en un nom unique, dans mon cas "LABEL AmigaOS 4.1 Final". Ensuite, nous ajoutons à ce fichier (par exemple avec la commande "join") le fichier /KickstartE15/Kicklayout, changeons la ligne dans la section appropriée en "LABEL AmigaOS4.1fe - Enhancer 1.5" puis changeons toutes les lignes suivantes avec les modules "MODULE/Kickstart/..." en "MODULE/KickstartE15/...".

Et la même chose s'applique à KickstartE20 et KickstartE22. Nous obtenons donc un long fichier /Kickstart/Kicklayout avec quatre configurations de noyau et de disque de démarrage.

AmigaOne XE
Ça ressemble alors à cela dans U-Boot

J'avoue que la première fois, je l'ai édité cela manuellement, mais après avoir installé Enhancer Software (et donc apporté d'autres petites modifications aux noyaux individuels), j'ai écrit un script qui utilise l'éditeur de flux de texte "sed" pour apporter les modifications appropriées au texte MODULE/Kickstart->MODULE/KickstartExx, puis fusionne les fichiers.

Beurk. C'est horrible, non ? Mais ça vaut le coup. Et il est également judicieux de sauvegarder ces quatre nouvelles installations. De plus, dans les préférences d'U-Boot, vous pouvez sélectionner la configuration de démarrage principale (celle en rouge sur l'image), ce qui vous évite de devoir constamment surveiller l'écran pour éviter de rater la sélection de démarrage.

4. Carte graphique PCIe avec pont PCI vers PCIe dans un port PCI 66 MHz

Maintenant que tout cela est fait, nous pouvons enfin passer à la répétition. Nous allons vérifier à nouveau que le bus AGP dans U-Boot est désactivé, et connecter le pont PCI-PCIe et la carte HD7xxx au port PCI 66 MHz.

Nous constatons alors que la carte ne fonctionne pas en PCI 66 MHz. U-Boot n'apparaît pas, la séquence de démarrage s'exécute automatiquement et se termine par un message dans le serialdebug :

Booting configuration AmigaOS 4.1 Final

graphics.library AltiVec/VMX enabled

graphics.library PPC74xx optimizations enabled

graphics.library cannot configure your graphics board!

Either your board is not supported or there's a configuration problem.

Did you install PCIGraphics.kmod?

Eh oui, j'ai essayé tous les types de ponts possibles et toutes les versions de PCIGraphics.card (pas ".kmod") disponibles.

Lorsque je l'ai essayé plus tard avec une deuxième carte graphique PCI dans un port PCI 33 MHz, j'ai compris la raison :

AmigaOne XE

La partie bleue sélectionnée (01.01.00) correspond au pont PCI-PCIe lui-même. C'est tout ce que le système voit. Il n'y a pas de contrôleur VGA derrière. Malheureusement, et Hans de Ruiter l'a confirmé sur le forum, U-Boot ne peut pas initialiser la carte graphique derrière le pont sur le bus PCI 1 (66 MHz). Plus loin sur l'image, à l'adresse 00.08.00, se trouve une carte PCI Radeon 9250 installée dans un port à 33 MHz, sur lequel le Workbench est exécuté.

5. Carte graphique PCIe avec pont PCI vers PCIe dans un port PCI 33 MHz

Tout d'abord, si vous avez un AmigaOne XE avec le correctif DMA, vous ne pourrez probablement pas connecter une carte graphique PCIe même dans un port PCI 33 MHz.

Le correctif DMA entraîne d'autres effets secondaires non documentés. Pour pouvoir connecter une carte graphique en PCI avec un AmigaOne pourvu du correctif DMA, il faut désactiver l'USB, le DMA pour l'IDE (même si vous avez appliqué le correctif DMA pour cette raison) et parfois aussi la carte réseau interne. Et même dans ce cas, la carte ne fonctionne que rarement. Une désinstallation du correctif DMA ("DMA-unfxi") est donc indispensable. C'est également la raison pour laquelle il est impossible de connecter une carte graphique externe au Micro A1-C ; cet ordinateur est équipé du correctif DMA par défaut. Lire plus d'informations sur le site de Hans de Ruiter.

Mon Amiga ne dispose désormais plus du correctif DMA, nous pouvons donc tester en toute tranquillité.

Et comme d'habitude, un peu d'alchimie avec les ports :
Le coin de l'alchimiste n°2

Lorsque nous mettons une carte graphique PCIe dans un port PCI 33 MHz et que les autres ports ne sont pas du tout occupés, U-Boot fonctionne correctement, mais le système signale à nouveau :

Either your board is not supported or there's a configuration problem.

Did you install PCIGraphics.kmod?

Et oui, Radeon.chip et PCIGraphics.chip sont tous deux là où ils devraient être.

Cependant, si nous ajoutons une carte PCI dans le port 33 ou 66 MHz, la carte graphique PCIe fonctionne. J'imagine que cette pauvre carte craint d'être toute seule. Après tout, elle est conçue pour les ordinateurs PCIe modernes, et maintenant, elle est obligée d'être intégrée toute seule dans une carte mère aussi ancienne.

Donc, pas de technique, mais une fois de plus de l'alchimie. Il ne faut pas se décourager, il faut combiner et essayer différents ports et variantes.
Il s'est avéré que le type recommandé par PEX 8111/8112, pour lequel le pilote matériel est optimisé, ne fonctionnait plus. U-Boot s'est affiché et a démarré correctement, le système a démarré conformément au journal, et même RadeonHD a reconnu la carte et l'a démarrée avec succès (selon ses propres informations).

graphics.library AltiVec/VMX enabled

graphics.library PPC74xx optimizations enabled

RadeonHD.card (0): RadeonHD.chip 2.22 (25.3.2017)

RadeonHD (2): Graphics card name is: Radeon HD 7700 Series

RadeonHD (2): identified the chipset as: VERDE

....

RadeonHD.chip (0): Connector[2] DVI-I 1:

RadeonHD.chip (0): Type: RHD_CONNECTOR_DVI

RadeonHD.chip (0): DDC bus: RHD I2C line 3

RadeonHD.chip (0): HPD: RHD_HPD_1 (monitor connected)

....

RadeonHD.chip (0): RadeonHD card successfully opened

Mais malheureusement, je ne pouvais pas partager les convictions du pilote graphique : tout ce que je pouvais voir était un écran noir. Il a donc fallu utiliser un pont PCI-PCIe transparent avec la puce P17C9X, qui a fonctionné. Eh bien, cela a fonctionné, mais pas de manière optimale :

RadeonHD.chip (0): RadeonHD card successfully opened

RadeonHD.chip (0): UBoot has not initialized the graphics card's interrupt line. Disabling interrupts.

RadeonHD.chip (0): Please upgrade your UBoot firmware.

Et voici à quoi cela ressemble dans Ranger - l'interruption n'est en effet pas initialisée correctement :

AmigaOne XE

À gauche, le périphérique 02.00.00 (carte PCIe HD7750) est sélectionné en bleu. À droite, dans l'ellipse rouge, l'option "Interruption" est définie sur "Line: 0xFF". Les valeurs 0xFF et 0x00 sont invalides ; la carte ne génère pas d'interruptions.

Ce n'est pas la faute des pilotes ou de la carte elle-même, c'est vraiment le travail d'U-Boot. Et c'est assez désagréable, car sans interruption, la carte serait encore plus lente. Nous avons donc déjà un port PCI 33 MHz plus lent, un retard sur le pont PCI-PCIe, et maintenant nous sommes à égalité sans interruption.

L'adresse PCI suivante sur l'image est 00.08.00. Il s'agit de notre pont PCI-PCIe, situé dans le premier port PCI 33 MHz. Notez qu'après ce pont, nous avons un autre bus PCI (02.xx.xx) et que le premier périphérique, 02.00.00, est notre carte graphique PCIe. Cette carte contient également le périphérique audio 02.00.01, pour lequel AmigaOS ne possède pas de pilote.

Et pour être sûr que la carte PCIe ne soit pas seule, on voit également une carte USB 2.0 dans le port PCI 66 MHz (01.01.00 à .02).

6. Utilisation du port PCI 66 MHz pour d'autres cartes

Si nous n'installons pas de carte graphique PCIe dans le port 66 MHz, nous aimerions l'utiliser pour autre chose, par exemple un contrôleur SATA, qui pourrait bénéficier de sa vitesse. Mais il s'est avéré qu'il était impossible de brancher d'autres cartes que des cartes graphiques sur le port PCI 66 MHz. Soit elles étaient inutilisables, car U-Boot ne les reconnaissait parfois pas :

AmigaOne XE

Comme ici dans le cas de la carte USB 2.0 (01.01.00 Undefined).

Ou U-Boot a reconnu la carte :

AmigaOne XE

Il a même attribué à la carte l'interruption correcte (Line: 0x0A) comme ici pour le SATA.

AmigaOne XE

Dans AmigaOS, l'interruption attribuée est correctement visible dans le gestionnaire d'interruption (26: sii3114ide IRQ handler), mais la carte ne fonctionnait toujours pas.

Dans MediaToolbox, le disque SATA connecté est visible, mais sans détails, et son état est "non géré". Aucune partition ne peut être montée. Voici à quoi cela ressemble dans le journal de débogage :

[sii3114ide/scsi_get_capacity] cant get drive capacity from unit 0

[sii3114ide/cmd_custom] direct command 236 returned -1, ec 31

Le plus grand succès a été obtenu avec une carte réseau 1 GbE.

AmigaOne XE

Dans cette configuration, les requêtes "ping" et "DNS" fonctionnent, mais rien de plus complexe ne fonctionne.

AmigaOne XE

Vous pouvez voir ici les interfaces de connexion ("sockets") ouvertes lors du chargement des pages web seznam.cz. Elles s'ouvrent correctement, mais aucun trafic ne suit. Il y a quelque chose d'étrange. Je ne sais même pas quelle partie est responsable. U-Boot alloue les interruptions, le gestionnaire d'interruptions est correctement configuré sous AmigaOS, mais les pilotes ne fonctionnent que très partiellement.

Parmi les trois pilotes de la carte mère, d'U-Boot et d'AmigaOS, certains n'envisagent même pas qu'il puisse y avoir autre chose qu'une seule carte graphique sur le bus PCI 1. Dommage. Nous avons donc probablement abandonné l'un des deux avantages de l'AmigaOne XE par rapport au Pegasos 2.

7. Et enfin, la comparaison promise des cartes AGP et PCI-e

Lors des tests, il s'est avéré que le pilote natif Warp3D pour cartes PCIe (Warp3D-Southern Island) ne fonctionne pas parfaitement sur AmigaOne XE. Ou plutôt, il plante presque systématiquement. L'incompatibilité avec les Sam440 ou AmigaOne X1000 n'est pas si importante. Ce serait dommage, car nous ne pouvions même pas utiliser MiniGL, pourtant présent dans la plupart des jeux 3D classiques. Heureusement, il existe un remplaçant pour MiniGL : MiniGL4GL4ES. Cet adaptateur redirige tous les appels de fonctions MiniGL de Warp3D vers Warp3DNova et nous permet d'utiliser l'application sans problème.

Dans les tests, nous comparerons uniquement les cartes AGP et PCIe les plus puissantes : les Radeon 9000 PRO et R9 270X. Pour les tests de vitesse, la carte AGP est configurée sur AGP, x2, bande latérale et le journal de débogage série et toutes les commodités sont désactivés.

7.1 GfxBench2D

Nous utiliserons d'abord ce test de performance graphique pour une autre comparaison : tester la vitesse du bus graphique. Du test global, nous extrairons les valeurs suivantes :
  • Copy to VRAM (Copie vers la VRAM) - la vitesse d'écriture dans la VRAM par le processeur.
  • Write Pixel Array (Écriture d'un tableau de pixels) - Vitesse VRAM à l'aide de DMA.
Pour vous donner une idée, les vitesses de bus maximales théoriques sont de 133 MO/s (sur PCI 33 MHz), 266 Mo/s (PCI 66 MHz), 266 Mo/s (AGP x1) et 533 Mo/s (AGP x2).

AmigaOne XE
Ce graphique est commun à tous les paragraphes du chapitre 7.1

7.1.1 Vitesse VRAM : Articia S / AGPx2, AGPx1, mode PCI

Tout d'abord, pour l'AmigaOne XE, examinons la différence de vitesse du bus PCI 1 dans différents modes, c'est-à-dire avec différents paramètres de pont AGP / bus AGP dans U-Boot.

J'ai testé la carte Radeon 9000 PRO dans le port AGP, en modes AGPx2, AGPx1 et PCI 66 MHz (valeurs bleues, jaunes et vertes sur les graphiques). Vous pouvez constater que la vitesse est pratiquement la même.

La copie vers la VRAM (95,3 Mo/s) et l'écriture sur le tableau de pixels (111 Mo/s) sont identiques partout et les résultats globaux de GfxBench2D (voir graphique dans 7.1.5) ne diffèrent que légèrement (AGPx2 : 1854,52, AGPx1 : 1831,39, PCI : 1830,17). C'est donc une grosse déception, car la vitesse AGP x2 peut atteindre 533 Mo/s. On atteint à peine le quart de ce chiffre.

7.1.2 Vitesse VRAM : Articia S contre Marvell Discovery II

Examinons maintenant les différences de vitesse de bus graphique entre les divers northbridges de cette époque. Testons à nouveau la carte Radeon 9000 PRO sur AmigOne XE (Articia S avec correctif), Pegasos 2 (Marvell Discovery II MV64361) et Pegasos 1 (Articia S). Sur le graphique, les valeurs sont en bleu, bordeaux et bleu clair.

On constate que le Marvell Discovery II, malgré son bus PCI à 66 MHz seulement, est presque deux fois plus rapide que l'Articia S en mode AGP x2. Le Pegasos 1 est 25% plus lent que l'AmigaOne XE, possède une fréquence processeur plus basse (600 MHz contre 800 MHz) et une version plus ancienne du northbridge Articia S.

7.1.3 Vitesse VRAM : Articia S contre AMCC 440ep

Si l'on observe les vitesses de bus graphiques de l'AmigaOne XE (800 MHz) et de la Sam440ep-flex (733 MHz) avec la carte graphique R9 270X, le résultat est ambigu (valeurs rouges et kaki sur les graphiques). La Sam440ep-flex ne possède qu'un bus PCI à 66 MHz et est 23% plus lente en utilisant le processeur et 7% plus rapide en utilisant le DMA.

7.1.4 Vitesse VRAM : AmigaOne XE et cartes AGP/PCIe

Enfin, nous allons tester une carte PCIe moderne dans l'AmigaOne XE. Comme c'était le cas avec la Sam440ep-flex, on observe un ralentissement notable dû au pont PCI-PCIe de l'AmigaOne XE. La carte graphique AGP est presque 50% plus rapide quand c'est le processeur qui copie en VRAM et 22% plus rapide quand c'est avec le DMA (valeurs rouges et bleues sur les graphiques).

La vitesse AGP x2 de l'AmigaOne XE n'atteint même pas la vitesse PCI théorique de 33 MHz. Il n'est donc peut-être pas regrettable que notre carte PCIe soit uniquement installée dans un port PCI à 33 MHz. Globalement, le northbridge de l'Articia S est étonnamment lent.

7.1.5 GfxBench2D - note globale

AmigaOne XE

Les résultats globaux du test GfxBench2D ne sont pas surprenants (valeurs rouges et bleues sur les graphiques). La carte graphique PCIe R9 270X obtient des résultats trois fois supérieurs à ceux de la carte graphique AGP. Elle est donc très puissante, mais nous verrons plus loin comment elle sera gênée par la lenteur du flux de données sur le bus.

7.2 Cow3D - Warp3D et Warp3D Nova

AmigaOne XE

La carte graphique R9 270X avec Warp3D plante (Warp3D-Southern Island n'est vraiment pas idéal pour l'AmigaOne XE) et la Radeon 9000 PRO n'est pas compatible avec Warp3D Nova. Ce dernier, comme nous le savons, est beaucoup plus rapide.

7.3 SDLBench

AmigaOne XE

La carte graphique R9 270X n'atteint que 53% de la vitesse de la Radeon 9000 PRO. Le pont PCIe et les interruptions manquantes constituent un ralentissement important.

7.4 MPlayer

Testé avec MickJT-MPlayer jouant la bande-annonce Serenity-HDDVDTrailer.mp4, en 1280x720 pixels, codec H.264.

AmigaOne XE

Ici, étonnamment, la Radeon 9000 PRO est plus rapide. Voici les résultats complets :

Radeon 9000 PRO :

[VO=p96_pip]: VC: 194.186s VO: 57.643s A: 0.000s Sys: 6.350s = 258.180s

R9 270X :

[VO=comp_yuv2]: VC: 191.750s VO: 109.399s A: 0.000s Sys: 6.500s = 307.649s

Nous constatons que le décodage vidéo (VC) prend pratiquement le même temps, ce qui n'est pas surprenant puisqu'il est effectué par le processeur. La principale différence réside dans la sortie vidéo (VO), où [p96_pip] sur la carte AGP est plus rapide. Là encore, le pont PCIe et l'absence d'interruptions constituent un obstacle majeur au transfert de données.

A titre de comparaison, voici les résultats de la Sam440ep-flex 733 MHz avec R9 270X :

VO: [comp_yuv2]: VC: 241.269s VO: 67.617s A: 0.000s Sys: 2.347s = 311.233s

Vous pouvez voir que la Sam440ep-flex est freinée par la lenteur du processeur, alors que la sortie vidéo sur la carte PCIe est beaucoup plus rapide que sur AmigaOne XE.

Même si nous sommes globalement plus rapides qu'avec la Sam440ep-flex, même sur AmigaOne XE, il est impossible de lire des vidéos HD sans perte d'images. La durée réelle du film est de 139 secondes.

7.5 Jeux de tir subjectif

AmigaOne XE
GLQuake, Tower57 et 1941

AmigaOne XE

GLQuake (MiniGL) : plantage sur les cartes PCIe (même sur AmigaOne X1000 et Sam440). Avec MiniGL classique ou avec l'adaptateur MiniGL4GL4ES.

ioQuake3 (MiniGL/SDL2) : la Radeon 9000 PRO est plus rapide.

Tower57 (composition) : la composition peut être mieux réalisée par une carte PCIe.

Démo de Wings Battlefield (Warp3D, composition) : voici une carte R9 270X plus rapide. Et elle pourrait l'être encore plus. La Radeon 9000 PRO utilise la version Warp3D pour les R100-R200, mais la version Warp3D de la R9 270X pour Radeon 7xxx plante ; il faut donc utiliser la version avec composition, plus lente. Cependant, il faut préciser que le rendu des paysages sur les puces R100 et R200 n'est pas très joli ni de très bonne qualité, vous ne serez donc pas satisfait du jeu sur des cartes AGP.

1941 (SDL) : la Radeon 9000 PRO est plus rapide, mais pas autant que le suggère le test SDLBench.

Spencer (MiniGL, OpenGLES2) : le jeu choisit l'interface la plus rapide et cela se voit - R9 270X avec Ogles2 est nettement plus rapide.

RTCW (MiniGL) : 12 ips sur R9 270X, 9 ips sur Radeon 9000 PRO. Encore une fois, avec les détails les plus élevés.

HCraft (GL4ES) : bien sûr, ce jeu ne fonctionne que sur une carte moderne.

7.6 HTML 3D

Le test graphique du site wirple.com/bmark est le même pour les deux cartes - 14 ips au début du test 1, score total de 21.

7.7 Émulateurs

AmigaOne XE

Dans les émulateurs les plus utilisés, la carte AGP est plus rapide, mais pas de façon spectaculaire : E-UAE de 5% et DOSBox de 10%.

J'ai voulu essayer Doom3 sur une carte PCIe, mais jusqu'à présent, ça n'a pas fonctionné. Il faut la dernière version d'Enhancer Software 2.2, et l'AmigaOne XE ne s'en sort pas vraiment.

8. Mettre ou ne pas mettre une carte PCIe dans un AmigaOne XE ?

AmigaOne XE

Avantages
  • Sur les cartes PCIe, la composition est nettement plus rapide. Elles sont également plus jeunes de dix ans et disposent d'une grande quantité de VRAM.
  • Possibilité d'utiliser Warp3D Nova et Ogles2 dans les jeux et les programmes. Les avantages sont limités, mais celui-ci est important, car le développement d'AmigaOS 4 par Hyperion ne progresse pas très vite et l'essentiel se passe aujourd'hui dans le monde d'Enhancer Software par A-Eon.
Inconvénients
  • La nécessité d'intégrer une carte graphique PCIe dans un port lent de 33 MHz.
  • Non-fonctionnement des cartes non graphiques dans le port PCI 66 MHz, ce qui réduit le nombre de cartes d'extension. De plus, comme nous disposons d'un DMA non corrigé, le port supplémentaire à 33 MHz devrait être occupé par un contrôleur SATA. Après tout, un IDE interne sans DMA est très lent. Il ne reste donc qu'un seul port PCI pour des extensions supplémentaires.
  • RadeonHD est plus lent sans interruption.
  • Toutes les applications classiques ne fonctionnent pas sur les cartes PCIe.
  • Les dernières versions de RadeonHD.chip et de Warp3DNova ne sont probablement plus en bêta test sur AmigaOne XE, ce qui indique que le développement sur cet ordinateur ne se poursuivra pas. Sans surprise, il n'y aura pas beaucoup, voire pas du tout, d'utilisateurs de cartes PCIe sur AmigaOne XE. Dommage.
9. Et la fin

Bien que j'aie recommandé des cartes modernes pour la Sam440ep-flex, je ne peux pas vraiment les recommander pour l'AmigaOne XE, notamment en raison des deux derniers inconvénients. La carte PCIe est réservée à ceux qui ne peuvent vraiment pas se passer de leurs jeux ou applications Ogles2/Warp3DNova.

Et dans un autre cas similaire, je recommanderais une carte PCIe - si par miracle vous parvenez à la faire fonctionner sur MicroA1-C. La carte Radeon 7000 intégrée avec 32 Mo de VRAM est vraiment insuffisante de nos jours.

Pour l'instant, je reste sur l'AGP et la Radeon 9000 PRO. Parmi les derniers jeux, je préfère Tower57 et je peux y jouer de façon assez fluide avec l'AGP, même si je suis 4 ips plus lent.

Un dernier point concernant le choix de la carte. La Radeon 9000 PRO est généralement proposée avec 132 Mo de VRAM à 250 MHz ou 64 Mo à 275 MHz. Je privilégierai la première option.

Heureusement, j'ai trouvé la variante Hercules 3D Prophet 9000 Pro, dotée de 132 Mo + 260 MHz de VRAM. Elle est juste difficile à trouver.

AmigaOne XE

Mes impressions sur les tests sont mitigées. D'un côté, la machine AmigaOne XE est suffisamment rapide, stable et compatible avec les cartes graphiques modernes. De l'autre, on constate que le développement était très complexe et chronophage à l'époque, de sorte que de nombreux éléments sont conçus uniquement pour des usages spécifiques. Il n'est pas prévu d'utiliser deux cartes graphiques sur le bus PCI 1 (AGP + PCI 66). Il n'est pas non plus prévu d'utiliser autre chose qu'une carte graphique. De plus, U-Boot se comporte légèrement différemment en mode PCI.

J'avais promis la dernière fois que cet article serait trop technique, mais le résultat n'a pas été satisfaisant. Si je mettais la partie technique ici, elle serait trop longue. Je la garderai donc pour le prochain (peut-être) article sur le sous-système PCI et les interruptions. Nous verrons si nous pourrons finalement faire quelque chose avec les interruptions.

Et pour ceux qui sont restés jusqu'ici, quelques histoires intéressantes du domaine de l'alchimie.

AmigaOne XE

Le coin de l'alchimiste n°3

Au cours des répétitions, par exemple, je suis tombé sur de véritables curiosités :

L'installation de la carte Radeon 9250 sur le bus PCI 0 (33 MHz), dans le premier port, donc tous les autres ports débranchés, provoque un effet secondaire intéressant. U-Boot peut voir le DVD dans le contrôleur ATA interne a1ide:0 (maître principal), mais pas le SSD (avec convertisseur IDE) dans a1ide:2 (maître secondaire). Il suffit d'ajouter une carte dans un autre port pour qu'il puisse voir les deux périphériques !

Cas similaire :

Configuration PCI 33 : port 1 : SATA, port 2 : pont PCIe + carte graphique. Tests effectués toute la journée, ça marche. Le lendemain, je l'allume : U-Boot fonctionne, mais AmigaOS ne démarre pas et ne détecte pas le SSD SATA. Il suffit de remplacer le pont PCIe + carte graphique par le port 3 PCI 33 MHz et hop, tout fonctionne comme prévu !

Et pour la troisième fois sur le même sujet :

Configuration PCI 66 : USB, PCI 33, port 1 : SATA, port 2 : pont PCIe + carte graphique. Même scénario : fonctionne longtemps, puis s'éteint pendant quelques heures et AmigaOS ne démarre plus, ne détecte pas le SSD SATA. Retirez simplement la carte USB et hop, c'est réglé !

Il faut que je trouve un chat noir, du parchemin et une cornue quelque part. J'ai déjà le mortier et l'alcool pour le réchaud.
Ajouts de 2024

Aujourd'hui, nous disposons de NovaBridge pour exécuter les anciennes applications Warp3D sur des cartes PCIe modernes. Cependant, je ne l'ai pas testé sur AmigaOne XE. Même s'il améliore considérablement la compatibilité avec les anciens jeux (et vous pouvez probablement jouer à GLQuake avec), la limitation de la vitesse du bus des cartes PCIe (port 33 MHz, pont PCI-PCIe, absence d'interruptions) persiste, ce qui rend l'utilisation des cartes PCIe inutile.


[Retour en haut] / [Retour aux articles] [Article précédent]


Soutenez le travail d'Obligement