-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[POWERPC] 83xx: Add support for Analogue & Micro ASP837E board
The following adds support for the Analogue & Micro ASP 8347E, running Redboot. http://www.analogue-micro.com/ASP8347.html Signed-off-by: Bryan O'Donoghue <bodonoghue@codehermit.ie> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
- Loading branch information
Bryan O'Donoghue
authored and
Kumar Gala
committed
Jun 2, 2008
1 parent
64f9b5e
commit 59d13f9
Showing
8 changed files
with
1,628 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,247 @@ | ||
/* | ||
* Analogue & Micro ASP8347 Device Tree Source | ||
* | ||
* Copyright 2008 Codehermit | ||
* | ||
* 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 = "Analogue & Micro ASP8347E"; | ||
compatible = "analogue-and-micro,asp8347e"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
aliases { | ||
ethernet0 = &enet0; | ||
ethernet1 = &enet1; | ||
serial0 = &serial0; | ||
serial1 = &serial1; | ||
}; | ||
|
||
cpus { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
PowerPC,8347@0 { | ||
device_type = "cpu"; | ||
reg = <0x0>; | ||
d-cache-line-size = <32>; | ||
i-cache-line-size = <32>; | ||
d-cache-size = <32768>; | ||
i-cache-size = <32768>; | ||
timebase-frequency = <0>; // from bootloader | ||
bus-frequency = <0>; // from bootloader | ||
clock-frequency = <0>; // from bootloader | ||
}; | ||
}; | ||
|
||
memory { | ||
device_type = "memory"; | ||
reg = <0x00000000 0x8000000>; // 128MB at 0 | ||
}; | ||
|
||
localbus@ff005000 { | ||
#address-cells = <2>; | ||
#size-cells = <1>; | ||
compatible = "fsl,mpc8347e-localbus", | ||
"fsl,pq2pro-localbus", | ||
"simple-bus"; | ||
reg = <0xff005000 0x1000>; | ||
interrupts = <77 0x8>; | ||
interrupt-parent = <&ipic>; | ||
|
||
ranges = < | ||
0 0 0xf0000000 0x02000000 | ||
>; | ||
|
||
flash@0,0 { | ||
compatible = "cfi-flash"; | ||
reg = <0 0 0x02000000>; | ||
bank-width = <2>; | ||
device-width = <2>; | ||
}; | ||
}; | ||
|
||
soc8349@ff000000 { | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
device_type = "soc"; | ||
ranges = <0x0 0xff000000 0x00100000>; | ||
reg = <0xff000000 0x00000200>; | ||
bus-frequency = <0>; | ||
|
||
wdt@200 { | ||
device_type = "watchdog"; | ||
compatible = "mpc83xx_wdt"; | ||
reg = <0x200 0x100>; | ||
}; | ||
|
||
i2c@3000 { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
cell-index = <0>; | ||
compatible = "fsl-i2c"; | ||
reg = <0x3000 0x100>; | ||
interrupts = <14 0x8>; | ||
interrupt-parent = <&ipic>; | ||
dfsrr; | ||
|
||
rtc@68 { | ||
compatible = "dallas,ds1374"; | ||
reg = <0x68>; | ||
}; | ||
}; | ||
|
||
i2c@3100 { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
cell-index = <1>; | ||
compatible = "fsl-i2c"; | ||
reg = <0x3100 0x100>; | ||
interrupts = <15 0x8>; | ||
interrupt-parent = <&ipic>; | ||
dfsrr; | ||
}; | ||
|
||
spi@7000 { | ||
cell-index = <0>; | ||
compatible = "fsl,spi"; | ||
reg = <0x7000 0x1000>; | ||
interrupts = <16 0x8>; | ||
interrupt-parent = <&ipic>; | ||
mode = "cpu"; | ||
}; | ||
|
||
/* phy type (ULPI or SERIAL) are only types supported for MPH */ | ||
/* port = 0 or 1 */ | ||
usb@22000 { | ||
compatible = "fsl-usb2-mph"; | ||
reg = <0x22000 0x1000>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
interrupt-parent = <&ipic>; | ||
interrupts = <39 0x8>; | ||
phy_type = "ulpi"; | ||
port1; | ||
}; | ||
/* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */ | ||
usb@23000 { | ||
compatible = "fsl-usb2-dr"; | ||
reg = <0x23000 0x1000>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
interrupt-parent = <&ipic>; | ||
interrupts = <38 0x8>; | ||
dr_mode = "otg"; | ||
phy_type = "ulpi"; | ||
}; | ||
|
||
mdio@24520 { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
compatible = "fsl,gianfar-mdio"; | ||
reg = <0x24520 0x20>; | ||
|
||
phy0: ethernet-phy@0 { | ||
interrupt-parent = <&ipic>; | ||
interrupts = <17 0x8>; | ||
reg = <0x1>; | ||
device_type = "ethernet-phy"; | ||
}; | ||
phy1: ethernet-phy@1 { | ||
interrupt-parent = <&ipic>; | ||
interrupts = <18 0x8>; | ||
reg = <0x2>; | ||
device_type = "ethernet-phy"; | ||
}; | ||
}; | ||
|
||
enet0: ethernet@24000 { | ||
cell-index = <0>; | ||
device_type = "network"; | ||
model = "TSEC"; | ||
compatible = "gianfar"; | ||
reg = <0x24000 0x1000>; | ||
local-mac-address = [ 00 08 e5 11 32 33 ]; | ||
interrupts = <32 0x8 33 0x8 34 0x8>; | ||
interrupt-parent = <&ipic>; | ||
phy-handle = <&phy0>; | ||
linux,network-index = <0>; | ||
}; | ||
|
||
enet1: ethernet@25000 { | ||
cell-index = <1>; | ||
device_type = "network"; | ||
model = "TSEC"; | ||
compatible = "gianfar"; | ||
reg = <0x25000 0x1000>; | ||
local-mac-address = [ 00 08 e5 11 32 34 ]; | ||
interrupts = <35 0x8 36 0x8 37 0x8>; | ||
interrupt-parent = <&ipic>; | ||
phy-handle = <&phy1>; | ||
linux,network-index = <1>; | ||
}; | ||
|
||
serial0: serial@4500 { | ||
cell-index = <0>; | ||
device_type = "serial"; | ||
compatible = "ns16550"; | ||
reg = <0x4500 0x100>; | ||
clock-frequency = <400000000>; | ||
interrupts = <9 0x8>; | ||
interrupt-parent = <&ipic>; | ||
}; | ||
|
||
serial1: serial@4600 { | ||
cell-index = <1>; | ||
device_type = "serial"; | ||
compatible = "ns16550"; | ||
reg = <0x4600 0x100>; | ||
clock-frequency = <400000000>; | ||
interrupts = <10 0x8>; | ||
interrupt-parent = <&ipic>; | ||
}; | ||
|
||
/* May need to remove if on a part without crypto engine */ | ||
crypto@30000 { | ||
device_type = "crypto"; | ||
model = "SEC2"; | ||
compatible = "talitos"; | ||
reg = <0x30000 0x10000>; | ||
interrupts = <11 0x8>; | ||
interrupt-parent = <&ipic>; | ||
num-channels = <4>; | ||
channel-fifo-len = <24>; | ||
exec-units-mask = <0x0000007e>; | ||
/* desc mask is for rev2.0, | ||
* we need runtime fixup for >2.0 */ | ||
descriptor-types-mask = <0x01010ebf>; | ||
}; | ||
|
||
/* IPIC | ||
* interrupts cell = <intr #, sense> | ||
* sense values match linux IORESOURCE_IRQ_* defines: | ||
* sense == 8: Level, low assertion | ||
* sense == 2: Edge, high-to-low change | ||
*/ | ||
ipic: pic@700 { | ||
interrupt-controller; | ||
#address-cells = <0>; | ||
#interrupt-cells = <2>; | ||
reg = <0x700 0x100>; | ||
device_type = "ipic"; | ||
}; | ||
}; | ||
|
||
chosen { | ||
bootargs = "console=ttyS0,38400 root=/dev/mtdblock3 rootfstype=jffs2"; | ||
linux,stdout-path = &serial0; | ||
}; | ||
|
||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
/* | ||
* RedBoot firmware support | ||
* | ||
* Author: Scott Wood <scottwood@freescale.com> | ||
* | ||
* Copyright (c) 2007 Freescale Semiconductor, Inc. | ||
* Copyright (c) 2008 Codehermit | ||
* | ||
* This program is free software; you can redistribute it and/or modify it | ||
* under the terms of the GNU General Public License version 2 as published | ||
* by the Free Software Foundation. | ||
*/ | ||
|
||
#include "ops.h" | ||
#include "stdio.h" | ||
#include "redboot.h" | ||
#include "fsl-soc.h" | ||
#include "io.h" | ||
|
||
static bd_t bd; | ||
BSS_STACK(4096); | ||
|
||
#define MHZ(x) ((x + 500000) / 1000000) | ||
|
||
static void platform_fixups(void) | ||
{ | ||
void *node; | ||
|
||
dt_fixup_memory(bd.bi_memstart, bd.bi_memsize); | ||
dt_fixup_mac_addresses(bd.bi_enetaddr); | ||
dt_fixup_cpu_clocks(bd.bi_intfreq, bd.bi_busfreq / 16, bd.bi_busfreq); | ||
|
||
node = finddevice("/soc/cpm/brg"); | ||
if (node) { | ||
printf("BRG clock-frequency <- 0x%x (%dMHz)\r\n", | ||
bd.bi_busfreq, MHZ(bd.bi_busfreq)); | ||
setprop(node, "clock-frequency", &bd.bi_busfreq, 4); | ||
} | ||
|
||
} | ||
|
||
void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | ||
unsigned long r6, unsigned long r7) | ||
{ | ||
memcpy(&bd, (char *)r3, sizeof(bd)); | ||
|
||
if (bd.bi_tag != 0x42444944) | ||
return; | ||
|
||
simple_alloc_init(_end, | ||
bd.bi_memstart + bd.bi_memsize - (unsigned long)_end, | ||
32, 64); | ||
|
||
fdt_init(_dtb_start); | ||
serial_console_init(); | ||
platform_ops.fixups = platform_fixups; | ||
|
||
loader_info.cmdline = (char *)bd.bi_cmdline; | ||
loader_info.cmdline_len = strlen((char *)bd.bi_cmdline); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.