Flameman/sgi

For more interesting projects done by Flameman, be sure to check out his project index

= machine =

add on board support
note: if you inclide the gfx framebuffer support in the kernel, then you CAN NOT boot with missing gfx hw board! The kernel is expecting to find it, if it is missing it will panic!

Suggestion: do not include the framebuffer, use uart console only

add on board support
about sgi o2

fuel
linux is not running yet, but OpenBSD is going to run

last kernel 2.6.29
Option? 5 Command Monitor. Type "exit" to return to the menu. >> bootp: Setting $netaddr to 192.168.1.3 (from server ) Obtaining from server 13597184+304112 entry: 0xa800000020009cd0 - dead -

It does not work on 2xR12K@400Mhz, it boots on 1xR12K system

dmesg
version 2.6.29.1-mipsgit-20090324-sgi-octane2-1xR12K compiled with gcc version 4.3.5 (Gentoo 4.3.5 p1.1) ) 1 SMP PREEMPT Tue Jul 23 05:12:44 CEST 2013

ARCH: SGI-IP30 PROMLIB: ARC firmware Version 64 Revision 0 CPU revision is: 00000e35 (R12000) FPU revision is: 00000900 Checking for the multiply/shift bug... no. Checking for the daddiu bug... no. Silicon Graphics Octane (IP30) support: (c) 2004-2007 Stanislaw Skowronek. Detected 1280 MB of physical memory. Updating PROM memory size. xtalk: Detected XBow (revision 2.0) at 0. xtalk: Detected Heart (revision F) at 8. xtalk: Detected HQ4 / ImpactSR (revision B) at 10. xtalk: Detected Buzz / Odyssey (revision B) at 11. xtalk: Detected Bridge (revision D) at 15. BRIDGE chip at xtalk:15, initializing... registering PCI controller with io_map_base unset Determined physical RAM map: memory: 0000000000004000 @ 0000000000000000 (reserved) memory: 0000000000d44000 @ 0000000020004000 (reserved) memory: 00000000001b8000 @ 0000000020d48000 (usable) memory: 0000000000100000 @ 0000000020f00000 (ROM data) memory: 000000003f000000 @ 0000000021000000 (usable) memory: 0000000010000000 @ 0000000060000000 (reserved) memory: 0000000010000000 @ 0000000060000000 (usable) Wasting 7530432 bytes for tracking 134472 unused pages Initrd not found or empty - disabling initrd Zone PFN ranges: DMA     0x00000000 -> 0x000a0000 Normal  0x000a0000 -> 0x000a0000 Movable zone start PFN for each node early_node_map[2] active PFN ranges 0: 0x00000000 -> 0x00000004 0: 0x00020004 -> 0x00070000 On node 0 totalpages: 327680 free_area_init_node: node 0, pgdat a8000000204cb080, node_mem_map a800000021000000 DMA zone: 6272 pages used for memmap DMA zone: 0 pages reserved DMA zone: 321408 pages, LIFO batch:31 Detected 1 enabled CPU(s). Built 1 zonelists in Zone order, mobility grouping on. Total pages: 321408 Kernel command line: ip=on console=ttyS0,9600 rdinit=/sbin/init init=/bin/bash Primary instruction cache 32kB, VIPT, 2-way, linesize 64 bytes. Primary data cache 32kB, 2-way, VIPT, no aliases, linesize 32 bytes Unified secondary cache 2048kB 2-way, linesize 128 bytes. IP30: interrupt controller initialized. PID hash table entries: 4096 (order: 12, 32768 bytes) IP30: initializing timer. 400 MHz CPU detected start_kernel: bug: interrupts were enabled early Console: colour dummy device 80x25 Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes) Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes) Memory: 1267076k/1296096k available (3708k kernel code, 28276k reserved, 1215k data, 8360k init, 0k highmem) Calibrating delay loop... 618.49 BogoMIPS (lpj=309248) Mount-cache hash table entries: 256 Checking for the daddi bug... no. Brought up 1 CPUs net_namespace: 560 bytes NET: Registered protocol family 16 bio: create slab  at 0 SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb pci 0000:00:00.0: reg 10 io port: [0x200000-0x2000ff] pci 0000:00:00.0: reg 14 32bit mmio: [0x200000-0x200fff] pci 0000:00:00.0: reg 30 32bit mmio: [0x210000-0x21ffff] pci 0000:00:01.0: reg 10 io port: [0x400000-0x4000ff] pci 0000:00:01.0: reg 14 32bit mmio: [0x400000-0x400fff] pci 0000:00:01.0: reg 30 32bit mmio: [0x410000-0x41ffff] pci 0000:00:02.0: reg 10 32bit mmio: [0x500000-0x5fffff] pci 0000:00:03.0: reg 10 32bit mmio: [0x600000-0x601fff] IP30: HEART ATTACK! Caught errors: 0x0040! interrupt #63 interrupt #57 Switched to high resolution mode on CPU 0 NET: Registered protocol family 2 IP route cache hash table entries: 65536 (order: 7, 524288 bytes) TCP established hash table entries: 262144 (order: 10, 4194304 bytes) TCP bind hash table entries: 65536 (order: 8, 1048576 bytes) TCP: Hash tables configured (established 262144 bind 65536) TCP reno registered NET: Registered protocol family 1 squashfs: version 4.0 (2009/01/31) Phillip Lougher EFS: 1.0a - http://aeschi.ch.eu.org/efs/ msgmni has been set to 2476 alg: No test for stdrng (krng) io scheduler noop registered io scheduler deadline registered (default) pci_hotplug: PCI Hot Plug PCI Core version: 0.5 Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled loop: module loaded qla1280: QLA1040 found on PCI bus 0, dev 0 BRIDGE: IO #0, size 0x100 for little-endian 0000:00:00.0 --> direct I/O at bus 0x01000000 vma 0x000000f101000000 BRIDGE: Memory #1, size 0x1000 for little-endian 0000:00:00.0 --> direct 32-bit at bus 0x01000000 vma 0x000000f041000000 BRIDGE: Memory #6, size 0x10000 for little-endian 0000:00:00.0 --> direct 32-bit at bus 0x01010000 vma 0x000000f041010000 PCI: Enabling device 0000:00:00.0 (0006 -> 0007) scsi(0:0): Resetting SCSI BUS scsi0 : QLogic QLA1040 PCI to SCSI Host Adapter Firmware version: 7.65.06, Driver version 3.26 qla1280: QLA1040 found on PCI bus 0, dev 1 BRIDGE: IO #0, size 0x100 for little-endian 0000:00:01.0 --> direct I/O at bus 0x01000100 vma 0x000000f101000100 BRIDGE: Memory #1, size 0x1000 for little-endian 0000:00:01.0 --> direct 32-bit at bus 0x01020000 vma 0x000000f041020000 BRIDGE: Memory #6, size 0x10000 for little-endian 0000:00:01.0 --> direct 32-bit at bus 0x01030000 vma 0x000000f041030000 PCI: Enabling device 0000:00:01.0 (0006 -> 0007) scsi(1:0): Resetting SCSI BUS scsi1 : QLogic QLA1040 PCI to SCSI Host Adapter Firmware version: 7.65.06, Driver version 3.26 st: Version 20081215, fixed bufsize 32768, s/g segs 256 Driver 'st' needs updating - please use bus_type methods Driver 'sd' needs updating - please use bus_type methods Driver 'sr' needs updating - please use bus_type methods usbmon: debugfs is not available ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci_hcd: block sizes: qh 160 qtd 96 itd 192 sitd 96 uhci_hcd: USB Universal Host Controller Interface driver usbcore: registered new interface driver usbserial usbserial: USB Serial Driver core USB Serial support registered for pl2303 usbcore: registered new interface driver pl2303 pl2303: Prolific PL2303 USB to serial adaptor driver mice: PS/2 mouse device common for all mice usbcore: registered new interface driver usbhid usbhid: v2.6:USB HID core driver Advanced Linux Sound Architecture Driver Version 1.0.18a. BRIDGE: Memory #0, size 0x2000 for little-endian 0000:00:03.0 --> direct 32-bit at bus 0x01040000 vma 0x000000f041040000 ALSA device list: #0: SGI RAD Audio at 0xf041040000 BRIDGE: Memory #0, size 0x100000 for little-endian 0000:00:02.0 --> direct 32-bit at bus 0x01100000 vma 0x000000f041100000 IOC3 part: [030-0891-003], serial: [MBX420] => class IP30 system BUG: scheduling while atomic: swapper/1/0x00000002 Modules linked in: Call Trace: [ ] dump_stack+0x8/0x48 [ ] schedule+0x510/0x9f0 [ ] schedule_timeout+0x110/0x170 [ ] wait_for_common+0x164/0x190 [ ] call_usermodehelper_exec+0x94/0xc8 [ ] kobject_uevent_env+0x4f8/0x530 [ ] device_add+0x5e4/0x740 [ ] device_create_vargs+0x100/0x118 [ ] device_create+0x24/0x30 [ ] misc_register+0x160/0x268 [ ] ioc3led_probe+0x6c/0x1e0 [ ] ioc3_probe+0x5ac/0xdc0 [ ] local_pci_probe+0x1c/0x28 [ ] pci_device_probe+0x84/0xb0 [ ] driver_probe_device+0xdc/0x278 [ ] __driver_attach+0xa8/0xb0 [ ] bus_for_each_dev+0x60/0xc8 [ ] bus_add_driver+0x2a0/0x388 [ ] driver_register+0x84/0x190 [ ] __pci_register_driver+0x60/0xe0 [ ] __kprobes_text_end+0x48/0x1e8 [ ] kernel_init+0x298/0x348 [ ] kernel_thread_helper+0x10/0x18

