New kernels
Re: New kernels
Update: [PowerPC] [PASEMI] Issue with the identification of ATA drives after the of/irq updates 2024-05-29
Re: New kernels
Hypex,
Could you please post the output of the following command?
I don’t have an X1000 here and Marc needs this output for solving the issue with detecting the ATA devices.
Thanks,
Christian
Could you please post the output of the following command?
Code: Select all
dtc -I dtb /sys/firmware/fdt
Thanks,
Christian
Re: New kernels
I was able to dump the dts file from the fdt file with the following command:
Result: nemo.dts
Code: Select all
dtc -I dtb -O dts fdt > nemo.dts
Re: New kernels
Hypex,
I patched the kernel 6.10-rc6 with Marc's new patch:
Download of the patched kernel 6.10-rc6: vmlinux-6.10-15
Could you please test this kernel?
Thanks,
Christian
I patched the kernel 6.10-rc6 with Marc's new patch:
Code: Select all
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -282,8 +282,10 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq)
oldimap = imap;
imap = of_irq_parse_imap_parent(oldimap, imaplen, out_irq);
- if (!imap)
- goto fail;
+ if (!imap) {
+ match = 0;
+ break;
+ }
match &= of_device_is_available(out_irq->np);
if (match)
Download of the patched kernel 6.10-rc6: vmlinux-6.10-15
Could you please test this kernel?
Thanks,
Christian
Re: New kernels
Okay the 6.10-RC6 works!
So, is using /sys/firmware/devicetree/base/options much different to using /proc/device-tree/options? I notice both contain a file list of firmware variables. Is one preferred over the other?
Sure. Had to install device-tree-compiler. For some reason it didn't show up in Synaptic.
Code: Select all
/dts-v1/;
/ {
#interrupt-cells = <0x02>;
#address-cells = <0x02>;
#size-cells = <0x02>;
model = "pasemi,nemo";
device_type = "bootrom";
compatible = "pasemi,nemo\0pasemi,pa6t-1682m\0PA6T-1682M\0pasemi,pwrficient\0pasemi";
platform-open-pic = <0x00 0xfc000000 0x00 0x41000>;
phandle = <0x7fdff018>;
options {
little-endian? = <0x00>;
HWADDR = "00:50:c2:20:d9:e9";
CD = "boot -fs=iso atapi0.0:amigaboot.of";
HD = "boot -fs=amigafs ide0.1:amigaboot.of";
MENU_0_COMMAND = "boot -fs=amigafs ide0.1:amigaboot.of";
rd = "batch -fatfs usbdisk0:rd";
vm = "batch -fatfs usbdisk0:vm";
sc = "set console uart0";
keymap_swapaltamiga = "off";
MENU_1_LABEL = "Linux";
l = "boot -elf -noints -fatfs usbdisk0:vmlinux39NH";
ru = "batch -fatfs ";
du = "dir -fatfs usbdisk0:";
dc = "dir -fs=iso atapi0.0:";
env = "printenv";
dh = "dir -fs=amigafs ide0.1:";
STARTUP = "set pmu -astate=A4; menu";
MENU_2_LABEL = "Linux Alt";
CD1 = "boot -fs=iso atapi1.0:amigaboot.of";
LRD = "ramdisk -z -addr=0x24000000 -fatfs usbdisk0:initrd.img-4.1.12";
MENU_0_LABEL = "AmigaOS";
bootable_only = "1";
lab = "load -fs=amigafs ide0.1:amigaboot.of";
lof = "load -fs=amigafs ide0.1,dh14:ofclient";
MENU_1_COMMAND = "ramdisk -z -addr=0x24000000 -fs=amigafs ide0.1,dh14:initrd.img-4.19; boot -z -elf -noints -nousb -fs=amigafs ide0.1,dh14:vmlinuz-4.19";
MENU_2_COMMAND = "ramdisk -z -addr=0x24000000 -fatfs usbdisk0:initrd.img-4.19; boot -z -elf -noints -nousb -fatfs usbdisk0:vmlinuz-4.19";
bof = "boot -elf -noints -nousb -fs=amigafs ide0.1,dh14:ofclient";
bootargs = "console=tty0 root=UUID=e2bfffd4-f481-4c90-a565-1028de3fcb29";
dx = "dir -fs=amigafs ide0.1,dh12:";
amigaboot_quiet = "N";
os4_commandline = "debuglevel=5 munge";
bootmenu_waitticks = "30";
boot_config = "AmigaOS_4.1_Final_Edition_S";
vmlinux = "boot -z -elf -noints -nousb -fs=amigafs ide0.1,dh14:vmlinux";
MENU_TIMEOUT = "2";
framebuffer = "800/600/8/0x90000000/832";
BOOT_CONSOLE = "pcconsole0";
CFE_VERSION = "PAS-2.0.30";
CFE_BOARDNAME = "NEMO";
CFE_MEMORYSIZE = "4096";
phandle = <0x7fe2f1f0>;
};
openprom {
device_type = "BootROM";
model = "Open Firmware 3";
phandle = <0x7fe2f2f0>;
};
sdc@fc000000 {
device_type = "sdc";
#address-cells = <0x01>;
#size-cells = <0x01>;
compatible = "1682m-sdc\0pasemi,pwrficient-sdc\0pasemi,sdc";
reg = <0x00 0xfc000000 0x00 0x800000>;
phandle = <0x7fe2f458>;
openpic@fc000000 {
device_type = "open-pic";
compatible = "pasemi,pwrficient-openpic\0chrp,open-pic";
interrupt-controller;
#address-cells = <0x00>;
#interrupt-cells = <0x02>;
msi-available-ranges = <0x200 0x200>;
reg = <0xfc000000 0x100000>;
phandle = <0x7fe2f6e8>;
};
gpio@fc103000 {
device_type = "gpio";
compatible = "1682m-gpio\0pasemi,pwrficient-gpio\0pasemi,gpio";
reg = <0xfc103000 0x1000>;
phandle = <0x7fe2fa18>;
};
gizmo@fc104000 {
device_type = "gizmo";
compatible = "1682m-gizmo\0pasemi,pwrficient-gizmo\0pasemi,gizmo";
reg = <0xfc104000 0x1000>;
phandle = <0x7fe2fbf0>;
};
rng@fc105000 {
device_type = "rng";
compatible = "1682m-rng\0pasemi,pwrficient-rng\0pasemi,rng";
reg = <0xfc105000 0x1000>;
phandle = <0x7fe2fdd0>;
};
mdio@0 {
compatible = "gpio-mdio";
#address-cells = <0x01>;
#size-cells = <0x00>;
mdc-pin = <0x05>;
mdio-pin = <0x06>;
reg = <0x00 0x00>;
phandle = <0x7fe3d6f8>;
ethernet-phy@0 {
reg = <0x00>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x07 0x01>;
phandle = <0x7fe3d9b8>;
};
};
};
pxp@0,e0000000 {
interrupt-controller;
device_type = "pci";
#interrupt-cells = <0x01>;
#address-cells = <0x03>;
#size-cells = <0x02>;
model = "pa";
compatible = "pasemi,rootbus\0pa-pxp";
interrupt-map-mask = <0x00 0x00 0x00 0xff>;
interrupt-map = <0x00 0x00 0x00 0x30 0x7fe2f6e8 0x30 0x01 0x00 0x00 0x00 0x31 0x7fe2f6e8 0x31 0x01 0x00 0x00 0x00 0x32 0x7fe2f6e8 0x32 0x01 0x00 0x00 0x00 0x33 0x7fe2f6e8 0x33 0x01>;
bus-range = <0x00 0xff>;
ranges = <0x00 0x00 0xe0000000 0x00 0xe0000000 0x00 0x10000000 0x1000000 0x00 0x00 0x00 0xfc800000 0x00 0x800000 0x2000000 0x00 0x80000000 0x00 0x80000000 0x00 0x60000000 0x2000000 0x00 0xe0000000 0x00 0xe0000000 0x00 0x100000 0x2000000 0x00 0xfd800000 0x00 0xfd800000 0x00 0x1000 0x2000000 0x800 0x00 0x800 0x00 0x400 0x00>;
reg = <0x00 0xe0000000 0x00 0x10000000>;
phandle = <0x7fe2ffa8>;
serial@1d {
device_type = "serial";
vendor-id = <0x1959>;
device-id = <0xa004>;
revision-id = <0x02>;
class-code = <0x70003>;
reg = <0xe800 0x00 0x00 0x00 0x00 0x100e810 0x00 0x00 0x00 0x08>;
assigned-addresses = <0x8100e810 0x00 0x7f03f8 0x00 0x08>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x49 0x01>;
clock-frequency = <0x7f28155>;
current-speed = <0x1c200>;
compatible = "ns16550\0pciclass,0700";
phandle = <0x7fe318a8>;
};
serial@1d,1 {
device_type = "serial";
vendor-id = <0x1959>;
device-id = <0xa004>;
revision-id = <0x02>;
class-code = <0x70003>;
reg = <0xe900 0x00 0x00 0x00 0x00 0x100e910 0x00 0x00 0x00 0x08>;
assigned-addresses = <0x8100e910 0x00 0x7f02f8 0x00 0x08>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x4a 0x01>;
clock-frequency = <0x7f28155>;
current-speed = <0x1c200>;
compatible = "ns16550\0pciclass,0700";
phandle = <0x7fe31db0>;
};
dma-engine@1a {
device_type = "dma-engine";
vendor-id = <0x1959>;
device-id = <0xa007>;
revision-id = <0x12>;
class-code = <0x801ff>;
reg = <0xd000 0x00 0x00 0x00 0x00 0x82000000 0x00 0xe00d0000 0x00 0x1000>;
assigned-addresses = <0x82000000 0x00 0xe00d0000 0x00 0x1000>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x80 0x01>;
compatible = "1682m-dma\0pasemi,dma-engine";
phandle = <0x7fe322b8>;
};
io-bridge@0 {
device_type = "isa";
vendor-id = <0x1959>;
device-id = <0xa001>;
revision-id = <0x12>;
class-code = <0x60000>;
reg = <0x00 0x00 0x00 0x00 0x00 0x82000000 0x00 0xe0000000 0x00 0x2000 0xc2000000 0x00 0xfd800000 0x00 0x1000>;
assigned-addresses = <0x82000000 0x00 0xe0000000 0x00 0x2000 0xc2000000 0x00 0xfd800000 0x00 0x1000>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x56 0x01>;
compatible = "pasemi,1682m-iob\0pasemi,io-bridge";
phandle = <0x7fe32728>;
};
cache-controller@1 {
device_type = "cache-controller";
vendor-id = <0x1959>;
device-id = <0xa009>;
revision-id = <0x11>;
class-code = <0x58000>;
reg = <0x800 0x00 0x00 0x00 0x00>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x52 0x01>;
compatible = "pasemi,1682m-l2c\0pasemi,l2c";
phandle = <0x7fe32bc8>;
};
ethernet@14,3 {
device_type = "ethernet";
vendor-id = <0x1959>;
device-id = <0xa005>;
revision-id = <0x11>;
class-code = <0x20000>;
reg = <0xa300 0x00 0x00 0x00 0x00 0x82000000 0x00 0xe00a3000 0x00 0x1000>;
assigned-addresses = <0x82000000 0x00 0xe00a3000 0x00 0x1000>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x43 0x01>;
local-mac-address = [02 00 e0 0a 30 00];
compatible = "pasemi,1682m-gmac\0pasemi,ethernet";
phy-handle = <0x7fe3d9b8>;
phandle = <0x7fe32fd0>;
};
i2c@1c {
device_type = "i2c";
vendor-id = <0x1959>;
device-id = <0xa003>;
revision-id = <0x01>;
class-code = <0xc0500>;
reg = <0xe000 0x00 0x00 0x00 0x00 0x100e010 0x00 0x00 0x00 0x40>;
assigned-addresses = <0x8100e010 0x00 0x7f0200 0x00 0x40>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x46 0x01>;
phandle = <0x7fe334a0>;
};
i2c@1c,1 {
device_type = "i2c";
vendor-id = <0x1959>;
device-id = <0xa003>;
revision-id = <0x01>;
class-code = <0xc0500>;
reg = <0xe100 0x00 0x00 0x00 0x00 0x100e110 0x00 0x00 0x00 0x40>;
assigned-addresses = <0x8100e110 0x00 0x7f0240 0x00 0x40>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x47 0x01>;
phandle = <0x7fe33890>;
};
i2c@1c,2 {
device_type = "i2c";
vendor-id = <0x1959>;
device-id = <0xa003>;
revision-id = <0x01>;
class-code = <0xc0500>;
reg = <0xe200 0x00 0x00 0x00 0x00 0x100e210 0x00 0x00 0x00 0x40>;
assigned-addresses = <0x8100e210 0x00 0x7f0280 0x00 0x40>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x48 0x01>;
phandle = <0x7fe33c80>;
};
pci@11,3 {
device_type = "pci";
vendor-id = <0x1959>;
device-id = <0xa002>;
revision-id = <0x11>;
class-code = <0x60400>;
#address-cells = <0x03>;
#size-cells = <0x02>;
#interrupt-cells = <0x01>;
bus-range = <0x09 0x09>;
reg = <0x8b00 0x00 0x00 0x00 0x00>;
phandle = <0x7fe36500>;
};
pci@11,2 {
device_type = "pci";
vendor-id = <0x1959>;
device-id = <0xa002>;
revision-id = <0x11>;
class-code = <0x60400>;
#address-cells = <0x03>;
#size-cells = <0x02>;
#interrupt-cells = <0x01>;
bus-range = <0x08 0x08>;
reg = <0x8a00 0x00 0x00 0x00 0x00>;
phandle = <0x7fe36928>;
};
pci@11,1 {
device_type = "pci";
vendor-id = <0x1959>;
device-id = <0xa002>;
revision-id = <0x11>;
class-code = <0x60400>;
#address-cells = <0x03>;
#size-cells = <0x02>;
#interrupt-cells = <0x01>;
bus-range = <0x07 0x07>;
reg = <0x8900 0x00 0x00 0x00 0x00>;
phandle = <0x7fe36d50>;
};
pci@11 {
device_type = "pci";
vendor-id = <0x1959>;
device-id = <0xa002>;
revision-id = <0x11>;
class-code = <0x60400>;
#address-cells = <0x03>;
#size-cells = <0x02>;
#interrupt-cells = <0x01>;
bus-range = <0x05 0x06>;
reg = <0x8800 0x00 0x00 0x00 0x00>;
ranges = <0x1000000 0x00 0x00 0x1000000 0x00 0x00 0x00 0x4000 0x2000000 0x00 0xa0100000 0x2000000 0x00 0xa0100000 0x00 0x300000>;
phandle = <0x7fe37178>;
pci@12 {
interrupt-parent = <0x7fe2ffa8>;
interrupts = <0x09 0x01>;
device_type = "pci";
vendor-id = <0x1002>;
device-id = <0x4380>;
revision-id = <0x00>;
class-code = <0x1018f>;
reg = <0x59000 0x00 0x00 0x00 0x00 0x1059010 0x00 0x00 0x00 0x08 0x1059014 0x00 0x00 0x00 0x04 0x1059018 0x00 0x00 0x00 0x08 0x105901c 0x00 0x00 0x00 0x04 0x1059020 0x00 0x00 0x00 0x10 0x2059024 0x00 0x00 0x00 0x400>;
assigned-addresses = <0x81059010 0x00 0x1040 0x00 0x08 0x81059014 0x00 0x105c 0x00 0x04 0x81059018 0x00 0x1048 0x00 0x08 0x8105901c 0x00 0x1058 0x00 0x04 0x81059020 0x00 0x1010 0x00 0x10 0x82059024 0x00 0xa0209000 0x00 0x400>;
phandle = <0x7fe39f40>;
atapi0.0 {
device_type = "block";
phandle = <0x7fe3a3f8>;
};
ide0.1 {
device_type = "block";
phandle = <0x7fe3a500>;
};
};
pci@13 {
interrupt-parent = <0x7fe2ffa8>;
interrupts = <0x09 0x01>;
device_type = "pci";
vendor-id = <0x1002>;
device-id = <0x4387>;
revision-id = <0x00>;
class-code = <0xc0310>;
reg = <0x59800 0x00 0x00 0x00 0x00 0x2059810 0x00 0x00 0x00 0x1000>;
assigned-addresses = <0x82059810 0x00 0xa0207000 0x00 0x1000>;
phandle = <0x7fe3a600>;
};
pci@13,1 {
interrupt-parent = <0x7fe2ffa8>;
interrupts = <0x0a 0x01>;
device_type = "pci";
vendor-id = <0x1002>;
device-id = <0x4388>;
revision-id = <0x00>;
class-code = <0xc0310>;
reg = <0x59900 0x00 0x00 0x00 0x00 0x2059910 0x00 0x00 0x00 0x1000>;
assigned-addresses = <0x82059910 0x00 0xa0208000 0x00 0x1000>;
phandle = <0x7fe3a9f0>;
};
pci@13,2 {
interrupt-parent = <0x7fe2ffa8>;
interrupts = <0x0b 0x01>;
device_type = "pci";
vendor-id = <0x1002>;
device-id = <0x4389>;
revision-id = <0x00>;
class-code = <0xc0310>;
reg = <0x59a00 0x00 0x00 0x00 0x00 0x2059a10 0x00 0x00 0x00 0x1000>;
assigned-addresses = <0x82059a10 0x00 0xa0206000 0x00 0x1000>;
phandle = <0x7fe3ade0>;
};
pci@13,3 {
interrupt-parent = <0x7fe2ffa8>;
interrupts = <0x0a 0x01>;
device_type = "pci";
vendor-id = <0x1002>;
device-id = <0x438a>;
revision-id = <0x00>;
class-code = <0xc0310>;
reg = <0x59b00 0x00 0x00 0x00 0x00 0x2059b10 0x00 0x00 0x00 0x1000>;
assigned-addresses = <0x82059b10 0x00 0xa0204000 0x00 0x1000>;
phandle = <0x7fe3b1d0>;
};
pci@13,4 {
interrupt-parent = <0x7fe2ffa8>;
interrupts = <0x0b 0x01>;
device_type = "pci";
vendor-id = <0x1002>;
device-id = <0x438b>;
revision-id = <0x00>;
class-code = <0xc0310>;
reg = <0x59c00 0x00 0x00 0x00 0x00 0x2059c10 0x00 0x00 0x00 0x1000>;
assigned-addresses = <0x82059c10 0x00 0xa0205000 0x00 0x1000>;
phandle = <0x7fe3b5c0>;
};
pci@13,5 {
interrupt-parent = <0x7fe2ffa8>;
interrupts = <0x0c 0x01>;
device_type = "pci";
vendor-id = <0x1002>;
device-id = <0x4386>;
revision-id = <0x00>;
class-code = <0xc0320>;
reg = <0x59d00 0x00 0x00 0x00 0x00 0x2059d10 0x00 0x00 0x00 0x100>;
assigned-addresses = <0x82059d10 0x00 0xa0209800 0x00 0x100>;
phandle = <0x7fe3b9b0>;
};
pci@14 {
device_type = "pci";
vendor-id = <0x1002>;
device-id = <0x4385>;
revision-id = <0x14>;
class-code = <0xc0500>;
reg = <0x5a000 0x00 0x00 0x00 0x00 0x105a010 0x00 0x00 0x00 0x10 0x205a014 0x00 0x00 0x00 0x400>;
assigned-addresses = <0x8105a010 0x00 0x1020 0x00 0x10 0x8205a014 0x00 0xa0209400 0x00 0x400>;
phandle = <0x7fe3bda0>;
};
pci@14,1 {
interrupt-parent = <0x7fe2ffa8>;
interrupts = <0x09 0x01>;
device_type = "pci";
vendor-id = <0x1002>;
device-id = <0x438c>;
revision-id = <0x00>;
class-code = <0x10183>;
reg = <0x5a100 0x00 0x00 0x00 0x00 0x105a110 0x00 0x00 0x00 0x08 0x105a114 0x00 0x00 0x00 0x04 0x105a118 0x00 0x00 0x00 0x08 0x105a11c 0x00 0x00 0x00 0x04 0x105a120 0x00 0x00 0x00 0x10>;
assigned-addresses = <0x8105a110 0x00 0x1030 0x00 0x08 0x8105a114 0x00 0x1054 0x00 0x04 0x8105a118 0x00 0x1038 0x00 0x08 0x8105a11c 0x00 0x1050 0x00 0x04 0x8105a120 0x00 0x1000 0x00 0x10>;
phandle = <0x7fe3c108>;
};
pci@14,2 {
interrupt-parent = <0x7fe2ffa8>;
interrupts = <0x09 0x01>;
device_type = "pci";
vendor-id = <0x1002>;
device-id = <0x4383>;
revision-id = <0x00>;
class-code = <0x40300>;
subsystem-vendor-id = <0x1888>;
subsystem-id = <0x1000>;
reg = <0x5a200 0x00 0x00 0x00 0x00 0x205a210 0x00 0x00 0x00 0x4000>;
assigned-addresses = <0x8205a210 0x00 0xa0200000 0x00 0x4000>;
phandle = <0x7fe3c598>;
};
pci@14,3 {
device_type = "pci";
vendor-id = <0x1002>;
device-id = <0x438d>;
revision-id = <0x00>;
class-code = <0x60100>;
reg = <0x5a300 0x00 0x00 0x00 0x00 0x205a310 0x00 0x00 0x00 0x100000>;
assigned-addresses = <0x8205a310 0x00 0xa0100000 0x00 0x100000>;
phandle = <0x7fe3ca38>;
};
pci@14,4 {
device_type = "pci";
vendor-id = <0x1002>;
device-id = <0x4384>;
revision-id = <0x00>;
class-code = <0x60400>;
#address-cells = <0x03>;
#size-cells = <0x02>;
#interrupt-cells = <0x01>;
bus-range = <0x06 0x06>;
reg = <0x5a400 0x00 0x00 0x00 0x00>;
ranges = <0x1000000 0x00 0x3000 0x1000000 0x00 0x3000 0x00 0x1000 0x2000000 0x00 0xa0300000 0x2000000 0x00 0xa0300000 0x00 0x100000>;
phandle = <0x7fe3cd78>;
pci@6 {
interrupt-parent = <0x7fe2ffa8>;
interrupts = <0x05 0x01>;
device_type = "pci";
vendor-id = <0x10ec>;
device-id = <0x8139>;
revision-id = <0x10>;
class-code = <0x20000>;
subsystem-vendor-id = <0x10bd>;
subsystem-id = <0x320>;
reg = <0x63000 0x00 0x00 0x00 0x00 0x1063010 0x00 0x00 0x00 0x100 0x2063014 0x00 0x00 0x00 0x100>;
assigned-addresses = <0x81063010 0x00 0x3000 0x00 0x100 0x82063014 0x00 0xa0300000 0x00 0x100>;
phandle = <0x7fe3d230>;
};
};
};
pci@10 {
device_type = "pci";
vendor-id = <0x1959>;
device-id = <0xa002>;
revision-id = <0x11>;
class-code = <0x60400>;
#address-cells = <0x03>;
#size-cells = <0x02>;
#interrupt-cells = <0x01>;
bus-range = <0x01 0x01>;
reg = <0x8000 0x00 0x00 0x00 0x00>;
ranges = <0x1000000 0x00 0x2000 0x1000000 0x00 0x2000 0x00 0x1000 0x2000000 0x00 0x90000000 0x2000000 0x00 0x90000000 0x00 0x10100000>;
phandle = <0x7fe37630>;
pci@0 {
device_type = "pci";
vendor-id = <0x1002>;
device-id = <0x6610>;
revision-id = <0x87>;
class-code = <0x30000>;
subsystem-vendor-id = <0x174b>;
subsystem-id = <0xe269>;
reg = <0x10000 0x00 0x00 0x00 0x00 0x42010010 0x00 0x00 0x00 0x10000000 0x2010018 0x00 0x00 0x00 0x40000 0x1010020 0x00 0x00 0x00 0x100>;
assigned-addresses = <0xc2010010 0x00 0x90000000 0x00 0x10000000 0x82010018 0x00 0xa0000000 0x00 0x40000 0x81010020 0x00 0x2000 0x00 0x100>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x30 0x01>;
phandle = <0x7fe395b0>;
};
pci@0,1 {
device_type = "pci";
vendor-id = <0x1002>;
device-id = <0xaab0>;
revision-id = <0x00>;
class-code = <0x40300>;
subsystem-vendor-id = <0x174b>;
subsystem-id = <0xaab0>;
reg = <0x10100 0x00 0x00 0x00 0x00 0x2010110 0x00 0x00 0x00 0x4000>;
assigned-addresses = <0x82010110 0x00 0xa0060000 0x00 0x4000>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x31 0x01>;
phandle = <0x7fe39aa0>;
};
};
pci@3 {
device_type = "pci";
vendor-id = <0x1959>;
device-id = <0xa00c>;
revision-id = <0x13>;
class-code = <0x80080>;
reg = <0x1800 0x00 0x00 0x00 0x00>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x54 0x01>;
phandle = <0x7fe37ae8>;
};
pci@4 {
device_type = "pci";
vendor-id = <0x1959>;
device-id = <0xa00a>;
revision-id = <0x11>;
class-code = <0x50000>;
reg = <0x2000 0x00 0x00 0x00 0x00>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x58 0x01>;
phandle = <0x7fe37e60>;
};
pci@5 {
device_type = "pci";
vendor-id = <0x1959>;
device-id = <0xa00a>;
revision-id = <0x11>;
class-code = <0x50000>;
reg = <0x2800 0x00 0x00 0x00 0x00>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x5a 0x01>;
phandle = <0x7fe381d8>;
};
pci@8 {
device_type = "pci";
vendor-id = <0x1959>;
device-id = <0xa000>;
revision-id = <0x12>;
class-code = "\0\v ";
reg = <0x4000 0x00 0x00 0x00 0x00>;
phandle = <0x7fe38550>;
};
pci@9 {
device_type = "pci";
vendor-id = <0x1959>;
device-id = <0xa000>;
revision-id = <0x12>;
class-code = "\0\v ";
reg = <0x4800 0x00 0x00 0x00 0x00>;
phandle = <0x7fe38818>;
};
pci@15 {
device_type = "pci";
vendor-id = <0x1959>;
device-id = <0xa006>;
revision-id = <0x11>;
class-code = <0x20000>;
reg = <0xa800 0x00 0x00 0x00 0x00 0x82000000 0x00 0xe00a8000 0x00 0x1000>;
assigned-addresses = <0x82000000 0x00 0xe00a8000 0x00 0x1000>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x44 0x01>;
phandle = <0x7fe38ae0>;
};
pci@1b {
device_type = "pci";
vendor-id = <0x1959>;
device-id = <0xa00b>;
revision-id = <0x11>;
class-code = <0x88000>;
reg = <0xd800 0x00 0x00 0x00 0x00>;
phandle = <0x7fe38ed0>;
};
pci@1e {
device_type = "pci";
vendor-id = <0x1959>;
device-id = <0xa008>;
revision-id = <0x12>;
class-code = <0x601ff>;
reg = <0xf000 0x00 0x00 0x00 0x00 0x100f010 0x00 0x00 0x00 0x100 0x100f014 0x00 0x00 0x00 0x100>;
assigned-addresses = <0x8100f010 0x00 0x7f0400 0x00 0x100 0x8100f014 0x00 0x7f0500 0x00 0x100>;
interrupt-parent = <0x7fe2f6e8>;
interrupts = <0x51 0x01>;
phandle = <0x7fe39198>;
};
};
cpus {
#address-cells = <0x01>;
#size-cells = <0x00>;
phandle = <0x7fe30540>;
PowerPC,PA6T@0 {
device_type = "cpu";
bus-frequency = <0x35a4e900>;
clock-frequency = <0x6b49d200>;
timebase-frequency = <0x3f940aa>;
d-cache-line-size = <0x40>;
i-cache-line-size = <0x40>;
d-cache-block-size = <0x40>;
i-cache-block-size = <0x40>;
ibm,segment-page-sizes = <0x0c 0x00 0x01 0x0c 0x00 0x0e 0x20 0x01 0x0e 0x01 0x10 0x110 0x01 0x10 0x03 0x12 0x130 0x01 0x12 0x0f 0x14 0x30 0x01 0x14 0x1f 0x18 0x100 0x01 0x18 0x00 0x1e 0x120 0x01 0x1e 0x3f>;
ibm,processor-segment-sizes = <0x1c 0x28>;
ibm,processor-page-sizes = <0x0c 0x0e 0x10 0x12 0x14 0x18 0x1e>;
64-bit;
cpu-version = <0x900102>;
general-purpose;
graphics;
d-cache-size = <0x10000>;
i-cache-size = <0x10000>;
i-cache-sets = <0x02>;
d-cache-sets = <0x02>;
reg = <0x00>;
phandle = <0x7fe30698>;
};
PowerPC,PA6T@1 {
device_type = "cpu";
bus-frequency = <0x35a4e900>;
clock-frequency = <0x6b49d200>;
timebase-frequency = <0x3f940aa>;
d-cache-line-size = <0x40>;
i-cache-line-size = <0x40>;
d-cache-block-size = <0x40>;
i-cache-block-size = <0x40>;
ibm,segment-page-sizes = <0x0c 0x00 0x01 0x0c 0x00 0x0e 0x20 0x01 0x0e 0x01 0x10 0x110 0x01 0x10 0x03 0x12 0x130 0x01 0x12 0x0f 0x14 0x30 0x01 0x14 0x1f 0x18 0x100 0x01 0x18 0x00 0x1e 0x120 0x01 0x1e 0x3f>;
ibm,processor-segment-sizes = <0x1c 0x28>;
ibm,processor-page-sizes = <0x0c 0x0e 0x10 0x12 0x14 0x18 0x1e>;
64-bit;
cpu-version = <0x900102>;
general-purpose;
graphics;
d-cache-size = <0x10000>;
i-cache-size = <0x10000>;
i-cache-sets = <0x02>;
d-cache-sets = <0x02>;
reg = <0x01>;
phandle = <0x7fe30eb0>;
};
};
memory {
device_type = "memory";
reg = <0x00 0x00 0x00 0x80000000 0x01 0x00 0x00 0x80000000>;
available = <0x00 0x00 0x00 0x7fd1d000 0x01 0x00 0x00 0x80000000>;
phandle = <0x7fe316c8>;
};
lpc@fe000000 {
device_type = "lpc";
#address-cells = <0x01>;
#size-cells = <0x01>;
reg = <0x00 0xfe000000 0x00 0x2000000>;
ranges = <0xfe000000 0x00 0xfe000000 0x2000000>;
phandle = <0x7fe34070>;
};
localbus@f0000000 {
device_type = "localbus";
compatible = "pasemi,localbus\0localbus";
#interrupt-cells = <0x02>;
#address-cells = <0x01>;
#size-cells = <0x01>;
reg = <0x00 0xf0000000 0x00 0xc000000>;
ranges = <0x00 0x00 0xf0000000 0xc000000>;
phandle = <0x7fe342e0>;
cf@1000000 {
device_type = "electra-cf";
compatible = "pasemi,chitra-cf\0pasemi,electra-cf\0electra-cf";
reg = <0x00 0x1000 0x1000000 0x1000>;
interrupts = <0x00 0x01>;
card-detect-gpio = <0x0e>;
card-vsense-gpio = <0x01>;
card-3v-gpio = <0x0a>;
card-5v-gpio = <0x0b>;
interrupt-parent = <0x7fe2f6e8>;
phandle = <0x7fe3dbc8>;
};
};
chosen {
linux,stdout-path = "/bootconsole";
bootargs = "console=tty0 root=/dev/sdb3\n";
cpu = <0x7fe30698>;
memory = <0x7fe316c8>;
sdc-interrupt-controller = <0x7fe2f6e8>;
stdin = <0x7fe35ae8>;
stdout = <0x7fe35ae8>;
phandle = <0x7fe34628>;
};
bootconsole {
device_type = "bootconsole";
phandle = <0x7fe359d8>;
};
};
Re: New kernels
Great, that the vmlinux-6.10-15 (Patched 6.10-rc6) works! Thanks a lot for testing!

