eeb913c99f
(1) Invoke cpp to bring in files via #include (although the old /include/ stuff is supported still). (2) bring in files from either vendor tree or freebsd-custom files when building. (3) move all dts* files from sys/boot/fdt/dts to sys/boot/fdt/dts/${MACHINE} as appropriate. (4) encode all the magic to do the build in sys/tools/fdt/make_dtb.sh so that the different places in the tree use the exact same logic. (5) switch back to gpl dtc by default. the bsdl one in the tree has significant issues not easily addressed by those unfamiliar with the code.
119 lines
2.2 KiB
Plaintext
119 lines
2.2 KiB
Plaintext
/*
|
|
* $FreeBSD$
|
|
*/
|
|
/dts-v1/;
|
|
|
|
/ {
|
|
model = "ARM Versatile PB";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "arm,versatile-pb";
|
|
|
|
amba {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges;
|
|
|
|
intc: interrupt-controller {
|
|
compatible = "arm,versatile-vic";
|
|
reg = <0x10140000 0x1000>;
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
};
|
|
|
|
sic: secondary-interrupt-controller {
|
|
compatible = "arm,versatile-sic";
|
|
reg = <0x10003000 0x28>;
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
};
|
|
|
|
uart0: uart0 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x101f1000 0x1000>;
|
|
interrupts = <12>;
|
|
interrupt-parent = <&intc>;
|
|
clock-frequency = <3000000>;
|
|
reg-shift = <2>;
|
|
};
|
|
|
|
uart1: uart1 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x101f2000 0x1000>;
|
|
interrupts = <13>;
|
|
interrupt-parent = <&intc>;
|
|
clock-frequency = <3000000>;
|
|
reg-shift = <2>;
|
|
};
|
|
|
|
uart2: uart2 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x101f3000 0x1000>;
|
|
interrupts = <14>;
|
|
interrupt-parent = <&intc>;
|
|
clock-frequency = <3000000>;
|
|
reg-shift = <2>;
|
|
};
|
|
|
|
timer0 {
|
|
compatible = "arm,sp804", "arm,primecell";
|
|
reg = <0x101e2000 0x40>;
|
|
interrupts = <4>;
|
|
interrupt-parent = <&intc>;
|
|
};
|
|
|
|
pci0 {
|
|
|
|
compatible = "versatile,pci";
|
|
reg = <0x10000044 0x4
|
|
0x10001000 0x1000
|
|
0x41000000 0x01000000
|
|
0x42000000 0x02000000>;
|
|
};
|
|
|
|
net {
|
|
compatible = "smsc,lan91c111";
|
|
reg = <0x10010000 0x10000>;
|
|
interrupts = <25>;
|
|
interrupt-parent = <&intc>;
|
|
};
|
|
|
|
display {
|
|
compatible = "arm,pl110", "arm,primecell";
|
|
reg = <0x10000050 4
|
|
0x10120000 0x1000>;
|
|
interrupts = <16>;
|
|
interrupt-parent = <&intc>;
|
|
};
|
|
|
|
/*
|
|
* Cut corner here: we do not have proper interrupt
|
|
* controllers cascading so just hardwire SIC IRQ 3
|
|
* to VIC IRQ31
|
|
*/
|
|
kmi {
|
|
compatible = "arm,pl050", "arm,primecell";
|
|
reg = <0x10006000 0x1000>;
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <31>;
|
|
};
|
|
};
|
|
|
|
memory {
|
|
device_type = "memory";
|
|
reg = <0 0x08000000>; /* 128MB */
|
|
};
|
|
|
|
aliases {
|
|
uart0 = &uart0;
|
|
};
|
|
|
|
chosen {
|
|
stdin = "uart0";
|
|
stdout = "uart0";
|
|
};
|
|
};
|