From mboxrd@z Thu Jan 1 00:00:00 1970 From: "karim.allah.ahmed@gmail.com" Subject: Enable virtual memory for Mini-os on ARM Date: Mon, 23 Dec 2013 10:23:01 +0000 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4934539263027779333==" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org --===============4934539263027779333== Content-Type: multipart/alternative; boundary=047d7bdc9f70347ebf04ee3103a4 --047d7bdc9f70347ebf04ee3103a4 Content-Type: text/plain; charset=ISO-8859-1 Hi, I'm currently working on porting mini-os to ARM. The work I've done so far was related: * Changes to build system to build mini-os as zImage * adding a linker script for arm target * Splitting some source files between common and arch specific bits * adding some hypercalls for arm ( mainly used at the moment for console_io and getting shared_info page ). * some assembly code for early startup ( stack setup, mmu stuff etc ) before jumping to c code. * , etc Now, it compiles and boots ( as zImage ). Obviously at the moment most of the ARM specific bits are only stubs and I've a while(1){} in the initialization code because it's not complete yet. So, it's still useless for now :) My question is the following: Why do I need to create pagetables and fill them for mini-os ? as far as I can see, mini-os is always statically built with another app ( or the dummy app_main ) .. Is there an actual reason for needing virtual memory in that setup ? Can't we just run on physical memory ? At the moment I've some crude assembly code that was creating initial pagetables, but I honestly don't know why I even need that! -- Karim Allah Ahmed. LinkedIn --047d7bdc9f70347ebf04ee3103a4 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi,

I'm currently working on po= rting mini-os to ARM.

The work I've done so far was related:
=
* Changes to build system to build mini-os as zImage
* adding a linker script for arm target
* Splitting some sour= ce files between common and arch specific bits
* adding some = hypercalls for arm ( mainly used at the moment for console_io and getting s= hared_info page ).
* some assembly code for early startup ( stack setup, mmu stuff = etc ) before jumping to c code.
* , etc

Now, it compiles and boots ( as zImage ). Obviously at the moment m= ost of the ARM specific bits are only stubs and I've a while(1){} in th= e initialization code because it's not complete yet. So, it's still= useless for now :)

My question is the following:
Why do I need to= create pagetables and fill them for mini-os ? as far as I can see, mini-os= is always statically built with another app ( or the dummy app_main ) .. I= s there an actual reason for needing virtual memory in that setup ? Can'= ;t we just run on physical memory ?

At the moment I've some crude assembly code that was cre= ating initial pagetables, but I honestly don't know why I even need tha= t!