BUG: scheduling while atomic: swapper/1/0x00000002 Modules linked in: Call Trace: [ ] dump_stack+0x8/0x48 [ ] schedule+0x510/0x9f0 [ ] schedule_timeout+0x110/0x170 [ ] wait_for_common+0x164/0x190 [ ] call_usermodehelper_exec+0x94/0xc8 [ ] kobject_uevent_env+0x4f8/0x530 [ ] device_add+0x5e4/0x740 [ ] device_create_vargs+0x100/0x118 [ ] device_create+0x24/0x30 [ ] misc_register+0x160/0x268 [ ] ioc3rtc_probe+0x74/0x260 [ ] ioc3_probe+0x5ac/0xdc0 [ ] local_pci_probe+0x1c/0x28 [ ] pci_device_probe+0x84/0xb0 [ ] driver_probe_device+0xdc/0x278 [ ] __driver_attach+0xa8/0xb0 [ ] bus_for_each_dev+0x60/0xc8 [ ] bus_add_driver+0x2a0/0x388 [ ] driver_register+0x84/0x190 [ ] __pci_register_driver+0x60/0xe0 [ ] __kprobes_text_end+0x48/0x1e8 [ ] kernel_init+0x298/0x348 [ ] kernel_thread_helper+0x10/0x18

