Merge branch 'u-boot/master' into 'u-boot-arm/master'
This commit is contained in:
1
arch/.gitignore
vendored
1
arch/.gitignore
vendored
@@ -1,2 +1 @@
|
||||
/*/include/asm/arch
|
||||
/*/include/asm/proc
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#define __ASM_ARC_CONFIG_H_
|
||||
|
||||
#define CONFIG_SYS_GENERIC_GLOBAL_DATA
|
||||
#define CONFIG_SYS_BOOT_RAMDISK_HIGH
|
||||
|
||||
#define CONFIG_LMB
|
||||
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/cpu.h>
|
||||
#include <asm/arch/kirkwood.h>
|
||||
#include <hush.h>
|
||||
|
||||
#define BUFLEN 16
|
||||
|
||||
@@ -211,7 +210,7 @@ static void kw_sysrst_action(void)
|
||||
|
||||
debug("Starting %s process...\n", __FUNCTION__);
|
||||
ret = run_command(s, 0);
|
||||
if (ret < 0)
|
||||
if (ret != 0)
|
||||
debug("Error.. %s failed\n", __FUNCTION__);
|
||||
else
|
||||
debug("%s process finished\n", __FUNCTION__);
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
#include <asm/io.h>
|
||||
#include <u-boot/md5.h>
|
||||
#include <asm/arch/cpu.h>
|
||||
#include <hush.h>
|
||||
|
||||
#define BUFLEN 16
|
||||
|
||||
|
||||
@@ -255,11 +255,3 @@ void s_init(void)
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SYS_DCACHE_OFF
|
||||
void enable_caches(void)
|
||||
{
|
||||
/* Enable D-cache. I-cache is already enabled in start.S */
|
||||
dcache_enable();
|
||||
}
|
||||
#endif /* !CONFIG_SYS_DCACHE_OFF */
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include<common.h>
|
||||
#include<config.h>
|
||||
#include <common.h>
|
||||
#include <config.h>
|
||||
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/clk.h>
|
||||
|
||||
@@ -22,6 +22,10 @@ obj-y += pipe3-phy.o
|
||||
obj-$(CONFIG_SCSI_AHCI_PLAT) += sata.o
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_SYS_DCACHE_OFF),)
|
||||
obj-y += omap-cache.o
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_OMAP34XX),)
|
||||
obj-y += boot-common.o
|
||||
obj-y += lowlevel_init.o
|
||||
|
||||
@@ -18,13 +18,8 @@
|
||||
#include <asm/emif.h>
|
||||
#include <asm/omap_common.h>
|
||||
#include <linux/compiler.h>
|
||||
#include <asm/cache.h>
|
||||
#include <asm/system.h>
|
||||
|
||||
#define ARMV7_DCACHE_WRITEBACK 0xe
|
||||
#define ARMV7_DOMAIN_CLIENT 1
|
||||
#define ARMV7_DOMAIN_MASK (0x3 << 0)
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
void do_set_mux(u32 base, struct pad_conf_entry const *array, int size)
|
||||
@@ -263,40 +258,3 @@ int print_cpuinfo(void)
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SYS_DCACHE_OFF
|
||||
void enable_caches(void)
|
||||
{
|
||||
/* Enable D-cache. I-cache is already enabled in start.S */
|
||||
dcache_enable();
|
||||
}
|
||||
|
||||
void dram_bank_mmu_setup(int bank)
|
||||
{
|
||||
bd_t *bd = gd->bd;
|
||||
int i;
|
||||
|
||||
u32 start = bd->bi_dram[bank].start >> 20;
|
||||
u32 size = bd->bi_dram[bank].size >> 20;
|
||||
u32 end = start + size;
|
||||
|
||||
debug("%s: bank: %d\n", __func__, bank);
|
||||
for (i = start; i < end; i++)
|
||||
set_section_dcache(i, ARMV7_DCACHE_WRITEBACK);
|
||||
|
||||
}
|
||||
|
||||
void arm_init_domains(void)
|
||||
{
|
||||
u32 reg;
|
||||
|
||||
reg = get_dacr();
|
||||
/*
|
||||
* Set DOMAIN to client access so that all permissions
|
||||
* set in pagetables are validated by the mmu.
|
||||
*/
|
||||
reg &= ~ARMV7_DOMAIN_MASK;
|
||||
reg |= ARMV7_DOMAIN_CLIENT;
|
||||
set_dacr(reg);
|
||||
}
|
||||
#endif
|
||||
|
||||
56
arch/arm/cpu/armv7/omap-common/omap-cache.c
Normal file
56
arch/arm/cpu/armv7/omap-common/omap-cache.c
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
*
|
||||
* Common functions for OMAP4/5 based boards
|
||||
*
|
||||
* (C) Copyright 2010
|
||||
* Texas Instruments, <www.ti.com>
|
||||
*
|
||||
* Author :
|
||||
* Aneesh V <aneesh@ti.com>
|
||||
* Steve Sakoman <steve@sakoman.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/cache.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define ARMV7_DCACHE_WRITEBACK 0xe
|
||||
#define ARMV7_DOMAIN_CLIENT 1
|
||||
#define ARMV7_DOMAIN_MASK (0x3 << 0)
|
||||
|
||||
void enable_caches(void)
|
||||
{
|
||||
/* Enable D-cache. I-cache is already enabled in start.S */
|
||||
dcache_enable();
|
||||
}
|
||||
|
||||
void dram_bank_mmu_setup(int bank)
|
||||
{
|
||||
bd_t *bd = gd->bd;
|
||||
int i;
|
||||
|
||||
u32 start = bd->bi_dram[bank].start >> 20;
|
||||
u32 size = bd->bi_dram[bank].size >> 20;
|
||||
u32 end = start + size;
|
||||
|
||||
debug("%s: bank: %d\n", __func__, bank);
|
||||
for (i = start; i < end; i++)
|
||||
set_section_dcache(i, ARMV7_DCACHE_WRITEBACK);
|
||||
}
|
||||
|
||||
void arm_init_domains(void)
|
||||
{
|
||||
u32 reg;
|
||||
|
||||
reg = get_dacr();
|
||||
/*
|
||||
* Set DOMAIN to client access so that all permissions
|
||||
* set in pagetables are validated by the mmu.
|
||||
*/
|
||||
reg &= ~ARMV7_DOMAIN_MASK;
|
||||
reg |= ARMV7_DOMAIN_CLIENT;
|
||||
set_dacr(reg);
|
||||
}
|
||||
@@ -478,11 +478,3 @@ void omap3_outer_cache_disable(void)
|
||||
omap3_update_aux_cr(0, 0x2);
|
||||
}
|
||||
#endif /* !CONFIG_SYS_L2CACHE_OFF */
|
||||
|
||||
#ifndef CONFIG_SYS_DCACHE_OFF
|
||||
void enable_caches(void)
|
||||
{
|
||||
/* Enable D-cache. I-cache is already enabled in start.S */
|
||||
dcache_enable();
|
||||
}
|
||||
#endif /* !CONFIG_SYS_DCACHE_OFF */
|
||||
|
||||
@@ -31,6 +31,7 @@ dtb-$(CONFIG_ZYNQ) += zynq-zc702.dtb \
|
||||
zynq-zc770-xm010.dtb \
|
||||
zynq-zc770-xm012.dtb \
|
||||
zynq-zc770-xm013.dtb
|
||||
dtb-$(CONFIG_AM33XX) += am335x-boneblack.dtb
|
||||
|
||||
targets += $(dtb-y)
|
||||
|
||||
|
||||
262
arch/arm/dts/am335x-bone-common.dtsi
Normal file
262
arch/arm/dts/am335x-bone-common.dtsi
Normal file
@@ -0,0 +1,262 @@
|
||||
/*
|
||||
* Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/ {
|
||||
model = "TI AM335x BeagleBone";
|
||||
compatible = "ti,am335x-bone", "ti,am33xx";
|
||||
|
||||
cpus {
|
||||
cpu@0 {
|
||||
cpu0-supply = <&dcdc2_reg>;
|
||||
};
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x80000000 0x10000000>; /* 256 MB */
|
||||
};
|
||||
|
||||
am33xx_pinmux: pinmux@44e10800 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&clkout2_pin>;
|
||||
|
||||
user_leds_s0: user_leds_s0 {
|
||||
pinctrl-single,pins = <
|
||||
0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */
|
||||
0x58 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a6.gpio1_22 */
|
||||
0x5c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a7.gpio1_23 */
|
||||
0x60 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a8.gpio1_24 */
|
||||
>;
|
||||
};
|
||||
|
||||
i2c0_pins: pinmux_i2c0_pins {
|
||||
pinctrl-single,pins = <
|
||||
0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */
|
||||
0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */
|
||||
>;
|
||||
};
|
||||
|
||||
uart0_pins: pinmux_uart0_pins {
|
||||
pinctrl-single,pins = <
|
||||
0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
|
||||
0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
|
||||
>;
|
||||
};
|
||||
|
||||
clkout2_pin: pinmux_clkout2_pin {
|
||||
pinctrl-single,pins = <
|
||||
0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */
|
||||
>;
|
||||
};
|
||||
|
||||
cpsw_default: cpsw_default {
|
||||
pinctrl-single,pins = <
|
||||
/* Slave 1 */
|
||||
0x110 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxerr.mii1_rxerr */
|
||||
0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txen.mii1_txen */
|
||||
0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxdv.mii1_rxdv */
|
||||
0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd3.mii1_txd3 */
|
||||
0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd2.mii1_txd2 */
|
||||
0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd1.mii1_txd1 */
|
||||
0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd0.mii1_txd0 */
|
||||
0x12c (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_txclk.mii1_txclk */
|
||||
0x130 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxclk.mii1_rxclk */
|
||||
0x134 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd3.mii1_rxd3 */
|
||||
0x138 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd2.mii1_rxd2 */
|
||||
0x13c (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd1.mii1_rxd1 */
|
||||
0x140 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd0.mii1_rxd0 */
|
||||
>;
|
||||
};
|
||||
|
||||
cpsw_sleep: cpsw_sleep {
|
||||
pinctrl-single,pins = <
|
||||
/* Slave 1 reset value */
|
||||
0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
>;
|
||||
};
|
||||
|
||||
davinci_mdio_default: davinci_mdio_default {
|
||||
pinctrl-single,pins = <
|
||||
/* MDIO */
|
||||
0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
|
||||
0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
|
||||
>;
|
||||
};
|
||||
|
||||
davinci_mdio_sleep: davinci_mdio_sleep {
|
||||
pinctrl-single,pins = <
|
||||
/* MDIO reset value */
|
||||
0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
ocp {
|
||||
uart0: serial@44e09000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
musb: usb@47400000 {
|
||||
status = "okay";
|
||||
|
||||
control@44e10000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb-phy@47401300 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb-phy@47401b00 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb@47401000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb@47401800 {
|
||||
status = "okay";
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
dma-controller@07402000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
i2c0: i2c@44e0b000 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
|
||||
tps: tps@24 {
|
||||
reg = <0x24>;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&user_leds_s0>;
|
||||
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led@2 {
|
||||
label = "beaglebone:green:heartbeat";
|
||||
gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led@3 {
|
||||
label = "beaglebone:green:mmc0";
|
||||
gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "mmc0";
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led@4 {
|
||||
label = "beaglebone:green:usr2";
|
||||
gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led@5 {
|
||||
label = "beaglebone:green:usr3";
|
||||
gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "tps65217.dtsi"
|
||||
|
||||
&tps {
|
||||
regulators {
|
||||
dcdc1_reg: regulator@0 {
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
dcdc2_reg: regulator@1 {
|
||||
/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
|
||||
regulator-name = "vdd_mpu";
|
||||
regulator-min-microvolt = <925000>;
|
||||
regulator-max-microvolt = <1325000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
dcdc3_reg: regulator@2 {
|
||||
/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
|
||||
regulator-name = "vdd_core";
|
||||
regulator-min-microvolt = <925000>;
|
||||
regulator-max-microvolt = <1150000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo1_reg: regulator@3 {
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo2_reg: regulator@4 {
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo3_reg: regulator@5 {
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ldo4_reg: regulator@6 {
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&cpsw_emac0 {
|
||||
phy_id = <&davinci_mdio>, <0>;
|
||||
phy-mode = "mii";
|
||||
};
|
||||
|
||||
&cpsw_emac1 {
|
||||
phy_id = <&davinci_mdio>, <1>;
|
||||
phy-mode = "mii";
|
||||
};
|
||||
|
||||
&mac {
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&cpsw_default>;
|
||||
pinctrl-1 = <&cpsw_sleep>;
|
||||
|
||||
};
|
||||
|
||||
&davinci_mdio {
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&davinci_mdio_default>;
|
||||
pinctrl-1 = <&davinci_mdio_sleep>;
|
||||
};
|
||||
17
arch/arm/dts/am335x-boneblack.dts
Normal file
17
arch/arm/dts/am335x-boneblack.dts
Normal file
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
/dts-v1/;
|
||||
|
||||
#include "am33xx.dtsi"
|
||||
#include "am335x-bone-common.dtsi"
|
||||
|
||||
&ldo3_reg {
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
649
arch/arm/dts/am33xx.dtsi
Normal file
649
arch/arm/dts/am33xx.dtsi
Normal file
@@ -0,0 +1,649 @@
|
||||
/*
|
||||
* Device Tree Source for AM33XX SoC
|
||||
*
|
||||
* Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public License
|
||||
* version 2. This program is licensed "as is" without any warranty of any
|
||||
* kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/pinctrl/am33xx.h>
|
||||
|
||||
#include "skeleton.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "ti,am33xx";
|
||||
interrupt-parent = <&intc>;
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
serial1 = &uart1;
|
||||
serial2 = &uart2;
|
||||
serial3 = &uart3;
|
||||
serial4 = &uart4;
|
||||
serial5 = &uart5;
|
||||
d_can0 = &dcan0;
|
||||
d_can1 = &dcan1;
|
||||
usb0 = &usb0;
|
||||
usb1 = &usb1;
|
||||
phy0 = &usb0_phy;
|
||||
phy1 = &usb1_phy;
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cpu@0 {
|
||||
compatible = "arm,cortex-a8";
|
||||
device_type = "cpu";
|
||||
reg = <0>;
|
||||
|
||||
/*
|
||||
* To consider voltage drop between PMIC and SoC,
|
||||
* tolerance value is reduced to 2% from 4% and
|
||||
* voltage value is increased as a precaution.
|
||||
*/
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
720000 1285000
|
||||
600000 1225000
|
||||
500000 1125000
|
||||
275000 1125000
|
||||
>;
|
||||
voltage-tolerance = <2>; /* 2 percentage */
|
||||
clock-latency = <300000>; /* From omap-cpufreq driver */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* The soc node represents the soc top level view. It is uses for IPs
|
||||
* that are not memory mapped in the MPU view or for the MPU itself.
|
||||
*/
|
||||
soc {
|
||||
compatible = "ti,omap-infra";
|
||||
mpu {
|
||||
compatible = "ti,omap3-mpu";
|
||||
ti,hwmods = "mpu";
|
||||
};
|
||||
};
|
||||
|
||||
am33xx_pinmux: pinmux@44e10800 {
|
||||
compatible = "pinctrl-single";
|
||||
reg = <0x44e10800 0x0238>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pinctrl-single,register-width = <32>;
|
||||
pinctrl-single,function-mask = <0x7f>;
|
||||
};
|
||||
|
||||
/*
|
||||
* XXX: Use a flat representation of the AM33XX interconnect.
|
||||
* The real AM33XX interconnect network is quite complex.Since
|
||||
* that will not bring real advantage to represent that in DT
|
||||
* for the moment, just use a fake OCP bus entry to represent
|
||||
* the whole bus hierarchy.
|
||||
*/
|
||||
ocp {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
ti,hwmods = "l3_main";
|
||||
|
||||
intc: interrupt-controller@48200000 {
|
||||
compatible = "ti,omap2-intc";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
ti,intc-size = <128>;
|
||||
reg = <0x48200000 0x1000>;
|
||||
};
|
||||
|
||||
gpio0: gpio@44e07000 {
|
||||
compatible = "ti,omap4-gpio";
|
||||
ti,hwmods = "gpio1";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
reg = <0x44e07000 0x1000>;
|
||||
interrupts = <96>;
|
||||
};
|
||||
|
||||
gpio1: gpio@4804c000 {
|
||||
compatible = "ti,omap4-gpio";
|
||||
ti,hwmods = "gpio2";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
reg = <0x4804c000 0x1000>;
|
||||
interrupts = <98>;
|
||||
};
|
||||
|
||||
gpio2: gpio@481ac000 {
|
||||
compatible = "ti,omap4-gpio";
|
||||
ti,hwmods = "gpio3";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
reg = <0x481ac000 0x1000>;
|
||||
interrupts = <32>;
|
||||
};
|
||||
|
||||
gpio3: gpio@481ae000 {
|
||||
compatible = "ti,omap4-gpio";
|
||||
ti,hwmods = "gpio4";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
reg = <0x481ae000 0x1000>;
|
||||
interrupts = <62>;
|
||||
};
|
||||
|
||||
uart0: serial@44e09000 {
|
||||
compatible = "ti,omap3-uart";
|
||||
ti,hwmods = "uart1";
|
||||
clock-frequency = <48000000>;
|
||||
reg = <0x44e09000 0x2000>;
|
||||
interrupts = <72>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart1: serial@48022000 {
|
||||
compatible = "ti,omap3-uart";
|
||||
ti,hwmods = "uart2";
|
||||
clock-frequency = <48000000>;
|
||||
reg = <0x48022000 0x2000>;
|
||||
interrupts = <73>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart2: serial@48024000 {
|
||||
compatible = "ti,omap3-uart";
|
||||
ti,hwmods = "uart3";
|
||||
clock-frequency = <48000000>;
|
||||
reg = <0x48024000 0x2000>;
|
||||
interrupts = <74>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart3: serial@481a6000 {
|
||||
compatible = "ti,omap3-uart";
|
||||
ti,hwmods = "uart4";
|
||||
clock-frequency = <48000000>;
|
||||
reg = <0x481a6000 0x2000>;
|
||||
interrupts = <44>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart4: serial@481a8000 {
|
||||
compatible = "ti,omap3-uart";
|
||||
ti,hwmods = "uart5";
|
||||
clock-frequency = <48000000>;
|
||||
reg = <0x481a8000 0x2000>;
|
||||
interrupts = <45>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart5: serial@481aa000 {
|
||||
compatible = "ti,omap3-uart";
|
||||
ti,hwmods = "uart6";
|
||||
clock-frequency = <48000000>;
|
||||
reg = <0x481aa000 0x2000>;
|
||||
interrupts = <46>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c0: i2c@44e0b000 {
|
||||
compatible = "ti,omap4-i2c";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
ti,hwmods = "i2c1";
|
||||
reg = <0x44e0b000 0x1000>;
|
||||
interrupts = <70>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c1: i2c@4802a000 {
|
||||
compatible = "ti,omap4-i2c";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
ti,hwmods = "i2c2";
|
||||
reg = <0x4802a000 0x1000>;
|
||||
interrupts = <71>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c2: i2c@4819c000 {
|
||||
compatible = "ti,omap4-i2c";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
ti,hwmods = "i2c3";
|
||||
reg = <0x4819c000 0x1000>;
|
||||
interrupts = <30>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
wdt2: wdt@44e35000 {
|
||||
compatible = "ti,omap3-wdt";
|
||||
ti,hwmods = "wd_timer2";
|
||||
reg = <0x44e35000 0x1000>;
|
||||
interrupts = <91>;
|
||||
};
|
||||
|
||||
dcan0: d_can@481cc000 {
|
||||
compatible = "bosch,d_can";
|
||||
ti,hwmods = "d_can0";
|
||||
reg = <0x481cc000 0x2000
|
||||
0x44e10644 0x4>;
|
||||
interrupts = <52>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dcan1: d_can@481d0000 {
|
||||
compatible = "bosch,d_can";
|
||||
ti,hwmods = "d_can1";
|
||||
reg = <0x481d0000 0x2000
|
||||
0x44e10644 0x4>;
|
||||
interrupts = <55>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
timer1: timer@44e31000 {
|
||||
compatible = "ti,am335x-timer-1ms";
|
||||
reg = <0x44e31000 0x400>;
|
||||
interrupts = <67>;
|
||||
ti,hwmods = "timer1";
|
||||
ti,timer-alwon;
|
||||
};
|
||||
|
||||
timer2: timer@48040000 {
|
||||
compatible = "ti,am335x-timer";
|
||||
reg = <0x48040000 0x400>;
|
||||
interrupts = <68>;
|
||||
ti,hwmods = "timer2";
|
||||
};
|
||||
|
||||
timer3: timer@48042000 {
|
||||
compatible = "ti,am335x-timer";
|
||||
reg = <0x48042000 0x400>;
|
||||
interrupts = <69>;
|
||||
ti,hwmods = "timer3";
|
||||
};
|
||||
|
||||
timer4: timer@48044000 {
|
||||
compatible = "ti,am335x-timer";
|
||||
reg = <0x48044000 0x400>;
|
||||
interrupts = <92>;
|
||||
ti,hwmods = "timer4";
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
timer5: timer@48046000 {
|
||||
compatible = "ti,am335x-timer";
|
||||
reg = <0x48046000 0x400>;
|
||||
interrupts = <93>;
|
||||
ti,hwmods = "timer5";
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
timer6: timer@48048000 {
|
||||
compatible = "ti,am335x-timer";
|
||||
reg = <0x48048000 0x400>;
|
||||
interrupts = <94>;
|
||||
ti,hwmods = "timer6";
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
timer7: timer@4804a000 {
|
||||
compatible = "ti,am335x-timer";
|
||||
reg = <0x4804a000 0x400>;
|
||||
interrupts = <95>;
|
||||
ti,hwmods = "timer7";
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
rtc@44e3e000 {
|
||||
compatible = "ti,da830-rtc";
|
||||
reg = <0x44e3e000 0x1000>;
|
||||
interrupts = <75
|
||||
76>;
|
||||
ti,hwmods = "rtc";
|
||||
};
|
||||
|
||||
spi0: spi@48030000 {
|
||||
compatible = "ti,omap4-mcspi";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x48030000 0x400>;
|
||||
interrupts = <65>;
|
||||
ti,spi-num-cs = <2>;
|
||||
ti,hwmods = "spi0";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spi1: spi@481a0000 {
|
||||
compatible = "ti,omap4-mcspi";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x481a0000 0x400>;
|
||||
interrupts = <125>;
|
||||
ti,spi-num-cs = <2>;
|
||||
ti,hwmods = "spi1";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb: usb@47400000 {
|
||||
compatible = "ti,am33xx-usb";
|
||||
reg = <0x47400000 0x1000>;
|
||||
ranges;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ti,hwmods = "usb_otg_hs";
|
||||
status = "disabled";
|
||||
|
||||
ctrl_mod: control@44e10000 {
|
||||
compatible = "ti,am335x-usb-ctrl-module";
|
||||
reg = <0x44e10620 0x10
|
||||
0x44e10648 0x4>;
|
||||
reg-names = "phy_ctrl", "wakeup";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb0_phy: usb-phy@47401300 {
|
||||
compatible = "ti,am335x-usb-phy";
|
||||
reg = <0x47401300 0x100>;
|
||||
reg-names = "phy";
|
||||
status = "disabled";
|
||||
ti,ctrl_mod = <&ctrl_mod>;
|
||||
};
|
||||
|
||||
usb0: usb@47401000 {
|
||||
compatible = "ti,musb-am33xx";
|
||||
status = "disabled";
|
||||
reg = <0x47401400 0x400
|
||||
0x47401000 0x200>;
|
||||
reg-names = "mc", "control";
|
||||
|
||||
interrupts = <18>;
|
||||
interrupt-names = "mc";
|
||||
dr_mode = "otg";
|
||||
mentor,multipoint = <1>;
|
||||
mentor,num-eps = <16>;
|
||||
mentor,ram-bits = <12>;
|
||||
mentor,power = <500>;
|
||||
phys = <&usb0_phy>;
|
||||
|
||||
dmas = <&cppi41dma 0 0 &cppi41dma 1 0
|
||||
&cppi41dma 2 0 &cppi41dma 3 0
|
||||
&cppi41dma 4 0 &cppi41dma 5 0
|
||||
&cppi41dma 6 0 &cppi41dma 7 0
|
||||
&cppi41dma 8 0 &cppi41dma 9 0
|
||||
&cppi41dma 10 0 &cppi41dma 11 0
|
||||
&cppi41dma 12 0 &cppi41dma 13 0
|
||||
&cppi41dma 14 0 &cppi41dma 0 1
|
||||
&cppi41dma 1 1 &cppi41dma 2 1
|
||||
&cppi41dma 3 1 &cppi41dma 4 1
|
||||
&cppi41dma 5 1 &cppi41dma 6 1
|
||||
&cppi41dma 7 1 &cppi41dma 8 1
|
||||
&cppi41dma 9 1 &cppi41dma 10 1
|
||||
&cppi41dma 11 1 &cppi41dma 12 1
|
||||
&cppi41dma 13 1 &cppi41dma 14 1>;
|
||||
dma-names =
|
||||
"rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
|
||||
"rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
|
||||
"rx14", "rx15",
|
||||
"tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
|
||||
"tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
|
||||
"tx14", "tx15";
|
||||
};
|
||||
|
||||
usb1_phy: usb-phy@47401b00 {
|
||||
compatible = "ti,am335x-usb-phy";
|
||||
reg = <0x47401b00 0x100>;
|
||||
reg-names = "phy";
|
||||
status = "disabled";
|
||||
ti,ctrl_mod = <&ctrl_mod>;
|
||||
};
|
||||
|
||||
usb1: usb@47401800 {
|
||||
compatible = "ti,musb-am33xx";
|
||||
status = "disabled";
|
||||
reg = <0x47401c00 0x400
|
||||
0x47401800 0x200>;
|
||||
reg-names = "mc", "control";
|
||||
interrupts = <19>;
|
||||
interrupt-names = "mc";
|
||||
dr_mode = "otg";
|
||||
mentor,multipoint = <1>;
|
||||
mentor,num-eps = <16>;
|
||||
mentor,ram-bits = <12>;
|
||||
mentor,power = <500>;
|
||||
phys = <&usb1_phy>;
|
||||
|
||||
dmas = <&cppi41dma 15 0 &cppi41dma 16 0
|
||||
&cppi41dma 17 0 &cppi41dma 18 0
|
||||
&cppi41dma 19 0 &cppi41dma 20 0
|
||||
&cppi41dma 21 0 &cppi41dma 22 0
|
||||
&cppi41dma 23 0 &cppi41dma 24 0
|
||||
&cppi41dma 25 0 &cppi41dma 26 0
|
||||
&cppi41dma 27 0 &cppi41dma 28 0
|
||||
&cppi41dma 29 0 &cppi41dma 15 1
|
||||
&cppi41dma 16 1 &cppi41dma 17 1
|
||||
&cppi41dma 18 1 &cppi41dma 19 1
|
||||
&cppi41dma 20 1 &cppi41dma 21 1
|
||||
&cppi41dma 22 1 &cppi41dma 23 1
|
||||
&cppi41dma 24 1 &cppi41dma 25 1
|
||||
&cppi41dma 26 1 &cppi41dma 27 1
|
||||
&cppi41dma 28 1 &cppi41dma 29 1>;
|
||||
dma-names =
|
||||
"rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
|
||||
"rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
|
||||
"rx14", "rx15",
|
||||
"tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
|
||||
"tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
|
||||
"tx14", "tx15";
|
||||
};
|
||||
|
||||
cppi41dma: dma-controller@07402000 {
|
||||
compatible = "ti,am3359-cppi41";
|
||||
reg = <0x47400000 0x1000
|
||||
0x47402000 0x1000
|
||||
0x47403000 0x1000
|
||||
0x47404000 0x4000>;
|
||||
reg-names = "glue", "controller", "scheduler", "queuemgr";
|
||||
interrupts = <17>;
|
||||
interrupt-names = "glue";
|
||||
#dma-cells = <2>;
|
||||
#dma-channels = <30>;
|
||||
#dma-requests = <256>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
epwmss0: epwmss@48300000 {
|
||||
compatible = "ti,am33xx-pwmss";
|
||||
reg = <0x48300000 0x10>;
|
||||
ti,hwmods = "epwmss0";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
status = "disabled";
|
||||
ranges = <0x48300100 0x48300100 0x80 /* ECAP */
|
||||
0x48300180 0x48300180 0x80 /* EQEP */
|
||||
0x48300200 0x48300200 0x80>; /* EHRPWM */
|
||||
|
||||
ecap0: ecap@48300100 {
|
||||
compatible = "ti,am33xx-ecap";
|
||||
#pwm-cells = <3>;
|
||||
reg = <0x48300100 0x80>;
|
||||
ti,hwmods = "ecap0";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ehrpwm0: ehrpwm@48300200 {
|
||||
compatible = "ti,am33xx-ehrpwm";
|
||||
#pwm-cells = <3>;
|
||||
reg = <0x48300200 0x80>;
|
||||
ti,hwmods = "ehrpwm0";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
epwmss1: epwmss@48302000 {
|
||||
compatible = "ti,am33xx-pwmss";
|
||||
reg = <0x48302000 0x10>;
|
||||
ti,hwmods = "epwmss1";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
status = "disabled";
|
||||
ranges = <0x48302100 0x48302100 0x80 /* ECAP */
|
||||
0x48302180 0x48302180 0x80 /* EQEP */
|
||||
0x48302200 0x48302200 0x80>; /* EHRPWM */
|
||||
|
||||
ecap1: ecap@48302100 {
|
||||
compatible = "ti,am33xx-ecap";
|
||||
#pwm-cells = <3>;
|
||||
reg = <0x48302100 0x80>;
|
||||
ti,hwmods = "ecap1";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ehrpwm1: ehrpwm@48302200 {
|
||||
compatible = "ti,am33xx-ehrpwm";
|
||||
#pwm-cells = <3>;
|
||||
reg = <0x48302200 0x80>;
|
||||
ti,hwmods = "ehrpwm1";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
epwmss2: epwmss@48304000 {
|
||||
compatible = "ti,am33xx-pwmss";
|
||||
reg = <0x48304000 0x10>;
|
||||
ti,hwmods = "epwmss2";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
status = "disabled";
|
||||
ranges = <0x48304100 0x48304100 0x80 /* ECAP */
|
||||
0x48304180 0x48304180 0x80 /* EQEP */
|
||||
0x48304200 0x48304200 0x80>; /* EHRPWM */
|
||||
|
||||
ecap2: ecap@48304100 {
|
||||
compatible = "ti,am33xx-ecap";
|
||||
#pwm-cells = <3>;
|
||||
reg = <0x48304100 0x80>;
|
||||
ti,hwmods = "ecap2";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ehrpwm2: ehrpwm@48304200 {
|
||||
compatible = "ti,am33xx-ehrpwm";
|
||||
#pwm-cells = <3>;
|
||||
reg = <0x48304200 0x80>;
|
||||
ti,hwmods = "ehrpwm2";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
mac: ethernet@4a100000 {
|
||||
compatible = "ti,cpsw";
|
||||
ti,hwmods = "cpgmac0";
|
||||
cpdma_channels = <8>;
|
||||
ale_entries = <1024>;
|
||||
bd_ram_size = <0x2000>;
|
||||
no_bd_ram = <0>;
|
||||
rx_descs = <64>;
|
||||
mac_control = <0x20>;
|
||||
slaves = <2>;
|
||||
active_slave = <0>;
|
||||
cpts_clock_mult = <0x80000000>;
|
||||
cpts_clock_shift = <29>;
|
||||
reg = <0x4a100000 0x800
|
||||
0x4a101200 0x100>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupt-parent = <&intc>;
|
||||
/*
|
||||
* c0_rx_thresh_pend
|
||||
* c0_rx_pend
|
||||
* c0_tx_pend
|
||||
* c0_misc_pend
|
||||
*/
|
||||
interrupts = <40 41 42 43>;
|
||||
ranges;
|
||||
|
||||
davinci_mdio: mdio@4a101000 {
|
||||
compatible = "ti,davinci_mdio";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
ti,hwmods = "davinci_mdio";
|
||||
bus_freq = <1000000>;
|
||||
reg = <0x4a101000 0x100>;
|
||||
};
|
||||
|
||||
cpsw_emac0: slave@4a100200 {
|
||||
/* Filled in by U-Boot */
|
||||
mac-address = [ 00 00 00 00 00 00 ];
|
||||
};
|
||||
|
||||
cpsw_emac1: slave@4a100300 {
|
||||
/* Filled in by U-Boot */
|
||||
mac-address = [ 00 00 00 00 00 00 ];
|
||||
};
|
||||
};
|
||||
|
||||
ocmcram: ocmcram@40300000 {
|
||||
compatible = "ti,am3352-ocmcram";
|
||||
reg = <0x40300000 0x10000>;
|
||||
ti,hwmods = "ocmcram";
|
||||
};
|
||||
|
||||
wkup_m3: wkup_m3@44d00000 {
|
||||
compatible = "ti,am3353-wkup-m3";
|
||||
reg = <0x44d00000 0x4000 /* M3 UMEM */
|
||||
0x44d80000 0x2000>; /* M3 DMEM */
|
||||
ti,hwmods = "wkup_m3";
|
||||
};
|
||||
|
||||
elm: elm@48080000 {
|
||||
compatible = "ti,am3352-elm";
|
||||
reg = <0x48080000 0x2000>;
|
||||
interrupts = <4>;
|
||||
ti,hwmods = "elm";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
tscadc: tscadc@44e0d000 {
|
||||
compatible = "ti,am3359-tscadc";
|
||||
reg = <0x44e0d000 0x1000>;
|
||||
interrupt-parent = <&intc>;
|
||||
interrupts = <16>;
|
||||
ti,hwmods = "adc_tsc";
|
||||
status = "disabled";
|
||||
|
||||
tsc {
|
||||
compatible = "ti,am3359-tsc";
|
||||
};
|
||||
am335x_adc: adc {
|
||||
#io-channel-cells = <1>;
|
||||
compatible = "ti,am3359-adc";
|
||||
};
|
||||
};
|
||||
|
||||
gpmc: gpmc@50000000 {
|
||||
compatible = "ti,am3352-gpmc";
|
||||
ti,hwmods = "gpmc";
|
||||
reg = <0x50000000 0x2000>;
|
||||
interrupts = <100>;
|
||||
gpmc,num-cs = <7>;
|
||||
gpmc,num-waitpins = <2>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
15
arch/arm/dts/dt-bindings/gpio/gpio.h
Normal file
15
arch/arm/dts/dt-bindings/gpio/gpio.h
Normal file
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* This header provides constants for most GPIO bindings.
|
||||
*
|
||||
* Most GPIO bindings include a flags cell as part of the GPIO specifier.
|
||||
* In most cases, the format of the flags cell uses the standard values
|
||||
* defined in this header.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_GPIO_GPIO_H
|
||||
#define _DT_BINDINGS_GPIO_GPIO_H
|
||||
|
||||
#define GPIO_ACTIVE_HIGH 0
|
||||
#define GPIO_ACTIVE_LOW 1
|
||||
|
||||
#endif
|
||||
42
arch/arm/dts/dt-bindings/pinctrl/am33xx.h
Normal file
42
arch/arm/dts/dt-bindings/pinctrl/am33xx.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* This header provides constants specific to AM33XX pinctrl bindings.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_PINCTRL_AM33XX_H
|
||||
#define _DT_BINDINGS_PINCTRL_AM33XX_H
|
||||
|
||||
#include <dt-bindings/pinctrl/omap.h>
|
||||
|
||||
/* am33xx specific mux bit defines */
|
||||
#undef PULL_ENA
|
||||
#undef INPUT_EN
|
||||
|
||||
#define PULL_DISABLE (1 << 3)
|
||||
#define INPUT_EN (1 << 5)
|
||||
#define SLEWCTRL_FAST (1 << 6)
|
||||
|
||||
/* update macro depending on INPUT_EN and PULL_ENA */
|
||||
#undef PIN_OUTPUT
|
||||
#undef PIN_OUTPUT_PULLUP
|
||||
#undef PIN_OUTPUT_PULLDOWN
|
||||
#undef PIN_INPUT
|
||||
#undef PIN_INPUT_PULLUP
|
||||
#undef PIN_INPUT_PULLDOWN
|
||||
|
||||
#define PIN_OUTPUT (PULL_DISABLE)
|
||||
#define PIN_OUTPUT_PULLUP (PULL_UP)
|
||||
#define PIN_OUTPUT_PULLDOWN 0
|
||||
#define PIN_INPUT (INPUT_EN | PULL_DISABLE)
|
||||
#define PIN_INPUT_PULLUP (INPUT_EN | PULL_UP)
|
||||
#define PIN_INPUT_PULLDOWN (INPUT_EN)
|
||||
|
||||
/* undef non-existing modes */
|
||||
#undef PIN_OFF_NONE
|
||||
#undef PIN_OFF_OUTPUT_HIGH
|
||||
#undef PIN_OFF_OUTPUT_LOW
|
||||
#undef PIN_OFF_INPUT_PULLUP
|
||||
#undef PIN_OFF_INPUT_PULLDOWN
|
||||
#undef PIN_OFF_WAKEUPENABLE
|
||||
|
||||
#endif
|
||||
|
||||
55
arch/arm/dts/dt-bindings/pinctrl/omap.h
Normal file
55
arch/arm/dts/dt-bindings/pinctrl/omap.h
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* This header provides constants for OMAP pinctrl bindings.
|
||||
*
|
||||
* Copyright (C) 2009 Nokia
|
||||
* Copyright (C) 2009-2010 Texas Instruments
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_PINCTRL_OMAP_H
|
||||
#define _DT_BINDINGS_PINCTRL_OMAP_H
|
||||
|
||||
/* 34xx mux mode options for each pin. See TRM for options */
|
||||
#define MUX_MODE0 0
|
||||
#define MUX_MODE1 1
|
||||
#define MUX_MODE2 2
|
||||
#define MUX_MODE3 3
|
||||
#define MUX_MODE4 4
|
||||
#define MUX_MODE5 5
|
||||
#define MUX_MODE6 6
|
||||
#define MUX_MODE7 7
|
||||
|
||||
/* 24xx/34xx mux bit defines */
|
||||
#define PULL_ENA (1 << 3)
|
||||
#define PULL_UP (1 << 4)
|
||||
#define ALTELECTRICALSEL (1 << 5)
|
||||
|
||||
/* 34xx specific mux bit defines */
|
||||
#define INPUT_EN (1 << 8)
|
||||
#define OFF_EN (1 << 9)
|
||||
#define OFFOUT_EN (1 << 10)
|
||||
#define OFFOUT_VAL (1 << 11)
|
||||
#define OFF_PULL_EN (1 << 12)
|
||||
#define OFF_PULL_UP (1 << 13)
|
||||
#define WAKEUP_EN (1 << 14)
|
||||
|
||||
/* 44xx specific mux bit defines */
|
||||
#define WAKEUP_EVENT (1 << 15)
|
||||
|
||||
/* Active pin states */
|
||||
#define PIN_OUTPUT 0
|
||||
#define PIN_OUTPUT_PULLUP (PIN_OUTPUT | PULL_ENA | PULL_UP)
|
||||
#define PIN_OUTPUT_PULLDOWN (PIN_OUTPUT | PULL_ENA)
|
||||
#define PIN_INPUT INPUT_EN
|
||||
#define PIN_INPUT_PULLUP (PULL_ENA | INPUT_EN | PULL_UP)
|
||||
#define PIN_INPUT_PULLDOWN (PULL_ENA | INPUT_EN)
|
||||
|
||||
/* Off mode states */
|
||||
#define PIN_OFF_NONE 0
|
||||
#define PIN_OFF_OUTPUT_HIGH (OFF_EN | OFFOUT_EN | OFFOUT_VAL)
|
||||
#define PIN_OFF_OUTPUT_LOW (OFF_EN | OFFOUT_EN)
|
||||
#define PIN_OFF_INPUT_PULLUP (OFF_EN | OFF_PULL_EN | OFF_PULL_UP)
|
||||
#define PIN_OFF_INPUT_PULLDOWN (OFF_EN | OFF_PULL_EN)
|
||||
#define PIN_OFF_WAKEUPENABLE WAKEUP_EN
|
||||
|
||||
#endif
|
||||
|
||||
1
arch/arm/dts/include/dt-bindings
Symbolic link
1
arch/arm/dts/include/dt-bindings
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../../include/dt-bindings
|
||||
@@ -1,3 +1,6 @@
|
||||
#include <dt-bindings/gpio/tegra-gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
#include "skeleton.dtsi"
|
||||
|
||||
/ {
|
||||
@@ -46,17 +49,17 @@
|
||||
0 143 0x04>;
|
||||
};
|
||||
|
||||
gpio: gpio {
|
||||
gpio: gpio@6000d000 {
|
||||
compatible = "nvidia,tegra114-gpio", "nvidia,tegra30-gpio";
|
||||
reg = <0x6000d000 0x1000>;
|
||||
interrupts = <0 32 0x04
|
||||
0 33 0x04
|
||||
0 34 0x04
|
||||
0 35 0x04
|
||||
0 55 0x04
|
||||
0 87 0x04
|
||||
0 89 0x04
|
||||
0 125 0x04>;
|
||||
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
#include <dt-bindings/gpio/tegra-gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
#include "skeleton.dtsi"
|
||||
|
||||
/ {
|
||||
@@ -49,14 +52,14 @@
|
||||
gpio: gpio@6000d000 {
|
||||
compatible = "nvidia,tegra124-gpio", "nvidia,tegra30-gpio";
|
||||
reg = <0x6000d000 0x1000>;
|
||||
interrupts = <0 32 0x04
|
||||
0 33 0x04
|
||||
0 34 0x04
|
||||
0 35 0x04
|
||||
0 55 0x04
|
||||
0 87 0x04
|
||||
0 89 0x04
|
||||
0 125 0x04>;
|
||||
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
#include <dt-bindings/gpio/tegra-gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
#include "skeleton.dtsi"
|
||||
|
||||
/ {
|
||||
@@ -139,10 +142,18 @@
|
||||
|
||||
gpio: gpio@6000d000 {
|
||||
compatible = "nvidia,tegra20-gpio";
|
||||
reg = < 0x6000d000 0x1000 >;
|
||||
interrupts = < 64 65 66 67 87 119 121 >;
|
||||
reg = <0x6000d000 0x1000>;
|
||||
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-controller;
|
||||
};
|
||||
|
||||
pinmux: pinmux@70000000 {
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
#include <dt-bindings/gpio/tegra-gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
#include "skeleton.dtsi"
|
||||
|
||||
/ {
|
||||
@@ -47,17 +50,17 @@
|
||||
clocks = <&tegra_car 34>;
|
||||
};
|
||||
|
||||
gpio: gpio {
|
||||
gpio: gpio@6000d000 {
|
||||
compatible = "nvidia,tegra30-gpio";
|
||||
reg = <0x6000d000 0x1000>;
|
||||
interrupts = <0 32 0x04
|
||||
0 33 0x04
|
||||
0 34 0x04
|
||||
0 35 0x04
|
||||
0 55 0x04
|
||||
0 87 0x04
|
||||
0 89 0x04
|
||||
0 125 0x04>;
|
||||
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
56
arch/arm/dts/tps65217.dtsi
Normal file
56
arch/arm/dts/tps65217.dtsi
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Integrated Power Management Chip
|
||||
* http://www.ti.com/lit/ds/symlink/tps65217.pdf
|
||||
*/
|
||||
|
||||
&tps {
|
||||
compatible = "ti,tps65217";
|
||||
|
||||
regulators {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
dcdc1_reg: regulator@0 {
|
||||
reg = <0>;
|
||||
regulator-compatible = "dcdc1";
|
||||
};
|
||||
|
||||
dcdc2_reg: regulator@1 {
|
||||
reg = <1>;
|
||||
regulator-compatible = "dcdc2";
|
||||
};
|
||||
|
||||
dcdc3_reg: regulator@2 {
|
||||
reg = <2>;
|
||||
regulator-compatible = "dcdc3";
|
||||
};
|
||||
|
||||
ldo1_reg: regulator@3 {
|
||||
reg = <3>;
|
||||
regulator-compatible = "ldo1";
|
||||
};
|
||||
|
||||
ldo2_reg: regulator@4 {
|
||||
reg = <4>;
|
||||
regulator-compatible = "ldo2";
|
||||
};
|
||||
|
||||
ldo3_reg: regulator@5 {
|
||||
reg = <5>;
|
||||
regulator-compatible = "ldo3";
|
||||
};
|
||||
|
||||
ldo4_reg: regulator@6 {
|
||||
reg = <6>;
|
||||
regulator-compatible = "ldo4";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -33,10 +33,6 @@ $(IMX_CONFIG): %.cfgtmp: % FORCE
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(call if_changed_dep,cpp_cfg)
|
||||
|
||||
quiet_cmd_mkimage = MKIMAGE $@
|
||||
cmd_mkimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $< $@ \
|
||||
$(if $(KBUILD_VERBOSE:1=), >/dev/null)
|
||||
|
||||
MKIMAGEFLAGS_u-boot.imx = -n $(filter-out $< $(PHONY),$^) -T imximage \
|
||||
-e $(CONFIG_SYS_TEXT_BASE)
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ typedef struct { volatile int counter; } atomic_t;
|
||||
#define ATOMIC_INIT(i) { (i) }
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <asm/proc/system.h>
|
||||
#include <asm/proc-armv/system.h>
|
||||
|
||||
#define atomic_read(v) ((v)->counter)
|
||||
#define atomic_set(v,i) (((v)->counter) = (i))
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <asm/proc/system.h>
|
||||
#include <asm/proc-armv/system.h>
|
||||
|
||||
#define smp_mb__before_clear_bit() do { } while (0)
|
||||
#define smp_mb__after_clear_bit() do { } while (0)
|
||||
|
||||
@@ -437,4 +437,7 @@ out:
|
||||
|
||||
#endif /* __mem_isa */
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#include <iotrace.h>
|
||||
|
||||
#endif /* __ASM_ARM_IO_H */
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#ifndef __ASM_PROC_PROCESSOR_H
|
||||
#define __ASM_PROC_PROCESSOR_H
|
||||
|
||||
#include <asm/proc/domain.h>
|
||||
#include <asm/proc-armv/domain.h>
|
||||
|
||||
#define KERNEL_STACK_SIZE PAGE_SIZE
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ typedef unsigned long mm_segment_t; /* domain register */
|
||||
#if 0 /* XXX###XXX */
|
||||
#include <asm/arch/memory.h>
|
||||
#endif /* XXX###XXX */
|
||||
#include <asm/proc/processor.h>
|
||||
#include <asm/proc-armv/processor.h>
|
||||
#include <asm/types.h>
|
||||
|
||||
union debug_insn {
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
/* options set using PTRACE_SETOPTIONS */
|
||||
#define PTRACE_O_TRACESYSGOOD 0x00000001
|
||||
|
||||
#include <asm/proc/ptrace.h>
|
||||
#include <asm/proc-armv/ptrace.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#define pc_pointer(v) \
|
||||
|
||||
@@ -277,7 +277,7 @@ void board_init_f(ulong bootflag)
|
||||
gd->mon_len = (ulong)&__bss_end - (ulong)_start;
|
||||
#ifdef CONFIG_OF_EMBED
|
||||
/* Get a pointer to the FDT */
|
||||
gd->fdt_blob = __dtb_db_begin;
|
||||
gd->fdt_blob = __dtb_dt_begin;
|
||||
#elif defined CONFIG_OF_SEPARATE
|
||||
/* FDT is at end of image */
|
||||
gd->fdt_blob = &_end;
|
||||
|
||||
@@ -208,10 +208,10 @@ void cpu_init_f(void)
|
||||
scm2_t *scm2 = (scm2_t *) MMAP_SCM2;
|
||||
gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
fbcs_t *fbcs = (fbcs_t *) MMAP_FBCS;
|
||||
#ifndef CONFIG_WATCHDOG
|
||||
wdog_t *wdog = (wdog_t *) MMAP_WDOG;
|
||||
|
||||
/* watchdog is enabled by default - disable the watchdog */
|
||||
#ifndef CONFIG_WATCHDOG
|
||||
out_be16(&wdog->cr, 0);
|
||||
#endif
|
||||
|
||||
|
||||
@@ -364,9 +364,9 @@ void uart_port_conf(int port)
|
||||
int fecpin_setclear(struct eth_device *dev, int setclear)
|
||||
{
|
||||
gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
#ifdef CONFIG_MCF5445x
|
||||
struct fec_info_s *info = (struct fec_info_s *)dev->priv;
|
||||
|
||||
#ifdef CONFIG_MCF5445x
|
||||
if (setclear) {
|
||||
#ifdef CONFIG_SYS_FEC_NO_SHARED_PHY
|
||||
if (info->iobase == CONFIG_SYS_FEC0_IOBASE)
|
||||
|
||||
@@ -32,10 +32,10 @@
|
||||
#define writew(b,addr) ((*(volatile u16 *) (addr)) = (b))
|
||||
#define writel(b,addr) ((*(volatile u32 *) (addr)) = (b))
|
||||
#else
|
||||
#define readw(addr) in_le16((volatile u16 *)(addr))
|
||||
#define readl(addr) in_le32((volatile u32 *)(addr))
|
||||
#define writew(b,addr) out_le16((volatile u16 *)(addr),(b))
|
||||
#define writel(b,addr) out_le32((volatile u32 *)(addr),(b))
|
||||
#define readw(addr) in_be16((volatile u16 *)(addr))
|
||||
#define readl(addr) in_be32((volatile u32 *)(addr))
|
||||
#define writew(b,addr) out_be16((volatile u16 *)(addr),(b))
|
||||
#define writel(b,addr) out_be32((volatile u32 *)(addr),(b))
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
||||
@@ -15,7 +15,7 @@ typedef long __kernel_off_t;
|
||||
typedef int __kernel_pid_t;
|
||||
typedef unsigned int __kernel_uid_t;
|
||||
typedef unsigned int __kernel_gid_t;
|
||||
typedef unsigned int __kernel_size_t;
|
||||
typedef unsigned long __kernel_size_t;
|
||||
typedef int __kernel_ssize_t;
|
||||
typedef long __kernel_ptrdiff_t;
|
||||
typedef long __kernel_time_t;
|
||||
|
||||
@@ -31,9 +31,6 @@
|
||||
#endif
|
||||
#include <net.h>
|
||||
#include <serial.h>
|
||||
#if defined(CONFIG_CMD_BEDBUG)
|
||||
#include <cmd_bedbug.h>
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_ALLOC_DPRAM
|
||||
#include <commproc.h>
|
||||
#endif
|
||||
@@ -602,11 +599,6 @@ void board_init_r (gd_t *id, ulong dest_addr)
|
||||
last_stage_init ();
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CMD_BEDBUG)
|
||||
WATCHDOG_RESET ();
|
||||
bedbug_init ();
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_PRAM) || defined(CONFIG_LOGBUFFER)
|
||||
/*
|
||||
* Export available size of memory for Linux,
|
||||
@@ -628,13 +620,6 @@ void board_init_r (gd_t *id, ulong dest_addr)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MODEM_SUPPORT
|
||||
{
|
||||
extern int do_mdm_init;
|
||||
do_mdm_init = gd->do_mdm_init;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_WATCHDOG
|
||||
/* disable watchdog if environment is set */
|
||||
if ((s = getenv ("watchdog")) != NULL) {
|
||||
|
||||
@@ -50,11 +50,7 @@ void arch_lmb_reserve(struct lmb *lmb)
|
||||
|
||||
int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t *images)
|
||||
{
|
||||
ulong rd_len;
|
||||
ulong initrd_start, initrd_end;
|
||||
int ret;
|
||||
|
||||
ulong cmd_start, cmd_end;
|
||||
bd_t *kbd;
|
||||
void (*kernel) (bd_t *, ulong, ulong, ulong, ulong);
|
||||
struct lmb *lmb = &images->lmb;
|
||||
@@ -96,7 +92,8 @@ int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t *ima
|
||||
* sp+16: Start of command line string
|
||||
* sp+20: End of command line string
|
||||
*/
|
||||
(*kernel) (kbd, initrd_start, initrd_end, cmd_start, cmd_end);
|
||||
(*kernel)(kbd, images->initrd_start, images->initrd_end,
|
||||
images->cmdline_start, images->cmdline_end);
|
||||
/* does not return */
|
||||
error:
|
||||
return 1;
|
||||
|
||||
1
arch/microblaze/dts/include/dt-bindings
Symbolic link
1
arch/microblaze/dts/include/dt-bindings
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../../include/dt-bindings
|
||||
@@ -58,7 +58,7 @@ int do_bootm_linux(int flag, int argc, char * const argv[],
|
||||
/* fixup the initrd now that we know where it should be */
|
||||
if (images->rd_start && images->rd_end && of_flat_tree)
|
||||
ret = fdt_initrd(of_flat_tree, images->rd_start,
|
||||
images->rd_end, 1);
|
||||
images->rd_end);
|
||||
if (ret)
|
||||
return 1;
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/*
|
||||
* (C) Copyright 2011, Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
|
||||
* (C) Copyright 2011, Julius Baxter <julius@opencores.org>
|
||||
* (C) Copyright 2014, Franck Jullien <franck.jullien@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
@@ -40,9 +41,48 @@ __reset:
|
||||
l.ori r3,r0,SPR_SR_SM
|
||||
l.mtspr r0,r3,SPR_SR
|
||||
|
||||
l.jal _cur
|
||||
l.nop
|
||||
_cur:
|
||||
l.ori r8, r9, 0 /* Get _cur current address */
|
||||
|
||||
l.movhi r3, hi(_cur)
|
||||
l.ori r3, r3, lo(_cur)
|
||||
l.sfeq r8, r3 /* If we are running at the linked address */
|
||||
l.bf _no_vector_reloc /* there is not need for relocation */
|
||||
l.sub r8, r8, r3
|
||||
|
||||
l.mfspr r4, r0, SPR_CPUCFGR
|
||||
l.andi r4, r4, SPR_CPUCFGR_EVBARP /* Exception Vector Base Address Register present ? */
|
||||
l.sfnei r4,0
|
||||
l.bnf _reloc_vectors
|
||||
l.movhi r5, 0 /* Destination */
|
||||
|
||||
l.mfspr r4, r0, SPR_EVBAR
|
||||
l.add r5, r5, r4
|
||||
|
||||
_reloc_vectors:
|
||||
/* Relocate vectors*/
|
||||
l.movhi r5, 0 /* Destination */
|
||||
l.movhi r6, hi(__start) /* Length */
|
||||
l.ori r6, r6, lo(__start)
|
||||
l.ori r3, r8, 0
|
||||
|
||||
.L_relocvectors:
|
||||
l.lwz r7, 0(r3)
|
||||
l.sw 0(r5), r7
|
||||
l.addi r5, r5, 4
|
||||
l.sfeq r5, r6
|
||||
l.bnf .L_relocvectors
|
||||
l.addi r3, r3, 4
|
||||
|
||||
_no_vector_reloc:
|
||||
|
||||
/* Relocate u-boot */
|
||||
l.movhi r3,hi(__start) /* source start address */
|
||||
l.movhi r3,hi(__start) /* source start offset */
|
||||
l.ori r3,r3,lo(__start)
|
||||
l.add r3,r8,r3
|
||||
|
||||
l.movhi r4,hi(_stext) /* dest start address */
|
||||
l.ori r4,r4,lo(_stext)
|
||||
l.movhi r5,hi(__end) /* dest end address */
|
||||
@@ -56,19 +96,6 @@ __reset:
|
||||
l.bf .L_reloc
|
||||
l.addi r4,r4,4 /* delay slot */
|
||||
|
||||
#ifdef CONFIG_SYS_RELOCATE_VECTORS
|
||||
/* Relocate vectors from 0xf0000000 to 0x00000000 */
|
||||
l.movhi r4, 0xf000 /* source */
|
||||
l.movhi r5, 0 /* destination */
|
||||
l.addi r6, r5, CONFIG_SYS_VECTORS_LEN /* length */
|
||||
.L_relocvectors:
|
||||
l.lwz r7, 0(r4)
|
||||
l.sw 0(r5), r7
|
||||
l.addi r5, r5, 4
|
||||
l.sfeq r5,r6
|
||||
l.bnf .L_relocvectors
|
||||
l.addi r4,r4, 4
|
||||
#endif
|
||||
l.movhi r4,hi(_start)
|
||||
l.ori r4,r4,lo(_start)
|
||||
l.jr r4
|
||||
|
||||
@@ -46,6 +46,11 @@
|
||||
#define SPR_ICCFGR (SPRGROUP_SYS + 6)
|
||||
#define SPR_DCFGR (SPRGROUP_SYS + 7)
|
||||
#define SPR_PCCFGR (SPRGROUP_SYS + 8)
|
||||
#define SPR_VR2 (SPRGROUP_SYS + 9)
|
||||
#define SPR_AVR (SPRGROUP_SYS + 10)
|
||||
#define SPR_EVBAR (SPRGROUP_SYS + 11)
|
||||
#define SPR_AECR (SPRGROUP_SYS + 12)
|
||||
#define SPR_AESR (SPRGROUP_SYS + 13)
|
||||
#define SPR_NPC (SPRGROUP_SYS + 16)
|
||||
#define SPR_SR (SPRGROUP_SYS + 17)
|
||||
#define SPR_PPC (SPRGROUP_SYS + 18)
|
||||
@@ -161,7 +166,13 @@
|
||||
#define SPR_CPUCFGR_OF32S 0x00000080 /* ORFPX32 supported */
|
||||
#define SPR_CPUCFGR_OF64S 0x00000100 /* ORFPX64 supported */
|
||||
#define SPR_CPUCFGR_OV64S 0x00000200 /* ORVDX64 supported */
|
||||
#define SPR_CPUCFGR_RES 0xfffffc00 /* Reserved */
|
||||
#define SPR_CPUCFGR_ND 0x00000400 /* No delay slot */
|
||||
#define SPR_CPUCFGR_AVRP 0x00000800 /* Arch. Version Register present */
|
||||
#define SPR_CPUCFGR_EVBARP 0x00001000 /* Exception Vector Base Address Register (EVBAR) present */
|
||||
#define SPR_CPUCFGR_ISRP 0x00002000 /* Implementation-Specific Registers (ISR0-7) present */
|
||||
#define SPR_CPUCFGR_AECSRP 0x00004000 /* Arithmetic Exception Control Register (AECR) and */
|
||||
/* Arithmetic Exception Status Register (AESR) presents */
|
||||
#define SPR_CPUCFGR_RES 0xffffc000 /* Reserved */
|
||||
|
||||
/*
|
||||
* Bit definitions for the Debug configuration register and other
|
||||
|
||||
@@ -242,8 +242,6 @@ void pci_mpc8250_init (struct pci_controller *hose)
|
||||
immap->im_siu_conf.sc_siumcr =
|
||||
(immap->im_siu_conf.sc_siumcr & ~SIUMCR_LBPC11)
|
||||
| SIUMCR_LBPC01;
|
||||
#elif defined(CONFIG_ADSTYPE) && CONFIG_ADSTYPE == CONFIG_SYS_PQ2FADS
|
||||
/* nothing to do for this board here */
|
||||
#elif defined CONFIG_MPC8272
|
||||
immap->im_siu_conf.sc_siumcr = (immap->im_siu_conf.sc_siumcr &
|
||||
~SIUMCR_BBD &
|
||||
|
||||
@@ -137,19 +137,6 @@ _hrcw_table:
|
||||
|
||||
.globl _start
|
||||
_start:
|
||||
#if defined(CONFIG_MPC8260ADS) && defined(CONFIG_SYS_DEFAULT_IMMR)
|
||||
lis r3, CONFIG_SYS_DEFAULT_IMMR@h
|
||||
nop
|
||||
lwz r4, 0(r3)
|
||||
nop
|
||||
rlwinm r4, r4, 0, 8, 5
|
||||
nop
|
||||
oris r4, r4, 0x0200
|
||||
nop
|
||||
stw r4, 0(r3)
|
||||
nop
|
||||
#endif /* CONFIG_MPC8260ADS && CONFIG_SYS_DEFAULT_IMMR */
|
||||
|
||||
mfmsr r5 /* save msr contents */
|
||||
|
||||
#if defined(CONFIG_COGENT)
|
||||
|
||||
@@ -231,6 +231,9 @@ static int do_errata(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
if ((SVR_MAJ(svr) == 1) || IS_SVR_REV(svr, 2, 0))
|
||||
puts("Work-around for Erratum NMG ETSEC129 enabled\n");
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
puts("Work-around for Erratum A004508 enabled\n");
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_FSL_ERRATUM_A004510
|
||||
puts("Work-around for Erratum A004510 enabled\n");
|
||||
#endif
|
||||
@@ -266,6 +269,9 @@ static int do_errata(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
#ifdef CONFIG_SYS_FSL_ERRATUM_USB14
|
||||
puts("Work-around for Erratum USB14 enabled\n");
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_FSL_ERRATUM_A007186
|
||||
puts("Work-around for Erratum A007186 enabled\n");
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_FSL_ERRATUM_A006593
|
||||
puts("Work-around for Erratum A006593 enabled\n");
|
||||
#endif
|
||||
|
||||
@@ -225,6 +225,32 @@ static void disable_cpc_sram(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(T1040_TDM_QUIRK_CCSR_BASE)
|
||||
#ifdef CONFIG_POST
|
||||
#error POST memory test cannot be enabled with TDM
|
||||
#endif
|
||||
static void enable_tdm_law(void)
|
||||
{
|
||||
int ret;
|
||||
char buffer[HWCONFIG_BUFFER_SIZE] = {0};
|
||||
int tdm_hwconfig_enabled = 0;
|
||||
|
||||
/*
|
||||
* Extract hwconfig from environment since environment
|
||||
* is not setup properly yet. Search for tdm entry in
|
||||
* hwconfig.
|
||||
*/
|
||||
ret = getenv_f("hwconfig", buffer, sizeof(buffer));
|
||||
if (ret > 0) {
|
||||
tdm_hwconfig_enabled = hwconfig_f("tdm", buffer);
|
||||
/* If tdm is defined in hwconfig, set law for tdm workaround */
|
||||
if (tdm_hwconfig_enabled)
|
||||
set_next_law(T1040_TDM_QUIRK_CCSR_BASE, LAW_SIZE_16M,
|
||||
LAW_TRGT_IF_CCSR);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static void enable_cpc(void)
|
||||
{
|
||||
int i;
|
||||
@@ -729,6 +755,9 @@ skip_l2:
|
||||
disable_cpc_sram();
|
||||
#endif
|
||||
enable_cpc();
|
||||
#if defined(T1040_TDM_QUIRK_CCSR_BASE)
|
||||
enable_tdm_law();
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SYS_FSL_NO_SERDES
|
||||
/* needs to be in ram since code uses global static vars */
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <linux/ctype.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/fsl_portals.h>
|
||||
#include <hwconfig.h>
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
#include <fsl_esdhc.h>
|
||||
#endif
|
||||
@@ -35,6 +36,11 @@ void ft_fixup_cpu(void *blob, u64 memory_limit)
|
||||
u32 bootpg = determine_mp_bootpg(NULL);
|
||||
u32 id = get_my_id();
|
||||
const char *enable_method;
|
||||
#if defined(T1040_TDM_QUIRK_CCSR_BASE)
|
||||
int ret;
|
||||
int tdm_hwconfig_enabled = 0;
|
||||
char buffer[HWCONFIG_BUFFER_SIZE] = {0};
|
||||
#endif
|
||||
|
||||
off = fdt_node_offset_by_prop_value(blob, -1, "device_type", "cpu", 4);
|
||||
while (off != -FDT_ERR_NOTFOUND) {
|
||||
@@ -77,6 +83,26 @@ void ft_fixup_cpu(void *blob, u64 memory_limit)
|
||||
"device_type", "cpu", 4);
|
||||
}
|
||||
|
||||
#if defined(T1040_TDM_QUIRK_CCSR_BASE)
|
||||
#define CONFIG_MEM_HOLE_16M 0x1000000
|
||||
/*
|
||||
* Extract hwconfig from environment.
|
||||
* Search for tdm entry in hwconfig.
|
||||
*/
|
||||
ret = getenv_f("hwconfig", buffer, sizeof(buffer));
|
||||
if (ret > 0)
|
||||
tdm_hwconfig_enabled = hwconfig_f("tdm", buffer);
|
||||
|
||||
/* Reserve the memory hole created by TDM LAW, so OSes dont use it */
|
||||
if (tdm_hwconfig_enabled) {
|
||||
off = fdt_add_mem_rsv(blob, T1040_TDM_QUIRK_CCSR_BASE,
|
||||
CONFIG_MEM_HOLE_16M);
|
||||
if (off < 0)
|
||||
printf("Failed to reserve memory for tdm: %s\n",
|
||||
fdt_strerror(off));
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Reserve the boot page so OSes dont use it */
|
||||
if ((u64)bootpg < memory_limit) {
|
||||
off = fdt_add_mem_rsv(blob, bootpg, (u64)4096);
|
||||
|
||||
@@ -147,12 +147,43 @@ int serdes_get_first_lane(u32 sd, enum srds_prtcl device)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
#define BC3_SHIFT 9
|
||||
#define DC3_SHIFT 6
|
||||
#define FC3_SHIFT 0
|
||||
#define BC2_SHIFT 19
|
||||
#define DC2_SHIFT 16
|
||||
#define FC2_SHIFT 10
|
||||
#define BC1_SHIFT 29
|
||||
#define DC1_SHIFT 26
|
||||
#define FC1_SHIFT 20
|
||||
#define BC_MASK 0x1
|
||||
#define DC_MASK 0x7
|
||||
#define FC_MASK 0x3F
|
||||
|
||||
#define FUSE_VAL_MASK 0x00000003
|
||||
#define FUSE_VAL_SHIFT 30
|
||||
#define CR0_DCBIAS_SHIFT 5
|
||||
#define CR1_FCAP_SHIFT 15
|
||||
#define CR1_BCAP_SHIFT 29
|
||||
#define FCAP_MASK 0x001F8000
|
||||
#define BCAP_MASK 0x20000000
|
||||
#define BCAP_OVD_MASK 0x10000000
|
||||
#define BYP_CAL_MASK 0x02000000
|
||||
|
||||
u64 serdes_init(u32 sd, u32 sd_addr, u32 sd_prctl_mask, u32 sd_prctl_shift)
|
||||
{
|
||||
ccsr_gur_t *gur = (void __iomem *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
|
||||
u64 serdes_prtcl_map = 0;
|
||||
u32 cfg;
|
||||
int lane;
|
||||
#ifdef CONFIG_SYS_FSL_ERRATUM_A007186
|
||||
struct ccsr_sfp_regs __iomem *sfp_regs =
|
||||
(struct ccsr_sfp_regs __iomem *)(CONFIG_SYS_SFP_ADDR);
|
||||
u32 pll_num, pll_status, bc, dc, fc, pll_cr_upd, pll_cr0, pll_cr1;
|
||||
u32 bc_status, fc_status, dc_status, pll_sr2;
|
||||
serdes_corenet_t __iomem *srds_regs = (void *)sd_addr;
|
||||
u32 sfp_spfr0, sel;
|
||||
#endif
|
||||
|
||||
cfg = in_be32(&gur->rcwsr[4]) & sd_prctl_mask;
|
||||
/* Is serdes enabled at all? */
|
||||
@@ -161,6 +192,123 @@ u64 serdes_init(u32 sd, u32 sd_addr, u32 sd_prctl_mask, u32 sd_prctl_shift)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Erratum A-007186
|
||||
* Freescale Scratch Pad Fuse Register n (SFP_FSPFR0)
|
||||
* The workaround requires factory pre-set SerDes calibration values to be
|
||||
* read from a fuse block(Freescale Scratch Pad Fuse Register SFP_FSPFR0)
|
||||
* These values have been shown to work across the
|
||||
* entire temperature range for all SerDes. These values are then written into
|
||||
* the SerDes registers to calibrate the SerDes PLL.
|
||||
*
|
||||
* This workaround for the protocols and rates that only have the Ring VCO.
|
||||
*/
|
||||
#ifdef CONFIG_SYS_FSL_ERRATUM_A007186
|
||||
sfp_spfr0 = in_be32(&sfp_regs->fsl_spfr0);
|
||||
debug("A007186: sfp_spfr0= %x\n", sfp_spfr0);
|
||||
|
||||
sel = (sfp_spfr0 >> FUSE_VAL_SHIFT) & FUSE_VAL_MASK;
|
||||
|
||||
if (sel == 0x01 || sel == 0x02) {
|
||||
for (pll_num = 0; pll_num < SRDS_MAX_BANK; pll_num++) {
|
||||
pll_status = in_be32(&srds_regs->bank[pll_num].pllcr0);
|
||||
debug("A007186: pll_num=%x pllcr0=%x\n",
|
||||
pll_num, pll_status);
|
||||
/* STEP 1 */
|
||||
/* Read factory pre-set SerDes calibration values
|
||||
* from fuse block(SFP scratch register-sfp_spfr0)
|
||||
*/
|
||||
switch (pll_status & SRDS_PLLCR0_FRATE_SEL_MASK) {
|
||||
case SRDS_PLLCR0_FRATE_SEL_3_0:
|
||||
case SRDS_PLLCR0_FRATE_SEL_3_072:
|
||||
debug("A007186: 3.0/3.072 protocol rate\n");
|
||||
bc = (sfp_spfr0 >> BC1_SHIFT) & BC_MASK;
|
||||
dc = (sfp_spfr0 >> DC1_SHIFT) & DC_MASK;
|
||||
fc = (sfp_spfr0 >> FC1_SHIFT) & FC_MASK;
|
||||
break;
|
||||
case SRDS_PLLCR0_FRATE_SEL_3_125:
|
||||
debug("A007186: 3.125 protocol rate\n");
|
||||
bc = (sfp_spfr0 >> BC2_SHIFT) & BC_MASK;
|
||||
dc = (sfp_spfr0 >> DC2_SHIFT) & DC_MASK;
|
||||
fc = (sfp_spfr0 >> FC2_SHIFT) & FC_MASK;
|
||||
break;
|
||||
case SRDS_PLLCR0_FRATE_SEL_3_75:
|
||||
debug("A007186: 3.75 protocol rate\n");
|
||||
bc = (sfp_spfr0 >> BC1_SHIFT) & BC_MASK;
|
||||
dc = (sfp_spfr0 >> DC1_SHIFT) & DC_MASK;
|
||||
fc = (sfp_spfr0 >> FC1_SHIFT) & FC_MASK;
|
||||
break;
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
|
||||
/* STEP 2 */
|
||||
/* Write SRDSxPLLnCR1[11:16] = FC
|
||||
* Write SRDSxPLLnCR1[2] = BC
|
||||
*/
|
||||
pll_cr1 = in_be32(&srds_regs->bank[pll_num].pllcr1);
|
||||
pll_cr_upd = (((bc << CR1_BCAP_SHIFT) & BCAP_MASK) |
|
||||
((fc << CR1_FCAP_SHIFT) & FCAP_MASK));
|
||||
out_be32(&srds_regs->bank[pll_num].pllcr1,
|
||||
(pll_cr_upd | pll_cr1));
|
||||
debug("A007186: pll_num=%x Updated PLLCR1=%x\n",
|
||||
pll_num, (pll_cr_upd | pll_cr1));
|
||||
/* Write SRDSxPLLnCR0[24:26] = DC
|
||||
*/
|
||||
pll_cr0 = in_be32(&srds_regs->bank[pll_num].pllcr0);
|
||||
out_be32(&srds_regs->bank[pll_num].pllcr0,
|
||||
pll_cr0 | (dc << CR0_DCBIAS_SHIFT));
|
||||
debug("A007186: pll_num=%x, Updated PLLCR0=%x\n",
|
||||
pll_num, (pll_cr0 | (dc << CR0_DCBIAS_SHIFT)));
|
||||
/* Write SRDSxPLLnCR1[3] = 1
|
||||
* Write SRDSxPLLnCR1[6] = 1
|
||||
*/
|
||||
pll_cr1 = in_be32(&srds_regs->bank[pll_num].pllcr1);
|
||||
pll_cr_upd = (BCAP_OVD_MASK | BYP_CAL_MASK);
|
||||
out_be32(&srds_regs->bank[pll_num].pllcr1,
|
||||
(pll_cr_upd | pll_cr1));
|
||||
debug("A007186: pll_num=%x Updated PLLCR1=%x\n",
|
||||
pll_num, (pll_cr_upd | pll_cr1));
|
||||
|
||||
/* STEP 3 */
|
||||
/* Read the status Registers */
|
||||
/* Verify SRDSxPLLnSR2[8] = BC */
|
||||
pll_sr2 = in_be32(&srds_regs->bank[pll_num].pllsr2);
|
||||
debug("A007186: pll_num=%x pllsr2=%x\n",
|
||||
pll_num, pll_sr2);
|
||||
bc_status = (pll_sr2 >> 23) & BC_MASK;
|
||||
if (bc_status != bc)
|
||||
debug("BC mismatch\n");
|
||||
fc_status = (pll_sr2 >> 16) & FC_MASK;
|
||||
if (fc_status != fc)
|
||||
debug("FC mismatch\n");
|
||||
pll_cr0 = in_be32(&srds_regs->bank[pll_num].pllcr0);
|
||||
out_be32(&srds_regs->bank[pll_num].pllcr0, pll_cr0 |
|
||||
0x02000000);
|
||||
pll_sr2 = in_be32(&srds_regs->bank[pll_num].pllsr2);
|
||||
dc_status = (pll_sr2 >> 17) & DC_MASK;
|
||||
if (dc_status != dc)
|
||||
debug("DC mismatch\n");
|
||||
pll_cr0 = in_be32(&srds_regs->bank[pll_num].pllcr0);
|
||||
out_be32(&srds_regs->bank[pll_num].pllcr0, pll_cr0 &
|
||||
0xfdffffff);
|
||||
|
||||
/* STEP 4 */
|
||||
/* Wait 750us to verify the PLL is locked
|
||||
* by checking SRDSxPLLnCR0[8] = 1.
|
||||
*/
|
||||
udelay(750);
|
||||
pll_status = in_be32(&srds_regs->bank[pll_num].pllcr0);
|
||||
debug("A007186: pll_num=%x pllcr0=%x\n",
|
||||
pll_num, pll_status);
|
||||
|
||||
if ((pll_status & SRDS_PLLCR0_PLL_LCK) == 0)
|
||||
printf("A007186 Serdes PLL not locked\n");
|
||||
else
|
||||
debug("A007186 Serdes PLL locked\n");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
cfg >>= sd_prctl_shift;
|
||||
printf("Using SERDES%d Protocol: %d (0x%x)\n", sd + 1, cfg, cfg);
|
||||
if (!is_serdes_prtcl_valid(sd, cfg))
|
||||
|
||||
@@ -47,6 +47,7 @@ struct liodn_id_table liodn_tbl[] = {
|
||||
|
||||
/* SET_NEXUS_LIODN(557), -- not yet implemented */
|
||||
SET_QE_LIODN(559),
|
||||
SET_TDM_LIODN(560),
|
||||
};
|
||||
int liodn_tbl_sz = ARRAY_SIZE(liodn_tbl);
|
||||
|
||||
|
||||
@@ -43,6 +43,10 @@ static const struct serdes_config serdes1_cfg_tbl[] = {
|
||||
{0x6C, {XFI_FM1_MAC9, XFI_FM1_MAC10,
|
||||
SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
|
||||
PCIE4, PCIE4, PCIE4, PCIE4} },
|
||||
{0x1B, {SGMII_FM1_DTSEC9, SGMII_FM1_DTSEC10,
|
||||
SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
|
||||
SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4,
|
||||
SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6} },
|
||||
{0x1C, {SGMII_FM1_DTSEC9, SGMII_FM1_DTSEC10,
|
||||
SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
|
||||
SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4,
|
||||
@@ -59,18 +63,34 @@ static const struct serdes_config serdes1_cfg_tbl[] = {
|
||||
SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
|
||||
SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4,
|
||||
SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6} },
|
||||
{0x50, {XAUI_FM1_MAC9, XAUI_FM1_MAC9,
|
||||
XAUI_FM1_MAC9, XAUI_FM1_MAC9,
|
||||
PCIE4, SGMII_FM1_DTSEC4,
|
||||
SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6} },
|
||||
{0x51, {XAUI_FM1_MAC9, XAUI_FM1_MAC9,
|
||||
XAUI_FM1_MAC9, XAUI_FM1_MAC9,
|
||||
PCIE4, SGMII_FM1_DTSEC4,
|
||||
SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6} },
|
||||
{0x5E, {HIGIG_FM1_MAC9, HIGIG_FM1_MAC9,
|
||||
HIGIG_FM1_MAC9, HIGIG_FM1_MAC9,
|
||||
PCIE4, SGMII_FM1_DTSEC4,
|
||||
SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6} },
|
||||
{0x5F, {HIGIG_FM1_MAC9, HIGIG_FM1_MAC9,
|
||||
HIGIG_FM1_MAC9, HIGIG_FM1_MAC9,
|
||||
PCIE4, SGMII_FM1_DTSEC4,
|
||||
SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6} },
|
||||
{0x64, {HIGIG_FM1_MAC9, HIGIG_FM1_MAC9,
|
||||
HIGIG_FM1_MAC9, HIGIG_FM1_MAC9,
|
||||
PCIE4, SGMII_FM1_DTSEC4,
|
||||
SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6} },
|
||||
{0x65, {HIGIG_FM1_MAC9, HIGIG_FM1_MAC9,
|
||||
HIGIG_FM1_MAC9, HIGIG_FM1_MAC9,
|
||||
PCIE4, SGMII_FM1_DTSEC4,
|
||||
SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6} },
|
||||
{0x6A, {XFI_FM1_MAC9, XFI_FM1_MAC10,
|
||||
XFI_FM1_MAC1, XFI_FM1_MAC2,
|
||||
PCIE4, SGMII_FM1_DTSEC4,
|
||||
SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6} },
|
||||
{0x6B, {XFI_FM1_MAC9, XFI_FM1_MAC10,
|
||||
XFI_FM1_MAC1, XFI_FM1_MAC2,
|
||||
PCIE4, SGMII_FM1_DTSEC4,
|
||||
@@ -115,6 +135,9 @@ static const struct serdes_config serdes1_cfg_tbl[] = {
|
||||
{0xD9, {PCIE3, SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC1,
|
||||
SGMII_FM1_DTSEC2, PCIE4, SGMII_FM1_DTSEC4,
|
||||
SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6} },
|
||||
{0xD2, {PCIE3, SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC1,
|
||||
SGMII_FM1_DTSEC2, PCIE4, SGMII_FM1_DTSEC4,
|
||||
SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6} },
|
||||
{0xD3, {PCIE3, SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC1,
|
||||
SGMII_FM1_DTSEC2, PCIE4, SGMII_FM1_DTSEC4,
|
||||
SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6} },
|
||||
@@ -127,8 +150,6 @@ static const struct serdes_config serdes1_cfg_tbl[] = {
|
||||
{0x66, {XFI_FM1_MAC9, XFI_FM1_MAC10,
|
||||
XFI_FM1_MAC1, XFI_FM1_MAC2,
|
||||
PCIE4, PCIE4, PCIE4, PCIE4} },
|
||||
|
||||
#if defined(CONFIG_PPC_T2081)
|
||||
{0xAA, {PCIE3, PCIE3, PCIE3, PCIE3,
|
||||
PCIE4, PCIE4, PCIE4, PCIE4} },
|
||||
{0xCA, {PCIE3, SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC1,
|
||||
@@ -137,7 +158,6 @@ static const struct serdes_config serdes1_cfg_tbl[] = {
|
||||
{0x70, {XFI_FM1_MAC9, XFI_FM1_MAC10, SGMII_FM1_DTSEC1,
|
||||
SGMII_FM1_DTSEC2, PCIE4, SGMII_FM1_DTSEC4,
|
||||
SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6} },
|
||||
#endif
|
||||
{}
|
||||
};
|
||||
|
||||
@@ -150,6 +170,7 @@ static const struct serdes_config serdes2_cfg_tbl[] = {
|
||||
{0x29, {SRIO2, SRIO2, SRIO2, SRIO2, SRIO1, SRIO1, SRIO1, SRIO1} },
|
||||
{0x2D, {SRIO2, SRIO2, SRIO2, SRIO2, SRIO1, SRIO1, SRIO1, SRIO1} },
|
||||
{0x15, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE2, PCIE2, SATA1, SATA2} },
|
||||
{0x27, {PCIE1, PCIE1, PCIE1, PCIE1, NONE, NONE, SATA1, SATA2} },
|
||||
{0x18, {PCIE1, PCIE1, PCIE1, PCIE1, AURORA, AURORA, SATA1, SATA2} },
|
||||
{0x02, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1} },
|
||||
{0x36, {SRIO2, SRIO2, SRIO2, SRIO2, AURORA, AURORA, SATA1, SATA2} },
|
||||
|
||||
@@ -30,22 +30,41 @@ static const struct serdes_config serdes1_cfg_tbl[] = {
|
||||
HIGIG_FM1_MAC9, HIGIG_FM1_MAC9,
|
||||
HIGIG_FM1_MAC10, HIGIG_FM1_MAC10,
|
||||
HIGIG_FM1_MAC10, HIGIG_FM1_MAC10}},
|
||||
{27, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
|
||||
SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
|
||||
SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
|
||||
SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4} },
|
||||
{28, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
|
||||
SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
|
||||
SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
|
||||
SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4}},
|
||||
{35, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
|
||||
SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
|
||||
SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
|
||||
SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4} },
|
||||
{36, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
|
||||
SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
|
||||
SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
|
||||
SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4}},
|
||||
{37, {NONE, NONE, QSGMII_FM1_B, NONE,
|
||||
NONE, NONE, QSGMII_FM1_A, NONE} },
|
||||
{38, {NONE, NONE, QSGMII_FM1_B, NONE,
|
||||
NONE, NONE, QSGMII_FM1_A, NONE}},
|
||||
{39, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
|
||||
SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
|
||||
NONE, NONE, QSGMII_FM1_A, NONE} },
|
||||
{40, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
|
||||
SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
|
||||
NONE, NONE, QSGMII_FM1_A, NONE}},
|
||||
{45, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
|
||||
SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
|
||||
NONE, NONE, QSGMII_FM1_A, NONE} },
|
||||
{46, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
|
||||
SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
|
||||
NONE, NONE, QSGMII_FM1_A, NONE}},
|
||||
{47, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
|
||||
SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
|
||||
NONE, NONE, QSGMII_FM1_A, NONE} },
|
||||
{48, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
|
||||
SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
|
||||
NONE, NONE, QSGMII_FM1_A, NONE}},
|
||||
@@ -65,10 +84,18 @@ static const struct serdes_config serdes2_cfg_tbl[] = {
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC10, HIGIG_FM2_MAC10,
|
||||
HIGIG_FM2_MAC10, HIGIG_FM2_MAC10}},
|
||||
{6, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{7, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
|
||||
{12, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{13, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
@@ -77,10 +104,18 @@ static const struct serdes_config serdes2_cfg_tbl[] = {
|
||||
XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
|
||||
{15, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{16, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
|
||||
{21, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{22, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
@@ -89,6 +124,10 @@ static const struct serdes_config serdes2_cfg_tbl[] = {
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
|
||||
{24, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{25, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
@@ -97,34 +136,66 @@ static const struct serdes_config serdes2_cfg_tbl[] = {
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
|
||||
{27, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{28, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
|
||||
{35, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{36, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4}},
|
||||
{37, {NONE, NONE, QSGMII_FM2_B, NONE,
|
||||
NONE, NONE, QSGMII_FM2_A, NONE} },
|
||||
{38, {NONE, NONE, QSGMII_FM2_B, NONE,
|
||||
NONE, NONE, QSGMII_FM2_A, NONE} },
|
||||
{39, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
NONE, NONE, QSGMII_FM2_A, NONE} },
|
||||
{40, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
NONE, NONE, QSGMII_FM2_A, NONE} },
|
||||
{45, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
NONE, NONE, QSGMII_FM2_A, NONE} },
|
||||
{46, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
NONE, NONE, QSGMII_FM2_A, NONE} },
|
||||
{47, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
NONE, NONE, QSGMII_FM2_A, NONE} },
|
||||
{48, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
NONE, NONE, QSGMII_FM2_A, NONE} },
|
||||
{49, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
NONE, NONE, QSGMII_FM2_A, NONE} },
|
||||
{50, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
NONE, NONE, QSGMII_FM2_A, NONE} },
|
||||
{51, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
NONE, NONE, QSGMII_FM2_A, NONE} },
|
||||
{52, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
NONE, NONE, QSGMII_FM2_A, NONE} },
|
||||
{53, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
NONE, NONE, QSGMII_FM2_A, NONE} },
|
||||
{54, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
NONE, NONE, QSGMII_FM2_A, NONE} },
|
||||
{55, {XFI_FM1_MAC9, XFI_FM1_MAC10,
|
||||
XFI_FM2_MAC10, XFI_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{56, {XFI_FM1_MAC9, XFI_FM1_MAC10,
|
||||
XFI_FM2_MAC10, XFI_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
@@ -137,22 +208,34 @@ static const struct serdes_config serdes2_cfg_tbl[] = {
|
||||
};
|
||||
static const struct serdes_config serdes3_cfg_tbl[] = {
|
||||
/* SerDes 3 */
|
||||
{1, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1} },
|
||||
{2, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1}},
|
||||
{3, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE2, PCIE2, PCIE2, PCIE2} },
|
||||
{4, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE2, PCIE2, PCIE2, PCIE2}},
|
||||
{5, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, SRIO1, SRIO1, SRIO1} },
|
||||
{6, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, SRIO1, SRIO1, SRIO1}},
|
||||
{7, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, NONE, NONE, NONE} },
|
||||
{8, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, NONE, NONE, NONE}},
|
||||
{9, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN}},
|
||||
{10, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN}},
|
||||
{11, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
PCIE2, PCIE2, PCIE2, PCIE2} },
|
||||
{12, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
PCIE2, PCIE2, PCIE2, PCIE2}},
|
||||
{13, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
PCIE2, PCIE2, PCIE2, PCIE2} },
|
||||
{14, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
PCIE2, PCIE2, PCIE2, PCIE2}},
|
||||
{15, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
SRIO1, SRIO1, SRIO1, SRIO1} },
|
||||
{16, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
SRIO1, SRIO1, SRIO1, SRIO1}},
|
||||
{17, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
SRIO1, SRIO1, SRIO1, SRIO1}},
|
||||
{18, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
SRIO1, SRIO1, SRIO1, SRIO1} },
|
||||
{19, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
SRIO1, SRIO1, SRIO1, SRIO1}},
|
||||
{20, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
@@ -161,13 +244,21 @@ static const struct serdes_config serdes3_cfg_tbl[] = {
|
||||
};
|
||||
static const struct serdes_config serdes4_cfg_tbl[] = {
|
||||
/* SerDes 4 */
|
||||
{1, {PCIE3, PCIE3, PCIE3, PCIE3, PCIE3, PCIE3, PCIE3, PCIE3} },
|
||||
{2, {PCIE3, PCIE3, PCIE3, PCIE3, PCIE3, PCIE3, PCIE3, PCIE3}},
|
||||
{3, {PCIE3, PCIE3, PCIE3, PCIE3, PCIE4, PCIE4, PCIE4, PCIE4} },
|
||||
{4, {PCIE3, PCIE3, PCIE3, PCIE3, PCIE4, PCIE4, PCIE4, PCIE4}},
|
||||
{5, {PCIE3, PCIE3, PCIE3, PCIE3, SRIO2, SRIO2, SRIO2, SRIO2} },
|
||||
{6, {PCIE3, PCIE3, PCIE3, PCIE3, SRIO2, SRIO2, SRIO2, SRIO2}},
|
||||
{7, {PCIE3, PCIE3, PCIE3, PCIE3, SRIO2, SRIO2, SRIO2, SRIO2} },
|
||||
{8, {PCIE3, PCIE3, PCIE3, PCIE3, SRIO2, SRIO2, SRIO2, SRIO2}},
|
||||
{9, {PCIE3, PCIE3, PCIE3, PCIE3, PCIE4, PCIE4, SATA1, SATA2} },
|
||||
{10, {PCIE3, PCIE3, PCIE3, PCIE3, PCIE4, PCIE4, SATA1, SATA2} },
|
||||
{11, {PCIE3, PCIE3, PCIE3, PCIE3, AURORA, AURORA, SATA1, SATA2} },
|
||||
{12, {PCIE3, PCIE3, PCIE3, PCIE3, AURORA, AURORA, SATA1, SATA2} },
|
||||
{13, {PCIE3, PCIE3, PCIE3, PCIE3, AURORA, AURORA, SRIO2, SRIO2} },
|
||||
{14, {PCIE3, PCIE3, PCIE3, PCIE3, AURORA, AURORA, SRIO2, SRIO2}},
|
||||
{15, {PCIE3, PCIE3, PCIE3, PCIE3, AURORA, AURORA, SRIO2, SRIO2} },
|
||||
{16, {PCIE3, PCIE3, PCIE3, PCIE3, AURORA, AURORA, SRIO2, SRIO2}},
|
||||
{18, {PCIE3, PCIE3, PCIE3, PCIE3, AURORA, AURORA, AURORA, AURORA}},
|
||||
{}
|
||||
@@ -187,36 +278,66 @@ static const struct serdes_config serdes1_cfg_tbl[] = {
|
||||
HIGIG_FM1_MAC9, HIGIG_FM1_MAC9,
|
||||
HIGIG_FM1_MAC10, HIGIG_FM1_MAC10,
|
||||
HIGIG_FM1_MAC10, HIGIG_FM1_MAC10} },
|
||||
{27, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
|
||||
SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
|
||||
SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
|
||||
SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4} },
|
||||
{28, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
|
||||
SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
|
||||
SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
|
||||
SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4} },
|
||||
{35, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
|
||||
SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
|
||||
SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
|
||||
SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4} },
|
||||
{36, {SGMII_FM1_DTSEC5, SGMII_FM1_DTSEC6,
|
||||
SGMII_FM1_DTSEC10, SGMII_FM1_DTSEC9,
|
||||
SGMII_FM1_DTSEC1, SGMII_FM1_DTSEC2,
|
||||
SGMII_FM1_DTSEC3, SGMII_FM1_DTSEC4} },
|
||||
{37, {NONE, NONE, QSGMII_FM1_B, NONE,
|
||||
NONE, NONE, QSGMII_FM1_A, NONE} },
|
||||
{38, {NONE, NONE, QSGMII_FM1_B, NONE,
|
||||
NONE, NONE, QSGMII_FM1_A, NONE} },
|
||||
{}
|
||||
};
|
||||
static const struct serdes_config serdes2_cfg_tbl[] = {
|
||||
/* SerDes 2 */
|
||||
{6, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{7, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{12, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{13, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{15, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{16, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{21, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{22, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{24, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{25, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
@@ -225,34 +346,66 @@ static const struct serdes_config serdes2_cfg_tbl[] = {
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
NONE, NONE} },
|
||||
{27, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{28, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{35, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{36, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{37, {NONE, NONE, QSGMII_FM2_B, NONE,
|
||||
NONE, QSGMII_FM1_A, NONE, NONE} },
|
||||
{38, {NONE, NONE, QSGMII_FM2_B, NONE,
|
||||
NONE, QSGMII_FM1_A, NONE, NONE} },
|
||||
{39, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
NONE, QSGMII_FM1_A, NONE, NONE} },
|
||||
{40, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
NONE, QSGMII_FM1_A, NONE, NONE} },
|
||||
{45, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
NONE, QSGMII_FM1_A, NONE, NONE} },
|
||||
{46, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
NONE, QSGMII_FM1_A, NONE, NONE} },
|
||||
{47, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
NONE, QSGMII_FM1_A, NONE, NONE} },
|
||||
{48, {SGMII_FM2_DTSEC5, SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC10, SGMII_FM2_DTSEC9,
|
||||
NONE, QSGMII_FM1_A, NONE, NONE} },
|
||||
{49, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
NONE, NONE, NONE, NONE} },
|
||||
{50, {XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
XAUI_FM2_MAC9, XAUI_FM2_MAC9,
|
||||
NONE, NONE, NONE, NONE} },
|
||||
{51, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
NONE, NONE, NONE, NONE} },
|
||||
{52, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
NONE, NONE, NONE, NONE} },
|
||||
{53, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
NONE, NONE, NONE, NONE} },
|
||||
{54, {HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC9, HIGIG_FM2_MAC9,
|
||||
NONE, NONE, NONE, NONE} },
|
||||
{55, {NONE, XFI_FM1_MAC10,
|
||||
XFI_FM2_MAC10, NONE,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3, SGMII_FM2_DTSEC4} },
|
||||
{56, {NONE, XFI_FM1_MAC10,
|
||||
XFI_FM2_MAC10, NONE,
|
||||
SGMII_FM2_DTSEC1, SGMII_FM2_DTSEC2,
|
||||
@@ -265,22 +418,34 @@ static const struct serdes_config serdes2_cfg_tbl[] = {
|
||||
};
|
||||
static const struct serdes_config serdes3_cfg_tbl[] = {
|
||||
/* SerDes 3 */
|
||||
{1, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1} },
|
||||
{2, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1, PCIE1} },
|
||||
{3, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE2, PCIE2, PCIE2, PCIE2} },
|
||||
{4, {PCIE1, PCIE1, PCIE1, PCIE1, PCIE2, PCIE2, PCIE2, PCIE2} },
|
||||
{5, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, SRIO1, SRIO1, SRIO1} },
|
||||
{6, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, SRIO1, SRIO1, SRIO1} },
|
||||
{7, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, NONE, NONE, NONE} },
|
||||
{8, {PCIE1, PCIE1, PCIE1, PCIE1, SRIO1, NONE, NONE, NONE} },
|
||||
{9, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN} },
|
||||
{10, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN} },
|
||||
{11, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
PCIE2, PCIE2, PCIE2, PCIE2} },
|
||||
{12, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
PCIE2, PCIE2, PCIE2, PCIE2} },
|
||||
{13, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
PCIE2, PCIE2, PCIE2, PCIE2} },
|
||||
{14, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
PCIE2, PCIE2, PCIE2, PCIE2} },
|
||||
{15, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
SRIO1, SRIO1, SRIO1, SRIO1} },
|
||||
{16, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
SRIO1, SRIO1, SRIO1, SRIO1} },
|
||||
{17, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
SRIO1, SRIO1, SRIO1, SRIO1} },
|
||||
{18, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
SRIO1, SRIO1, SRIO1, SRIO1} },
|
||||
{19, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
SRIO1, SRIO1, SRIO1, SRIO1} },
|
||||
{20, {INTERLAKEN, INTERLAKEN, INTERLAKEN, INTERLAKEN,
|
||||
@@ -289,12 +454,19 @@ static const struct serdes_config serdes3_cfg_tbl[] = {
|
||||
};
|
||||
static const struct serdes_config serdes4_cfg_tbl[] = {
|
||||
/* SerDes 4 */
|
||||
{3, {PCIE3, PCIE3, PCIE3, PCIE3, PCIE4, PCIE4, PCIE4, PCIE4} },
|
||||
{4, {PCIE3, PCIE3, PCIE3, PCIE3, PCIE4, PCIE4, PCIE4, PCIE4} },
|
||||
{5, {SRIO2, SRIO2, SRIO2, SRIO2, SRIO2, SRIO2, SRIO2, SRIO2} },
|
||||
{6, {SRIO2, SRIO2, SRIO2, SRIO2, SRIO2, SRIO2, SRIO2, SRIO2} },
|
||||
{7, {SRIO2, SRIO2, SRIO2, SRIO2, SRIO2, SRIO2, SRIO2, SRIO2} },
|
||||
{8, {SRIO2, SRIO2, SRIO2, SRIO2, SRIO2, SRIO2, SRIO2, SRIO2} },
|
||||
{9, {PCIE3, PCIE3, PCIE3, PCIE3, SATA1, SATA1, SATA2, SATA2} },
|
||||
{10, {PCIE3, PCIE3, PCIE3, PCIE3, SATA1, SATA1, SATA2, SATA2} },
|
||||
{11, {AURORA, AURORA, AURORA, AURORA, SATA1, SATA1, SATA2, SATA2} },
|
||||
{12, {AURORA, AURORA, AURORA, AURORA, SATA1, SATA1, SATA2, SATA2} },
|
||||
{13, {AURORA, AURORA, AURORA, AURORA, SRIO2, SRIO2, SRIO2, SRIO2} },
|
||||
{14, {AURORA, AURORA, AURORA, AURORA, SRIO2, SRIO2, SRIO2, SRIO2} },
|
||||
{15, {AURORA, AURORA, AURORA, AURORA, SRIO2, SRIO2, SRIO2, SRIO2} },
|
||||
{16, {AURORA, AURORA, AURORA, AURORA, SRIO2, SRIO2, SRIO2, SRIO2} },
|
||||
{18, {AURORA, AURORA, AURORA, AURORA, AURORA, AURORA, AURORA, AURORA} },
|
||||
{}
|
||||
|
||||
@@ -607,9 +607,6 @@ int checkcpu (void)
|
||||
#if defined(SDR0_PINSTP_SHIFT)
|
||||
printf (" Bootstrap Option %c - ", bootstrap_char[bootstrap_option()]);
|
||||
printf ("Boot ROM Location %s", bootstrap_str[bootstrap_option()]);
|
||||
#ifdef CONFIG_NAND_U_BOOT
|
||||
puts(", booting from NAND");
|
||||
#endif /* CONFIG_NAND_U_BOOT */
|
||||
putc('\n');
|
||||
#endif /* SDR0_PINSTP_SHIFT */
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#define CONFIG_SYS_PPC_E500_DEBUG_TLB 1
|
||||
#define CONFIG_SYS_FSL_SEC_COMPAT 2
|
||||
#define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
|
||||
#elif defined(CONFIG_MPC8540)
|
||||
@@ -122,6 +123,7 @@
|
||||
#define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5
|
||||
#define CONFIG_SYS_FSL_RMU
|
||||
#define CONFIG_SYS_FSL_SRIO_MSG_UNIT_NUM 2
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
|
||||
#elif defined(CONFIG_MPC8572)
|
||||
@@ -132,6 +134,7 @@
|
||||
#define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
|
||||
#define CONFIG_SYS_FSL_ERRATUM_DDR_115
|
||||
#define CONFIG_SYS_FSL_ERRATUM_DDR111_DDR134
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
|
||||
#elif defined(CONFIG_P1010)
|
||||
@@ -154,6 +157,7 @@
|
||||
#define CONFIG_SYS_FSL_ERRATUM_IFC_A003399
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
#define CONFIG_SYS_FSL_ERRATUM_I2C_A004447
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A007075
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A006261
|
||||
#define CONFIG_SYS_FSL_A004447_SVR_REV 0x10
|
||||
@@ -171,6 +175,7 @@
|
||||
#define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
|
||||
#define CONFIG_SYS_FSL_ERRATUM_ELBC_A001
|
||||
#define CONFIG_SYS_FSL_ERRATUM_ESDHC111
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
|
||||
/* P1012 is single core version of P1021 */
|
||||
@@ -188,6 +193,7 @@
|
||||
#define QE_MURAM_SIZE 0x6000UL
|
||||
#define MAX_QE_RISC 1
|
||||
#define QE_NUM_OF_SNUM 28
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
|
||||
/* P1013 is single core version of P1022 */
|
||||
@@ -202,6 +208,7 @@
|
||||
#define CONFIG_SYS_FSL_ERRATUM_ELBC_A001
|
||||
#define CONFIG_SYS_FSL_ERRATUM_ESDHC111
|
||||
#define CONFIG_FSL_SATA_ERRATUM_A001
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
|
||||
#elif defined(CONFIG_P1014)
|
||||
@@ -219,6 +226,7 @@
|
||||
#define CONFIG_SYS_FSL_ERRATUM_IFC_A002769
|
||||
#define CONFIG_SYS_FSL_ERRATUM_P1010_A003549
|
||||
#define CONFIG_SYS_FSL_ERRATUM_IFC_A003399
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
|
||||
/* P1017 is single core version of P1023 */
|
||||
#elif defined(CONFIG_P1017)
|
||||
@@ -234,6 +242,7 @@
|
||||
#define CONFIG_SYS_FM_MURAM_SIZE 0x10000
|
||||
#define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2"
|
||||
#define CONFIG_SYS_CCSRBAR_DEFAULT 0xff600000
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
|
||||
#elif defined(CONFIG_P1020)
|
||||
@@ -246,6 +255,7 @@
|
||||
#define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
|
||||
#define CONFIG_SYS_FSL_ERRATUM_ELBC_A001
|
||||
#define CONFIG_SYS_FSL_ERRATUM_ESDHC111
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
#ifndef CONFIG_USB_MAX_CONTROLLER_COUNT
|
||||
#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
|
||||
@@ -264,6 +274,7 @@
|
||||
#define QE_MURAM_SIZE 0x6000UL
|
||||
#define MAX_QE_RISC 1
|
||||
#define QE_NUM_OF_SNUM 28
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
#define CONFIG_USB_MAX_CONTROLLER_COUNT 1
|
||||
|
||||
@@ -278,6 +289,7 @@
|
||||
#define CONFIG_SYS_FSL_ERRATUM_ELBC_A001
|
||||
#define CONFIG_SYS_FSL_ERRATUM_ESDHC111
|
||||
#define CONFIG_FSL_SATA_ERRATUM_A001
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
|
||||
#elif defined(CONFIG_P1023)
|
||||
@@ -293,6 +305,7 @@
|
||||
#define CONFIG_SYS_FM_MURAM_SIZE 0x10000
|
||||
#define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2"
|
||||
#define CONFIG_SYS_CCSRBAR_DEFAULT 0xff600000
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
#define CONFIG_SYS_FSL_ERRATUM_I2C_A004447
|
||||
#define CONFIG_SYS_FSL_A004447_SVR_REV 0x11
|
||||
@@ -309,6 +322,7 @@
|
||||
#define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
|
||||
#define CONFIG_SYS_FSL_ERRATUM_ELBC_A001
|
||||
#define CONFIG_SYS_FSL_ERRATUM_ESDHC111
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
|
||||
/* P1025 is lower end variant of P1021 */
|
||||
@@ -326,6 +340,7 @@
|
||||
#define QE_MURAM_SIZE 0x6000UL
|
||||
#define MAX_QE_RISC 1
|
||||
#define QE_NUM_OF_SNUM 28
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
|
||||
/* P2010 is single core version of P2020 */
|
||||
@@ -338,6 +353,7 @@
|
||||
#define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
|
||||
#define CONFIG_SYS_FSL_ERRATUM_ESDHC111
|
||||
#define CONFIG_SYS_FSL_ERRATUM_ESDHC_A001
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
|
||||
#elif defined(CONFIG_P2020)
|
||||
@@ -353,8 +369,10 @@
|
||||
#define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5
|
||||
#define CONFIG_SYS_FSL_RMU
|
||||
#define CONFIG_SYS_FSL_SRIO_MSG_UNIT_NUM 2
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A004508
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005125
|
||||
#define CONFIG_USB_MAX_CONTROLLER_COUNT 1
|
||||
|
||||
#elif defined(CONFIG_PPC_P2041) /* also supports P2040 */
|
||||
#define CONFIG_SYS_FSL_QORIQ_CHASSIS1
|
||||
#define CONFIG_FSL_CORENET /* Freescale CoreNet platform */
|
||||
@@ -657,8 +675,10 @@
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005871
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A006261
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A006379
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A007186
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A006593
|
||||
#define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000
|
||||
#define CONFIG_SYS_FSL_SFP_VER_3_0
|
||||
#define CONFIG_SYS_FSL_PCI_VER_3_X
|
||||
|
||||
#elif defined(CONFIG_PPC_B4860) || defined(CONFIG_PPC_B4420)
|
||||
@@ -684,12 +704,14 @@
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A_004934
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A005871
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A006379
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A007186
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A006593
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A007075
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A006475
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A006384
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A007212
|
||||
#define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000
|
||||
#define CONFIG_SYS_FSL_SFP_VER_3_0
|
||||
|
||||
#ifdef CONFIG_PPC_B4860
|
||||
#define CONFIG_SYS_FSL_CORES_PER_CLUSTER 4
|
||||
@@ -809,8 +831,10 @@ defined(CONFIG_PPC_T1020) || defined(CONFIG_PPC_T1022)
|
||||
#define CONFIG_SYS_FSL_ERRATUM_ESDHC111
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A006261
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A006593
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A007186
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A006379
|
||||
#define ESDHCI_QUIRK_BROKEN_TIMEOUT_VALUE
|
||||
#define CONFIG_SYS_FSL_SFP_VER_3_0
|
||||
|
||||
|
||||
#elif defined(CONFIG_PPC_C29X)
|
||||
|
||||
@@ -68,6 +68,7 @@ enum law_trgt_if {
|
||||
LAW_TRGT_IF_DDR_INTLV_1234 = 0x16,
|
||||
LAW_TRGT_IF_BMAN = 0x18,
|
||||
LAW_TRGT_IF_DCSR = 0x1d,
|
||||
LAW_TRGT_IF_CCSR = 0x1e,
|
||||
LAW_TRGT_IF_LBC = 0x1f,
|
||||
LAW_TRGT_IF_QMAN = 0x3c,
|
||||
|
||||
|
||||
@@ -103,6 +103,10 @@ extern void fdt_fixup_liodn(void *blob);
|
||||
SET_GUTS_LIODN("fsl,qe", liodn, qeliodnr,\
|
||||
CONFIG_SYS_MPC85xx_QE_OFFSET)
|
||||
|
||||
#define SET_TDM_LIODN(liodn) \
|
||||
SET_GUTS_LIODN("fsl,tdm1.0", liodn, tdmliodnr,\
|
||||
CONFIG_SYS_MPC85xx_TDM_OFFSET)
|
||||
|
||||
#define SET_QMAN_LIODN(liodn) \
|
||||
SET_LIODN_ENTRY_1("fsl,qman", liodn, offsetof(ccsr_qman_t, liodnr) + \
|
||||
CONFIG_SYS_FSL_QMAN_OFFSET, \
|
||||
|
||||
@@ -1899,7 +1899,8 @@ defined(CONFIG_PPC_T1020) || defined(CONFIG_PPC_T1022)
|
||||
u32 sata2liodnr; /* SATA 2 LIODN */
|
||||
u32 sata3liodnr; /* SATA 3 LIODN */
|
||||
u32 sata4liodnr; /* SATA 4 LIODN */
|
||||
u8 res22[24];
|
||||
u8 res22[20];
|
||||
u32 tdmliodnr; /* TDM LIODN */
|
||||
u32 qeliodnr; /* QE LIODN */
|
||||
u8 res_57c[4];
|
||||
u32 dma1liodnr; /* DMA 1 LIODN */
|
||||
@@ -2521,14 +2522,17 @@ typedef struct serdes_corenet {
|
||||
#define SRDS_PLLCR0_RFCK_SEL_150 0x30000000
|
||||
#define SRDS_PLLCR0_RFCK_SEL_161_13 0x40000000
|
||||
#define SRDS_PLLCR0_RFCK_SEL_122_88 0x50000000
|
||||
#define SRDS_PLLCR0_PLL_LCK 0x00800000
|
||||
#define SRDS_PLLCR0_DCBIAS_OUT_EN 0x02000000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_MASK 0x000f0000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_5 0x00000000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_4_9152 0x00030000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_3_75 0x00050000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_5_15 0x00060000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_4 0x00070000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_3_12 0x00090000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_3 0x000a0000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_3_125 0x00090000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_3_0 0x000a0000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_3_072 0x000c0000
|
||||
#define SRDS_PLLCR0_DCBIAS_OVRD 0x000000F0
|
||||
#define SRDS_PLLCR0_DCBIAS_OVRD_SHIFT 4
|
||||
u32 pllcr1; /* PLL Control Register 1 */
|
||||
@@ -2863,6 +2867,21 @@ struct ccsr_pman {
|
||||
u8 res_f4[0xf0c];
|
||||
};
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_FSL_SFP_VER_3_0
|
||||
struct ccsr_sfp_regs {
|
||||
u32 ospr; /* 0x200 */
|
||||
u32 reserved0[14];
|
||||
u32 srk_hash[8]; /* 0x23c Super Root Key Hash */
|
||||
u32 oem_uid; /* 0x9c OEM Unique ID */
|
||||
u8 reserved2[0x04];
|
||||
u32 ovpr; /* 0xA4 Intent To Secure */
|
||||
u8 reserved4[0x08];
|
||||
u32 fsl_uid; /* 0xB0 FSL Unique ID */
|
||||
u8 reserved5[0x04];
|
||||
u32 fsl_spfr0; /* Scratch Pad Fuse Register 0 */
|
||||
u32 fsl_spfr1; /* Scratch Pad Fuse Register 1 */
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FSL_CORENET
|
||||
#define CONFIG_SYS_FSL_CORENET_CCM_OFFSET 0x0000
|
||||
@@ -2876,6 +2895,14 @@ struct ccsr_pman {
|
||||
#define CONFIG_SYS_MPC8xxx_DDR3_OFFSET 0xA000
|
||||
#define CONFIG_SYS_FSL_CORENET_CLK_OFFSET 0xE1000
|
||||
#define CONFIG_SYS_FSL_CORENET_RCPM_OFFSET 0xE2000
|
||||
#ifdef CONFIG_SYS_FSL_SFP_VER_3_0
|
||||
/* In SFPv3, OSPR register is now at offset 0x200.
|
||||
* * So directly mapping sfp register map to this address */
|
||||
#define CONFIG_SYS_OSPR_OFFSET 0x200
|
||||
#define CONFIG_SYS_SFP_OFFSET (0xE8000 + CONFIG_SYS_OSPR_OFFSET)
|
||||
#else
|
||||
#define CONFIG_SYS_SFP_OFFSET 0xE8000
|
||||
#endif
|
||||
#define CONFIG_SYS_FSL_CORENET_SERDES_OFFSET 0xEA000
|
||||
#define CONFIG_SYS_FSL_CORENET_SERDES2_OFFSET 0xEB000
|
||||
#define CONFIG_SYS_FSL_CPC_OFFSET 0x10000
|
||||
@@ -2889,6 +2916,7 @@ struct ccsr_pman {
|
||||
#define CONFIG_SYS_MPC85xx_LBC_OFFSET 0x124000
|
||||
#define CONFIG_SYS_MPC85xx_IFC_OFFSET 0x124000
|
||||
#define CONFIG_SYS_MPC85xx_GPIO_OFFSET 0x130000
|
||||
#define CONFIG_SYS_MPC85xx_TDM_OFFSET 0x185000
|
||||
#define CONFIG_SYS_MPC85xx_QE_OFFSET 0x140000
|
||||
#define CONFIG_SYS_FSL_CORENET_RMAN_OFFSET 0x1e0000
|
||||
#if defined(CONFIG_SYS_FSL_QORIQ_CHASSIS2) && !defined(CONFIG_PPC_B4860)\
|
||||
@@ -3094,6 +3122,9 @@ struct ccsr_pman {
|
||||
#define CONFIG_SYS_PCIE4_ADDR \
|
||||
(CONFIG_SYS_IMMR + CONFIG_SYS_MPC85xx_PCIE4_OFFSET)
|
||||
|
||||
#define CONFIG_SYS_SFP_ADDR \
|
||||
(CONFIG_SYS_IMMR + CONFIG_SYS_SFP_OFFSET)
|
||||
|
||||
#define TSEC_BASE_ADDR (CONFIG_SYS_IMMR + CONFIG_SYS_TSEC1_OFFSET)
|
||||
#define MDIO_BASE_ADDR (CONFIG_SYS_IMMR + CONFIG_SYS_MDIO1_OFFSET)
|
||||
|
||||
|
||||
@@ -1346,26 +1346,14 @@ void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val);
|
||||
#if defined(CONFIG_8xx)
|
||||
#define _machine _MACH_8xx
|
||||
#define have_of 0
|
||||
#elif defined(CONFIG_OAK)
|
||||
#define _machine _MACH_oak
|
||||
#define have_of 0
|
||||
#elif defined(CONFIG_WALNUT)
|
||||
#define _machine _MACH_walnut
|
||||
#define have_of 0
|
||||
#elif defined(CONFIG_APUS)
|
||||
#define _machine _MACH_apus
|
||||
#define have_of 0
|
||||
#elif defined(CONFIG_GEMINI)
|
||||
#define _machine _MACH_gemini
|
||||
#define have_of 0
|
||||
#elif defined(CONFIG_MPC8260)
|
||||
#define _machine _MACH_8260
|
||||
#define have_of 0
|
||||
#elif defined(CONFIG_SANDPOINT)
|
||||
#define _machine _MACH_sandpoint
|
||||
#elif defined(CONFIG_HIDDEN_DRAGON)
|
||||
#define _machine _MACH_hidden_dragon
|
||||
#define have_of 0
|
||||
#else
|
||||
#error "Machine not defined correctly"
|
||||
#endif
|
||||
|
||||
@@ -991,14 +991,6 @@ void board_init_r(gd_t *id, ulong dest_addr)
|
||||
kbd_init();
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MODEM_SUPPORT
|
||||
{
|
||||
extern int do_mdm_init;
|
||||
|
||||
do_mdm_init = gd->do_mdm_init;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Initialization complete - start the monitor */
|
||||
|
||||
/* main_loop() can return to retry autoboot, if so just run it again. */
|
||||
|
||||
@@ -341,6 +341,7 @@ int os_dirent_ls(const char *dirname, struct os_dirent_node **headp)
|
||||
ret = -ENOMEM;
|
||||
goto done;
|
||||
}
|
||||
next->next = NULL;
|
||||
strcpy(next->name, entry.d_name);
|
||||
switch (entry.d_type) {
|
||||
case DT_REG:
|
||||
|
||||
1
arch/sandbox/dts/include/dt-bindings
Symbolic link
1
arch/sandbox/dts/include/dt-bindings
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../../include/dt-bindings
|
||||
@@ -17,6 +17,7 @@
|
||||
#ifndef __ASM_SANDBOX_BITOPS_H
|
||||
#define __ASM_SANDBOX_BITOPS_H
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <asm/system.h>
|
||||
|
||||
#ifdef __KERNEL__
|
||||
@@ -53,7 +54,7 @@ static inline int __test_and_set_bit(int nr, void *addr)
|
||||
|
||||
static inline int test_and_set_bit(int nr, void *addr)
|
||||
{
|
||||
unsigned long flags;
|
||||
unsigned long __always_unused flags;
|
||||
int out;
|
||||
|
||||
local_irq_save(flags);
|
||||
@@ -75,7 +76,7 @@ static inline int __test_and_clear_bit(int nr, void *addr)
|
||||
|
||||
static inline int test_and_clear_bit(int nr, void *addr)
|
||||
{
|
||||
unsigned long flags;
|
||||
unsigned long __always_unused flags;
|
||||
int out;
|
||||
|
||||
local_irq_save(flags);
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
* @param gp GPIO number
|
||||
* @return -1 on error, 0 if GPIO is low, >0 if high
|
||||
*/
|
||||
int sandbox_gpio_get_value(struct device *dev, unsigned int offset);
|
||||
int sandbox_gpio_get_value(struct udevice *dev, unsigned int offset);
|
||||
|
||||
/**
|
||||
* Set the simulated value of a GPIO (used only in sandbox test code)
|
||||
@@ -38,7 +38,7 @@ int sandbox_gpio_get_value(struct device *dev, unsigned int offset);
|
||||
* @param value value to set (0 for low, non-zero for high)
|
||||
* @return -1 on error, 0 if ok
|
||||
*/
|
||||
int sandbox_gpio_set_value(struct device *dev, unsigned int offset, int value);
|
||||
int sandbox_gpio_set_value(struct udevice *dev, unsigned int offset, int value);
|
||||
|
||||
/**
|
||||
* Return the simulated direction of a GPIO (used only in sandbox test code)
|
||||
@@ -46,7 +46,7 @@ int sandbox_gpio_set_value(struct device *dev, unsigned int offset, int value);
|
||||
* @param gp GPIO number
|
||||
* @return -1 on error, 0 if GPIO is input, >0 if output
|
||||
*/
|
||||
int sandbox_gpio_get_direction(struct device *dev, unsigned int offset);
|
||||
int sandbox_gpio_get_direction(struct udevice *dev, unsigned int offset);
|
||||
|
||||
/**
|
||||
* Set the simulated direction of a GPIO (used only in sandbox test code)
|
||||
@@ -55,7 +55,7 @@ int sandbox_gpio_get_direction(struct device *dev, unsigned int offset);
|
||||
* @param output 0 to set as input, 1 to set as output
|
||||
* @return -1 on error, 0 if ok
|
||||
*/
|
||||
int sandbox_gpio_set_direction(struct device *dev, unsigned int offset,
|
||||
int sandbox_gpio_set_direction(struct udevice *dev, unsigned int offset,
|
||||
int output);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -40,4 +40,14 @@ static inline void unmap_sysmem(const void *vaddr)
|
||||
/* Map from a pointer to our RAM buffer */
|
||||
phys_addr_t map_to_sysmem(const void *ptr);
|
||||
|
||||
/* Define nops for sandbox I/O access */
|
||||
#define readb(addr) 0
|
||||
#define readw(addr) 0
|
||||
#define readl(addr) 0
|
||||
#define writeb(v, addr)
|
||||
#define writew(v, addr)
|
||||
#define writel(v, addr)
|
||||
|
||||
#include <iotrace.h>
|
||||
|
||||
#endif
|
||||
|
||||
@@ -8,10 +8,7 @@
|
||||
#define __ASM_SANDBOX_SYSTEM_H
|
||||
|
||||
/* Define this as nops for sandbox architecture */
|
||||
static inline void local_irq_save(unsigned flags __attribute__((unused)))
|
||||
{
|
||||
}
|
||||
|
||||
#define local_irq_save(x)
|
||||
#define local_irq_enable()
|
||||
#define local_irq_disable()
|
||||
#define local_save_flags(x)
|
||||
|
||||
@@ -16,17 +16,18 @@ PF_CPPFLAGS_X86 := $(call cc-option, -fno-toplevel-reorder, \
|
||||
PLATFORM_CPPFLAGS += $(PF_CPPFLAGS_X86)
|
||||
PLATFORM_CPPFLAGS += -fno-dwarf2-cfi-asm
|
||||
PLATFORM_CPPFLAGS += -DREALMODE_BASE=0x7c0
|
||||
PLATFORM_CPPFLAGS += -march=i386 -m32
|
||||
|
||||
# Support generic board on x86
|
||||
__HAVE_ARCH_GENERIC_BOARD := y
|
||||
|
||||
PLATFORM_RELFLAGS += -ffunction-sections -fvisibility=hidden
|
||||
|
||||
PLATFORM_LDFLAGS += --emit-relocs -Bsymbolic -Bsymbolic-functions
|
||||
PLATFORM_LDFLAGS += --emit-relocs -Bsymbolic -Bsymbolic-functions -m elf_i386
|
||||
|
||||
LDFLAGS_FINAL += --gc-sections -pie
|
||||
LDFLAGS_FINAL += --wrap=__divdi3 --wrap=__udivdi3
|
||||
LDFLAGS_FINAL += --wrap=__moddi3 --wrap=__umoddi3
|
||||
|
||||
export NORMAL_LIBGCC = $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
||||
export NORMAL_LIBGCC = $(shell $(CC) $(PLATFORM_CPPFLAGS) -print-libgcc-file-name)
|
||||
CONFIG_USE_PRIVATE_LIBGCC := arch/x86/lib
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
CROSS_COMPILE ?= i386-linux-
|
||||
|
||||
PLATFORM_CPPFLAGS += -DCONFIG_X86 -D__I386__ -march=i386 -Werror
|
||||
PLATFORM_CPPFLAGS += -DCONFIG_X86 -D__I386__ -Werror
|
||||
|
||||
# DO NOT MODIFY THE FOLLOWING UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!
|
||||
LDPPFLAGS += -DRESET_SEG_START=0xffff0000
|
||||
|
||||
1
arch/x86/dts/include/dt-bindings
Symbolic link
1
arch/x86/dts/include/dt-bindings
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../../include/dt-bindings
|
||||
Reference in New Issue
Block a user