--
Karim Allah Ahmed.
--047d7bdc9f70347ebf04ee3103a4-- --===============4934539263027779333== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --===============4934539263027779333==-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Thibault Subject: Re: Enable virtual memory for Mini-os on ARM Date: Mon, 23 Dec 2013 11:38:52 +0100 Message-ID: <20131223103852.GC5594@type.youpi.perso.aquilenet.fr> References: Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "karim.allah.ahmed@gmail.com" Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org karim.allah.ahmed@gmail.com, le Mon 23 Dec 2013 10:23:01 +0000, a =E9crit : > Why do I need to create pagetables and fill them for mini-os ? I don't know the virtual memory of ARM, but on x86 we definitely need a pagetable because very often we need to map/unmap things, like granted mfns, i/o areas, foreign pages, etc. Samuel From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: Enable virtual memory for Mini-os on ARM Date: Mon, 23 Dec 2013 12:07:38 +0000 Message-ID: <52B8278A.3060804@citrix.com> References: <20131223103852.GC5594@type.youpi.perso.aquilenet.fr> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <20131223103852.GC5594@type.youpi.perso.aquilenet.fr> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Samuel Thibault , "karim.allah.ahmed@gmail.com" , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On 23/12/2013 10:38, Samuel Thibault wrote: > karim.allah.ahmed@gmail.com, le Mon 23 Dec 2013 10:23:01 +0000, a =E9crit= : >> Why do I need to create pagetables and fill them for mini-os ? > I don't know the virtual memory of ARM, but on x86 we definitely need a > pagetable because very often we need to map/unmap things, like granted > mfns, i/o areas, foreign pages, etc. > > Samuel More importantly, an x86 PV guest *cannot* run in non-paging mode. This, I believe, is different to ARM, where an ARM guest is rather more like x86 HVM guests, which have a full processor to play with. ~Andrew > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Thibault Subject: Re: Enable virtual memory for Mini-os on ARM Date: Mon, 23 Dec 2013 13:21:15 +0100 Message-ID: <20131223122115.GE5594@type.youpi.perso.aquilenet.fr> References: <20131223103852.GC5594@type.youpi.perso.aquilenet.fr> <52B8278A.3060804@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline In-Reply-To: <52B8278A.3060804@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Andrew Cooper Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org Andrew Cooper, le Mon 23 Dec 2013 12:07:38 +0000, a =E9crit : > On 23/12/2013 10:38, Samuel Thibault wrote: > > karim.allah.ahmed@gmail.com, le Mon 23 Dec 2013 10:23:01 +0000, a =E9cr= it : > >> Why do I need to create pagetables and fill them for mini-os ? > > I don't know the virtual memory of ARM, but on x86 we definitely need a > > pagetable because very often we need to map/unmap things, like granted > > mfns, i/o areas, foreign pages, etc. > = > More importantly, an x86 PV guest *cannot* run in non-paging mode. Sure, but that's not a ground reason like having to map some extra pages etc. Samuel From mboxrd@z Thu Jan 1 00:00:00 1970 From: "karim.allah.ahmed@gmail.com" Subject: Re: Enable virtual memory for Mini-os on ARM Date: Mon, 23 Dec 2013 12:52:44 +0000 Message-ID: References: <20131223103852.GC5594@type.youpi.perso.aquilenet.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0769070748754071129==" Return-path: In-Reply-To: <20131223103852.GC5594@type.youpi.perso.aquilenet.fr> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Samuel Thibault , "karim.allah.ahmed@gmail.com" , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org --===============0769070748754071129== Content-Type: multipart/alternative; boundary=047d7b6d99b0a83ca504ee331a0b --047d7b6d99b0a83ca504ee331a0b Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Mon, Dec 23, 2013 at 10:38 AM, Samuel Thibault < samuel.thibault@ens-lyon.org> wrote: > karim.allah.ahmed@gmail.com, le Mon 23 Dec 2013 10:23:01 +0000, a =E9crit= : > > Why do I need to create pagetables and fill them for mini-os ? > > I don't know the virtual memory of ARM, but on x86 we definitely need a > pagetable because very often we need to map/unmap things, like granted > mfns, i/o areas, foreign pages, etc. > Can you please refer me to the part of the code related to any of these cases ? In ARM MMU is virtualized in HW. So you've an extra level of translation that's controlled by the hypervisor. So, Is there a reason for doing map/unmap on virtual address space not on physical one ? For me I would use virtual memory for: 1- Isolation between different entities ( processes ) - ( Is that applicable to mini-os ? I can see that things like fork isn't supported by mini-os [unsupported_function_crash(fork);], which makes me think that this isn't applicable ) 2- creating a contiguous mapping of scattered pages. Are any of these a concern at the moment ? Thanks. > Samuel > --=20 Karim Allah Ahmed. LinkedIn --047d7b6d99b0a83ca504ee331a0b Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
On M= on, Dec 23, 2013 at 10:38 AM, Samuel Thibault <samuel.thibault@= ens-lyon.org> wrote:
karim.allah.ahmed@gmail.com, le Mon 23 Dec 2013 1= 0:23:01 +0000, a =E9crit :
> Why do I need to create pagetables and fill them for= mini-os ?