BUG: scheduling while atomic: swapper/1/0x00000002 Modules linked in: Call Trace: [ ] dump_stack+0x8/0x48 [ ] schedule+0x510/0x9f0 [ ] schedule_timeout+0x110/0x170 [ ] wait_for_common+0x164/0x190 [ ] call_usermodehelper_exec+0x94/0xc8 [ ] kobject_uevent_env+0x4f8/0x530 [ ] device_del+0x164/0x1c0 [ ] device_unregister+0x14/0x28 [ ] device_destroy+0x4c/0x60 [ ] uart_remove_one_port+0xbc/0x150 [ ] serial8250_register_port+0x12c/0x360 [ ] ioc3uart_probe+0x178/0x1f8 [ ] ioc3_probe+0x5ac/0xdc0 [ ] local_pci_probe+0x1c/0x28 [ ] pci_device_probe+0x84/0xb0 [ ] driver_probe_device+0xdc/0x278 [ ] __driver_attach+0xa8/0xb0 [ ] bus_for_each_dev+0x60/0xc8 [ ] bus_add_driver+0x2a0/0x388 [ ] driver_register+0x84/0x190 [ ] __pci_register_driver+0x60/0xe0 [ ] __kprobes_text_end+0x48/0x1e8 [ ] kernel_init+0x298/0x348 [ ] kernel_thread_helper+0x10/0x18

