[PATCH 1/1] powerpc/85xx: Board support for ppa8548
Scott Wood
scottwood at freescale.com
Sat Feb 2 11:31:03 EST 2013
On 02/01/2013 09:36:53 AM, Stef van Os wrote:
> + memory {
> + device_type = "memory";
> + reg = <0 0 0x0 0x40000000>;
> + };
You have a "filled in by U-Boot" comment elsewhere in the file, but you
aren't letting U-Boot fill in the memory size?
> + board_lbc: lbc: localbus at fe0005000 {
> + reg = <0xf 0xe0005000 0 0x1000>;
> + ranges = <0x0 0x0 0xf 0xff800000 0x00800000>;
> + };
> +
> + board_soc: soc: soc8548 at fe0000000 {
> + ranges = <0 0xf 0xe0000000 0x100000>;
> + };
I know some existing dts files do this, but there's no need for two
labels one one node.
> + rio: rapidio at fe00c0000 {
> + reg = <0xf 0xe00c0000 0x0 0x11000>;
> + port1 {
> + ranges = <0x0 0x0 0x0 0x80000000 0x0
> 0x40000000>;
> + };
> + };
> +};
> +
> +&lbc {
> + #address-cells = <2>;
> + #size-cells = <1>;
> + compatible = "fsl,mpc8548-lbc", "fsl,pq3-localbus",
> "simple-bus";
> + interrupts = <19 2 0 0>;
> +};
> +
> +&rio {
> + compatible = "fsl,srio";
> + interrupts = <48 2 0 0>;
> + #address-cells = <2>;
> + #size-cells = <2>;
> + fsl,srio-rmu-handle = <&rmu>;
> + ranges;
> +
> + port1 {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + cell-index = <1>;
> + };
> +};
> +
> +&soc {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + device_type = "soc";
> + compatible = "fsl,mpc8548-immr", "simple-bus";
> + bus-frequency = <0>; // Filled out by uboot.
> +
> + ecm-law at 0 {
> + compatible = "fsl,ecm-law";
> + reg = <0x0 0x1000>;
> + fsl,num-laws = <10>;
> + };
> +
> + ecm at 1000 {
> + compatible = "fsl,mpc8548-ecm", "fsl,ecm";
> + reg = <0x1000 0x1000>;
> + interrupts = <17 2 0 0>;
> + };
> +
> + memory-controller at 2000 {
> + compatible = "fsl,mpc8548-memory-controller";
> + reg = <0x2000 0x1000>;
> + interrupts = <18 2 0 0>;
> + };
> +
> +/include/ "fsl/pq3-i2c-0.dtsi"
> +/include/ "fsl/pq3-i2c-1.dtsi"
> +/include/ "fsl/pq3-duart-0.dtsi"
> +
> + L2: l2-cache-controller at 20000 {
> + compatible = "fsl,mpc8548-l2-cache-controller";
> + reg = <0x20000 0x1000>;
> + cache-line-size = <32>; // 32 bytes
> + cache-size = <0x80000>; // L2, 512K
> + interrupts = <16 2 0 0>;
> + };
> +
> +/include/ "fsl/pq3-dma-0.dtsi"
> +/include/ "fsl/pq3-etsec1-0.dtsi"
> +/include/ "fsl/pq3-etsec1-1.dtsi"
> +/include/ "fsl/pq3-etsec1-2.dtsi"
> +/include/ "fsl/pq3-etsec1-3.dtsi"
> +
> +/include/ "fsl/pq3-sec2.1-0.dtsi"
> +/include/ "fsl/pq3-mpic.dtsi"
> +/include/ "fsl/pq3-rmu-0.dtsi"
> +
> + global-utilities at e0000 {
> + compatible = "fsl,mpc8548-guts";
> + reg = <0xe0000 0x1000>;
> + fsl,has-rstcr;
> + };
> +};
I guess the reason you're not using fsl/mpc8548si-post.dtsi is that you
don't want PCI. Maybe PCI and srio should be moved out of that file,
or ifdeffed if 85xx ever ends up using the preprocessor for its device
trees.
> diff --git a/arch/powerpc/platforms/85xx/ppa8548.c
> b/arch/powerpc/platforms/85xx/ppa8548.c
> new file mode 100644
> index 0000000..80a9307
> --- /dev/null
> +++ b/arch/powerpc/platforms/85xx/ppa8548.c
> @@ -0,0 +1,119 @@
> +/*
> + * ppa8548 setup and early boot code.
> + *
> + * Copyright 2009 Prodrive B.V..
> + *
> + * By Stef van Os (see MAINTAINERS for contact information)
> + *
> + * Based on the SBC8548 support - Copyright 2007 Wind River Systems
> Inc.
> + * Based on the MPC8548CDS support - Copyright 2005 Freescale Inc.
> + *
> + * This program is free software; you can redistribute it and/or
> modify it
> + * under the terms of the GNU General Public License as published
> by the
> + * Free Software Foundation; either version 2 of the License, or
> (at your
> + * option) any later version.
> + */
> +
> +#include <linux/stddef.h>
> +#include <linux/kernel.h>
> +#include <linux/init.h>
> +#include <linux/errno.h>
> +#include <linux/reboot.h>
> +#include <linux/kdev_t.h>
> +#include <linux/major.h>
> +#include <linux/console.h>
> +#include <linux/delay.h>
> +#include <linux/seq_file.h>
> +#include <linux/initrd.h>
> +#include <linux/module.h>
> +#include <linux/interrupt.h>
> +#include <linux/fsl_devices.h>
> +#include <linux/of_platform.h>
> +
> +#include <asm/pgtable.h>
> +#include <asm/page.h>
> +#include <asm/atomic.h>
> +#include <asm/time.h>
> +#include <asm/io.h>
> +#include <asm/machdep.h>
> +#include <asm/ipic.h>
> +#include <asm/irq.h>
> +#include <mm/mmu_decl.h>
> +#include <asm/prom.h>
> +#include <asm/udbg.h>
> +#include <asm/mpic.h>
> +
> +#include <sysdev/fsl_soc.h>
I doubt you need all of these.
E.g. asm/ipic.h is for 83xx and 512x chips. Some others are for things
that haven't been done by board files for years (e.g. kdev_t.h).
> +static void ppa8548_show_cpuinfo(struct seq_file *m)
> +{
> + uint pvid, svid, phid1;
> +
> + pvid = mfspr(SPRN_PVR);
> + svid = mfspr(SPRN_SVR);
> +
> + seq_printf(m, "Vendor\t\t: Prodrive B.V.\n");
> + seq_printf(m, "Machine\t\t: ppa8548\n");
> + seq_printf(m, "PVR\t\t: 0x%x\n", pvid);
> + seq_printf(m, "SVR\t\t: 0x%x\n", svid);
> +
> + /* Display cpu Pll setting */
> + phid1 = mfspr(SPRN_HID1);
> + seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
> +}
PVR and ppc_md.name are already shown by the generic /proc/cpuinfo code.
-Scott
More information about the Linuxppc-dev
mailing list