Projets PCI

31 Juillet 2005. Rodolphe Czuba a lancé le projet d'extension PCI pour la CT60, une carte qui utilise un pont PCI PLX 9054 compatible avec le PLX 9080 du MILAN.
Parceque en 2005 le TOS est une sorte d'open firmware graphique, le TOS doit booter avec les principaux periphériques PCI
(comme l'écran, la souris et le clavier).
Aussi j'ai planifié deux principaux drivers dans le TOS CT60 PCI :
26 Janvier 2006. Il y a pas mal de travail pour ajouter le support PCI (PCI BIOS, drivers, etc...) dans le TOS, néanmoins depuis quelques mois j'attend apès la CTPCI pour tester le driver Radeon (le principal driver).
Le (X)BIOS PCI est terminée depuis Aout 2005 mais non testé.
Il manque juste le mapping des registres CTPCI (configuration et interruptions en provenance des slots) pour terminer cette partie.
Quelques appels spécifiques XBIOS pour le PLX (comme dma_setbuffer, dma_buffoper, read_mailbox
et write_mailbox) sont ajoutés aux fonctions originales du (X)BIOS PCI.
Le PLX est aussi le premier périphérique du (X)BIOS PCI aussi il est possible d'installer et d'utiliser
ses interruptions et pas seulement les slots PCI.
L'écriture du driver Radeon est terminée depuis Octobre 2005 mais non testée.
En Novembre 2005, une solution fut trouvé pour tester et debugger la partie fVDI et les appels TOS,
la version alpha courante fonctionne avec un écran Videl en 65K x 640 x 480 !
Le driver fVDI est dans le TOS mais peut aussi être appelé par la dernière version de fVDI installée dans
le dossier AUTO (radeon.sys).
L'implémentation de fVDI dans le TOS est réduite à la taille minimale, les appels TOS sont réecrits pour utiliser
toujours les variables et structures originales du TOS. Ainsi par exemple les fontes true type ne sont pas implémentés.
Les fonctions accélérés par le hard sont pour l'instant la souris, les copies d'écran, les lignes, les remplissages, et l'écran virtuel.
Les fonctions XBIOS installés seulement por le driver TOS mettent à jour les fonctions écran (comme Physbase, Vsetscreen, Vsetmode, Montype,
Vgetsize, et Vsetrgb) et le nouveau CT60CONF.CPX peut configurer le choix de l'écran au boot avec 256 ou 65K couleurs en :
Le driver USB est en progression, mais en pause actuellement parcequ'il est préférable d'attendre le hard et de terminer le premier driver.
Nous avons besoin d'espace libre pour installer au maximum les 3 cartes PCI (4 maintenant).
Personnellement j'ai planifié d'utiliser ces 3 cartes :

Les cartes attendent la CTPCI...

Bien avant que la carte mère soit déplacée...
3 mois sans rien faire faute de hard, et puis Mark Duckworth début Avril me propose cette carte d'évaluation Coldfire, la M5484LITE :-). Elle contient :
Il y a pas mal de travail pour faire tourner le TOS sur un Coldfire, mais c'est l'occasion pour moi d'avancer pour essayer le bios PCI et le driver pour la Radeon. La deuxième raison est bien sur de faire avancer la communautée Atari sur le Projet Coldfire Atari.
Pour le clavier, il fut facile de modifier Eiffel pour l'adapter sur un bus CAN au lieu d'un port série, pour cela j'ai installé sur le FALCON un PIC18F242 (16 bits) à la place du PIC16F876 (14 bits), la version CAN n'éxistant que sur la famille 18F, j'ai utilisé un PIC18F258 pour la M5484LITE.
Pour le TOS, j'ai réécrit le XBIOS pour gérer le port série, l'IKBD via CAN, le MFP via les timers GPT et SLT du Coldfire, la flash pour les paramètres, etc...
La CF68KLIB utilisée est celle d'un 68030, la MMU du Coldfire sert surtout a protéger le TOS copié en SDRAM. Comme sur la CT60 on retrouve de la pseudo STRAM avec le cache en writethrough,
et la SDRAM avec le cache en copyback.
3 Juin 2006. Le TOS fonctionne jusqu'au démarrage du GEM, la CompactFlash est détectée mais l'écriture dans ses registres ne fonctionne pas, le bios PCI fonctionne en configuration,
le VDI est inutilisable puisqu'il utilise le blitter, il faut donc que la Radeon soit utilisée via fVDI, pour cela il faut une alimentation ATX.
Il y a deux cibles maintenant, le ct60tos.bin et le firetos.hex.

Le debug sur la carte M5484LITE et Eiffel 2.0 version CAN...
28 Juin 2006. Après avoir ajouté X86EMU pour initialiser la carte Sapphire correctement sur le PCI via son VGA Bios, le (X)BIOS fonctionne sur la carte avec une résolution
sélectionnée de 1024 x 768 x 65K couleurs et aussi en 256 couleurs.
La prochaine étape consiste a essayer le VDI inclus avec le TOS, la CompactFlash ne fonctionnant toujours pas.

Le boot sur la Sapphire (Radeon 7500) en 1024 x 768 x 65K avec la carte M5484LITE...
18 Aout 2006. Après avoir ajouté un ram-disque de 2 Mo, un chargement TFTP via une liste dans TFTP.INF, ayant pas mal de problèmes avec le GEMDOS sur le Coldfire, j'ai finalement utilisé et utilisé BDOS (en provenance de Emutos). Le desktop fonctionne ci-dessous en 1280 x 1024 x 65K couleurs, il y a encore quelques bugs (par exemple l'état SELECTED dans les menus, des modes graphiques transparents non accélérés, mais cela fonctionne assez bien. J'ai même lancé Aniplayer (sans le son ;-) ). Les modes 256 couleurs fonctionnent également. Pour l'instant je n'ai pas encore essayé fVDI et RADEON.SYS dans le dossier AUTO. Le fVDI utilisé ici est celui inclus au TOS et utilisant ses variables.
|
|
|
|
10 Septembre 2006. Passage du ram-disque à 8 Mo. Réecriture des fonctions textes de fVDI en instructions Coldfire. Modification du TOS pour qu'il fonctionne en 16M de couleurs, les icônes couleurs sont affichés en monochrome. CT60CONF.CPX permet de sélectionner les modes vidéo en 256 / 65K / 16M de couleurs pour le boot et/ou le fichier NEWDESK.INF. Kronos et Vdibench donnent de bon résultats pour les textes en 1280 x 1024 x 16M couleurs.
|
|
6 Octobre 2006. Ecriture d'un accessoire jpegsnap.acc (aucun ne fonctionnait). Ajout d'un repertoire tftpsend sur le bureau pour envoyer des fichiers vers le serveur TFTP. Petite augmentation des performances SDRAM. Essai de MiNT avec succès (les modifications se trouvent dans le fichier M5484LITE.readme).

8 Décembre 2006. La CompactFlash fonctionne enfin, le driver intégré au TOS peut gérer 14 partitions sur la CompactFlash.
Une émulation IDE est en cours. Les protocoles XHDI et SCSIDRV sont intégrés au TOS.
Modification du modecode vidéo du XBIOS pour obtenir des fréquences différentes (56, 60, 70, 85 Hz). Ecriture d'un CPX
pour tester toutes les résolutions vidéo.
Accélération du driver Radeon et du VDI du TOS (basé sur fVDI).
La prochaine étape consiste à écrire un driver Ethernet pour MiNT, essayer NFS, mais surtout intégrer DRM au driver Radeon
afin d'avoir l'accélération hardware pour OpenGL.
Pour des informations actualisés chaque semaine, vous pouvez consuler le blog d'Olivier Landemarre :
Categorie Coldfire

28 Décembre 2006. Maintenant j'ai une deuxième carte graphique, une Sapphire Radeon 9250 128 Mo - 64 bits.
Les fonctions VDI textes (v_gtext, v_justified), lignes (v_pline, v_bar), remplissages (v_bar, v_recfl), et copies (vrt_cpyfm, vro_cpyfm) sont maintenant à la vitesse maximale :-).
Le TOS appelle directement les fonctions accélérés sans passer par fVDI.
Le driver reste compatible avec fVDI sous réserve que la compatibilitée ascendante soit respecté ce qui ne semble plus être le cas depuis fVDI 1.14 (vwk structure).
Les motifs de remplissages utilisateur en couleurs fonctionnent également (vsf_updat), et les rotations de texte aussi (vst_rotation) comme le TOS d'origine. Cela n'est pas supporté actuellement dans fVDI.
Voici un comparatif sous Kronos :
| Kronos test | Radeon 7500 | Radeon 9250 |
|---|---|---|
| VDI_CIRCLE | 3943.662 (op/sec) | 3943.662 (op/sec) |
| VDI_ARC | 27164.179 (op/sec) | 27164.179 (op/sec) |
| VDI_BAR | 44250.000 (op/sec) | 44250.000 (op/sec) |
| VDI_ELLARC | 25200.000 (op/sec) | 25200.000 (op/sec) |
| VDI_ELLIPSE | 3582.090 (op/sec) | 3582.090 (op/sec) |
| VDI_ELLPIE | 637.168 (op/sec) | 637.168 (op/sec) |
| VDI_PIESLICE | 800.000 (op/sec) | 802.974 (op/sec) |
| VDI_RBOX | 19085.714 (op/sec) | 19085.714 (op/sec) |
| VDI_PLINE | 100756.219 (op/sec) | 96280.000 (op/sec) |
| VDI_FILLAREA | 1390.909 (op/sec) | 1390.909 (op/sec) |
| VDI_GTEXT | 15000.000 (op/sec) | 15020.000 (op/sec) |
| VDI_JUSTIFIED | 5914.191 (op/sec) | 5973.333 (op/sec) |
| VDI_BLITTING | 80881.188 (op/sec) | 44346.000 (op/sec) |
Il y a peu de différences de vitesse entre la CT60-100 et la M5484LITE, aussi je pense obtenir des résultats similaires sur la CTPCI.

