[Barrelfish-users] Details regarding pci support with acpi

Baumann Andrew andrewb at inf.ethz.ch
Mon Aug 15 21:59:34 CEST 2011


At some point you need to implement the accessor functions for reading/writing PCI space and device memory. ACPI doesn't do any of that for you (it doesn't know how - the mappings are OS specific). Part of the ACPI host code you need to implement is for performing those accesses. The ACPICA code is really just a bytecode interpreter with some knowledge of the ACPI data structures. It doesn't directly implement device access.

You can either use the traditional IO ports, or the PCIe memory-mapped config space region. Barrelfish does both depending on the device and some heuristics.

Cheers,
Andrew

From: hilfialkaff at gmail.com [mailto:hilfialkaff at gmail.com] On Behalf Of hilfi alkaff
Sent: Monday, 15 August, 2011 12:57
To: Roscoe Timothy
Cc: barrelfish-users at lists.inf.ethz.ch; Baumann Andrew
Subject: Re: [Barrelfish-users] Details regarding pci support with acpi

I seee. Do you know whether it's possible to use pure acpi functions only w/o reading the conf space manually? I'm just wondering how much could I acpi-ed my kernel

Hilfi Alkaff
On Mon, Aug 15, 2011 at 11:42 AM, Timothy Roscoe <troscoe at inf.ethz.ch<mailto:troscoe at inf.ethz.ch>> wrote:

Hilfi,

We do low-level PCI reads/writes to configuration space just like
everyone else does - the only difference is the use of the Mackerel
DSL to specify register formats.  pci_hdr1.dev is a Mackerel
specification of the PCI type 1 (bridge) header; the format is
documented in the Mackerel manual (Technical note #2).   If you read
that documentation, plus the pci_hdr1.dev file, you'll see that
pci_hdr1_vendor_id_rd() is the function to read the vendor id field of
a PCI config header.

 -- Mothy

At Mon, 15 Aug 2011 11:03:41 -0700, hilfi alkaff <hilfialkaff at berkeley.edu<mailto:hilfialkaff at berkeley.edu>> wrote:
> Hi,
>
> I have some follow up questions regarding the same topic. how do you guys
> read the device ID, vendor ID of the pci? I see this function
> pci_hdr1_vendor_id_rd() but I don't really understand about the .dev file
> format. Do you guys read from the pci conf headers or using acpi commands?
>
> Thanks,
> Hilfi Alkaff
>
> On Thu, Aug 4, 2011 at 5:01 PM, hilfi alkaff <hilfialkaff at berkeley.edu<mailto:hilfialkaff at berkeley.edu>>wrote:
>
> > Oh, of course, how I did not realize that, >.<,, Thanks!
> >
> > Hilfi Alkaff
> >
> >
> > On Thu, Aug 4, 2011 at 4:16 PM, Baumann Andrew <andrewb at inf.ethz.ch<mailto:andrewb at inf.ethz.ch>>wrote:
> >
> >>  Hi,****
> >>
> >> ** **
> >>
> >> I'm not sure what you mean by this, since pci_add_root() is a function in
> >> Barrelfish and not ACPICA, but the general answer to your question is
> >> probably that you can't use the ACPICA reference in isolation: you also need
> >> to grok parts of the PCI spec (or just the bad Mindshare books), the ACPI
> >> spec, the PNPBIOS spec (mainly just for the device IDs), and if in doubt
> >> also the source code to something clean like FreeBSD to make sense of it
> >> all.****
> >>
> >> ** **
> >>
> >> Good luck :)****
> >>
> >> ** **
> >>
> >> Andrew****
> >>
> >> ** **
> >>
> >> *From:* hilfi alkaff [mailto:hilfialkaff at berkeley.edu<mailto:hilfialkaff at berkeley.edu>]
> >> *Sent:* Thursday, 04 August, 2011 15:47
> >> *To:* barrelfish-users at lists.inf.ethz.ch<mailto:barrelfish-users at lists.inf.ethz.ch>
> >> *Subject:* [Barrelfish-users] Details regarding pci support with acpi****
> >>
> >> ** **
> >>
> >> Hi,
> >>
> >> I'm an undergraduate currently working on a research operating system and
> >> I'm having problems when initializing pci and mapping its interrupts with
> >> ACPI. I'm wondering how do you guys figure out the pci_add_root() function
> >> because I could not find any meaningful details in Intel's acpica reference.
> >>
> >> Thanks,
> >> Hilfi Alkaff****
> >>
> >
> >
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20110815/931d6cf8/attachment-0001.html 


More information about the Barrelfish-users mailing list