Skip to content

Instantly share code, notes, and snippets.

@FlorianHeigl
Last active July 23, 2025 13:28
Show Gist options
  • Save FlorianHeigl/a1a1615a0a209018485dfa8d743c30cd to your computer and use it in GitHub Desktop.
Save FlorianHeigl/a1a1615a0a209018485dfa8d743c30cd to your computer and use it in GitHub Desktop.
Cavium LiquidIO II / CN2360, NIC225E, CN7322 Device Tree
/dts-v1/;
/ {
#address-cells = < 0x02 >;
#size-cells = < 0x02 >;
compatible = "cavium,nic225e";
interrupt-parent = < 0x01 >;
model = "cavium,nic225e";
memory {
device_type = "memory";
reg = < 0x00 0x00 0x00 0x10000000 0x00 0x20000000 0x01 0xf0000000 >;
};
soc@0 {
#address-cells = < 0x02 >;
#size-cells = < 0x02 >;
compatible = "simple-bus";
interrupt-parent = < 0x01 >;
ranges;
bootbus@1180000000000 {
#address-cells = < 0x02 >;
#size-cells = < 0x01 >;
compatible = "cavium,octeon-3860-bootbus";
ranges = < 0x00 0x00 0x00 0x1fb00000 0x500000 0x01 0x00 0x10000 0x10000000 0x00 0x02 0x00 0x10000 0x20000000 0x00 0x03 0x00 0x10000 0x30000000 0x00 0x04 0x00 0x10000 0x40000000 0x00 0x05 0x00 0x10000 0x50000000 0x00 0x06 0x00 0x10000 0x60000000 0x00 0x07 0x00 0x10000 0x70000000 0x00 >;
reg = < 0x11800 0x00 0x00 0x200 >;
cavium,cs-config@0 {
cavium,bus-width = < 0x08 >;
cavium,cs-index = < 0x00 >;
cavium,page-mode = < 0x00 >;
cavium,pages = < 0x00 >;
cavium,t-adr = < 0x00 >;
cavium,t-ce = < 0x2d >;
cavium,t-oe = < 0x23 >;
cavium,t-page = < 0x19 >;
cavium,t-pause = < 0x23 >;
cavium,t-rd-dly = < 0x00 >;
cavium,t-rd-hld = < 0x05 >;
cavium,t-wait = < 0x3c >;
cavium,t-we = < 0x23 >;
cavium,t-wr-hld = < 0x00 >;
compatible = "cavium,octeon-3860-bootbus-config";
};
nor@0,0 {
#address-cells = < 0x01 >;
#size-cells = < 0x01 >;
compatible = "cfi-flash";
reg = < 0x00 0x00 0x100000 >;
partition@0 {
label = "boot";
reg = < 0x00 0x10000 >;
};
partition@10000 {
label = "optionrom";
read-only;
reg = < 0x10000 0x10000 >;
};
partition@20000 {
label = "storage";
reg = < 0x20000 0xe0000 >;
};
};
};
ethernet-mac-nexus@11800 {
#address-cells = < 0x01 >;
#size-cells = < 0x00 >;
compatible = "cavium,octeon-7890-bgx";
reg = < 0x11800 0xe1000000 0x00 0x1000000 >;
ethernet-mac@0 {
cavium,activity-poll-interval-ms = < 0xfa >;
cavium,link-poll-interval-ms = < 0x3e8 >;
cavium,link-status-led = < 0x06 >;
cavium,mod_abs = < 0x16 0x00 >;
cavium,mod_abs_parent = < 0x02 >;
cavium,rx-activity-blink-rate = < 0x04 >;
cavium,rx-activity-led = < 0x07 >;
cavium,rx-los = < 0x02 0x17 0x00 >;
cavium,rx-timer = < 0x03 >;
cavium,tx-disable = < 0x02 0x15 0x00 >;
cavium,tx-fault = < 0x02 0x18 0x00 >;
compatible = "cavium,octeon-7890-bgx-port";
linux,phandle = < 0x0a >;
local-mac-address = [ 00 0f b7 c9 09 c5 ];
phandle = < 0x0a >;
reg = < 0x00 >;
sfp-slot = < 0x08 >;
};
};
ethernet-mac-nexus@11800e0000000 {
#address-cells = < 0x01 >;
#size-cells = < 0x00 >;
compatible = "cavium,octeon-7890-bgx";
reg = < 0x11800 0xe0000000 0x00 0x1000000 >;
ethernet-mac@0 {
cavium,activity-poll-interval-ms = < 0xfa >;
cavium,link-poll-interval-ms = < 0x3e8 >;
cavium,link-status-led = < 0x03 >;
cavium,mod_abs = < 0x11 0x00 >;
cavium,mod_abs_parent = < 0x02 >;
cavium,rx-activity-blink-rate = < 0x04 >;
cavium,rx-activity-led = < 0x04 >;
cavium,rx-los = < 0x02 0x12 0x00 >;
cavium,rx-timer = < 0x03 >;
cavium,tx-disable = < 0x02 0x10 0x00 >;
cavium,tx-fault = < 0x02 0x13 0x00 >;
compatible = "cavium,octeon-7890-bgx-port";
linux,phandle = < 0x09 >;
local-mac-address = [ 00 0f b7 c9 09 c4 ];
phandle = < 0x09 >;
reg = < 0x00 >;
sfp-slot = < 0x05 >;
};
};
gpio-controller@1070000000800 {
#gpio-cells = < 0x02 >;
#interrupt-cells = < 0x02 >;
compatible = "cavium,octeon-7890-gpio";
gpio-controller;
interrupt-controller;
interrupts = < 0x3000 0x04 0x3001 0x04 0x3002 0x04 0x3003 0x04 0x3004 0x04 0x3005 0x04 0x3006 0x04 0x3007 0x04 0x3008 0x04 0x3009 0x04 0x300a 0x04 0x300b 0x04 0x300c 0x04 0x300d 0x04 0x300e 0x04 0x300f 0x04 >;
linux,phandle = < 0x02 >;
phandle = < 0x02 >;
reg = < 0x10700 0x800 0x00 0x100 >;
};
i2c@1180000001000 {
#address-cells = < 0x01 >;
#size-cells = < 0x00 >;
clock-frequency = < 0x186a0 >;
compatible = "cavium,octeon-7890-twsi";
interrupts = < 0xb000 0x01 0xb001 0x01 0xb002 0x01 >;
reg = < 0x11800 0x1000 0x00 0x200 >;
eeprom@50 {
compatible = "atmel,24c01";
linux,phandle = < 0x0d >;
phandle = < 0x0d >;
reg = < 0x50 >;
};
eeprom@51 {
compatible = "atmel,24c01";
linux,phandle = < 0x0e >;
phandle = < 0x0e >;
reg = < 0x51 >;
};
phy@47 {
compatible = "avago,avsp-5410";
interrupt-parent = < 0x02 >;
interrupts = < 0x06 0x08 >;
reg = < 0x47 >;
sfp-mac = < 0x09 >;
};
phy@4e {
compatible = "avago,avsp-5410";
interrupt-parent = < 0x02 >;
interrupts = < 0x06 0x08 >;
reg = < 0x4e >;
sfp-mac = < 0x0a >;
};
tlv-eeprom@56 {
compatible = "atmel,24c256";
pagesize = < 0x40 >;
reg = < 0x56 >;
};
tmp@4c {
compatible = "nxp,sa56004";
interrupt-parent = < 0x02 >;
interrupts = < 0x0a 0x08 >;
reg = < 0x4c >;
};
};
i2c@1180000001200 {
#address-cells = < 0x01 >;
#size-cells = < 0x00 >;
clock-frequency = < 0x186a0 >;
compatible = "cavium,octeon-7890-twsi";
interrupts = < 0xb100 0x01 0xb101 0x01 0xb102 0x01 >;
reg = < 0x11800 0x1200 0x00 0x200 >;
eeprom@50 {
compatible = "atmel,24c01";
linux,phandle = < 0x0b >;
phandle = < 0x0b >;
reg = < 0x50 >;
};
eeprom@51 {
compatible = "atmel,24c01";
linux,phandle = < 0x0c >;
phandle = < 0x0c >;
reg = < 0x51 >;
};
power@30 {
compatible = "mpc,mp2958";
reg = < 0x30 >;
};
};
interrupt-controller@1010000000000 {
#address-cells = < 0x00 >;
#interrupt-cells = < 0x02 >;
compatible = "cavium,octeon-7890-ciu3";
interrupt-controller;
linux,phandle = < 0x01 >;
phandle = < 0x01 >;
reg = < 0x10100 0x00 0x00 0xb0000000 >;
};
leds {
compatible = "gpio-leds";
d1 {
default-state = "keep";
gpios = < 0x02 0x01 0x00 >;
label = "d1:orange";
linux,default-trigger = "input";
};
p0_act {
gpios = < 0x02 0x03 0x00 >;
label = "port0_act";
linux,phandle = < 0x04 >;
phandle = < 0x04 >;
};
p0_link {
gpios = < 0x02 0x02 0x00 >;
label = "port0_link";
linux,phandle = < 0x03 >;
phandle = < 0x03 >;
};
p1_act {
gpios = < 0x02 0x05 0x00 >;
label = "port1_act";
linux,phandle = < 0x07 >;
phandle = < 0x07 >;
};
p1_link {
gpios = < 0x02 0x04 0x00 >;
label = "port1_link";
linux,phandle = < 0x06 >;
phandle = < 0x06 >;
};
};
mdio@1180000003800 {
#address-cells = < 0x01 >;
#size-cells = < 0x00 >;
compatible = "cavium,octeon-3860-mdio";
reg = < 0x11800 0x3800 0x00 0x40 >;
};
mdio@1180000003880 {
#address-cells = < 0x01 >;
#size-cells = < 0x00 >;
compatible = "cavium,octeon-3860-mdio";
reg = < 0x11800 0x3880 0x00 0x40 >;
};
mmc@1180000002000 {
#address-cells = < 0x01 >;
#size-cells = < 0x00 >;
compatible = "cavium,octeon-7890-mmc\0cavium,octeon-7360-mmc";
interrupts = < 0x9040 0x01 0x9041 0x01 0x9042 0x01 0x9043 0x01 0x9044 0x01 0x9045 0x01 0x9046 0x01 0x9000 0x01 0x9001 0x01 >;
power-gpios = < 0x02 0x08 0x00 >;
reg = < 0x11800 0x2000 0x00 0x100 0x11800 0x180 0x00 0x20 >;
mmc-slot@0 {
bus-width = < 0x08 >;
cavium,bus-max-width = < 0x08 >;
compatible = "cavium,octeon-6130-mmc-slot";
non-removable;
reg = < 0x00 >;
spi-max-frequency = < 0x3197500 >;
voltage-ranges = < 0xce4 0xce4 >;
};
};
ocla0@11800A8000000 {
compatible = "cavium,octeon-7130-ocla";
interrupts = < 0xa800c 0x01 0xa800d 0x01 0xa800f 0x01 >;
reg = < 0x11800 0xa8000000 0x00 0x500000 >;
};
ocla1@11800A9000000 {
compatible = "cavium,octeon-7130-ocla";
interrupts = < 0xa900c 0x01 0xa900d 0x01 0xa900f 0x01 >;
reg = < 0x11800 0xa9000000 0x00 0x500000 >;
};
ocla2@11800AA000000 {
compatible = "cavium,octeon-7130-ocla";
interrupts = < 0xaa00c 0x01 0xaa00d 0x01 0xaa00f 0x01 >;
reg = < 0x11800 0xaa000000 0x00 0x500000 >;
};
serial@1180000000800 {
clock-frequency = < 0x2faf0800 >;
compatible = "cavium,octeon-3860-uart\0ns16550";
current-speed = < 0x1c200 >;
interrupts = < 0x8000 0x04 >;
reg = < 0x11800 0x800 0x00 0x400 >;
reg-shift = < 0x03 >;
};
sfp-slot@0 {
compatible = "ethernet,sfp-slot";
diag = < 0x0c >;
eeprom = < 0x0b >;
linux,phandle = < 0x05 >;
mod_abs = < 0x02 0x11 0x00 >;
phandle = < 0x05 >;
rx_los = < 0x02 0x12 0x00 >;
tx_disable = < 0x02 0x10 0x00 >;
tx_error = < 0x02 0x13 0x00 >;
};
sfp-slot@1 {
compatible = "ethernet,sfp-slot";
diag = < 0x0e >;
eeprom = < 0x0d >;
linux,phandle = < 0x08 >;
mod_abs = < 0x02 0x16 0x00 >;
phandle = < 0x08 >;
rx_los = < 0x02 0x17 0x00 >;
tx_disable = < 0x02 0x15 0x00 >;
tx_error = < 0x02 0x18 0x00 >;
};
spi@1070000001000 {
#address-cells = < 0x01 >;
#size-cells = < 0x00 >;
compatible = "cavium,octeon-3010-spi";
interrupts = < 0x5001 0x01 >;
reg = < 0x10700 0x1000 0x00 0x100 >;
spi-max-frequency = < 0x17d7840 >;
flash@0 {
#address-cells = < 0x01 >;
#size-cells = < 0x01 >;
address-width = < 0x18 >;
compatible = "micron,mt25ql01g\0spi-flash";
erasesize = < 0x1000 >;
pagesize = < 0x100 >;
reg = < 0x00 >;
size = < 0x1000000 >;
spi-max-frequency = < 0x2625a0 >;
partition@0 {
label = "stage1-boot";
read-only;
reg = < 0x00 0xe000 >;
};
partition@1 {
label = "environment";
read-only;
reg = < 0xe000 0x2000 >;
};
partition@2 {
label = "u-boot";
read-only;
reg = < 0x10000 0x3f0000 >;
};
partition@3 {
label = "other-12MB";
reg = < 0x400000 0xc00000 >;
};
partition@4 {
label = "other-112MB";
reg = < 0x1000000 0x7000000 >;
};
};
};
uctl@118006c000000 {
#address-cells = < 0x02 >;
#size-cells = < 0x02 >;
compatible = "cavium,octeon-7130-sata-uctl";
portmap = < 0x03 >;
ranges;
reg = < 0x11800 0x6c000000 0x00 0x100 >;
staggered-spinup;
sata@16c0000000000 {
#address-cells = < 0x02 >;
#size-cells = < 0x02 >;
compatible = "cavium,octeon-7130-ahci";
interrupts = < 0x6c010 0x04 >;
reg = < 0x16c00 0x00 0x00 0x200 >;
};
};
};
};
[    0.000000] Linux version 6.12.32+bpo-octeon ([email protected]) (mips64el-linux-gnuabi6
4-gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP Debian 6.12.32
-1~bpo12+1 (2025-06-21)
[    0.000000] Skipping L2 locking due to reduced L2 cache size
[    0.000000] CVMSEG size: 1 cache lines (128 bytes)
[    0.000000] printk: legacy bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 000d9703 (Cavium Octeon III)
[    0.000000] FPU revision is: 00739700
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Reserving 0KB of memory at 18014398509481983KB for kdump
[    0.000000] Using passed Device Tree.
[    0.000000] OF: reserved mem: Reserved memory: No reserved-memory node in the DT
[    0.000000] software IO TLB: SWIOTLB bounce buffer size adjusted to 64MB
[    0.000000] software IO TLB: area num 1.
[    0.000000] software IO TLB: mapped [mem 0x000000000000e000-0x000000000400e000] (64MB)
[    0.000000] Primary instruction cache 78kB, virtually tagged, 39 way, 16 sets, linesize 128 bytes.
[    0.000000] Primary data cache 32kB, 32-way, 8 sets, linesize 128 bytes.
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000000000000-0x00000000efffffff]
[    0.000000]   Normal   [mem 0x00000000f0000000-0x000000020fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000020fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000020fffffff]
[    0.000000] percpu: Embedded 31 pages/cpu s88992 r8192 d29792 u126976
[    0.000000] Kernel command line:  rootwait=10 rw root=/dev/sda3 verbose rootfstype=ext4 panic=100 console=ttyS0,115200 initcall_blacklist=octeon_pcie_setup
[    0.000000] Unknown kernel command line parameters "verbose", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes, linear)
[    0.000000] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 2162688
[    0.000000] mem auto-init: stack:all(zero), heap alloc:on, heap free:off
[    0.000000] SLUB: HWalign=128, Order=0-3, MinObjects=0, CPUs=16, Nodes=1
[    0.000000] ftrace: allocating 35026 entries in 137 pages
[    0.000000] ftrace: allocated 137 pages with 3 groups
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=16.
[    0.000000]  Rude variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=16
[    0.000000] RCU Tasks Rude: Setting shift to 4 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=16.
[    0.000000] RCU Tasks Trace: Setting shift to 4 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=16.
[    0.000000] NR_IRQS: 512
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[  133.549090] clocksource: OCTEON_CVMCOUNT: mask: 0xffffffffffffffff max_cycles: 0x159f22938a9, max_idle_ns: 440795218881 ns
[  133.560371] Console: colour dummy device 80x25
[  133.564698] Calibrating delay loop (skipped) preset value.. 3000.00 BogoMIPS (lpj=6000000)
[  133.572901] pid_max: default: 32768 minimum: 301
[  133.579224] LSM: initializing lsm=capability,landlock,lockdown,yama,apparmor,tomoyo,bpf,ima,evm
[  133.588572] landlock: Up and running.
[  133.592076] Yama: disabled by default; enable with sysctl kernel.yama.*
[  133.598881] AppArmor: AppArmor initialized
[  133.602882] TOMOYO Linux initialized
[  133.606875] LSM support for eBPF active
[  133.611619] Mount-cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[  133.619056] Mountpoint-cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[  133.647255] Performance counters: octeon PMU enabled, 4 64-bit counters available to each CPU, irq 7
[  133.656353] rcu: Hierarchical SRCU implementation.
[  133.661005] rcu:     Max phase no-delay instances is 1000.
[  133.666413] Timer migration: 2 hierarchy levels; 8 children per group; 2 crossnode level
[  133.678380] smp: Bringing up secondary CPUs ...
[  133.686883] SMP: Booting CPU01 (CoreId  1)...
[  133.691112] CPU1 revision is: 000d9703 (Cavium Octeon III)
[  133.691121] FPU revision is: 00739700
[  133.695264] SMP: Booting CPU02 (CoreId  2)...
[...snipped...]
[  133.975852] smp: Brought up 1 node, 16 CPUs
[  134.008378] node 0 deferred pages initialised in 16ms
[  134.013306] Memory: 8392176K/8650752K available (12297K kernel code, 1892K rwdata, 3556K rodata, 3420K init, 552K bss, 249932K reserved, 0K cma-reserved)
[  134.028958] devtmpfs: initialized
[  134.034283] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[  134.043936] futex hash table entries: 4096 (order: 7, 524288 bytes, linear)
[  134.053119] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[  134.059027] audit: initializing netlink subsys (disabled)
[  134.064397] audit: type=2000 audit(0.360:1): state=initialized audit_enabled=0 res=1
[  134.064796] thermal_sys: Registered thermal governor 'fair_share'
[  134.071992] thermal_sys: Registered thermal governor 'bang_bang'
[  134.078055] thermal_sys: Registered thermal governor 'step_wise'
[  134.084042] thermal_sys: Registered thermal governor 'user_space'
[  134.113747] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[  134.120373] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[  134.135807] iommu: Default domain type: Translated
[  134.140435] iommu: DMA domain TLB invalidation policy: strict mode
[  134.146873] SCSI subsystem initialized
[  134.150741] pps_core: LinuxPPS API ver. 1 registered
[  134.155541] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
[  134.164662] PTP clock support registered
[  134.168601] EDAC MC: Ver: 3.0.0
[  134.172914] NetLabel: Initializing
[  134.176155] NetLabel:  domain hash size = 128
[  134.180486] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[  134.186187] NetLabel:  unlabeled traffic allowed by default
[  134.191891] vgaarb: loaded
[  134.194732] clocksource: Switched to clocksource OCTEON_CVMCOUNT
[  134.202263] VFS: Disk quotas dquot_6.6.0
[  134.206775] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[  134.214302] AppArmor: AppArmor Filesystem Enabled
[  134.228741] NET: Registered PF_INET protocol family
[  134.233823] IP idents hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[  134.250785] tcp_listen_portaddr_hash hash table entries: 8192 (order: 5, 131072 bytes, linear)
[  134.259355] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[  134.267111] TCP established hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[  134.276066] TCP bind hash table entries: 65536 (order: 9, 2097152 bytes, linear)
[  134.284344] TCP: Hash tables configured (established 131072 bind 65536)
[  134.291473] MPTCP token hash table entries: 16384 (order: 6, 393216 bytes, linear)
[  134.299130] UDP hash table entries: 8192 (order: 6, 262144 bytes, linear)
[  134.306015] UDP-Lite hash table entries: 8192 (order: 6, 262144 bytes, linear)
[  134.313650] NET: Registered PF_UNIX/PF_LOCAL protocol family
[  134.319181] NET: Registered PF_XDP protocol family
[  134.323930] PCI: CLS 0 bytes, default 128
[  134.329642] Initialise system trusted keyrings
[  134.334058] Key type blacklist registered
[  134.338127] workingset: timestamp_bits=46 max_order=22 bucket_order=0
[  134.344474] zbud: loaded
[  134.348062] fuse: init (API version 7.41)
[  134.352760] integrity: Platform Keyring initialized
[  134.463759] Key type asymmetric registered
[  134.467695] Asymmetric key parser 'x509' registered
[  134.475941] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[  134.483331] io scheduler mq-deadline registered
[  134.493424] ledtrig-cpu: registered to indicate activity on CPUs
[  134.499547] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[  134.506855] printk: legacy console [ttyS0] disabled
[  134.511812] 1180000000800.serial: ttyS0 at MMIO 0x1180000000800 (irq = 9, base_baud = 50000000) is a OCTEON
[  134.521426] printk: legacy console [ttyS0] enabled
[  134.521426] printk: legacy console [ttyS0] enabled
[  134.530968] printk: legacy bootconsole [early0] disabled
[  134.530968] printk: legacy bootconsole [early0] disabled
[  134.544976] Driver 'pata_octeon_cf' needs updating - please use bus_type methods
[  134.553234] spi-octeon 1070000001000.spi: OCTEON SPI bus driver
[  134.560091] mdio_octeon 1180000003800.mdio: Probed
[  134.565330] mdio_octeon 1180000003880.mdio: Probed
[  134.570514] mousedev: PS/2 mouse device common for all mice
[  134.577074] i2c-octeon 1180000001000.i2c: probed
[  134.582307] i2c-octeon 1180000001200.i2c: probed
[  134.587060] ERROR: Incompatible bootmem descriptor version: 0.0 at addr: (____ptrval____)
[  134.595267] ERROR: Incompatible bootmem descriptor version: 0.0 at addr: (____ptrval____)
[  134.603459] octeon_wdt: Error: Cannot allocate boot vector.
[  134.609927] NET: Registered PF_INET6 protocol family
[  134.617966] Segment Routing with IPv6
[  134.621691] In-situ OAM (IOAM) with IPv6
[  134.625687] mip6: Mobile IPv6
[  134.628680] NET: Registered PF_PACKET protocol family
[  134.633843] mpls_gso: MPLS GSO support
[  134.637804] Bootbus flash: Setting flash for 1MB flash at 0x1fb00000
[  134.644404] Failed to register MTD device for flash
[...]
[  134.829761] Waiting for root device /dev/sda3...
[  144.839075] VFS: Cannot open root device "/dev/sda3" or unknown-block(0,0): error -19
[  144.846931] Please append a correct "root=" boot option; here are the available partitions:
[  144.855287] List of all bdev filesystems:
[  144.859298]  fuseblk
[  144.859301]
[  144.862978] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[  144.871253] Kernel relocated by 0x(____ptrval____)
[  144.876048]  .text @ 0x(____ptrval____)
[  144.879882]  .data @ 0x(____ptrval____)
[  144.883716]  .bss  @ 0x(____ptrval____)
[  144.887552] Rebooting in 100 seconds..