24 Janvier 2007. Integration dans le TOS de VIDIX avec quelques nouvelles fonctions XBIOS entre 400 et 417 :
Février 2007. Suspendu les développements sur la Radeon. Les développements sur la Sapphire All-In-Wonder VE sont-ils encore utiles avec l'arrivée de la TNT ?
Etude de l'intégration d'un OS temps réel et d'une couche TCP/IP afin d'apporter des nouveaux outils sur la carte Coldfire.
Le choix se porte sur FreeRTOS et lwIP.
Mars 2007. Ajout d'un serveur HTTP, les pages sont en mémoire flash.
Passage de la partie PCI du TOS en flash au format compressé LZ. A la décompression le TOS occupe maintenant deux parties :
Avril 2007. Ajout de serveurs TFTP et FTP utilisant le ram-disque de 8 Mo.
Ajout interpréteur de commandes via le port série (terminal) ou un serveur Telnet.
Juin 2007. Le Coldfire ne disposant pas d'un vrai bus error (ou Access Fault) comme le MC68060, protection des zones inutilisés via la MMU.
Utilisation des deux piles du Coldfire V4e (Superviseur et Utlisateur), modification de la CF68KLIB pour la faire tourner en mode superviseur et les tâches de FreeRTOS (le TOS lui-même est une tâche) en mode utilisateur.
Cela doit permettre de faire fonctionner plus de programmes sous la CF68KLIB.
Juillet 2007. Etude de l'ajout d'un codec AC97 sur le PSC2 du Coldfire.
A suivre...
Octobre 2007. Ajout via GlueStick (socket BSD via lwIP) du cookie et les fonctions STiK.
Il est possible d'appeler directement les fonctions de la couche TCP/IP via un cookie 'SOCK' :
Décembre 2007. Essai d'ajouter un serveur VNC.
Janvier 2008. Ajout de la cible M54455EVB, le makefile peut maintenant créer trois cibles :
Mai 2008. Correction de bugs dans la couche TCP/IP.
Juin 2008. Ajout commande pour tracer les instructions émulés par la CF68KLIB afin de trouver plus facilement pourquoi certains programmes ne l'aime pas.
Correction timeout arbitreur (interrution créant artificiellement un Access Fault).
Juillet 2008. Passage de toutes les tâches de FreeRTOS en code natif excepté la tâche TOS tournant sous la CF68KLIB.
Ajout gestion des points d'arrêt dans la tâche TOS de FreeRTOS.
En cas de plantage répété du TOS, il est tué pour faciliter le débuggage via l'interprêteur de commandes de FreeRTOS.
Ajout commande pour tracer les traps appelant le TOS.
Aout 2008. Essai d'un doubleur PCI sur la M5484LITE, malheureusement il est prévu pour un BUS PCI en 5V sur ses deux connecteurs.
Isolation des pistes I/O pour contourner le problème mais il n'y a plus de sécurité., car le Coldfire ne tolére que du 3V3.
Certaines cartes PCI n'ont pas de détrompeur mais leurs buffers PCI sont en 5V, pour vérifier la compatibilité de la carte il suffit de la placer dans le
slot unique de la M5484LITE car l'alimentation ATX se met en sécurité si la carte PCI à ses buffers en 5V (pins I/O).
Ajout d'une carte Ethernet Realtek RTL8139D PCI en plus de la carte Radeon, essai sans succés du driver rtl8139 sous MiNT.

