Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

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 After Sep 28, 2022

Solution

Jahir Abbas answered on Oct 04 2022
74 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