Gregory CLEMENT wrote:
> > > #ifdef CONFIG_IPIPE
> > > -#define AT91_VA_BASE_TCB0 AT91_IO_P2V(AT91RM9200_BASE_TCB0)
> > > +#if defined(CONFIG_ARCH_AT91RM9200)
> > > + #define AT91_VA_BASE_TCB0 AT91_IO_P2V(AT91RM9200_BASE_TCB0)
> > > +#elif defined(CONFIG_ARCH_AT91SAM9260)
> > > + #define AT91_VA_BASE_TCB0 AT91_IO_P2V(AT91SAM9260_BASE_TCB0)
> > > +#elif defined(CONFIG_ARCH_AT91SAM9261)
> > > + #define AT91_VA_BASE_TCB0 AT91_IO_P2V(AT91SAM9261_BASE_TCB0)
> > > +#else
> > > +#error "Unsupported AT91 processor"
> > > +#endif
> > > #endif /* CONFIG_IPIPE */
> >
> > To reduce the ifdef hell, can not we define a unique AT91_BASE_TCB0 ?
>
> Sure it would be better, but unfortunately the mainteners of AT91
> choose to produce a define per architecture even if the register are
> the same.
As far as I know, the AT91RM9200_BASE_TCB0 define is provided by the
I-pipe patch, so we may name it how we want.
> We keep this line :
> #define AT91_VA_BASE_TCB0 AT91_IO_P2V(AT91RM9200_BASE_TCB0)
> and it will work I don't like having an AT91RM9200 define for chip
> which are not AT91RM9200. It adds confusion.
>
> We also could define AT91_BASE_TCB0 as you suggest, but it mean we add
> a new register definition just for ipipe and it adds a little
> confusion also.
>
> Choose the solution you prefer, or an other if you have a better idea.
I do not have a better idea, but I understood why the defines are
different: the CONFIG_ARCH_AT91RM9200, CONFIG_ARCH_AT91SAM9260 and
CONFIG_ARCH_AT91SAM9261 are not mutually exclusive, it is possible to
build a kernel that works for the three machines. So, this code can not
remain as is. Please, at least, forbid in Kconfig selecting several
machines when IPIPE is enabled.
--
Gilles Chanteperdrix.
_______________________________________________
Adeos-main mailing list
[email protected]
https://mail.gna.org/listinfo/adeos-main