Septembre 2008. Correction bug Ethernet dans le driver FEC du MCF548X.
Ajout affichage graphique des tâches de FreeRTOS dans le serveur HTTP.
Si l'URL n'est pas trouvée dans les pages prédéfinies en mémoire flash, le serveur HTTP cherche le fichier en c:\html\.
Ajout de l'USB Mass Storage sur l'USB device du MCF548X, il utilise le ram-disque de 8 Mo.
Bien que le Coldfire v4e soit buggé, cela fonctionne parfaitement sur iMac, Mac-Mini et un adaptateur TNT Visiosat TVT 250 USB.
Bonne nouvelle, Rodolphe a enfin repris le routage de la CTPCI !
Octobre 2008. Boot possible sur le ram-disque à partir d'un changement de celui-ci via l'USB Mass Storage, la procédure est la suivante :
Mai 2009. Mathias Wittau depuis le début de l'année me relance sur le nouveau projet ACP.
Bien que les choix techniques ne m'interressent pas vraiment (base FPGA trop chère émulant le vieux hardware Atari, Videl préféré à une carte graphique, un seul port ethernet alors que le Coldfire utilisé en a deux, pas de CAN...),
et qu'il reste à finir mon travail sur la CTPCI, j'ai proposé mon aide. Après tout il est possible que ce soit le seul Atari Coldfire (d'où son nom COLDARI).
Mon premier objectif étant d'ajouter le son AC97 au Coldfire.
Ajout de la cible COLDARI, le makefile peut maintenant créer quatre cibles :
Juin 2009.
Début du debug sur la CTPCI ! Le prototype étant terminé les essais peuvent commencer.
Le big endian et le little endian sont inversés dans le PLX9054.
Correction des sélections de 'device' du PLX9054 (pour chaque slot), il faut ajouter 11, currieux... Ce 'bridge' n'est pas réellement compatible avec les spécifications PCI.
Fredi Aschwanden m'a envoyé un CS4299 comme codec audio pour l'AC97 !
Ecriture du driver AC97 basé sur Linux pour les codecs, toutefois il faut écrire intégralement la partie Coldfire. Le PSC du Coldfire dispose d'un mode AC97 mais visiblement personne sur le net ne l'a déjà utilisé !
Seule la partie XBIOS du driver AC97 est facile à écrire, ayant déjà écrit un driver audio pour MagiC MAC et Aranym.
Le DMA du Coldfire pourra être utilisé pour transférer les trames AC97 mais dans un premier temps ce sera le CPU et les interruptions sachant que chaque PSC du Coldfire dispose d'une fifo de 512 octets sur TX et RX.
Une trame AC97 contenant 256 bits (13 slots) soit 13 mots dans la fifo (52 octets).
Juillet 2009.
Les essais CTPCI sont laborieux, il y a des erreurs sur les transferts.
Création de tests pour Rodolphe Czuba utilisant le PCI BIOS.
Correction du device dans X86EMU, seul le slot 3 pouvait fontionner ! Ce qui ne posait pas de problème sur la M5484LITE avec son unique slot. Avec cette modification X86EMU ne met plus que deux secondes pour initialiser la Radeon avec son BIOS.
Sur la M5484LITE, installation du codec audio AC97 CS4299, comme on voit sur cette photo :
Aout 2009.
Rodolphe a corrigé un gros problème d'horloge sur la CTPCI. Après avoir modifié ABE et SDR, il a fait fonctionné l'ensemble CTPCI + CT60 à 105 MHz !
Essai de l'instruction move16 sur la CTPCI et débuts des essai DMA du PLX9054. Avec le DMA les essais n'avancent plus très vite.
Séparation en deux zones prefetch ou non dans la zone MEM PCI.
Correction et amélioration des transferts DMA du PLX9054, mise en place du chainage de blocs DMA si le bloc n'est pas contigue.
Sur la M5484LITE, utilisation du Comm Bus pour les transferts DMA <=> PCI, plus de 100 Mo/S en écriture.
Début des essais du driver audio AC97, la lecture des registres fonctionne mais l'écriture n'est pas fiable.
Si l'on lance la lecture sonore, cela ne fonctionne pas, on voit (via une commande 'acpr' ajoutée en debug) que certains registres ont été réinitialisés comme la fréquence d'échantillonnage !
Septembre 2009. Le PLX9054 ayant des limitations sur ses zones locales PCI MEM et I/O qui doivent être de la même taille et alignés suivant la taille, le TOS CT60 a maintenant 3 cibles :
Octobre 2009. Mark Duckworth ayant a présent une M5485EVB, réorganisation du driver Radeon pour devenir multicible, la M5485EVB ayant un module FireEngine plus complet que la M5484LITE : le LynxEM+. Trois parties sont maintenant présentes :
Novembre 2009.
Réintégration du driver PCI USB ohci/ehci basé cette fois sur les sources de u-BOOT.
L'essai sur la M5484LITE se fait avec la carte USB NEC utilisant un D720101 qui attend la CTPCI depuis 4 ans.
Le bus PCI de la M5484LITE est à 50 MHz et le NEC donné pour un bus PCI à 33 MHz mais ca fonctionne !
Le driver, suivant les périphériques détectés gère :
Janvier 2010. Commencé le remplacement de l'AES par MyAES (merci Olivier Landemarre !), ajout sélecteur de fichiers et boites de dialogue internes.
Mars 2010.
Incroyable, j'ai reçu la CTPCI !
Avril 2010.
ABE7 est-il fiable ? Par 3 fois des problèmes de disque dur sont survenus (dont 2 fois perte d'une partition, la 1ère avant l'installation de la Radeon).
Le bridge PLX9054 étant beaucoup plus lent que le Coldfire V4e, ajout d'une détection du reset à froid pour ne lancer que dans ce cas le VGA BIOS X86.
Activation détection moniteurs sur la Radeon.
Correction boîte de dialogue changement de résolutions sous le bureau du TOS.
Inversion des bits d'autorisaton des interruptions dans le PCI BIOS (suite au changement du hard par Rodolphe).
Les interruptions locales du PLX9054 ne peuvent pas fonctionner (bug hard sans solution).
Réduction usage de Malloc.
Ajout piles locales pour les routines VBL, VDI, Souris, et Bconout 2/5.
Correction bug icônes jaunes (vq_color, merci à Olivier Landemarre).
Correction blocage aléatoire fifo Radeon sur certaines fonctions du VDI (v_gtext et vrt_cpyfm).
Essai du DMA (PLX9054), après mise à jour de ABE, les écritures vers la zone PCI fonctionnent (Kronos affiche 1500 Mo/S), mais les lectures bloquent la machine. Dévalidation des lectures pour l'instant (bug hard).
Essai des interruptions sur carte réseau RTL8139D + driver Milan sous MiNT sans succès (merci à Patrice Mandin, bug hard).
Modification de la carte USB2 en 3V3, merci Rodolphe.
Essai du 'bus matering' via la carte générique USB2 NEC en STRAM et via la RAM de la carte graphique Radeon sans succès (bugs hard).
Mai 2010.
Démontage de la carte USB et de la carte réseau qui ont fini par créer des erreurs de parité et même la disparition de la Radeon puis la reconnaissance de la CTPCI lors du scan PCI !
Voici un comparatif du TOS VDI sous Kronos :
| Kronos test | Radeon 9250 / CTPCI PCI 33 MHz / CPU 95 MHz | Radeon 9250 / M5484LITE PCI 50MHz / CPU 200MHz |
|---|---|---|
| VDI_CIRCLE | 2352.941 (op/sec) | 3943.662 (op/sec) |
| VDI_ARC | 19900.990 (op/sec) | 27164.179 (op/sec) |
| VDI_BAR | 64477.612 (op/sec) | 44250.000 (op/sec) |
| VDI_ELLARC | 17700.000 (op/sec) | 25200.000 (op/sec) |
| VDI_ELLIPSE | 2142.857 (op/sec) | 3582.090 (op/sec) |
| VDI_ELLPIE | 455.696 (op/sec) | 637.168 (op/sec) |
| VDI_PIESLICE | 535.316 (op/sec) | 802.974 (op/sec) |
| VDI_RBOX | 15879.024 (op/sec) | 19085.714 (op/sec) |
| VDI_PLINE | 76866.995 (op/sec) | 96280.000 (op/sec) |
| VDI_FILLAREA | 823.318 (op/sec) | 1390.909 (op/sec) |
| VDI_GTEXT | 8840.000 (op/sec) | 15020.000 (op/sec) |
| VDI_JUSTIFIED | 8827.586 (op/sec) | 5973.333 (op/sec) |
| VDI_BLITTING | 39285.149 (op/sec) | 44346.000 (op/sec) |
| Kronos test | Radeon 9250 / CTPCI PCI 33 MHz / CPU 95 MHz TOS VDI | Radeon 9250 / CTPCI PCI 33 MHz / CPU 95 MHz fVDI |
|---|---|---|
| VDI_CIRCLE | 2352.941 (op/sec) | 1682.243 (op/sec) |
| VDI_ARC | 19900.990 (op/sec) | 10500.000 (op/sec) |
| VDI_BAR | 64477.612 (op/sec) | 56898.000 (op/sec) |
| VDI_ELLARC | 17700.000 (op/sec) | 9411.765 (op/sec) |
| VDI_ELLIPSE | 2142.857 (op/sec) | 1565.217 (op/sec) |
| VDI_ELLPIE | 455.696 (op/sec) | 390.244 (op/sec) |
| VDI_PIESLICE | 535.316 (op/sec) | 466.019 (op/sec) |
| VDI_RBOX | 15879.024 (op/sec) | 7375.610 (op/sec) |
| VDI_PLINE | 76866.995 (op/sec) | 69980.392 (op/sec) |
| VDI_FILLAREA | 823.318 (op/sec) | 703.448 (op/sec) |
| VDI_GTEXT | 8840.000 (op/sec) | 7880.000 (op/sec) |
| VDI_JUSTIFIED | 8827.586 (op/sec) | 9142.857 (op/sec) |
| VDI_BLITTING | 39285.149 (op/sec) | 37571.707 (op/sec) |

Juin 2010.
Passage du boot à la version 2.0. Maintenant les patches ne se font plus à la compilation (idée originale de Xavier Joubert) mais lors du lancement du boot.
Le TOS404 patché tourne toujours en SDRAM protégé en écriture par la PMMU, le TOS404 original se trouvant en flash.
Le principe de fonctionnement est similaire à l'Hades. Ce système résoud mieux le problème des licences.
Il est possible de charger séparément le TOS404, le boot et les drivers PCI :
Juillet 2010.
Accès direct aux registres de la Radeon.
Ajout paramètre diviseur horloge utilisateur de 2 à 6 pour la CTCM, voici un comparatif avec Kronos :
| Kronos test | Radeon 9250 / CTPCI PCI 31.66 MHz / CPU 95 MHz (/3) TOS VDI | Radeon 9250 / CTPCI PCI 47.5 MHz / CPU 95 MHz (/2) TOS VDI | Radeon 7500 / M5484LITE PCI 50 MHz / CPU 200 MHz TOS VDI |
|---|---|---|---|
| VDI_CIRCLE | 2469.136 (op/sec) | 2469.136 (op/sec) | 3750.000 (op/sec) |
| VDI_ARC | 18916.256 (op/sec) | 18916.256 (op/sec) | 28656.716 (op/sec) |
| VDI_BAR | 47304.000 (op/sec) | 47477.228 (op/sec) | 66882.000 (op/sec) |
| VDI_ELLARC | 17227.723 (op/sec) | 17227.723 (op/sec) | 26100.000 (op/sec) |
| VDI_ELLIPSE | 2253.521 (op/sec) | 2253.521 (op/sec) | 3396.226 (op/sec) |
| VDI_ELLPIE | 472.131 (op/sec) | 478.405 (op/sec) | 620.690 (op/sec) |
| VDI_PIESLICE | 566.929 (op/sec) | 569.170 (op/sec) | 779.783 (op/sec) |
| VDI_RBOX | 16114.851 (op/sec) | 16114.851 (op/sec) | 16563.184 (op/sec) |
| VDI_PLINE | 72676.617 (op/sec) | 72676.617 (op/sec) | 134460.000 (op/sec) |
| VDI_FILLAREA | 900.000 (op/sec) | 900.000 (op/sec) | 1291.139 (op/sec) |
| VDI_GTEXT | 8500.000 (op/sec) | 8540.000 (op/sec) | 15860.000 (op/sec) |
| VDI_JUSTIFIED | 8296.296 (op/sec) | 8334.884 (op/sec) | 7255.061 (op/sec) |
| VDI_BLITTING | 36611.765 (op/sec) | 36611.765 (op/sec) | 100362.000 (op/sec) |
| STRAM_READ | 7.833 (Mo/sec) | 7.813 (Mo/sec) | 64.807 (Mo/sec) |
| STRAM_WRITE | 12.660 (Mo/sec) | 12.660 (Mo/sec) | 74.954 (Mo/sec) |
| STRAM_MOVE | 4.851 (Mo/sec) | 4.851 (Mo/sec) | 34.766 (Mo/sec) |
| VIDEO_READ | 5.870 (Mo/sec) | 7.078 (Mo/sec) | 37.038 (Mo/sec) |
| VIDEO_WRITE | 1530.998 (Mo/sec) | 1524.441 (Mo/sec) | 95.326 (Mo/sec) |
| VIDEO_MOVE | 1122.387 (Mo/sec) | 1122.387 (Mo/sec) | 2394.818 (Mo/sec) |


Aout 2010.
Réécriture de CHGRES.PRG pour MagiC.
SpeedoGDOS fonctionne mais n'est pas vraiment stable (avec/sans CTPCI/Radeon il y a des problèmes de cache, par exemple QED plante aléatoirement).
Pour le lancer du dossier AUTO, il faut couper les caches and les remettre ensuite. Ajout du test dans le TOS.
Maintenant le TOS via la fonction Vsetscreen contrôle si le driver Radeon driver installe rééllement la résolution sélectionnée par le modecode, sinon il met à jour le modecode.
On peut voir le résultat avec le bouton 'Test' dans VIDEOCNF.CPX.
Septembre 2010.
NVDI 5.03 fonctionne avec l'écran du boot. Il faut renommer les fichiers NVDIDR*.SYS dans le répertoire de NVDI (merci à Claude Labelle).
Ajout d'un patch XBIOS pour NVDI, maintenant le TOS écrase le XBIOS de NVDI en installant le XBRA '_PCI' en tête de liste quand NVDI est trouvé.
Le résultat : NVDI 5.01 fonctionne et il est possible de changer la résolution et d'avoir la liste des résolutions avec Vsetscreen !
Correction du TOS pour que NVDI fonctionne avec MagiC et le nouveau CHGRES.PRG.
Ajout d'un paramétre en flash et d'une option dans CT60CONF.CPX pour ajouter une sortie debug dans video.log.
Ajout d'un second test de la CTPCI avant d'appeler les patches et de copier le TOS en SDRAM parceque plus loin la CTPCI est toujours détectée par le PCI BIOS ???
Correction de bugs dans le VDI dans les fonctions v_fillarea (line), v_rfbox (user pattern), et v_locator (merci à Claude Labelle).
Correction de la fonction VDI v_contourfill utilisée par beaucoup d'applications graphiques (remarque : Cette fonction n'est pas implémentée dans fVDI).
Octobre 2010.
Correction division par zéro dans la routine de clipping.
Correction de la fonction VDI vrt_cpyfm en 65K couleurs.
Test for obtenir le fonctionnement de MagiC 6.20 avec NVDI.
Maintenant il ne reste plus qu'à attendre la correction des problèmes hardware pour le fonctionnement des cartes PCI USB/Ethernet.
![]() |
![]() |
Octobre 2010.
J'ai contacté Fredi pour continuer mon travail sur la 4ème cible, le Firebee (ancien nom du projet Coldari) suspendu depuis Janvier.
N'ayant pas de PC, l'idée est de travailler comme la M5484LITE, et utiliser dBUG pour charger le TOS. Ainsi la première étape est de recompiler dBUG pour le FIREBEE :
Novembre 2010.
Réécriture de la routine de remplissage par défaut de fVDI par du code natif Coldfire, maintenant c'est plus rapide. La détection du moniteur fonctionne via le port I2C.
Fabrication d'un bus PCI passif avec le riser PCI et le 4ème slot initilisé de la CTPCI, beaucoup de fils à souder...