0000:00:02.0: ttyS0 at IOC3 0xf041120178 (irq = 64) is a 16550A console [ttyS0] enabled BUG: scheduling while atomic: swapper/1/0x00000002 Modules linked in: Call Trace: [ ] dump_stack+0x8/0x48 [ ] schedule+0x510/0x9f0 [ ] schedule_timeout+0x110/0x170 [ ] wait_for_common+0x164/0x190 [ ] call_usermodehelper_exec+0x94/0xc8 [ ] kobject_uevent_env+0x4f8/0x530 [ ] device_add+0x5e4/0x740 [ ] device_create_vargs+0x100/0x118 [ ] device_create+0x24/0x30 [ ] tty_register_device+0x114/0x170 [ ] uart_add_one_port+0x1e4/0x4e0 [ ] serial8250_register_port+0x1d0/0x360 [ ] ioc3uart_probe+0x178/0x1f8 [ ] ioc3_probe+0x5ac/0xdc0 [ ] local_pci_probe+0x1c/0x28 [ ] pci_device_probe+0x84/0xb0 [ ] driver_probe_device+0xdc/0x278 [ ] __driver_attach+0xa8/0xb0 [ ] bus_for_each_dev+0x60/0xc8 [ ] bus_add_driver+0x2a0/0x388 [ ] driver_register+0x84/0x190 [ ] __pci_register_driver+0x60/0xe0 [ ] __kprobes_text_end+0x48/0x1e8 [ ] kernel_init+0x298/0x348 [ ] kernel_thread_helper+0x10/0x18

BUG: scheduling while atomic: swapper/1/0x00000002 Modules linked in: Call Trace: [ ] dump_stack+0x8/0x48 [ ] schedule+0x510/0x9f0 [ ] schedule_timeout+0x110/0x170 [ ] wait_for_common+0x164/0x190 [ ] call_usermodehelper_exec+0x94/0xc8 [ ] kobject_uevent_env+0x4f8/0x530 [ ] device_del+0x164/0x1c0 [ ] device_unregister+0x14/0x28 [ ] device_destroy+0x4c/0x60 [ ] uart_remove_one_port+0xbc/0x150 [ ] serial8250_register_port+0x12c/0x360 [ ] ioc3uart_probe+0x198/0x1f8 [ ] ioc3_probe+0x5ac/0xdc0 [ ] local_pci_probe+0x1c/0x28 [ ] pci_device_probe+0x84/0xb0 [ ] driver_probe_device+0xdc/0x278 [ ] __driver_attach+0xa8/0xb0 [ ] bus_for_each_dev+0x60/0xc8 [ ] bus_add_driver+0x2a0/0x388 [ ] driver_register+0x84/0x190 [ ] __pci_register_driver+0x60/0xe0 [ ] __kprobes_text_end+0x48/0x1e8 [ ] kernel_init+0x298/0x348 [ ] kernel_thread_helper+0x10/0x18

