linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: "Németh Márton" <nm127@freemail.hu>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: cross-compiling Linux for PowerPC e200 core?
Date: Tue, 09 Mar 2010 08:02:48 +0100	[thread overview]
Message-ID: <4B95F298.5040000@freemail.hu> (raw)
In-Reply-To: <fa686aa41003081108v31e73660pa817863e5aa73653@mail.gmail.com>

Hi,
Grant Likely wrote:
> 2010/3/8 Németh Márton <nm127@freemail.hu>:
>> Grant Likely wrote:
>>> 2010/3/6 Németh Márton <nm127@freemail.hu>:
>>>> Hi,
>>>>
>>>> I'm trying to cross-compile Linux 2.6.33 for Freescale MPC5554 [1][2]. This
>>>> microcontroller is based on the e200z6 core. I could build the cross-development
>>>> tools, but I could miss something because I get an error message when building
>>>> Linux for PowerPC e200 core. Here are the steps I used:
>>> I doubt you'll have much luck with the mpc5554.  Linux doesn't include
>>> any support for the MPC5554, and I don't think anybody is working on
>>> it.  Any of the mpc5554 systems I've see don't have enough ram to run
>>> Linux well.
>> I'm ready to work a bit more than just compiling the kernel and run it on MPC5554.
>> On my target system there is a possibility to use external RAM connected to the
>> External Bus Interface, so I don't see this would be a problem in my case.
>>
>> However, I have not much experience running Linux on PowerPC environment. Could
>> you suggest a PowerPC port which would be a good starting point to make support
>> for MPC5554?
> 
> I'd use the MPC5200 board support as a starting point
> (arch/powerpc/platforms/52xx).  Create yourself a new directory for
> this platform (arch/powerpc/platforms/55xx)
> 
>> As far as I could find out I'll need to create a device tree as documented in
>> the linux/Documentation/powerpc/booting-without-of.txt file.
> 
> Yes, you'll need to create a device tree file for the board.  Again,
> start from an existing 5200 .dts file.  You won't need very much in it
> to get started.  I'd be happy to help you get the structure right.

I tried to create a first draft of the deveice tree for MPC5554. It is
compilable with dtc. I based this .dts file on Figure 1-1 on page 1-3 and
Table 1-2 on page 1-21 of http://www.freescale.com/files/32bit/doc/ref_manual/MPC5553_MPC5554_RM.pdf .

I'm not sure about the following points:
1. Where should be the on-chip FLASH described? This memory is read-only from
   view of software and can be used to store read-only data or execute code directly
   from there.

2. Should the co-processor (eTPU in this case) also listed in section "cpus"
   or not? This co-processor is not able to run code like the e200z6.

3. There are three on-chip buses on MPC5554:
   - Crossbar Switch (XBAR)
   - Peripheral Bridge A (PBRIDGE_A)
   - Peripheral Bridge B (PBRIDGE_B)
   I used PBRIDGE_A and PRIDGE_B to create two /soc<SOCname> entries. Is this possible?

4. There are modules which have multiple instances at different base addresses. These
   are DSPI, SCI and FlexCAN. I used the same name for them but with different addresses.
   Is this correct?

Regards,

	Márton Németh
---
From: Márton Németh <nm127@freemail.hu>

Add device tree for Freescale MPC5554.

