[PATCH v4 4/6] arm: add early_ioremap support
Rob Herring
robherring2 at gmail.com
Wed Feb 26 10:56:24 EST 2014
On Wed, Feb 26, 2014 at 8:59 AM, Mark Salter <msalter at redhat.com> wrote:
> On Tue, 2014-02-25 at 23:48 -0600, Rob Herring wrote:
>> > +#define NR_FIX_BTMAPS 32
>> > +#define FIX_BTMAPS_SLOTS 7
>> > +#define TOTAL_FIX_BTMAPS (NR_FIX_BTMAPS * FIX_BTMAPS_SLOTS)
>> > +#define FIX_BTMAP_END FIX_KMAP_BEGIN
>> > +#define FIX_BTMAP_BEGIN (FIX_BTMAP_END +
>> TOTAL_FIX_BTMAPS - 1)
>>
>> Why the different logic from arm64? Specifically, it doesn't make
>> adding a permanent mapping simple.
>
> I looked at adding support for permanent mappings but it was going to
> take more time than I had. Also on ARM, we have to deal with kmap's
> needs as well. Working that out was going to take more time than I
> had. I think getting the patch in now to support early_ioremap is
> the way to go. Adding support for permanent mappings can be done
> later with the early console support for which it is needed.
I'm not saying that you should add permanent mappings, but just align
the definitions across arches more. So make arm look something like
this:
enum fixed_addresses {
__end_of_permanent_fixed_addresses,
/*
* Temporary boot-time mappings, used by early_ioremap(),
* before ioremap() is functional.
*/
#define NR_FIX_BTMAPS 32
#define FIX_BTMAPS_SLOTS 7
#define TOTAL_FIX_BTMAPS (NR_FIX_BTMAPS * FIX_BTMAPS_SLOTS)
FIX_BTMAP_END = __end_of_permanent_fixed_addresses,
FIX_BTMAP_BEGIN = FIX_BTMAP_END + TOTAL_FIX_BTMAPS - 1,
__end_of_fixed_addresses
FIX_KMAP_BEGIN = FIX_BTMAP_END,
FIX_KMAP_END = FIX_BTMAP_BEGIN,
};
These could then go into the generic header:
#define FIXADDR_SIZE (__end_of_permanent_fixed_addresses << PAGE_SHIFT)
#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
Rob
More information about the linux-arm-kernel
mailing list