@FlorianHeigl
Copy link
Author

FlorianHeigl commented Jul 23, 2025

The above device tree might need to be added to debian vmlinux-6.12.32+bpo-octeon.
Package already has other model-specific device tree blobs in /usr/lib/linux-image-6.12.32+bpo-octeon/cavium-octeon.
I suspect they need to be compiled in somewhere, along with the marvell/cavium sata drivers.

Debian Boot fails for a few reasons, primarily PCIe init (at least if there's already a valid host, idk)

[  562.427905] Call Trace:
[  562.430335] [<ffffffff83c7842c>] cvmx_pcie_rc_initialize+0xc4c/0x1074
[  562.436761] [<ffffffff8417553c>] octeon_pcie_setup+0x204/0x604

You can get past that using initcall_blacklist=octeon_pcie_setup
Sadly, there's no SATA or eMMC driver apparently, meaning you can't boot from disk at all. I think they are not just lost due to disabling PCIe init.
Network is yet untested.

The passing of the device-tree from u-boot seems to have some specific troubles on debian. maybe it just needs a mtdparts variable.
On a working proprietary kernel it would look like this:

floh@octeon:~$ dmesg |  grep -i device
[    0.000000] Using passed Device Tree <800000000fff2db0>.
[    0.000000] Using passed Device Tree.

with the deb kernel it looks like this:

=> setenv octeon_reserved_mem_linux_base 0x2000000
=> setenv octeon_reserved_mem_linux_size 0x15B23B0
=> ext2load sata 0:1 $(loadaddr) vmlinux-6.12.32+bpo-octeon
27009176 bytes read in 0 ms
=> bootoctlinux $(loadaddr) coremask=ffff endbootargs mem=8G rootwait=10 rw root=/dev/sda3 verbose rootf
stype=ext4 panic=100 console=ttyS0,115200 initcall_blacklist=octeon_pcie_setup
Allocating memory for ELF segment: addr: 0xffffffff84000000 (adjusted to: 0x4000000), size 0x153a200
## Loading little-endian Linux kernel with entry point: 0xffffffff84bf6378 ...
Bootloader: Done loading app on coremask:
 0xffff
Starting cores:
 0xffff

rest see attached dmesg-on-ttyS0.md.

A summary:

  • flash size is correct
  • mdio driver is found
  • i2c (thermal) is found
  • wdt is not found but also wasn't set up in uboot
  • sata is missing
  • emmc is missing
  • ethernet is not yet a thing
  • ptp is a thing
  • pci console not working (ttyPCI0), serial console working (ttyS0)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment