mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-18 11:54:37 +08:00
e6b512285a
The Foundation model GIC mapping is wrong, as the GICC region should be 8kB instead of 4kB (the model implements the GICv2 architecture). This defect prevents the driver from switching to EOImode==1. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Reviewed-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
241 lines
5.6 KiB
Plaintext
241 lines
5.6 KiB
Plaintext
/*
|
|
* ARM Ltd.
|
|
*
|
|
* ARMv8 Foundation model DTS
|
|
*/
|
|
|
|
/dts-v1/;
|
|
|
|
/memreserve/ 0x80000000 0x00010000;
|
|
|
|
/ {
|
|
model = "Foundation-v8A";
|
|
compatible = "arm,foundation-aarch64", "arm,vexpress";
|
|
interrupt-parent = <&gic>;
|
|
#address-cells = <2>;
|
|
#size-cells = <2>;
|
|
|
|
chosen { };
|
|
|
|
aliases {
|
|
serial0 = &v2m_serial0;
|
|
serial1 = &v2m_serial1;
|
|
serial2 = &v2m_serial2;
|
|
serial3 = &v2m_serial3;
|
|
};
|
|
|
|
cpus {
|
|
#address-cells = <2>;
|
|
#size-cells = <0>;
|
|
|
|
cpu@0 {
|
|
device_type = "cpu";
|
|
compatible = "arm,armv8";
|
|
reg = <0x0 0x0>;
|
|
enable-method = "spin-table";
|
|
cpu-release-addr = <0x0 0x8000fff8>;
|
|
next-level-cache = <&L2_0>;
|
|
};
|
|
cpu@1 {
|
|
device_type = "cpu";
|
|
compatible = "arm,armv8";
|
|
reg = <0x0 0x1>;
|
|
enable-method = "spin-table";
|
|
cpu-release-addr = <0x0 0x8000fff8>;
|
|
next-level-cache = <&L2_0>;
|
|
};
|
|
cpu@2 {
|
|
device_type = "cpu";
|
|
compatible = "arm,armv8";
|
|
reg = <0x0 0x2>;
|
|
enable-method = "spin-table";
|
|
cpu-release-addr = <0x0 0x8000fff8>;
|
|
next-level-cache = <&L2_0>;
|
|
};
|
|
cpu@3 {
|
|
device_type = "cpu";
|
|
compatible = "arm,armv8";
|
|
reg = <0x0 0x3>;
|
|
enable-method = "spin-table";
|
|
cpu-release-addr = <0x0 0x8000fff8>;
|
|
next-level-cache = <&L2_0>;
|
|
};
|
|
|
|
L2_0: l2-cache0 {
|
|
compatible = "cache";
|
|
};
|
|
};
|
|
|
|
memory@80000000 {
|
|
device_type = "memory";
|
|
reg = <0x00000000 0x80000000 0 0x80000000>,
|
|
<0x00000008 0x80000000 0 0x80000000>;
|
|
};
|
|
|
|
gic: interrupt-controller@2c001000 {
|
|
compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
|
|
#interrupt-cells = <3>;
|
|
#address-cells = <2>;
|
|
interrupt-controller;
|
|
reg = <0x0 0x2c001000 0 0x1000>,
|
|
<0x0 0x2c002000 0 0x2000>,
|
|
<0x0 0x2c004000 0 0x2000>,
|
|
<0x0 0x2c006000 0 0x2000>;
|
|
interrupts = <1 9 0xf04>;
|
|
};
|
|
|
|
timer {
|
|
compatible = "arm,armv8-timer";
|
|
interrupts = <1 13 0xf08>,
|
|
<1 14 0xf08>,
|
|
<1 11 0xf08>,
|
|
<1 10 0xf08>;
|
|
clock-frequency = <100000000>;
|
|
};
|
|
|
|
pmu {
|
|
compatible = "arm,armv8-pmuv3";
|
|
interrupts = <0 60 4>,
|
|
<0 61 4>,
|
|
<0 62 4>,
|
|
<0 63 4>;
|
|
};
|
|
|
|
smb {
|
|
compatible = "arm,vexpress,v2m-p1", "simple-bus";
|
|
arm,v2m-memory-map = "rs1";
|
|
#address-cells = <2>; /* SMB chipselect number and offset */
|
|
#size-cells = <1>;
|
|
|
|
ranges = <0 0 0 0x08000000 0x04000000>,
|
|
<1 0 0 0x14000000 0x04000000>,
|
|
<2 0 0 0x18000000 0x04000000>,
|
|
<3 0 0 0x1c000000 0x04000000>,
|
|
<4 0 0 0x0c000000 0x04000000>,
|
|
<5 0 0 0x10000000 0x04000000>;
|
|
|
|
#interrupt-cells = <1>;
|
|
interrupt-map-mask = <0 0 63>;
|
|
interrupt-map = <0 0 0 &gic 0 0 0 0 4>,
|
|
<0 0 1 &gic 0 0 0 1 4>,
|
|
<0 0 2 &gic 0 0 0 2 4>,
|
|
<0 0 3 &gic 0 0 0 3 4>,
|
|
<0 0 4 &gic 0 0 0 4 4>,
|
|
<0 0 5 &gic 0 0 0 5 4>,
|
|
<0 0 6 &gic 0 0 0 6 4>,
|
|
<0 0 7 &gic 0 0 0 7 4>,
|
|
<0 0 8 &gic 0 0 0 8 4>,
|
|
<0 0 9 &gic 0 0 0 9 4>,
|
|
<0 0 10 &gic 0 0 0 10 4>,
|
|
<0 0 11 &gic 0 0 0 11 4>,
|
|
<0 0 12 &gic 0 0 0 12 4>,
|
|
<0 0 13 &gic 0 0 0 13 4>,
|
|
<0 0 14 &gic 0 0 0 14 4>,
|
|
<0 0 15 &gic 0 0 0 15 4>,
|
|
<0 0 16 &gic 0 0 0 16 4>,
|
|
<0 0 17 &gic 0 0 0 17 4>,
|
|
<0 0 18 &gic 0 0 0 18 4>,
|
|
<0 0 19 &gic 0 0 0 19 4>,
|
|
<0 0 20 &gic 0 0 0 20 4>,
|
|
<0 0 21 &gic 0 0 0 21 4>,
|
|
<0 0 22 &gic 0 0 0 22 4>,
|
|
<0 0 23 &gic 0 0 0 23 4>,
|
|
<0 0 24 &gic 0 0 0 24 4>,
|
|
<0 0 25 &gic 0 0 0 25 4>,
|
|
<0 0 26 &gic 0 0 0 26 4>,
|
|
<0 0 27 &gic 0 0 0 27 4>,
|
|
<0 0 28 &gic 0 0 0 28 4>,
|
|
<0 0 29 &gic 0 0 0 29 4>,
|
|
<0 0 30 &gic 0 0 0 30 4>,
|
|
<0 0 31 &gic 0 0 0 31 4>,
|
|
<0 0 32 &gic 0 0 0 32 4>,
|
|
<0 0 33 &gic 0 0 0 33 4>,
|
|
<0 0 34 &gic 0 0 0 34 4>,
|
|
<0 0 35 &gic 0 0 0 35 4>,
|
|
<0 0 36 &gic 0 0 0 36 4>,
|
|
<0 0 37 &gic 0 0 0 37 4>,
|
|
<0 0 38 &gic 0 0 0 38 4>,
|
|
<0 0 39 &gic 0 0 0 39 4>,
|
|
<0 0 40 &gic 0 0 0 40 4>,
|
|
<0 0 41 &gic 0 0 0 41 4>,
|
|
<0 0 42 &gic 0 0 0 42 4>;
|
|
|
|
ethernet@2,02000000 {
|
|
compatible = "smsc,lan91c111";
|
|
reg = <2 0x02000000 0x10000>;
|
|
interrupts = <15>;
|
|
};
|
|
|
|
v2m_clk24mhz: clk24mhz {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <24000000>;
|
|
clock-output-names = "v2m:clk24mhz";
|
|
};
|
|
|
|
v2m_refclk1mhz: refclk1mhz {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <1000000>;
|
|
clock-output-names = "v2m:refclk1mhz";
|
|
};
|
|
|
|
v2m_refclk32khz: refclk32khz {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <32768>;
|
|
clock-output-names = "v2m:refclk32khz";
|
|
};
|
|
|
|
iofpga@3,00000000 {
|
|
compatible = "arm,amba-bus", "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0 3 0 0x200000>;
|
|
|
|
v2m_sysreg: sysreg@010000 {
|
|
compatible = "arm,vexpress-sysreg";
|
|
reg = <0x010000 0x1000>;
|
|
};
|
|
|
|
v2m_serial0: uart@090000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x090000 0x1000>;
|
|
interrupts = <5>;
|
|
clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
|
|
clock-names = "uartclk", "apb_pclk";
|
|
};
|
|
|
|
v2m_serial1: uart@0a0000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x0a0000 0x1000>;
|
|
interrupts = <6>;
|
|
clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
|
|
clock-names = "uartclk", "apb_pclk";
|
|
};
|
|
|
|
v2m_serial2: uart@0b0000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x0b0000 0x1000>;
|
|
interrupts = <7>;
|
|
clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
|
|
clock-names = "uartclk", "apb_pclk";
|
|
};
|
|
|
|
v2m_serial3: uart@0c0000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x0c0000 0x1000>;
|
|
interrupts = <8>;
|
|
clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
|
|
clock-names = "uartclk", "apb_pclk";
|
|
};
|
|
|
|
virtio_block@0130000 {
|
|
compatible = "virtio,mmio";
|
|
reg = <0x130000 0x200>;
|
|
interrupts = <42>;
|
|
};
|
|
};
|
|
};
|
|
};
|