_extending_ platform support options?
Joachim Foerster
JOFT at gmx.de
Thu Dec 2 00:25:43 EST 2010
Hi all,
currently I'm wondering what the preferred/recommend way of _extending_ an existing
"Platform support" option is?
We are working with custom design/boards based on Virtex4/5. So we are primarily using the
CONFIG_XILINX_VIRTEX*_GENERIC_BOARD options. In our case we have some special needs,
like custom ppc_md.restart(), ppc_md.power_off() or ppc_md.show_cpuinfo().
Till now, we just duplicated arch/powerpc/platforms/4?x/virtex.c and added our special
stuff. Properly renaming everything, etc ...
An alternative could be to add a virtex_my.c which extends virtex.c, like this
(also like virtex_ml510.c extends virtex.c):
static void virtex_my_show_cpuinfo(struct seq_file *m)
{
seq_printf(m, something);
}
static int __init virtex_mle_init(void)
{
ppc_md.show_cpuinfo = virtex_my_show_cpuinfo;
return 0;
}
machine_core_initcall(virtex, virtex_my_init);
Though, to me, it does not seem really OK to assign ppc_md members that way. The original
struct machdep for "virtex" (which is defined in virtex.c with define_machine()) is not
adjusted either. Ok, we could modify that one, too.
Especially I'm not sure if it is OK to use machine_core_initcall() for such modifications.
So my question is: Is there any recommended way for doing such "extensions"? Or is it OK
to just duplicate virtex.c (which does not seem really OK, too)?
Thanks,
Joachim
More information about the Linuxppc-dev
mailing list