On Mon, Apr 14, 2025 at 5:13 PM Andy Shevchenko
<[email protected]> wrote:
> On Mon, Apr 14, 2025 at 5:10 PM Andy Shevchenko
> <[email protected]> wrote:
> > On Mon, Apr 14, 2025 at 5:07 PM Ivan Vecera <[email protected]> wrote:
> > > On 14. 04. 25 1:52 odp., Ivan Vecera wrote:

...

> > > Long story short, I have to move virtual range outside real address
> > > range and apply this offset in the driver code.
> > >
> > > Is this correct?
> >
> > Bingo!
> >
> > And for the offsets, you form them as "page number * page offset +
> > offset inside the page".
>
> Note, for easier reference you may still map page 0 to the virtual
> space, but make sure that page 0 (or main page) is available outside
> of the ranges, or i.o.w. ranges do not overlap the main page, even if
> they include page 0.

So, you will have the following layout

0x00 - 0xnn - real registers of page 0.

0x100 - 0xppp -- pages 0 ... N

Register access either direct for when direct is required, or as
0x100 + PageSize * Index + RegOffset


-- 
With Best Regards,
Andy Shevchenko

Reply via email to