IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

Le BIOS et son utilité


Sujet :

Assembleur

  1. #61
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    Pour ce qui concerne les cartes video, il existe une routine dans le bios
    qui va voir dans la zone memoire entre 640K et 1M, si je me souviens
    bien, elle lit 2bytes tous les 16K et si elle lit AA55H cela signifie qu'il y a
    une eprom( ou rom ou eeprom ou etc ) alors il fait un jump a l'adresse
    directement apres le AA55H et alors on execute le code d'initialisation
    du peripherique qui se trouve dans cette eprom sur la carte VIDEO ou
    sur une autre carte ( par exemple, sur les tous premier PC, il y avait aussi
    des cartes controleur de disquette et des cartes controleur de disque dur)

    Habituellement, ces "bios" de carte redirigent les vecteur d'interruption
    vers des routines qui se trouvent dans l'eprom qui se trouve sur la
    carte.

    Dans les derniers BIOS, il y a bien sur une partie qui va initialiser le
    chipset specifique a la carte et lui donner les parametres correct pour
    qu'il puisse fonctionner correctement avec le processeur.
    Mais pour cela il doit reconnaitre le processeur sur lequel il tourne (soit
    par des tests soit par la lecture de valeur dans des registres specifique)
    et c'est pour pouvoir reconnaitre de nouveaux processeurs qu'il doit
    etre mis a jour si on en change.

    cordialement

  2. #62
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 65
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par dway
    et si tu sais activer un mode video en écrivant directement dans ls ports de la carte VGA (san l'int 10h), balances du code je demande à voir !!
    Ici:
    http://osdev.neopages.net/downloads/....zip?the_id=27

    On trouve du code pour activer tous les modes vidéo VGA sans BIOS...

    Ce qu'on lit dans la doc:


    The VGA BIOS must be called once at the beginning of the routines so that we
    know where the fonts are stored. Once this information is known we no longer
    need the BIOS.

    The reason for starting this package is that I am writing an Operating
    System. (There are a lot of us out there I know.) I wanted to be able to
    program standard VGA cards for my OS.
    .....

    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    =- -=
    =- Tauron VGA Utilities Version 3.0 -=
    =- Released September 20, 1998 -=
    =- -=
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    =- Copyright (c) 1997, 1998 by Jeff Morgan =-= This code is FREE provided -=
    =- All Rights Reserved. =-= that you put my name some- -=
    =- =-= where in your credits. -=

    golem
    +++

  3. #63
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 80
    Points : 69
    Points
    69
    Par défaut
    merci golem ! je vais jeter un oeil ..

  4. #64
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 80
    Points : 69
    Points
    69
    Par défaut
    bon bein ca marche pas mal ce code !!! par curiosité golem, comment t'es tombé dessus ? (et encors merci !)

    sinon j'aimerais bien voir le même type de code pour les modes Vesa !!! oui je sais j'en demande beaucoup...je vais regarder dans le code de linux, tiens en parlant de linux je suis tombé sur des bout de codes utilisant les int du bios !!!

  5. #65
    Membre habitué
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Points : 168
    Points
    168
    Par défaut
    Salut

    J'travaille toujours sur le bios et j'ai un ptit probleme
    qq1 a dit que la rom etait mappé avec la mémoire : c faux
    le code qui se trouve en F000 ne sort pas de l'eeprom
    du moins pas sous cette forme
    pour award il est compressé sous forme d'archive LHA et ne prend plus que 37 Ko au lieu de 128Ko
    le probleme c qui decompresse ce fichier (souvent appelé original.tmp)
    si qq1 a une reponse merci de faire parvenir

    pour les bios AMI g toujours rien (c pa du lha et c pa le meme code qu'en f000)

    merci
    ps: sympa le code vga

  6. #66
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 65
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par TangiX
    qq1 a dit que la rom etait mappé avec la mémoire : c faux
    le code qui se trouve en F000 ne sort pas de l'eeprom

    pour award il est compressé sous forme d'archive LHA et ne prend plus que 37 Ko au lieu de 128Ko le probleme c qui decompresse ce fichier (souvent appelé original.tmp)
    c'est moi qui l'ai dit et je me suis sans doute un peu trop avancé ... DSL.

    Il doit y avoir un procédé de décompression qui se déroule assez tôt au lancement du système.
    Là, ca va sans doute être dur de trouver l'info. parce qu'on rentre surement dans les techniques que les contructeurs n'aiment pas trop dévoiler.
    V chercher de mon coté c'est interessant.

    Citation Envoyé par dway
    par curiosité golem, comment t'es tombé dessus ? (et encors merci !)
    par hasard mais en cherchant un peu quand même

    http://osdev.neopages.net/docs.php?cat=0&sort=1


    golem
    +++

  7. #67
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 80
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par TangiX
    Salut

    J'travaille toujours sur le bios et j'ai un ptit probleme
    qq1 a dit que la rom etait mappé avec la mémoire : c faux
    le code qui se trouve en F000 ne sort pas de l'eeprom
    du moins pas sous cette forme
    pour award il est compressé sous forme d'archive LHA et ne prend plus que 37 Ko au lieu de 128Ko
    le probleme c qui decompresse ce fichier (souvent appelé original.tmp)
    si qq1 a une reponse merci de faire parvenir

    pour les bios AMI g toujours rien (c pa du lha et c pa le meme code qu'en f000)

    merci
    ps: sympa le code vga
    ...j'ai pas pigé ton bios est sous forme de fichier ? il se trouve ou ce fichier ?

  8. #68
    Membre habitué
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Points : 168
    Points
    168
    Par défaut
    j'utilise le fichier rom ou bin fournit par les constructeurs pour flasher le bios (j'ai comparé avec un prog d'eeprom le contenu de la rom avec ces fichiers : c la meme chose)

    info:
    bios award
    les premiers 128Ko sont occupé par different fichiers compresse tel que le dessin epa pollution preventer(qui n'est pas lisible)
    aprés il y a le bios proprement dit. celui qui aprés etre décompressé va se logé en f000
    et aprés il ya du code dont celui pour decompressé les fichiers au format lha (enfin je crois) le vrai demarrage doit se situé dans cette partie du bios

    a++

  9. #69
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 80
    Points : 69
    Points
    69
    Par défaut
    qq'un bosse encore sur le bios et/ou l'acces direct aux cartes graphiques ?

    j'ai jeté un oeil aux src de linux ainsi qu'a la lib svgalib et quand je regarde le nb de cartes supportés et la taille des fichiers que cela représente (1 à 2 Mo) je me demande comment fait le bios qui lui tiens sur 1 ou 2 fois 64 Ko en rom...

  10. #70
    Membre habitué
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Points : 168
    Points
    168
    Par défaut
    bosse toujours sur le bios moi,
    mais j'me decourage devant l'impossibilité d'avoir des renseignement

    pour les cartes graphique a mon avis linux doit regardé les aspects spécifique de chaque carte alors que le bios se fout totalement de quelle carte est présente (sauf pour le svga : ya ptete qqch genre une routine pour trouver la spécificité de chaque mode.)

  11. #71
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 80
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par TangiX
    bosse toujours sur le bios moi,
    mais j'me decourage devant l'impossibilité d'avoir des renseignement

    pour les cartes graphique a mon avis linux doit regardé les aspects spécifique de chaque carte alors que le bios se fout totalement de quelle carte est présente (sauf pour le svga : ya ptete qqch genre une routine pour trouver la spécificité de chaque mode.)
    ben non il s'en fout pas le bios....si tu peut avtiver des modes vesa par le bios c'est qu'il gérer toutes les cartes...ou alors l'appel à la fonction set vesa mode du bios est logé sur la carte graphique ....

  12. #72
    Membre habitué
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Points : 168
    Points
    168
    Par défaut
    pour le vesa je suis dacord il y a surement un truc mais sinon le bios ne sais pas quelle carte est connecté, c impossible

  13. #73
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 80
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par dway
    qq'un bosse encore sur le bios et/ou l'acces direct aux cartes graphiques ?

  14. #74
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Pipin a fait une bonne remarque.
    Effectivement le mystere de : comment le bios fait pour gerer les 41 millions de cartes existantes avec quoi ?allez 120Ko de code reside dans le fait que chaque carte d'extension se trouvant sur un port pci ou agp contient un morceau de microcode lu et chargé par le bios pendant le POST (la est aussi l'explication de comment booter sur un disque branché sur une carte pci par exemple).

    Donc finalement le vga , svga vesa, xga uxga et autres acronymes sont supportés par le bios tout simplement car chaque carte ballade avec elle le code qui permet de la gérer, et le bios sait utiliser ce code car il répond à un standard qui s'appelle qqchoseGA suivant les perfs qu'offrent votre carte.
    Chaque microcode est propriétaire, mais repond a une norme ...Ga pour pouvoir etre appele par le bios (int 10h, la voila qui revient, elle ne fait en fait que vous donner acces aux bouts de code chargés à partir de la carte graphique).
    Alors apres si vous voulez reecrire l'int 10h, ca peut dire deux choses : 1.vous voulez acceder aux microcodes constructeur sans passer par 10 h , je pense que cest possible, c'etait la premiere possibilité.
    2.Soit vous voulez reecrire tout ce qu'il y a derriere 10h , cad en fait 99% de microcode proprietaire. et alors la bon courage.
    Le faire pour une seule carte avec toute la doc me semble possible mais pas vraiment productif, puisque comme vous attaquez les port d'un materiel qui porte pas franchement de standard, a chaque changement de carte il vous faudra reecrire tout ou partie du code (les constructeurs ne changent pas tout non plus entre deux carte, sont pas SM non plus)

    Pourquoi les systeme XP et linux peuvent ne pas utiliser pas int 10h ? parcequ'il possedent soit les drivers specifiques fourni par le constructeur, qui eux aussi, sont capables comme le pilote chargé par le bios d'attaquer directement les ports de la carte, soit des drivers generiques, s'appuyant sur les definitions logicielles de ...ga (mais donc aux possibilités plus limitée, puisque les constructeurs adorent faire des truc pas standard impossible a decrire dans ...ga) qui eux aussi sont capable d'attaquer directement les cartes.

    Dans l'hypothèse ou le systeme ne possede pas de pilote specifique, on peut imaginer qu'il utilise le code directement lu sur la carte pour l'interfacer avec le reste du syteme à sa sauce sans passer par int10h. Il fait le meme boulot que le bios, il lit le bout de code et il le met dans un endroit et sous une forme utilisable par le reste des softs. (option 1 plus haut)

    Donc voila j'espere que je vous ai eclairé un peu, tout n'est surement pas exact, c'est meme quasiment sur, car je ne connais pas tous les principes de ...ga (meme pas toutes les grandes lignes peut etre qu'il y a aussi un pendant materiel au standard, qui permet de ne pas avoir a fournir trop de microcode ac la carte).
    Mais je pense que les principes généraux y sont.
    Pour plus d'infos je vous renvoie a un livre bleu "le PC" qui decrit assez bien POST, au moins les principes (par micro apps je crois).

  15. #75
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 80
    Points : 69
    Points
    69
    Par défaut
    donc en résumé l'int 10h du bios comporte 2 parties :

    - une pour la norme vga avec les modes videos basiques situé réllement sur le bios de la carte mére.

    - une pour la partie vesa qui est en fait situé sur la carte graphique et donc c'est chaque carte qui apporte son propre support et non pas le bios, ce qui confirme le fait que le bios prend relativment peu de place en memoire et ne pourrait pas directement supporter tous les cartes qui ont quasiment toutes un protocole de fonctionnement différend...ca explique aussi le fait que parfois quand on boot un pc , juste avant les msgs du bios il y a un petit truc de la carte graphique qui s'affiche...

    il reste possible de developper des drivers "vga" relativement simplement (voir le code source balancé + haut) ou même "vesa" (comme le fait en partie linux) mais cette seconde partie est en effet un travail de titans et doit être renouveller quasiment à chaque fois qu'un nlle carte sort...

    tout le monde est d'accord avec ca ?

  16. #76
    Membre habitué
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Points : 168
    Points
    168
    Par défaut
    mouais, a verifier
    qqun a une preuve

Discussions similaires

  1. EventArgs : quel est son utilité ?
    Par cma dans le forum VB.NET
    Réponses: 4
    Dernier message: 28/01/2008, 12h49
  2. [Etat-Transition] [RUP] Son utilité ?
    Par zazou19 dans le forum Autres Diagrammes
    Réponses: 8
    Dernier message: 23/04/2007, 19h33
  3. [Java][MVC] son utilité
    Par black.out dans le forum MVC
    Réponses: 6
    Dernier message: 15/07/2006, 05h46
  4. [JVM]C'est quoi la méthode clinit ? Son utilité ?
    Par elitost dans le forum Langage
    Réponses: 1
    Dernier message: 23/03/2006, 15h15
  5. [power AMC] Quels est vraiment son utilité?
    Par alpachico dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 08/08/2005, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo