Subject: Re: [PATCH v3 04/10] VAS: Define helpers for access MMIO regions

From: Sukadev Bhattiprolu <[email-masked]>
Date: Fri, 24 Mar 2017 14:18:22 -0700

Michael Neuling [[email-masked]] wrote:
> > +static inline void get_uwc_mmio_bar(struct vas_window *window,
> > +			uint64_t *start, int *len)
> > +{
> > +	uint64_t pbaddr;
> > +
> > +	pbaddr = window->vinst->uwc_bar_start;
> > +	*start = pbaddr + window->winid * VAS_UWC_SIZE;
> > +	*len = VAS_UWC_SIZE;
> 
> I'm not sure this works for 4K pages since VAS_UWC_SIZE = PAGE_SIZE but in
> reality I think it's always 64K.  Right?

I believe the idea is that each user process will have its OS/User Window
context on a separate page - to provide proper protection of the window
context between processes. So, the OS/User Window context size _is_ 
dependent on page size.

The page size is set to 64K in init_north_ctl() in skiboot but can be
set to 4K as well. The amount of memory allocated for the OS/User Window
Context MMIO BAR (init_uwcm() in skiboot) also depends on the page size
256MB for 4K or 4GB for 64K.

> 
> Seem like we are mixing pages sizes and hardware sizes here.
> 
> (I realise 4K isn't supported yet, but....)

Yes, only 64K page-size for now.

Thanks,

Sukadev