La carte Radeon 9200 connectée au Firebee...

Décembre 2010.
Essai du Floppy sur le Firebee, la lecture fonctionne mais pas l'écriture, le FPGA n'émulant pas le controleur AJAX du FALCON.
Ajout du driver SD-Card à partir des sources de Fredi.
Essai de l'USB mass storage avec les controlleurs OHCI et EHCI du NEC PCI sur le Firebee. Mais les clefs USB fonctionnent seulement quand la Radeon charge le BUS PCI sinon j'obtiens des timeouts et des erreurs PCI non réccupérables comme la M5484LITE.
Quelques changements ajoutés à BDOS pour corriger un bug avec les clusters de 32Ko (partitions de 2Go).
Si le BAS est installé, maintenant il est possible d'utiliser ethernet sans dBUG avec quelques limitations (3 paramètres utilisés) :
Janvier-Février 2011.
Nous sommes en 2011, et il n'y a aucune nouvelle au sujet de la correction des problèmes hard sur la CTPCI :-(
Supression des sources Linux AC97. Réécriture et essai du driver AC97 Coldfire sur le Firebee (activé aussi sur la M5484LITE) :

Mars 2011.
Correction lecture MP2 et MPEG sur Aniplayer pour le Coldfire.
Essai de la fonction XBIOS Vsetscreen testée dans tous les nouveaux modes pour la carte Radeon. Ajout et essai des commandes CMD_FILLMEM, CMD_COPYMEM, CMD_TEXTUREMEM et CMD_GETVERSION pour une accélération XBIOS.
Ajout de la fonction XBIOS Vsync pour la carte Radeon.
Ajout rejet des modes pour horloges au delà de 135 MHz qui ont des problèmes de température avec la sortie DVI sur RV100 (cartes Radeon 7000).
VIDEOCNF.CPX, ajout du fichier de configuration video.cnf pour XAAES.
Cible Firebee :
Avril 2011.
Ajout des sous fonctions accelérées CMD_LINEMEM, CMD_CLIPMEM, et CMD_SYNCMEM au Vsetscreen du XBIOS (Radeon).
Sur les cibles Coldfire ajout du support 'plug and play' pour l'USB utilisant une tache de FreeRTOS. Mais il y a des problèmes quand on connecte la souris ou le clavier une seconde
fois, le résultat est 'Device Not Responding' avant de démarrer à nouveau le driver souris/clavier.
Ajout d'une correction qui fonctionne avec la souris mais semble ne pas fonctionner avec mon clavier. La couche USB utilise les sources de U-Boot, c'est plus facile à utiliser que Linux mais il y a quelques limitations.
Correction de beaucoup de bugs dans les drivers XHDI (boot IDE et drivers SD-CARD/USB).
Mai 2011. Cible Firebee :
Juin 2011.
Correction d'un affreux bug avec la fonction VDI vst_rotation sur toutes les cibles.
Ajout de la sous fonction CMD_BLANK au XBIOS Vsetscreen (Radeon), cela fonctionne aussi sur le Firebee avec le FPGA et les modes Videl ACP.
Ajout d'un autre menu de boot et possibilitée de secours sur la cible Firebee :
| Index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| MFP | 19200 | 9600 | 4800 | 3600 | 2400 | 2000 | 1800 | 1200 | 600 | 300 | 200 | 150 | 134 | 110 | 75 | 50 |
| PSC0 | 19200 | 9600 | 4800 | 3600 | 2400 | 2000 | 1800 | 1200 | 600 | 300 | 230400 | 115200 | 57600 | 38400 | 153600 | 76800 |
Juillet 2011.
Essai de correction des problèmes de boot avec la flash de la CT60 en lisant jusqu'a 4 fois le TOS en flash si le CRC est mauvais avant d'appliquer les patches en SDRAM.
Si le Supervidel est trouvé, le TOS utilise la routine Bconout par défaut qui utilise le blitter.
Cibles Coldfire :
| Archive | Version | Taille | Ordinateur | |
|---|---|---|---|---|
| TOS drivers | tos_drivers.lzh | 1.01 27 Juillet 2011 | 2756 Ko | CTPCI/FIREBEE
|