From: Saad Masood <saadahmed42@gmail.com>
To: Chan Kim <ckim@etri.re.kr>, kernelnewbies@kernelnewbies.org
Subject: Re: What does OS do with the 'ranges' property in PCI RC node in the device tree?
Date: Mon, 21 Nov 2022 11:51:53 -0500 [thread overview]
Message-ID: <CAJbqJY6mz+2nVSuXjLBGd2nDBzgTHNUEsO2x39P1jZadm_ncYA@mail.gmail.com> (raw)
In-Reply-To: <013d01d8fdab$56bbc1d0$04334570$@etri.re.kr>
[-- Attachment #1.1: Type: text/plain, Size: 2628 bytes --]
Hi Chan,
The O/S builds out multiple memory nodes using the addresses in the
'ranges' property. 'Each node is divided up into a number of blocks called
*zones* which represent ranges within memory...' from (
https://www.kernel.org/doc/gorman/html/understand/understand005.html)
Also, please read this:
https://devicetree-specification.readthedocs.io/en/latest/chapter3-devicenodes.html
"A memory device node is required for all device trees and describes the
physical memory layout for the system. If a system has multiple ranges of
memory, multiple memory nodes can be created, or the ranges can be
specified in the *reg* property of a single memory node."
Thanks & regards,
Saad
On Mon, Nov 21, 2022 at 8:16 AM Chan Kim <ckim@etri.re.kr> wrote:
> Hello linux experts,
>
> I read https://elinux.org/Device_Tree_Usage, and it says about the
> "ranges"
> property in the PCIe Root Complex node,
> "The above ranges define how the CPU see the PCI memory, and helps the CPU
> to set up the right memory windows and write the right parameters into
> various PCI device registers. This is sometimes referred to as outbound
> memory."
> I know the 'ranges' property shows how the PCI devices's addresses are
> mapped to host CPU's addresses. The PCI devices are identified by the
> bus/device/function pair and the address is indicated the
> config/IO/memory32/memory64 types and start and length in the PCI bus.
> I understand that the BIOS or bootloader initializes PCI RC and does the
> enumeration and assigns the BAR registers so that the device's resources
> are
> mapped in host CPU's address space.
> And I guess the bootloader fixes the device tree (or ACPI table) by filling
> in the 'ranges' property. Is it correct?
> My another question is, what does the OS do with this 'ranges' information
> in the device tree? Of course the PCI device's driver uses BAR to get the
> physical address (seen from the host CPU) and by ioremap, it can access the
> devices memory and registers using virtual address. In the above link it
> says "The above ranges define how the CPU see the PCI memory, and helps the
> CPU to set up the right memory windows and write the right parameters into
> various PCI device registers. This is sometimes referred to as outbound
> memory." What does it mean? Does the OS do something with this 'ranges'
> value?
> I'll appreciated if someone could explain it to me.
> Thank you!
>
> Chan Kim
>
>
>
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies@kernelnewbies.org
> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
[-- Attachment #1.2: Type: text/html, Size: 4579 bytes --]
[-- Attachment #2: Type: text/plain, Size: 170 bytes --]
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
prev parent reply other threads:[~2022-11-21 16:52 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-21 13:15 What does OS do with the 'ranges' property in PCI RC node in the device tree? Chan Kim
2022-11-21 16:51 ` Saad Masood [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAJbqJY6mz+2nVSuXjLBGd2nDBzgTHNUEsO2x39P1jZadm_ncYA@mail.gmail.com \
--to=saadahmed42@gmail.com \
--cc=ckim@etri.re.kr \
--cc=kernelnewbies@kernelnewbies.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).