The following items will be graded for this checkpoint. Programming assignment: src/pci.c pci_init Add delegation functions necessary to handle VirtIO devices. Make sure you properly handle type 0 and...

1 answer below »

The following items will be graded for this checkpoint.


Programming assignment:



  • src/pci.c

    • pci_init

    • Add delegation functions necessary to handle VirtIO devices.

    • Make sure you properly handle type 0 and type 1 devices.



  • Add a file called src/virtio.c and associated src/include/virtio.h

    • In this file, set up the descriptor table, driver ring, and device ring for all VirtIO device. Recall VirtIO devices have a unique vendor ID in the PCI ECAM.

    • The Makefile will automatically pick up any *.c file in the src directory, so your virtio.c will be seen by the Makefile.

      • You may need to 'make clean' prior to building when you add a new file.





  • src/main.c



      • Add pci_init() call. This will need to be made after the MMU is turned on and the paging/heap have all be initialized.





  • Always consider asynchronicity when writing your code! If another HART could possibly map to a page table, it must be locked!



Create a tag called "checkpoint2". I will grade checkpoint2, or if that doesn't exist, the master branch.





Answered 6 days AfterSep 28, 2022

Answer To: The following items will be graded for this checkpoint. Programming assignment: src/pci.c pci_init...

Jahir Abbas answered on Oct 04 2022
62 Votes
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here