Date: Sat, 1 Nov 2014 18:55:53 +0530 From: Sourish Mazumder <sourish@cloudbyte.com> To: John Baldwin <jhb@freebsd.org> Cc: freebsd-amd64@freebsd.org Subject: Re: memory type e820 Message-ID: <CABv3qbHQEFZiQ4p%2BHWZNLt0MiNnHBmDW1aTFhWB7vhr4J3BGfQ@mail.gmail.com> In-Reply-To: <201410301353.05185.jhb@freebsd.org> References: <CABv3qbEuggLT=9vsHAs5Rdp8a0V-=DG7DnPO1BQk4Ghn4r_9Dw@mail.gmail.com> <201410301208.50164.jhb@freebsd.org> <CABv3qbFKSQrA0M8h3S_gdq0apPXRowNKoAMxA6pGf3pSgvsDsQ@mail.gmail.com> <201410301353.05185.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi John, I tried the pmap_mapdev() as suggested by you. Works perfectly. Thanks for the information. What is required, If I want to add this nvram memory to VM pages? On Thu, Oct 30, 2014 at 11:23 PM, John Baldwin <jhb@freebsd.org> wrote: > On Thursday, October 30, 2014 12:39:27 pm Sourish Mazumder wrote: > > Hi John, > > > > I want to make a block device out of this nvram memory. So, I will need > to > > perform memcpy() operation into this memory. > > Do I need to add this memory into the vm system, if I need to do > operations > > like memcpy(). > > Ah, so you just need to map it. The most expedient thing you can do for > this > is: > > void *p; > > p = pmap_mapdev(physaddr, len); > > (This uses an uncached mapping). > > When you are finished (e.g during a detach routine if you need to unload > the > driver) you can do: > > pmap_unmapdev((vm_offset_t)p, len); > > Note that for a PCI BAR you would do something different, but for a > resource > you discover via the SMAP and is x86 specific this is ok. > > -- > John Baldwin > -- Sourish Mazumder 9986309755
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CABv3qbHQEFZiQ4p%2BHWZNLt0MiNnHBmDW1aTFhWB7vhr4J3BGfQ>