Differences

This shows you the differences between two versions of the page.

Link to this comparison view

so2:teme:tema6 [2018/05/19 22:29]
daniel.baluta [Recepționarea pachetelor]
so2:teme:tema6 [2019/05/22 21:08] (current)
daniel.baluta [e100 - driver de rețea]
Line 1: Line 1:
 ===== e100 - driver de rețea ==== ===== e100 - driver de rețea ====
-  * Termen de predare: ​**Miercuri, 23 Mai 2018, ora 23:00 ** \\+  * Termen de predare: ​<tema nu intra in lista oficiala de teme pentru 2019>
 ===== Scopul temei ===== ===== Scopul temei =====
  
Line 10: Line 10:
 ===== Enunț =====  ===== Enunț ===== 
  
-Să se scrie un driver pentru placa de rețea **Intel 82559ER** (device întâlnit şi sub numele de **e100** sau **eepro100**). Modulul va trebui să suporte device-urile de rețea configurate în maşina virtuală qemu. Specificațiile se găsesc ​in datasheetul e100:+Să se scrie un driver pentru placa de rețea **Intel 82559ER** (device întâlnit şi sub numele de **e100** sau **eepro100**). Modulul va trebui să suporte device-urile de rețea configurate în maşina virtuală qemu. Specificațiile se gasesc ​in documentul:
  
   * [[http://​application-notes.digchip.com/​027/​27-45688.pdf| 82559ER Fast Ethernet PCI Controller Software Developer Manual]]   * [[http://​application-notes.digchip.com/​027/​27-45688.pdf| 82559ER Fast Ethernet PCI Controller Software Developer Manual]]
  
 Nu va trebui să ciți în întregime documentul de mai sus, ci doar secțiunile indicate în enunț. Nu va trebui să ciți în întregime documentul de mai sus, ci doar secțiunile indicate în enunț.
 +
 +<note important>​Puteți porni implementarea de la zero sau folosi scheletul de cod generat: ​
 +      $ LABS=assignments/​6-e100 make skels 
 +</​note>​
  
 ==== Precizări ==== ==== Precizări ====
Line 41: Line 45:
  
 Urmăriți comentariile marcate cu TODO 2: Urmăriți comentariile marcate cu TODO 2:
-  * inițializați device-ul PCI folosind funcția ''​pci_device_enable''​ (activeaza I/O și memoria și trezește device-ul dacă era suspendat)+  * inițializați device-ul PCI folosind funcția ''​pci_enable_device''​ (activeaza I/O și memoria și trezește device-ul dacă era suspendat)
   * rezervați zonele de memorie si I/O pentru device-ul PCI folosind funcția pci_request_regions   * rezervați zonele de memorie si I/O pentru device-ul PCI folosind funcția pci_request_regions
   * device-ul e100 suporta urmatoarele zone (chapter 4.1.10)   * device-ul e100 suporta urmatoarele zone (chapter 4.1.10)
Line 51: Line 55:
 ==== e100 private data ==== ==== e100 private data ====
  
-Structura ''​e100_priv_data''​ va contine informatii specifice fiecarui device de retea gestionat de driver. În primul rând va conține informații despre pci_dev și netdevice-ul curent, apoi informatii de stare, registre, unitatea de transmisie, unitatea de recepție, etc. Spațiul de memorie pentru ''​e100_priv_data''​ se va aloca în funcția ''​alloc_etherdev''​ urmăriți ​capitolul ​[[so2:​teme:​tema6#​structura_net_device]]. ​+Structura ''​e100_priv_data''​ va contine informatii specifice fiecarui device de retea gestionat de driver. În primul rând va conține informații despre pci_dev și netdevice-ul curent, apoi informatii de stare, registre, unitatea de transmisie, unitatea de recepție, etc. Spațiul de memorie pentru ''​e100_priv_data''​ se va aloca în funcția ''​alloc_etherdev''​ urmăriți ​sectiunea ​[[so2:​teme:​tema6#​structura_net_device]]. ​
  
  
so2/teme/tema6.1526758189.txt.gz · Last modified: 2018/05/19 22:29 by daniel.baluta
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0