I don't know the virtual memory of ARM, but on x86 we definitely = need a
pagetable because very often we need to map/unmap things, like granted
mfns, i/o areas, foreign pages, etc.

Ca= n you please refer me to the part of the code related to any of these cases= ?
=A0
In ARM MMU is virtualized in HW. So you= 've an extra level of translation that's controlled by the hypervis= or.
So, Is there a reason for doing map/unmap on virtual address spa= ce not on physical one ?

For me I would use virtual memor= y for:
1- Isolation between different entities ( processes ) = - ( Is that applicable to mini-os ? I can see that things like fork isn'= ;t supported by mini-os [unsupported_function_crash(fork);], which makes me= think that this isn't applicable )
2- creating a contiguous mapping of scattered pages.

Are any of these a concern at the moment ?

Thanks.=


Samuel



--
Karim Allah Ahmed.
--047d7b6d99b0a83ca504ee331a0b-- --===============0769070748754071129== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --===============0769070748754071129==-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Thibault Subject: Re: Enable virtual memory for Mini-os on ARM Date: Mon, 23 Dec 2013 14:21:57 +0100 Message-ID: <20131223132157.GF5594@type.youpi.perso.aquilenet.fr> References: <20131223103852.GC5594@type.youpi.perso.aquilenet.fr> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "karim.allah.ahmed@gmail.com" Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org karim.allah.ahmed@gmail.com, le Mon 23 Dec 2013 12:52:44 +0000, a =E9crit : > On Mon, Dec 23, 2013 at 10:38 AM, Samuel Thibault > wrote: > = > karim.allah.ahmed@gmail.com, le Mon 23 Dec 2013 10:23:01 +0000, a =E9= crit : > > Why do I need to create pagetables and fill them for mini-os ? > = > I don't know the virtual memory of ARM, but on x86 we definitely need= a > pagetable because very often we need to map/unmap things, like granted > mfns, i/o areas, foreign pages, etc. > = > Can you please refer me to the part of the code related to any of these c= ases ? Essentially everything that calls map_frames and friends. - mini-os/gnttab.c calls gnttab_table =3D map_frames(frames, NR_GRANT_FRAME= S);. - I/O can be seen in mini-os/lib/sys.c: map_frames_ex(&first_mfn, n, 0, 1, = 1, DOMID_IO, NULL, _PAGE_PRESENT|_PAGE_RW); - foreign pages can be seen in tools/libxc/xc_minios.c in minios_privcmd_map_foreign_* > In ARM MMU is virtualized in HW. So you've an extra level of translation = that's > controlled by the hypervisor. > So, Is there a reason for doing map/unmap on virtual address space not on > physical one ? The physical one might be enough, I don't know the details of ARM memory to be able to tell for sure. > 1- Isolation between different entities ( processes ) - ( Is that applica= ble to > mini-os ? It is not. > 2- creating a contiguous mapping of scattered pages. Which can perhaps be done at the physical layer? Samuel From mboxrd@z Thu Jan 1 00:00:00 1970 From: "karim.allah.ahmed@gmail.com" Subject: Re: Enable virtual memory for Mini-os on ARM Date: Mon, 23 Dec 2013 14:59:06 +0000 Message-ID: References: <20131223103852.GC5594@type.youpi.perso.aquilenet.fr> <20131223132157.GF5594@type.youpi.perso.aquilenet.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0395304054849845181==" Return-path: In-Reply-To: <20131223132157.GF5594@type.youpi.perso.aquilenet.fr> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Samuel Thibault , "karim.allah.ahmed@gmail.com" , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org --===============0395304054849845181== Content-Type: multipart/alternative; boundary=001a11c35d1489757104ee34dea4 --001a11c35d1489757104ee34dea4 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Mon, Dec 23, 2013 at 1:21 PM, Samuel Thibault < samuel.thibault@ens-lyon.org> wrote: > karim.allah.ahmed@gmail.com, le Mon 23 Dec 2013 12:52:44 +0000, a =E9crit= : > > On Mon, Dec 23, 2013 at 10:38 AM, Samuel Thibault < > samuel.thibault@ens-lyon.org > > > wrote: > > > > karim.allah.ahmed@gmail.com, le Mon 23 Dec 2013 10:23:01 +0000, a > =E9crit : > > > Why do I need to create pagetables and fill them for mini-os ? > > > > I don't know the virtual memory of ARM, but on x86 we definitely > need a > > pagetable because very often we need to map/unmap things, like > granted > > mfns, i/o areas, foreign pages, etc. > > > > Can you please refer me to the part of the code related to any of these > cases ? > > Essentially everything that calls map_frames and friends. > > - mini-os/gnttab.c calls gnttab_table =3D map_frames(frames, > NR_GRANT_FRAMES);. > - I/O can be seen in mini-os/lib/sys.c: map_frames_ex(&first_mfn, n, 0, 1= , > 1, > DOMID_IO, NULL, _PAGE_PRESENT|_PAGE_RW); > - foreign pages can be seen in tools/libxc/xc_minios.c in > minios_privcmd_map_foreign_* > > > In ARM MMU is virtualized in HW. So you've an extra level of translatio= n > that's > > controlled by the hypervisor. > > So, Is there a reason for doing map/unmap on virtual address space not = on > > physical one ? > > The physical one might be enough, I don't know the details of ARM > memory to be able to tell for sure. > > > 1- Isolation between different entities ( processes ) - ( Is that > applicable to > > mini-os ? > > It is not. > > > 2- creating a contiguous mapping of scattered pages. > > Which can perhaps be done at the physical layer? > I think even if we can change the "guest_to_machine translation" ( maybe through XENMEM_populate_physmap ? ) that's controlled by the hypervisor, this is going to be more expensive than simply updating a memory location (page table) since all updates in the former case will have to go through the hypervisor! For me using physical addresses directly was useful for: 1- No code for setting up pagetables. 2- No memory wasted/used as pagetables. ( it's a tiny amount of memory anyway ) So, if this [using physical addresses directly] ends up causing any performance loss, I think it's not worth it then. > Samuel > --=20 Karim Allah Ahmed. LinkedIn --001a11c35d1489757104ee34dea4 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable





=
On Mon, Dec 23, 2013 at 1:21 PM, Samuel Thibault= <samuel.thibault@ens-lyon.org> wrote:
karim.allah.ahmed@gmail.com, le Mon 23 Dec 2013 1= 2:52:44 +0000, a =E9crit :
> On Mon, Dec 23, 2013 at 10:38 AM, Samuel Thibault &l= t;samuel.thibault@ens-lyon.= org
> > wrote:
>
> =A0 =A0 karim.allah.ahm= ed@gmail.com, le Mon 23 Dec 2013 10:23:01 +0000, a =E9crit :
> =A0 =A0 > Why do I need to create pagetables and fill them for mini= -os ?
>
> =A0 =A0 I don't know the virtual memory of ARM, but on x86 we defi= nitely need a
> =A0 =A0 pagetable because very often we need to map/unmap things, like= granted
> =A0 =A0 mfns, i/o areas, foreign pages, etc.
>
> Can you please refer me to the part of the code related to any of thes= e cases ?

Essentially everything that calls map_frames and friends.

- mini-os/gnttab.c calls gnttab_table =3D map_frames(frames, NR_GRANT_FRAME= S);.
- I/O can be seen in mini-os/lib/sys.c: map_frames_ex(&first_mfn, n, 0,= 1, 1,
DOMID_IO, NULL, _PAGE_PRESENT|_PAGE_RW);
- foreign pages can be seen in tools/libxc/xc_minios.c in
minios_privcmd_map_foreign_*

> In ARM MMU is virtualized in HW. So you've an extra level of trans= lation that's
> controlled by the hypervisor.
> So, Is there a reason for doing map/unmap on virtual address space not= on
> physical one ?

The physical one might be enough, I don't know the details of ARM=
memory to be able to tell for sure.

> 1- Isolation between different entities ( processes ) - ( Is that appl= icable to
> mini-os ?

It is not.

> 2- creating a contiguous mapping of scattered pages.

Which can perhaps be done at the physical layer?

I think even if we can change the "guest_to_machine translation" ( maybe through=20 XENMEM_populate_physmap ? ) that's controlled by the hypervisor, this i= s going to be more expensive than simply updating a memory location (page table) since all updates in the former case will have to go through the hypervisor!

For me using physical addresses directly was= useful for:
1- No code for setting up pagetables.
<= div>2- No memory wasted/used as pagetables. ( it's a tiny amount of mem= ory anyway )

So, if this [using physical addresses directly] ends up caus= ing any performance loss, I think it's not worth it then.

=

Samuel



--
Karim Allah Ahmed.
--001a11c35d1489757104ee34dea4-- --===============0395304054849845181== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --===============0395304054849845181==-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: Re: Enable virtual memory for Mini-os on ARM Date: Mon, 23 Dec 2013 17:01:33 +0100 Message-ID: <1387814493.23792.122.camel@Solace> References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5345688066725636046==" Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "karim.allah.ahmed@gmail.com" Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org --===============5345688066725636046== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-/clJdBs2wDpMrZa1LJ8b" --=-/clJdBs2wDpMrZa1LJ8b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On lun, 2013-12-23 at 10:23 +0000, karim.allah.ahmed@gmail.com wrote: > Hi, >=20 Hello! > I'm currently working on porting mini-os to ARM. >=20 Cool... What's your usecase for that (I'm nosy, I know :-P) > The work I've done so far was related: >=20 > * Changes to build system to build mini-os as zImage >=20 > * adding a linker script for arm target >=20 > * Splitting some source files between common and arch specific bits >=20 > * adding some hypercalls for arm ( mainly used at the moment for > console_io and getting shared_info page ). >=20 > * some assembly code for early startup ( stack setup, mmu stuff etc ) > before jumping to c code. >=20 > * , etc >=20 > Now, it compiles and boots ( as zImage ).=20 > Cool... If I can ask, do you have the code somewhere publicly accessible? I appreciate what you said about this being still deeply experimental, but it's something really interesting, and there may be people interested in seeing/collaborating! :-) Thanks and Regards, Dario --=20 <> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) --=-/clJdBs2wDpMrZa1LJ8b Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEABECAAYFAlK4Xl0ACgkQk4XaBE3IOsTNdACdFqeeZKX/fCDSLLtcDb8GSYxs DpMAn1TBgY4ajwwFk5AyjQxDHLIYNTfL =X4Kl -----END PGP SIGNATURE----- --=-/clJdBs2wDpMrZa1LJ8b-- --===============5345688066725636046== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --===============5345688066725636046==-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chen Baozi Subject: Re: Enable virtual memory for Mini-os on ARM Date: Tue, 24 Dec 2013 00:21:38 +0800 Message-ID: References: <1387814493.23792.122.camel@Solace> Mime-Version: 1.0 (Mac OS X Mail 7.1 \(1827\)) Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <1387814493.23792.122.camel@Solace> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Dario Faggioli Cc: List Developer Xen List-Id: xen-devel@lists.xenproject.org On Dec 24, 2013, at 0:01, Dario Faggioli wrote: > On lun, 2013-12-23 at 10:23 +0000, karim.allah.ahmed@gmail.com wrote: >> Hi, >> = > Hello! > = >> I'm currently working on porting mini-os to ARM. >> = > Cool... What's your usecase for that (I'm nosy, I know :-P) > = >> The work I've done so far was related: >> = >> * Changes to build system to build mini-os as zImage >> = >> * adding a linker script for arm target >> = >> * Splitting some source files between common and arch specific bits >> = >> * adding some hypercalls for arm ( mainly used at the moment for >> console_io and getting shared_info page ). >> = >> * some assembly code for early startup ( stack setup, mmu stuff etc ) >> before jumping to c code. >> = >> * , etc >> = >> Now, it compiles and boots ( as zImage ). = >> = > Cool... If I can ask, do you have the code somewhere publicly > accessible? > = > I appreciate what you said about this being still deeply experimental, > but it's something really interesting, and there may be people > interested in seeing/collaborating! :-) +1 I=92ve tried to build a basic framework to port mini-os on ARM this summer, but stopped to fix my dev-board problem then. Looking forward to it. Regards, Baozi > = > Thanks and Regards, > Dario > = > -- = > <> (Raistlin Majere) > ----------------------------------------------------------------- > Dario Faggioli, Ph.D, http://about.me/dario.faggioli > Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) > = > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel From mboxrd@z Thu Jan 1 00:00:00 1970 From: "karim.allah.ahmed@gmail.com" Subject: Re: Enable virtual memory for Mini-os on ARM Date: Tue, 24 Dec 2013 01:44:58 +0000 Message-ID: References: <1387814493.23792.122.camel@Solace> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4165215412604384666==" Return-path: In-Reply-To: <1387814493.23792.122.camel@Solace> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Dario Faggioli Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org --===============4165215412604384666== Content-Type: multipart/alternative; boundary=047d7bdc9f7060ed2604ee3de464 --047d7bdc9f7060ed2604ee3de464 Content-Type: text/plain; charset=ISO-8859-1 On Mon, Dec 23, 2013 at 4:01 PM, Dario Faggioli wrote: > On lun, 2013-12-23 at 10:23 +0000, karim.allah.ahmed@gmail.com wrote: > > Hi, > > > Hello! > > > I'm currently working on porting mini-os to ARM. > > > Cool... What's your usecase for that (I'm nosy, I know :-P) > I'm planning to clean up this work during Xmas vacation and will make it public then. > > The work I've done so far was related: > > > > * Changes to build system to build mini-os as zImage > > > > * adding a linker script for arm target > > > > * Splitting some source files between common and arch specific bits > > > > * adding some hypercalls for arm ( mainly used at the moment for > > console_io and getting shared_info page ). > > > > * some assembly code for early startup ( stack setup, mmu stuff etc ) > > before jumping to c code. > > > > * , etc > > > > Now, it compiles and boots ( as zImage ). > > > Cool... If I can ask, do you have the code somewhere publicly > accessible? > > No, not at the moment. I appreciate what you said about this being still deeply experimental, > but it's something really interesting, and there may be people > interested in seeing/collaborating! :-) > I'm planning to clean up and push it a little bit further during Xmas time and then I'll put the code in a public place early Jan. > Thanks and Regards, > Dario > > -- > <> (Raistlin Majere) > ----------------------------------------------------------------- > Dario Faggioli, Ph.D, http://about.me/dario.faggioli > Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) > > -- Karim Allah Ahmed. LinkedIn --047d7bdc9f7060ed2604ee3de464 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
On M= on, Dec 23, 2013 at 4:01 PM, Dario Faggioli <dario.faggioli@citr= ix.com> wrote:
On lun, 2013-12-23 at 10:= 23 +0000, karim.allah.ahmed@= gmail.com wrote:
> Hi,
>
Hello!

> I'm currently working on porting mini-os to ARM.
>
Cool... What's your usecase for that (I'm nosy, I know :-P)
=A0
I'm planning to clean up this work du= ring Xmas vacation and will make it public then.


> The work I've done so far was related:
>
> * Changes to build system to build mini-os as zImage
>
> * adding a linker script for arm target
>
> * Splitting some source files between common and arch specific bits >
> * adding some hypercalls for arm ( mainly used at the moment for
> console_io and getting shared_info page ).
>
> * some assembly code for early startup ( stack setup, mmu stuff etc )<= br> > before jumping to c code.
>
> * , etc
>
> Now, it compiles and boots ( as zImage ).
>
Cool... If I can ask, do you have the code somewhere publicly
accessible?

No, not at the moment.=A0

I appreciate what you said about this being still deeply experimental,
but it's something really interesting, and there may be people
interested in seeing/collaborating! :-)
=A0
= I'm planning to clean up and push it a little bit further during Xmas= =20 time and then I'll put the code in a public place early Jan.