0000:00:02.0: ttyS1 at IOC3 0xf041120170 (irq = 64) is a 16550A BUG: scheduling while atomic: swapper/1/0x00000002 Modules linked in: Call Trace: [ ] dump_stack+0x8/0x48 [ ] schedule+0x510/0x9f0 [ ] schedule_timeout+0x110/0x170 [ ] wait_for_common+0x164/0x190 [ ] call_usermodehelper_exec+0x94/0xc8 [ ] kobject_uevent_env+0x4f8/0x530 [ ] device_add+0x5e4/0x740 [ ] device_create_vargs+0x100/0x118 [ ] device_create+0x24/0x30 [ ] tty_register_device+0x114/0x170 [ ] uart_add_one_port+0x1e4/0x4e0 [ ] serial8250_register_port+0x1d0/0x360 [ ] ioc3uart_probe+0x198/0x1f8 [ ] ioc3_probe+0x5ac/0xdc0 [ ] local_pci_probe+0x1c/0x28 [ ] pci_device_probe+0x84/0xb0 [ ] driver_probe_device+0xdc/0x278 [ ] __driver_attach+0xa8/0xb0 [ ] bus_for_each_dev+0x60/0xc8 [ ] bus_add_driver+0x2a0/0x388 [ ] driver_register+0x84/0x190 [ ] __pci_register_driver+0x60/0xe0 [ ] __kprobes_text_end+0x48/0x1e8 [ ] kernel_init+0x298/0x348 [ ] kernel_thread_helper+0x10/0x18

Ethernet address is 08:00:69:13:a8:d1. eth0 (SGI IOC3): not using net_device_ops yet BUG: scheduling while atomic: swapper/1/0x00000002 Modules linked in: Call Trace: [ ] dump_stack+0x8/0x48 [ ] schedule+0x510/0x9f0 [ ] schedule_timeout+0x110/0x170 [ ] wait_for_common+0x164/0x190 [ ] call_usermodehelper_exec+0x94/0xc8 [ ] kobject_uevent_env+0x4f8/0x530 [ ] device_add+0x5e4/0x740 [ ] register_netdevice+0x400/0x608 [ ] register_netdev+0x44/0x68 [ ] ioc3eth_probe+0x358/0x518 [ ] ioc3_probe+0x5ac/0xdc0 [ ] local_pci_probe+0x1c/0x28 [ ] pci_device_probe+0x84/0xb0 [ ] driver_probe_device+0xdc/0x278 [ ] __driver_attach+0xa8/0xb0 [ ] bus_for_each_dev+0x60/0xc8 [ ] bus_add_driver+0x2a0/0x388 [ ] driver_register+0x84/0x190 [ ] __pci_register_driver+0x60/0xe0 [ ] __kprobes_text_end+0x48/0x1e8 [ ] kernel_init+0x298/0x348 [ ] kernel_thread_helper+0x10/0x18

eth0: link up, 100Mbps, full-duplex, lpa 0x05E1 eth0: Using PHY 1, vendor 0x15f42, model 2, rev 3. eth0: IOC3 SSRAM has 128 kbyte. IOC3 Master Driver loaded for 0000:00:02.0 atkbd.c: keyboard reset failed on ioc3/serio0kbd atkbd.c: keyboard reset failed on ioc3/serio0aux TCP cubic registered NET: Registered protocol family 17 Freeing prom memory: 1024k freed Freeing unused kernel memory: 8360k freed

bash

last working kernel 2.6.17
kernel 2.6.17, we are stopped at the year 2006, running a 2008 stage3 rootfs, and this is the kernel support status

* Things to keep in mind when building a kernel for an SGI Octane: * 	- Impact (MGRAS) console and X driver work, please report any bugs. * 	- VPro (Odyssey) console works, but no X driver exists yet. * 	- PCI Card Cages should work for many devices, except certain types like * 	 PCI-to-PCI bridges (USB hubs, USB flash card readers for example). * 	- Do not use OHCI-based USB cards in Octane. They're broke on this machine. * 	 Patches are welcome to fix the issue. * 	- Equally, UHCI Cards are showing issues in this release, but should still * 	 function somewhat. This issue manifests itself when using pl2303 USB->Serial * 	 adapters. * 	- Other XIO-based devices like MENET and various Impact addons remain * 	 untested and are not guaranteed to work. This applies to various * 	 digital video conversion boards as well.

