When running without firmware ROM using Virtual Open Firmware we need to do some hardware initialisation and provide the device tree as the machine firmware would normally do. Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Link: https://lore.kernel.org/qemu-devel/d2d7f173dbd436b47382f384d5a93eb7e713424e.1761176219.git.balaton@eik.bme.hu Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
125 lines
2.3 KiB
Text
125 lines
2.3 KiB
Text
/*
|
|
* QEMU Pegasos1 Device Tree Source
|
|
*
|
|
* Copyright 2025 BALATON Zoltan
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
|
*
|
|
* This is partial source, more info will be filled in by board code.
|
|
*/
|
|
|
|
/dts-v1/;
|
|
|
|
/ {
|
|
#address-cells = <1>;
|
|
device_type = "chrp";
|
|
model = "Pegasos";
|
|
revision = "1A";
|
|
CODEGEN,vendor = "bplan GmbH";
|
|
CODEGEN,board = "Pegasos";
|
|
CODEGEN,description = "Pegasos CHRP PowerPC System";
|
|
|
|
openprom {
|
|
model = "Pegasos,0.1b123";
|
|
};
|
|
|
|
chosen {
|
|
};
|
|
|
|
memory@0 {
|
|
device_type = "memory";
|
|
reg = <0 0>;
|
|
};
|
|
|
|
cpus {
|
|
#size-cells = <0>;
|
|
#address-cells = <1>;
|
|
#cpus = <1>;
|
|
};
|
|
|
|
failsafe {
|
|
device_type = "serial";
|
|
};
|
|
|
|
pci@80000000 {
|
|
device_type = "pci";
|
|
#address-cells = <3>;
|
|
#size-cells = <2>;
|
|
clock-frequency = <33333333>;
|
|
8259-interrupt-acknowledge = <0xfef00000>;
|
|
reg = <0x80000000 0x7f000000>;
|
|
ranges = <0x01000000 0 0x00000000 0xfe000000 0 0x00800000
|
|
0x02000000 0 0x80000000 0x80000000 0 0x7d000000
|
|
0x02000000 0 0xfd000000 0xfd000000 0 0x01000000>;
|
|
bus-range = <0 0>;
|
|
|
|
isa@7 {
|
|
vendor-id = <0x1106>;
|
|
device-id = <0x8231>;
|
|
revision-id = <0x10>;
|
|
class-code = <0x60100>;
|
|
/* Pegasos firmware has subsystem-id and */
|
|
/* subsystem-vendor-id swapped */
|
|
subsystem-id = <0x1af4>;
|
|
subsystem-vendor-id = <0x1100>;
|
|
reg = <0x3800 0 0 0 0>;
|
|
device_type = "isa";
|
|
#address-cells = <2>;
|
|
#size-cells = <1>;
|
|
eisa-slots = <0>;
|
|
clock-frequency = <8333333>;
|
|
slot-names = <0>;
|
|
|
|
serial@i2f8 {
|
|
device_type = "serial";
|
|
reg = <1 0x2f8 8>;
|
|
interrupts = <3 0>;
|
|
clock-frequency = <0>;
|
|
};
|
|
|
|
8042@i60 {
|
|
device_type = "";
|
|
reg = <1 0x60 5>;
|
|
clock-frequency = <0>;
|
|
interrupt-controller = "";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
#interrupt-cells = <2>;
|
|
|
|
};
|
|
|
|
keyboard@i60 {
|
|
device_type = "keyboard";
|
|
reg = <1 0x60 5>;
|
|
interrupts = <1 0>;
|
|
};
|
|
|
|
rtc@i70 {
|
|
device_type = "rtc";
|
|
reg = <1 0x70 2>;
|
|
interrupts = <8 0>;
|
|
clock-frequency = <0>;
|
|
compatible = "ds1385-rtc";
|
|
};
|
|
|
|
timer@i40 {
|
|
device_type = "timer";
|
|
reg = <1 0x40 8>;
|
|
clock-frequency = <0>;
|
|
};
|
|
|
|
fdc@i3f0 {
|
|
device_type = "fdc";
|
|
reg = <1 0x3f0 8>;
|
|
interrupts = <6 0>;
|
|
clock-frequency = <0>;
|
|
};
|
|
|
|
lpt@i3bc {
|
|
device_type = "lpt";
|
|
reg = <1 0x3bc 8>;
|
|
interrupts = <7 0>;
|
|
clock-frequency = <0>;
|
|
};
|
|
};
|
|
};
|
|
};
|