Thanks and Regards,
Dario

--
<<This happens because I choose it to happen!>> (Raistlin Majer= e)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)




--
Karim Allah Ahmed.
--047d7bdc9f7060ed2604ee3de464-- --===============4165215412604384666== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --===============4165215412604384666==-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: Re: Enable virtual memory for Mini-os on ARM Date: Tue, 24 Dec 2013 14:21:20 +0100 Message-ID: <1387891280.6323.4.camel@Abyss> References: <1387814493.23792.122.camel@Solace> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3101651276315093373==" Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "karim.allah.ahmed@gmail.com" Cc: xen-devel List-Id: xen-devel@lists.xenproject.org --===============3101651276315093373== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-noz7lAQM4TMubCrFu1dH" --=-noz7lAQM4TMubCrFu1dH Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Re-adding the list, hope you don't mind] On mar, 2013-12-24 at 01:35 +0000, karim.allah.ahmed@gmail.com wrote: > On Mon, Dec 23, 2013 at 4:01 PM, Dario Faggioli > wrote: > =20 > Cool... What's your usecase for that (I'm nosy, I know :-P)=20 >=20 > I'm just playing with my cubieboard, so this can be hardly considered > as a use case :) >=20 Well, more than enough! :-) > I appreciate what you said about this being still deeply > experimental, > but it's something really interesting, and there may be people > interested in seeing/collaborating! :-) > > I'm planning to clean up and push it a little bit further during Xmas > time and then I'll put the code in a public place early Jan. >=20 Ok... Looking forward to it. Let us know when it's online! :-) Thanks and Regards, Dario --=20 <> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) --=-noz7lAQM4TMubCrFu1dH Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEABECAAYFAlK5ilAACgkQk4XaBE3IOsQ3EQCfWHVy91tttmbxgoYjwyQkK7Tt 1Y4AoK73Tyd5UMIb4LxRHP+5dFa/8/gO =18nW -----END PGP SIGNATURE----- --=-noz7lAQM4TMubCrFu1dH-- --===============3101651276315093373== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --===============3101651276315093373==-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: Enable virtual memory for Mini-os on ARM Date: Mon, 6 Jan 2014 10:52:58 +0000 Message-ID: <1389005578.13274.42.camel@kazak.uk.xensource.com> References: <20131223103852.GC5594@type.youpi.perso.aquilenet.fr> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "karim.allah.ahmed@gmail.com" Cc: Samuel Thibault , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On Mon, 2013-12-23 at 12:52 +0000, karim.allah.ahmed@gmail.com wrote: > So, Is there a reason for doing map/unmap on virtual address space not > on physical one ? The only thing which springs to mind is if you needed to control the cacheability attributes of the mappings (see [0] for the requirements). However I think these are met by just enabling the SCTLR.C bit, SCTLR.M isn't needed. Things like foreign page mappings (e.g. via grant tables) and ballooning happen via the stage 2 paging, so no need for stage 1 MMU to be enabled there, I don't think. I think it would be reasonable to omit page table setup from arm mini-os for now and reconsider it if/when we discover a need for it. Ian. [0] http://xenbits.xen.org/docs/unstable/hypercall/arm/include,public,arch-arm.h.html#incontents_arm_abi