* Applying patch-2.6.29.1.patch (-p1) ... [ ok ] * Applying mipsgit-2.6.29-20090324.diff.patch (-p1) ... [ ok ]

>>> Unpacking mips-sources-2.6.29-patches-v3.tar.bz2 to /var/tmp/portage/sys-kernel/mips-sources-2.6.29.1/work * Applying 1001_2.6.28-ip22-vino-64bit-ioctl-fixes.patch ... [ ok ] * Applying 2001_2.6.11-ip32-mace-is-always-eth0.patch ... [ ok ] * Applying 2002_2.6.24-ip32-rm7k-l3-support.patch ... [ ok ] * Applying 4001_2.6.28-ths-mips-tweaks.patch ... [ ok ] * Applying 4002_2.6.23-seccomp-no-default.patch ... [ ok ] * Applying 4003_2.6.11-add-byteorder-to-proc.patch ... [ ok ] * Applying 4004_2.6.28-enable-old-rtc-drivers.patch ... [ ok ] * Applying 4005_2.6.28-disable-format-security.patch ... [ ok ] * Applying 4006_2.6.29-ext4-automatically-allocate-delay-allocated-blocks-on-rename.patch ... [ ok ] * Applying 4007_2.6.29-ext4-automatically-allocate-delay-allocated-blocks-on-close.patch ... [ ok ] * Applying 4008_2.6.29-ext4-add-EXT4_IOC_ALLOC_DA_BLKS-ioctl.patch ... [ ok ] * Applying 4009_2.6.29-ext4-fix-discard-of-inode-prealloc-space-with-delayed-allocation.patch ... [ ok ] * Applying 5011_2.6.29-ioc3-metadriver-r27.patch ... [ ok ] * Applying 5012_2.6.22-ioc3-revert_commit_691cd0c.patch ... [ ok ] * Applying 5041_2.6.29-ip30-octane-support-r28.patch ... [ ok ] * Applying 8001_2.6.29-o32-fix-sys_llseek.patch ... [ ok ]

add on board support
What is the state of hardware support on this machine?


 * V6, V8 gfx: X11 support doesn't exist, and likely won't for a very long while. Stan (the IP30 Port Author) recently got console mode running on this card, but from what I understand, this is a rather complex piece of video hardware. Remote X works, however.
 * Impact gfx: X11 is working
 * Onboard sound works well enough from what I hear. I tested several MP3s from console via mpg123, and they worked well. A new patch coming out next week (Jul 23-24) will enable support for the optical inputs/outputs for AES (ADAT capabilities will not be supported).
 * Onboard Scsi works like a charm. It wasn't entirely usable about 3 weeks ago due to reliance on the old qlogicisp driver, but with some very recent fixes to qla1280, it has replaced qlogicisp. I now run a RAID5 array using 3 50G seagate drives on my Octane, and so far, everything works great (and hdparm reports ~17.4MB/s throughput).
 * Onboard Ethernet works fine too. The IOC3 driver was recently re-written to make IOC3 more of a Bus device with peripherals hanging off of it, which makes IOC3 less of a nightmare device from a coder's standpoint (but not by much).

boot examples

 * booting openbsd

= XFS support by SGI =


 * project

= dual boot, idea =

It should be possible if you set up IRIX as per normal and leave space on the drive for Linux. Install Linux as per the guide except when you get to set up the PROM. you'll want to leave that as is. Then you'd set up arcload to boot up Linux on demand.


 * To boot IRIX, just switch the machine on.
 * To boot Linux, drop to the monitor prompt and run boot -f arcload.

= interesting url =


 * mirrorservice