Pistorm’X

Forum Amiga Hardware Pistorm’X

  • Créateur
    Sujet
  • #136799
    flaco
      • Level 5
      • Messages : 189

      bonjour,

      Pour info j’ai commencé à parler de mon dernier projet sur de Discord Pistorm, section hardware.

      Si certains ont les compétences pour assembler le leur et voudront tester, ils seront les bienvenus dès que j’aurai pu le publier.

      Github du projet : https://github.com/f1ac0/PistormX

      Stay tuned !

      Pistorm'X

    Affichage de 15 réponses de 31 à 45 (sur un total de 50)

    Partager sur vos réseaux sociaux préférés :
    Facebooktwitterredditpinterestlinkedintumblrmail

    • Auteur
      Réponses
    • #162159
      flaco
        • Level 5
        • Messages : 189

        Pour information je viens d’ajouter la seconde version de la carte PiStorm’X 1K2, plus courte, et plus traditionnelle avec le Pi accessible dans la trapdoor.

        Pour le DIY si on ne tient pas à refermer la trapdoor elle autorise d’utiliser un pin socket traditionnel plutôt que de devoir trouver un socket de hauteur réduite avec entrée par le bas. Les rallonges de carte SD dont la partie rigide est trop longue ne devraient cependant pas y passer lorsque un utilise un tel socket et que le Pi tient dans la trapdoor.

        PiStorm'X 1K2 alt

        PiStorm'X 1K2

        PiStorm'X 600

        PiStorm'X 500

         



        #162539
        flaco
          • Level 5
          • Messages : 189

          sur un 2000 le DMA ne fonctionne pas, sais tu ci c’est hard ou soft ? Et cela pourrais fonctionner avec ta version ?

          Ce qui devait arriver arriva, et j’ai pris un moment pour faire un firmware pour la carte PiStorm’X avec le support des signaux d’arbitrage du bus, qui devraient idéalement pouvoir faire fonctionner les périphériques DMA !

          C’est dans mon git, mais donc c’est pas testé puisque je n’ai pas d’A2000 ni de carte d’extension.

           

          se ne serais pas ce qu’il appel « bus master » en fait le transfert DMA

          Effectivement c’est lié et c’est un bon résumé de ma précédente explication : pour pouvoir faire des accès directs à la mémoire où à d’autres périphériques (DMA) le périphérique en question doit pouvoir devenir “maître du bus” (bus master) !

          #162572
          stephbb75
            • Level 10
            • Messages : 1188

            Salut,

            Ce qui devait arriver arriva, et j’ai pris un moment pour faire un firmware pour la carte PiStorm’X avec le support des signaux d’arbitrage du bus, qui devraient idéalement pouvoir faire fonctionner les périphériques DMA !

            Et bas c’est cool :lol:
            Plus qu’a tester, le firmware fonctionnerais sur un Pistrom “standard” ?

            Bon, va falloir que je te lance sur les carte qui remplace les périf SCSI toi :whistle:

            https://youtube.com/@stephbb75

            #162579
            flaco
              • Level 5
              • Messages : 189

              C’est que tu es vachement exigeant dis donc. Ce que j’ai commité ce matin c’est pour la carte PiStorm’X première du nom. La logique est différente et les composants aussi donc on ne peut pas utiliserces fichiers tels quels sur la carte PiStorm originale.

              J’ai écris une erreur dans mon message du 23 mai : sur la carte CPU PiStorm originale les signaux d’arbitrage du bus sont bien connectés au CPLD via le switches/lever shifters 743384 U7. Les buffers 7416347 ont bien une sortie sur le bus 68000 pilotable par le CPLD : DATA_WR_OE et surtout ADDR_OE. Et dans le code la sortie M68K_BG_n est bloquée au niveau haut sans aucune logique pour prendre en compte BG. Donc ça ne me paraît pas impossible à réaliser pour celle-ci.

              Et donc je trouve étrange que personne n’ait rien fait en ce sens si le problème est connu. En plus tu ne dois pas être le seul à utiliser un A2000 vu qu’il y a des gens qui essayent de faire du blé avec des produits comme cela : https://www.tindie.com/products/retrofletch/pistorm-2k-for-a2000-amiga-2000-pistorm2k-black/

              C’est soit disant conçu par un certain MadGrizzle. Sauf que manifestement je ne trouve aucune info partagée à son sujet, notamment là https://github.com/madgrizzle. J’ai pu passer à côté, mais sinon je n’aime vraiment pas les gens qui profitent mais sans contribuer en retour ni leur layout ni leur code, et qui pour le support de leurs clients renvoient vers le projet communautaire. Et s’ils n’ont pas fait le nécessaire pour adapter leur produit au système dans lequel il doit être installé alors c’est la cerise sur le gâteau.

              #162594
              flaco
                • Level 5
                • Messages : 189

                Voici une tentative d’ajout de l’arbitration du bus dans la logique du Pistorm original.

                Je peux donner le fichier svf compilé pour EPM240 à qui veut l’essayer. Il y a quand même un truc que mon Quartus 17 ne génère pas exactement le même bitstream pour le code original généré avec Quartus 20, j’espère que ça n’a pas d’incidence.

                diff rtl/pistorm.v rtl-dma/pistorm.v
                48c48
                < output reg M68K_BG_n,

                > output M68K_BG_n,
                79c79
                < M68K_BG_n <= 1’b1;

                > // M68K_BG_n <= 1’b1;
                83a84
                > reg [1:0] bg_sync;
                87a89
                > bg_sync <= {bg_sync[0], bus_granted};
                91a94,95
                > wire bg_rising = !bg_sync[1] && bg_sync[0];
                > wire bg_falling = bg_sync[1] && !bg_sync[0];
                193a198,217
                > if(bg_rising) begin
                > M68K_AS_n <= 1’bz;
                > M68K_UDS_n <= 1’bz;
                > M68K_LDS_n <= 1’bz;
                > LTCH_A_OE_n <= 1’bz;
                > LTCH_D_WR_OE_n <= 1’bz;
                > M68K_RW <= 1’bz;
                > M68K_VMA_n <= 1’bz;
                > end
                > if(bg_falling) begin
                > M68K_AS_n <= 1’b1;
                > M68K_UDS_n <= 1’b1;
                > M68K_LDS_n <= 1’b1;
                > LTCH_A_OE_n <= 1’b1;
                > LTCH_D_WR_OE_n <= 1’b1;
                > M68K_RW <= 1’b1;
                > M68K_VMA_n <= 1’b1;
                > end
                >
                >
                205c229
                < if (op_req) begin

                > if (op_req && !bus_granted) begin
                277a302,318
                >
                > // BUS ARBITRATION CONTROL
                > wire bus_requested = !M68K_BR_n;
                > reg bus_granted = 1’b0;
                >
                > wire bgset = bus_requested & (state == 3’d1);
                > wire bgreset = !bus_requested & M68K_BGACK_n;
                > always @(posedge bgset, posedge bgreset) begin
                > if(bgreset)
                > bus_granted <= 1’b0;
                > else
                > bus_granted <= 1’b1;
                > end
                >
                > // output M68K_BG,
                > // indicates to all other potential bus master devices that the processor will relinquish bus control at the end of the current bus cycle.
                > assign M68K_BG_n = bus_requested ? 1’b0:1’b1;

                 

                De revoir le code original compliqué avec son horloge à 200MHz et (je trouve) pas très net  et sans commentaire, ça m’a rappelé pourquoi j’avais dû tout refaire pour le PiStorm’X ;)

                #162595
                stephbb75
                  • Level 10
                  • Messages : 1188

                  C’est que tu es vachement exigeant dis donc.

                  HA non, c’est juste une question ;-)

                  J’ai écris une erreur dans mon message du 23 mai :….Et donc je trouve étrange que personne n’ait rien fait en ce sens si le problème est connu.

                  J’avais pauser la question sur le discord, mais je ne me rappelle plus vraiment de la réponse !
                  Michal Schulz n’a pas de 2000 je crois bien déjà. et les autres je ne sais pas ;-)

                  En plus tu ne dois pas être le seul à utiliser un A2000

                  Non c’est sur !

                  vu qu’il y a des gens qui essayent de faire du blé avec des produits comme cela

                  Oui, y’en a qui ne doute de rien, qui se foute de tout !
                  Ma gueule en 1er et les autre crevez :cry:

                  De mémoire c’est un simple Pistorm avec la connectique pour le slot CPU du 2000 (à la place du 68000).
                  Et de mémoire aussi effectivement il n’y a jamais eu de diffusion du plan.

                  Moi j’utilise un adaptateur CPU (slot CPU vers 68000) puis un Pistrom “classique”.
                  Je n’ai pas ces PiStorm que tu branche directement sur le port CPU, beaucoup trop cher (mon fils (celle la faut avoir 50 ans pour la comprendre !!!))

                   

                   

                  https://youtube.com/@stephbb75

                  #175778
                  flaco
                    • Level 5
                    • Messages : 189

                    Bonjour,

                    Après ma déconvenue récente sur mon 500, je suis soulagé ce soir et je vous partage ma joie.

                    Après un bug et un faux contact sur une soudure du CPLD j’ai enfin fait marcher mon PiStorm’X 600 :PiStorm'X600

                    PiStorm'X 600 Sysinfo

                    Au menu, il reprend les fonctionnalités du PiStorm’X68K en permettant de désactiver le Pi au profit du 68K, au moyen d’un reset long.

                    Comme il restait suffisamment de place sur le PCB et dans le CPLD, j’ai ajouté une puce de 2Mo de Fast Ram autoconfig. Ca ne sert pas à grand chose en mode PiStorm (même si elle est bien présente) vu la quantité de RAM par ailleurs, mais lorsque celui-ci est désactivé c’est un bonus non négligeable pour le 68K. A moi Final Fight !

                    PiStorm'X 600 Fast RAM additionnelle

                     

                    Maintenant il reste à réparer le 500… et le PiStorm’X1K2.

                    #175781
                    stephbb75
                      • Level 10
                      • Messages : 1188

                      Salut,

                      Trop coll tout cela, tu l’a présent sur le discord ?

                      De pouvoir désactiver le Pistorm peux intéressé certain pour utiliser les originaux parfois.

                      Moi perso le 600 c’est non, mais je sais que pas mal l’utilise ;-)

                      https://youtube.com/@stephbb75

                      #175784
                      flaco
                        • Level 5
                        • Messages : 189

                        Alors je vais déjà nettoyer et commiter les corrections dans les sources avant de l’annoncer là bas.

                        Je vais aussi transférer ces mêmes corrections dans la version 500 car peu ou prou c’est la même chose (à part que le 68k est optionnel et qu’il faut gérer les signaux 6800 E VPA et VMA) et donc cela devrait aussi fonctionner aussi… même si je n’ai plus de machine fonctionnelle pour le tester pour le moment. :cry:

                        J’ai découvert au passage que emu68 fournit 512K de ranger ram, je n’avais jamais fait attention ! Au départ j’ai cru que c’était un bug de ma logique, mais elle s’est avérée bien fonctionnelle.

                        Là je viens de le faire tourner plusieurs heures à la suite sans problème, alternant le 68K et le Pi3A. Je constate juste les soucis habituels avec les softs sur disquette qui n’apprécient pas d’être trop accélérés.

                        Trucs que je n’ai pas testés :

                        • le RTG car mon câble HDMI bute sur la coque plastique. Peut être que j’y installerai un Pi zéro2 ou alors il faut que je trouve un cordon HDMI coudé pour le faire passer par le modulateur qui est déjà retiré de ma machine.
                        • l’IDE, lors de mon premier test mon adaptateur ou la carte SD n’étaient pas reconnus aussi je les ai retirés, mais de mémoire j’avais déjà eu des faux contacts dans la nappe, à moins que je les ai fingués sans m’en apercevoir pendant le débuguage où je n’ai pas pensé à les retirer. Je me demande d’ailleurs s’il est sensé marcher en mode PiStorm, car peut être que Emu68 prend sa place pour émuler ses disques ? Néanmoins il devrait au moins marcher en mode 68K.

                         

                        #175786
                        stephbb75
                          • Level 10
                          • Messages : 1188

                          Salut,

                          ’ai découvert au passage que emu68 fournit 512K de ranger ram,

                          Heuuu c’est quoi de la ranger RAM ?

                          le RTG car mon câble HDMI bute sur la coque plastique…

                          Moi j’utilise cela sur les 3 Amiga avec Pistorm :
                          https://fr.aliexpress.com/item/1005006437300837.html
                          (1er liens trouvé !!!) et cela fonctionne très bien.

                          l’IDE, lors de mon premier test mon adaptateur ou la carte SD n’étaient pas reconnus…

                          Utilise un DOM cela fonctionne vraiment très bien, prend peut de place !
                          https://fr.aliexpress.com/item/1005003548648501.html
                          Pareil, 1er liens trouvé ;-)

                          Je me demande d’ailleurs s’il est sensé marcher en mode PiStorm

                          Non cela fonctionne très bien avec le Pistorm, sur mon 1200 j’ai un DOM et j’y accède très bien depuis Emu68.
                          Sur le 600 cela fonctionne aussi même si je n’ai pas testé personnellement.

                          car peut être que Emu68 prend sa place pour émuler ses disques ?

                          Non, il n’utilise pas le même device et emplacement physique.

                           

                          https://youtube.com/@stephbb75



                          #175789
                          Staff
                          Zarnal
                            • Level 22
                            • Messages : 7505

                            Heuuu c’est quoi de la ranger RAM ?

                            De la Slow.

                            A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - A1200 ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae. CPC 6128-CPC 464.

                            #175791
                            Kimy
                              • Level 16
                              • Messages : 3131

                              J’ai une question un peu HS, mais comme vous parlez de RAM…

                              Qu’est-ce donc que cette “autre mémoire” sur le “xT Turbo – 28 Mhz, 11 MB, Boot Selector et MapROM pour A600”:

                              11 MB de RAM (8 MB de FAST RAM, 1,5 de SLOW et 1,5 MB d’autre mémoire).

                              Serait-ce également de la “Slow” ?

                              Une mémoire directement connectée au CPU par le Zorro II ?

                              Merci

                              Source: https://www.micromiga.com/produit/xt-turbo-28mhz-11mb-bootselector-et-maprom-pour-a600/

                              #175797
                              flaco
                                • Level 5
                                • Messages : 189

                                Qu’est-ce donc que cette « autre mémoire » sur le « xT Turbo – 28 Mhz, 11 MB, Boot Selector et MapROM pour A600 »:

                                Outre la zone autoconfig de 8Mo de l’adresse 200000 à 9fffff, la zone trapdoor (ou ranger ram) de 1.5Mo entre c00000 et d7ffff, il est aussi possible de mapper une mémoire entre a80000 et beffff. Pour utiliser cette dernière il faut l’ajouter manuellement avec une commande qui appelle la fonction addmem de la rom avec la plage d’adresse à ajouter.

                                Je n’aime pas utiliser le mot slow ram car dans les faits avec ces extensions l’accès est direct par le CPU sans être ralenti par le chipset. La seule vraie slow ram est celle de la trapdoor du 500 sur les systèmes qui ne sont pas modifiés pour la transformer en chip.

                                #175830
                                Kimy
                                  • Level 16
                                  • Messages : 3131

                                  […] il est aussi possible de mapper une mémoire entre a80000 et beffff. Pour utiliser cette dernière, il faut l’ajouter manuellement avec une commande qui appelle la fonction addmem de la rom avec la plage d’adresse à ajouter.

                                  Donc, ça serait cette RAM qui est nommée “autre mémoire”.

                                  J’ai bien compris ?

                                  #175835
                                  flaco
                                    • Level 5
                                    • Messages : 189

                                    J’ai bien compris ?

                                    A mon sens oui ;)

                                  Partager sur vos réseaux sociaux préférés :
                                  Facebooktwitterredditpinterestlinkedintumblrmail
                                  Affichage de 15 réponses de 31 à 45 (sur un total de 50)
                                  • Vous devez être connecté pour répondre à ce sujet.