Have you seen any error messages?
If not, then we could use Marc's small patch for the RC7.

Could you please post the output of dmesg from the booted vmlinux-6.10-15?
Marc needs this dmesg for solving the issue.
Many thanks for posting your dts output!
Marc preferred /sys/firmware/fdt. I don't know why but if it helps then it is good.Hypex wrote: Wed Jul 03, 2024 9:12 pm So, is using /sys/firmware/devicetree/base/options much different to using /proc/device-tree/options? I notice both contain a file list of firmware variables. Is one preferred over the other?
Re: New kernels
Hypex,
The kernel developers have released a new patch.
I patched the kernel 6.10-rc6 with this new patch:
Download of the patched kernel: vmlinux-6.10-16
Could you please test this kernel?
Thanks,
Christian
The kernel developers have released a new patch.
I patched the kernel 6.10-rc6 with this new patch:
Code: Select all
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index 462375b293e47..c94203ce65bb3 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -81,7 +81,8 @@ EXPORT_SYMBOL_GPL(of_irq_find_parent);
/*
* These interrupt controllers abuse interrupt-map for unspeakable
* reasons and rely on the core code to *ignore* it (the drivers do
- * their own parsing of the property).
+ * their own parsing of the property). The PAsemi entry covers a
+ * non-sensical interrupt-map that is better left ignored.
*
* If you think of adding to the list for something *new*, think
* again. There is a high chance that you will be sent back to the
@@ -95,6 +96,7 @@ static const char * const of_irq_imap_abusers[] = {
"fsl,ls1043a-extirq",
"fsl,ls1088a-extirq",
"renesas,rza1-irqc",
+ "pasemi,rootbus",
NULL,
};
@@ -293,20 +295,8 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq)
imaplen -= imap - oldimap;
pr_debug(" -> imaplen=%d\n", imaplen);
}
- if (!match) {
- if (intc) {
- /*
- * The PASEMI Nemo is a known offender, so
- * let's only warn for anyone else.
- */
- WARN(!IS_ENABLED(CONFIG_PPC_PASEMI),
- "%pOF interrupt-map failed, using interrupt-controller\n",
- ipar);
- return 0;
- }
-
+ if (!match)
goto fail;
- }
/*
* Successfully parsed an interrupt-map translation; copy new
Download of the patched kernel: vmlinux-6.10-16
Could you please test this kernel?
Thanks,
Christian
Re: New kernels
Hypex,
Michael Ellerman has also released a new patch.
I patched the kernel 6.10-rc6 with his new patch:
Download of the patched kernel: vmlinux-6.10-17
Could you please test this kernel?
Thanks,
Christian
Michael Ellerman has also released a new patch.
I patched the kernel 6.10-rc6 with his new patch:
Code: Select all
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index fbb68fc28ed3..965d58c54fab 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -3123,6 +3123,7 @@ static void __init fixup_device_tree_pasemi(void)
u32 interrupts[2], parent, rval, val = 0;
char *name, *pci_name;
phandle iob, node;
+ int rc;
/* Find the root pci node */
name = "/pxp@0,e0000000";
@@ -3138,6 +3139,14 @@ static void __init fixup_device_tree_pasemi(void)
prom_setprop(iob, name, "interrupt-controller", &val, 0);
+ prom_printf("nemo: deleting interrupt-map properties\n");
+ rc = call_prom("interpret", 1, 1,
+ " s\" /pxp@0,e0000000\" find-device"
+ " s\" interrupt-map\" delete-property"
+ " s\" interrupt-map-mask\" delete-property"
+ " device-end");
+ prom_printf("nemo: interpret returned %d\n", rc);
+
pci_name = "/pxp@0,e0000000/pci@11";
node = call_prom("finddevice", 1, 1, ADDR(pci_name));
parent = ADDR(iob);
Download of the patched kernel: vmlinux-6.10-17
Could you please test this kernel?
Thanks,
Christian
Re: New kernels
Hi. Sorry quick response. I meant to say the linux-image-6.10-rc6-X1000_X5000.tar.gz you built works.
I tested the vmlinux-6.10-15 after and that broke. I tried to test the vmlinux-6.10-16 following and my system had an issue booting it. It stalled and at one point CFE dropped back to CLI so I think it's at my end.
The vmlinux-6.10-15 ended up in sata errors and kernel panic with no root. So worse than the lightdm broken one. Do you still need a dmesg?
If the initramfs can give me one I can save I can do that.
I tested the vmlinux-6.10-15 after and that broke. I tried to test the vmlinux-6.10-16 following and my system had an issue booting it. It stalled and at one point CFE dropped back to CLI so I think it's at my end.
The vmlinux-6.10-15 ended up in sata errors and kernel panic with no root. So worse than the lightdm broken one. Do you still need a dmesg?
If the initramfs can give me one I can save I can do that.
Re: New kernels
Hypex,
Thanks a lot for testing.
Have you also tested the vmlinux-6.10-17? It is patched with Michael‘s patch.
I have reported your results to the kernel developers.
Link: [PowerPC] [PASEMI] Issue with the identification of ATA drives after the of/irq updates 2024-05-29
Thanks,
Christian
Thanks a lot for testing.
Have you also tested the vmlinux-6.10-17? It is patched with Michael‘s patch.
I have reported your results to the kernel developers.
Link: [PowerPC] [PASEMI] Issue with the identification of ATA drives after the of/irq updates 2024-05-29
Thanks,
Christian