[PATCH 1/5] powerpc: Add platform support for AmigaOne
Scott Wood
scottwood at freescale.com
Thu Jan 8 06:07:18 EST 2009
On Wed, Jan 07, 2009 at 02:54:57PM +0100, Gerhard Pircher wrote:
> +void amigaone_show_cpuinfo(struct seq_file *m)
> +{
> + struct device_node *root;
> + const char *model = "";
> +
> + root = of_find_node_by_path("/");
> + if (root)
> + model = of_get_property(root, "model", NULL);
> + seq_printf(m, "machine\t\t: %s\n", model);
> +
> + of_node_put(root);
> + return;
This is already printed by the generic cpuinfo.
> +void __init amigaone_setup_arch(void)
> +{
> + struct device_node *np;
> +
> + /* Initialization until calibrate_delay() runs. */
> + loops_per_jiffy = 50000000/HZ;
Is this really necessary?
> + /* Flush and disable I/D cache. */
> + __asm__ __volatile__ ("mfspr 3, 1008" ::: "r3");
> + __asm__ __volatile__ ("ori 5, 5, 0xcc00" ::: "r5");
> + __asm__ __volatile__ ("ori 4, 3, 0xc00" ::: "r4");
> + __asm__ __volatile__ ("andc 5, 3, 5" ::: "r5");
Don't do this; instead, have one multi-line asm statement (or better yet,
just use mfspr()/mtspr()/sync()/isync()).
GCC is perfectly free to trash your registers in between statements.
-Scott
More information about the Linuxppc-dev
mailing list