Signed-off-by: Márton Németh <nm127@freemail.hu>
---
diff -uprN linux-2.6.33.orig/arch/powerpc/boot/dts/mpc5554.dts linux/arch/powerpc/boot/dts/mpc5554.dts
--- linux-2.6.33.orig/arch/powerpc/boot/dts/mpc5554.dts	1970-01-01 01:00:00.000000000 +0100
+++ linux/arch/powerpc/boot/dts/mpc5554.dts	2010-03-09 07:40:46.000000000 +0100
@@ -0,0 +1,197 @@
+/*
+ * Freescale MPC5554 Device Tree Source
+ *
+ * Based on MPC5553/5554 Microcontroller Reference Manual, Rev. 4.0, 04/2007
+ * http://www.freescale.com/files/32bit/doc/ref_manual/MPC5553_MPC5554_RM.pdf
+ *
+ * Copyright 2010 Márton Németh
+ * Márton Németh <nm127@freemail.hu>
+ *
+ * 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.
+ */
+
+/dts-v1/;
+
+/ {
+	model = "MPC5554";
+	compatible = "MPC5554";
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		PowerPC,5554@0 {
+			device_type = "cpu";
+			reg = <0>;
+			d-cache-line-size = <32>;
+			i-cache-line-size = <32>;
+			d-cache-size = <0x8000>;	// L1, 32KiB
+			i-cache-size = <0x8000>;	// L1, 32KiB
+			timebase-frequency = <0>;	// from bootloader
+			bus-frequency = <0>;		// from bootloader
+			clock-frequency = <0>;		// from bootloader
+		};
+	};
+
+	flash {	// read-only FLASH
+		device_type = "memory";
+		reg = <0x00000000 0x200000>;	// 2MiB internal FLASH
+	};
+
+	memory {
+		device_type = "memory";
+		reg = <0x40000000 0x10000>;	// 32KiB internal SRAM
+	};
+
+	soc5554BridgeA@c0000000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "fsl,mpc5554-bridgea";
+		ranges = <0 0xc0000000 0x20000000>;
+		reg = <0xc0000000 0x20000000>;
+		bus-frequency = <0>;		// from bootloader
+		system-frequency = <0>;		// from bootloader
+
+		bridgea@3f00000 {
+			compatible = "fsl,mpc5554-bridgea";
+			reg = <0x03f00000 0x4000>;
+		};
+
+		fmpll@3f80000 {		// Frequency Modulated PLL
+			compatible = "fsl,mpc5554-fmpll";
+			reg = <0x03f80000 0x4000>;
+		};
+
+		flashconfig@3f88000 {	// Flash Configuration
+			compatible = "fsl,mpc5554-flashconfig";
+			reg = <0x03f88000 0x4000>;
+		};
+
+		siu@3f89000 {		// System Integration Unit
+			compatible = "fsl,mpc5554-siu";
+			reg = <0x03f90000 0x4000>;
+		};
+
+		emios@3fa0000 {		// Modular Timer System
+			compatible = "fsl,mpc5554-emios";
+			reg = <0x03fa0000 0x4000>;
+		};
+
+		etpu@3fc0000 {		// Enhanced Time Processing Unit
+			compatible = "fsl,mpc5554-etpu";
+			reg = <0x03fc0000 0x4000>;
+		};
+
+		etpudata@3fc8000 {	// eTPU Shared Data Memory (Parameter RAM)
+			compatible = "fsl,mpc5554-etpudata";
+			reg = <0x03fc8000 0x4000>;
+		};
+
+		etpudata@3fcc000 {	// eTPU Shared Data Memory (Parameter RAM) mirror
+			compatible = "fsl,mpc5554-etpudata";
+			reg = <0x03fcc000 0x4000>;
+		};
+
+		etpucode@3fd0000 {		// eTPU Shared Code RAM
+			compatible = "fsl,mpc5554-etpucode";
+			reg = <0x03fd0000 0x4000>;
+		};
+	};
+
+	soc5554BridgeB@e0000000 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "fsl,mpc5554-bridgeb";
+		ranges = <0 0xe0000000 0x20000000>;
+		reg = <0xe0000000 0x20000000>;
+		bus-frequency = <0>;		// from bootloader
+		system-frequency = <0>;		// from bootloader
+
+		bridgeb@1ff00000 {
+			compatible = "fsl,mpc5554-bridgeb";
+			reg = <0x1ff00000 0x4000>;
+		};
+
+		xbar@1ff04000 {		// System Bus Crossbar Switch (XBAR)
+			compatible = "fsl,mpc5554-xbar";
+			reg = <0x1ff04000 0x4000>;
+		};
+
+		ecsm@1ff40000 {		// Error Correction Status Module (ECSM)
+			compatible = "fsl,mpc5554-ecsm";
+			reg = <0x1ff40000 0x4000>;
+		};
+
+		edma@1ff44000 {		// Enhanced DMA Controller (eDMA)
+			compatible = "fsl,mpc5554-edma";
+			reg = <0x1ff44000 0x4000>;
+		};
+
+		intc@1ff48000 {		// Interrupt Controller (INTC)
+			compatible = "fsl,mpc5554-intc";
+			reg = <0x1ff48000 0x4000>;
+		};
+
+		eqadc@1ff80000 {	// Enhanced Queued Analog-to-Digital Converter (eQADC)
+			compatible = "fsl,mpc5554-eqacd";
+			reg = <0x1ff80000 0x4000>;
+		};
+
+		dspi@1ff90000 {		// Deserial Serial Peripheral Interface (DSPI_A)
+			compatible = "fsl,mpc5554-dspi";
+			reg = <0x1ff90000 0x4000>;
+		};
+
+		dspi@1ff94000 {		// Deserial Serial Peripheral Interface (DSPI_B)
+			compatible = "fsl,mpc5554-dspi";
+			reg = <0x1ff94000 0x4000>;
+		};
+
+		dspi@1ff98000 {		// Deserial Serial Peripheral Interface (DSPI_C)
+			compatible = "fsl,mpc5554-dspi";
+			reg = <0x1ff98000 0x4000>;
+		};
+
+		dspi@1ff9c000 {		// Deserial Serial Peripheral Interface (DSPI_D)
+			compatible = "fsl,mpc5554-dspi";
+			reg = <0x1ff9c000 0x4000>;
+		};
+
+		sci@1ffb0000 {		// Serial Communications Interface (SCI_A)
+			compatible = "fsl,mpc5554-sci";
+			reg = <0x1ffb0000 0x4000>;
+		};
+
+		sci@1ffb4000 {		// Serial Communications Interface (SCI_A)
+			compatible = "fsl,mpc5554-sci";
+			reg = <0x1ffb4000 0x4000>;
+		};
+
+		can@1ffc0000 {		// Controller Area Network (FlexCAN_A)
+			compatible = "fsl,mpc5554-flexcan";
+			reg = <0x1ffc0000 0x4000>;
+		};
+
+		can@1ffc4000 {		// Controller Area Network (FlexCAN_B)
+			compatible = "fsl,mpc5554-flexcan";
+			reg = <0x1ffc4000 0x4000>;
+		};
+
+		can@1ffc8000 {		// Controller Area Network (FlexCAN_C)
+			compatible = "fsl,mpc5554-flexcan";
+			reg = <0x1ffc8000 0x4000>;
+		};
+
+		bam@1fffc000 {		// Boot Assist Module (BAM)
+			compatible = "fsl,mpc5554-bam";
+			reg = <0x1fffc000 0x4000>;
+		};
+
+	};
+
+};

  reply	other threads:[~2010-03-09  7:02 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-07  6:50 cross-compiling Linux for PowerPC e200 core? Németh Márton
2010-03-08 17:34 ` Grant Likely
2010-03-08 18:44   ` Németh Márton
2010-03-08 19:08     ` Grant Likely
2010-03-09  7:02       ` Németh Márton [this message]
2010-03-09  7:35         ` Grant Likely
2010-03-11  6:11           ` Freescale MPC5554 device tree (was: cross-compiling Linux for PowerPC e200 core?) Németh Márton
2010-03-11  6:23             ` David Gibson
2010-03-12  6:26               ` Németh Márton
2010-03-12 12:14                 ` Grant Likely
2010-03-12 22:36                   ` David Gibson
2010-03-12 23:04                     ` Grant Likely
2010-03-13  3:22                       ` Segher Boessenkool
2010-03-13  3:21                     ` Segher Boessenkool
2010-03-13 11:59                   ` Németh Márton
2010-03-17 18:12                     ` Németh Márton
2010-03-17 19:02                     ` Grant Likely
2010-03-22  6:28                       ` Németh Márton
2010-03-22 14:59                         ` Grant Likely
2010-03-23  5:45                           ` Németh Márton
2010-03-30  6:54                       ` Németh Márton
2010-03-08 17:47 ` cross-compiling Linux for PowerPC e200 core? Segher Boessenkool
2010-03-08 18:49   ` Németh Márton
2010-03-08 20:41     ` Segher Boessenkool
     [not found]     ` <53452.84.105.60.153.1268080871.squirrel__48847.2990495667$1268080944$gmane$org@gate.crashing.org>
2010-03-09 14:24       ` Detlev Zundel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B95F298.5040000@freemail.hu \
    --to=nm127@freemail.hu \
    --cc=grant.likely@secretlab.ca \
    --cc=linuxppc-dev@ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).