Difference between revisions of "Flameman/sgi"

From eLinux.org
Jump to: navigation, search
(last kernel 2.6.29)
(kernel status)
(47 intermediate revisions by the same user not shown)
Line 1: Line 1:
For more interesting projects done by Flameman, be sure to check out his [[Flameman#master_index|project index]]
+
For more interesting projects done by Flameman&Legacy, be sure to check out his [[Flameman#master_index|project index]]
  
 
= machine =
 
= machine =
Line 50: Line 50:
  
 
== o2 ==
 
== o2 ==
 +
=== kernel status ===
 +
 +
{| border="1" cellspacing="0" cellpadding="5" align="center"
 +
! kernel
 +
! note
 +
|-
 +
! 2.6.37-rc8
 +
! working, under testing, note1 needs to be applied
 +
|}
 +
 +
 +
* note1
 +
<pre>
 +
removing
 +
- Tickless System (Dynamic Ticks)
 +
- High Resolution Timer Support
 +
- SCSI generic support
 +
- RAID Transport Class
 +
- Verbose SCSI error reporting (kernel size +=12K)
 +
- SCSI logging facility
 +
 +
forcing
 +
- No Forced Preemption
 +
- SCSI_WAIT_SCAN compiled as builtin (it was an hidden module)
 +
</pre>
  
 
=== add on board support ===
 
=== add on board support ===
Line 63: Line 88:
  
 
[http://www.nekochan.net/wiki/SGI_O2 about sgi o2]
 
[http://www.nekochan.net/wiki/SGI_O2 about sgi o2]
 +
 +
 +
=== Known working PCI cards with IRIX ===
 +
 +
* SGI PCI Serial I/O a.k.a. PCI SIO UFC, part number 030-1657-003, Provides two RS-232/RS-422 serial ports. The board is slotted for universal voltage, but SGI only provides drivers for Onyx 300/350/3000 systems. The SGI marketing code is PCI-SER-10002.
 +
* SGI PCI Digital Audio Board <also known as the RADical Audio board>. The SGI part number for the example shown is 030-1649-001, it appears in an hinv with PCI vendor ID 0x10a9(SGI) and a device ID of 0x0005(RAD Audio):
 +
* SGI PCI Gigabit Ethernet:, 1000 Base SX (fiber optic interface) and 1000 Base T (copper interface) - shown mounted in an O2k XIO Shoehorn <a PCI-to-XIO slot adapter>: Both are keyed as 'universal' PCI cards to fit in either 3.3 or 5 volt slots.
 +
* SGI O2 10/100BaseT Network Card for O2: SGI marketing code SGI_PCI-ENET-TX-1P; part number 9210105
 +
* SGI USB PCI card, SGI part number 9210286: NEC chipset - Slotted for 3.3 and 5V PCI applications. SGI equipped Onyx 350 InfiniteReality and InfinitePerformance systems with this card as an attachment point for USB keyboards and mice. There are some references on TechPubs indicating Orange Micro as the OEM, while "UP205-0525" screened on the PCB returns Adaptec references. It appears in an hinv with a PCI vendor ID of 0x1033 (NEC) PCI device numbers 0x0035(Dual OHCI controllers plus Single EHCI controller) and 0x00e0(USB 2.0 Host Controller).
 +
* DATAFIRE PCI 1ST ISDN card SGI PN: 9210111 Came inside one O2, SGI part number 9981028 SGI
 +
 +
 +
See more here [http://www.nekochan.net/wiki/Known_working_PCI_cards_with_IRIX_(A_visual_database)]
  
 
== impact ==
 
== impact ==
Line 82: Line 120:
  
 
== octane2 ==
 
== octane2 ==
 +
 +
=== Things to keep in mind when building 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.
  
 
=== kernel status ===
 
=== kernel status ===
 +
 +
it has been tested on this machine
 +
<pre>
 +
>> hinv
 +
                  System: IP30
 +
                Processor: 400 Mhz R12000, 2M secondary cache
 +
                Processor: 400 Mhz R12000, 2M secondary cache, (cpu 1)
 +
              Memory size: 1536 Mbytes
 +
                  Network: ef0 ethernet (100/10 base-T)
 +
                    Audio: RAD Audio Processor
 +
                  PCI Bus: XTALKPCI (13)
 +
              PCI Device: slot 1 vendor 0x1033 part 0x35 rev 67
 +
                Graphics: ESI
 +
                Graphics: ODYSSEY
 +
</pre>
 +
 +
Adding/removing ESI, ODYSSEY
  
 
{| border="1" cellspacing="0" cellpadding="5" align="center"
 
{| border="1" cellspacing="0" cellpadding="5" align="center"
Line 90: Line 157:
 
|-
 
|-
 
! 2.6.17
 
! 2.6.17
! pretty stable, used in production
+
! pretty stable, used in production, 2xR12K and 2Gbyte of ram, ram should be reduced to 1.5Gb in order to use PCI, also IOC-serial-kb must be removed from the kernel
 +
|-
 +
! 2.6.19
 +
! not stable as 2.6.17, issue when executed on system with 2Gbyte of ram, PCI-cadge not working, issues with SMP
 +
|-
 +
! 2.6.20.*
 +
! may be work, not tested
 +
|-
 +
! 2.6.25
 +
! busted, stay away
 +
|-
 +
! 2.6.26
 +
! may be there is a patch, but IOC3 is hardly issued, SMP dead
 
|-
 
|-
 
! 2.6.29
 
! 2.6.29
 
! bugs in the scheduler, not booting on 2xR12K
 
! bugs in the scheduler, not booting on 2xR12K
 
|-
 
|-
 +
! 3.x.x @https://github.com/jaaron/linux-mips-ip30
 +
! system boots but IOC3 was still dead, as was SMP
 
|}
 
|}
  
 +
 +
 +
<table>
 +
<tr><td rowspan="8" bgcolor="#a0ffa0">2.6.17.4</td><td bgcolor="#a0ffa0">64-bit kernel support</td><td bgcolor="#a0ffa0">Yes</td><td bgcolor="#a0ffa0"></td></tr>
 +
<tr><td bgcolor="#a0ffa0">Memory controller support</td><td bgcolor="#a0ffa0">Yes</td><td bgcolor="#a0ffa0">support for 1.5GB</td></tr>
 +
<tr><td bgcolor="#a0ffa0">Interrupt support</td><td bgcolor="#a0ffa0">Yes</td><td bgcolor="#a0ffa0">working</td></tr>
 +
<tr><td bgcolor="#a0ffa0">SMP support</td><td bgcolor="#a0ffa0">Yes</td><td bgcolor="#a0ffa0">2xR12K</td></tr>
 +
<tr><td bgcolor="#a0ffa0">Eth0</td><td bgcolor="#a0ffa0">Yes</td><td bgcolor="#a0ffa0"></td></tr>
 +
<tr><td bgcolor="#a0ffa0">PCI expansion</td><td bgcolor="#a0ffa0">Yes</td><td bgcolor="#a0ffa0">working with USD NEC EHCI</td></tr>
 +
<tr><td bgcolor="#a0ffa0">ram rootfs</td><td bgcolor="#a0ffa0">Yes</td><td bgcolor="#a0ffa0">uclibc & glibc working</td></tr>
 +
<tr><td bgcolor="#a0ffa0">rootfs</td><td bgcolor="#a0ffa0">Yes</td><td bgcolor="#a0ffa0">2006 mips3, mips4 are working</td></tr>
 +
 +
<tr><td rowspan="8" bgcolor="#a0ffa0">2.6.29.1</td><td bgcolor="#a0ffa0">64-bit kernel support</td><td bgcolor="#a0ffa0">Yes</td><td bgcolor="#a0ffa0"></td></tr>
 +
<tr><td bgcolor="#a0ffa0">Memory controller support</td><td bgcolor="#a0ffa0">Yes</td><td bgcolor="#a0ffa0">support for 1.5GB</td></tr>
 +
<tr><td bgcolor="#ffa0a0">Interrupt support</td><td bgcolor="#ffa0a0">Yes</td><td bgcolor="#ffa0a0">not pretty working, also scheduling while atomic issue</td></tr>
 +
<tr><td bgcolor="#ffa0a0">SMP support</td><td bgcolor="#ffa0a0">Yes</td><td bgcolor="#ffa0a0">2xR12K does not boot, 1xR12K boots</td></tr>
 +
<tr><td bgcolor="#a0ffa0">Eth0</td><td bgcolor="#a0ffa0">Yes</td><td bgcolor="#a0ffa0"></td></tr>
 +
<tr><td bgcolor="#efef90">PCI expansion</td><td bgcolor="#efef90">Yes</td><td bgcolor="#efef90">not tested</td></tr>
 +
<tr><td bgcolor="#a0ffa0">ram rootfs</td><td bgcolor="#a0ffa0">Yes</td><td bgcolor="#a0ffa0">uclibc & glibc working</td></tr>
 +
<tr><td bgcolor="#a0ffa0">rootfs</td><td bgcolor="#a0ffa0">Yes</td><td bgcolor="#a0ffa0">2006 mips3, mips4 are working</td></tr>
 +
</table>
  
 
=== last kernel 2.6.29 ===
 
=== last kernel 2.6.29 ===
Line 111: Line 213:
  
 
==== dmesg ====
 
==== dmesg ====
 +
* [[Flameman/sgi/octane-dmesg#kernel-2.6.29]]
  
  
Linux version 2.6.29.1-mipsgit-20090324-sgi-octane2 (root@kika) (gcc version 4.3.5 (Gentoo 4.3.5 p1.1) ) #1 SMP PREEMPT Tue Jul 23 05:12:44 CEST 2013
+
=== last working kernel 2.6.17-r14 ===
ARCH: SGI-IP30
+
kernel 2.6.17-r14, we are stopped at the year 2006, running a 2008 stage3 rootfs
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 <bio-0> 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:
+
[<a800000020010c90>] dump_stack+0x8/0x48
+
[<a8000000200119c0>] schedule+0x510/0x9f0
+
[<a800000020012268>] schedule_timeout+0x110/0x170
+
[<a8000000200113ec>] wait_for_common+0x164/0x190
+
[<a80000002005ebd4>] call_usermodehelper_exec+0x94/0xc8
+
[<a8000000201e2470>] kobject_uevent_env+0x4f8/0x530
+
[<a800000020243d4c>] device_add+0x5e4/0x740
+
[<a800000020243fd0>] device_create_vargs+0x100/0x118
+
[<a80000002024400c>] device_create+0x24/0x30
+
[<a800000020224758>] misc_register+0x160/0x268
+
[<a800000020236ecc>] ioc3led_probe+0x6c/0x1e0
+
[<a800000020318934>] ioc3_probe+0x5ac/0xdc0
+
[<a8000000201f9924>] local_pci_probe+0x1c/0x28
+
[<a8000000201f9c4c>] pci_device_probe+0x84/0xb0
+
[<a800000020246ba4>] driver_probe_device+0xdc/0x278
+
[<a800000020246de8>] __driver_attach+0xa8/0xb0
+
[<a8000000202460c0>] bus_for_each_dev+0x60/0xc8
+
[<a800000020245708>] bus_add_driver+0x2a0/0x388
+
[<a80000002024708c>] driver_register+0x84/0x190
+
[<a8000000201fa1b8>] __pci_register_driver+0x60/0xe0
+
[<a800000020014ac0>] __kprobes_text_end+0x48/0x1e8
+
[<a8000000204d346c>] kernel_init+0x298/0x348
+
[<a800000020017770>] kernel_thread_helper+0x10/0x18
+
  
BUG: scheduling while atomic: swapper/1/0x00000002
+
==== status ====
Modules linked in:
+
Call Trace:
+
[<a800000020010c90>] dump_stack+0x8/0x48
+
[<a8000000200119c0>] schedule+0x510/0x9f0
+
[<a800000020012268>] schedule_timeout+0x110/0x170
+
[<a8000000200113ec>] wait_for_common+0x164/0x190
+
[<a80000002005ebd4>] call_usermodehelper_exec+0x94/0xc8
+
[<a8000000201e2470>] kobject_uevent_env+0x4f8/0x530
+
[<a800000020243d4c>] device_add+0x5e4/0x740
+
[<a800000020243fd0>] device_create_vargs+0x100/0x118
+
[<a80000002024400c>] device_create+0x24/0x30
+
[<a800000020224758>] misc_register+0x160/0x268
+
[<a800000020237cac>] ioc3rtc_probe+0x74/0x260
+
[<a800000020318934>] ioc3_probe+0x5ac/0xdc0
+
[<a8000000201f9924>] local_pci_probe+0x1c/0x28
+
[<a8000000201f9c4c>] pci_device_probe+0x84/0xb0
+
[<a800000020246ba4>] driver_probe_device+0xdc/0x278
+
[<a800000020246de8>] __driver_attach+0xa8/0xb0
+
[<a8000000202460c0>] bus_for_each_dev+0x60/0xc8
+
[<a800000020245708>] bus_add_driver+0x2a0/0x388
+
[<a80000002024708c>] driver_register+0x84/0x190
+
[<a8000000201fa1b8>] __pci_register_driver+0x60/0xe0
+
[<a800000020014ac0>] __kprobes_text_end+0x48/0x1e8
+
[<a8000000204d346c>] kernel_init+0x298/0x348
+
[<a800000020017770>] kernel_thread_helper+0x10/0x18
+
 
+
BUG: scheduling while atomic: swapper/1/0x00000002
+
Modules linked in:
+
Call Trace:
+
[<a800000020010c90>] dump_stack+0x8/0x48
+
[<a8000000200119c0>] schedule+0x510/0x9f0
+
[<a800000020012268>] schedule_timeout+0x110/0x170
+
[<a8000000200113ec>] wait_for_common+0x164/0x190
+
[<a80000002005ebd4>] call_usermodehelper_exec+0x94/0xc8
+
[<a8000000201e2470>] kobject_uevent_env+0x4f8/0x530
+
[<a80000002024361c>] device_del+0x164/0x1c0
+
[<a80000002024368c>] device_unregister+0x14/0x28
+
[<a8000000202436ec>] device_destroy+0x4c/0x60
+
[<a80000002023849c>] uart_remove_one_port+0xbc/0x150
+
[<a800000020240344>] serial8250_register_port+0x12c/0x360
+
[<a800000020241f88>] ioc3uart_probe+0x178/0x1f8
+
[<a800000020318934>] ioc3_probe+0x5ac/0xdc0
+
[<a8000000201f9924>] local_pci_probe+0x1c/0x28
+
[<a8000000201f9c4c>] pci_device_probe+0x84/0xb0
+
[<a800000020246ba4>] driver_probe_device+0xdc/0x278
+
[<a800000020246de8>] __driver_attach+0xa8/0xb0
+
[<a8000000202460c0>] bus_for_each_dev+0x60/0xc8
+
[<a800000020245708>] bus_add_driver+0x2a0/0x388
+
[<a80000002024708c>] driver_register+0x84/0x190
+
[<a8000000201fa1b8>] __pci_register_driver+0x60/0xe0
+
[<a800000020014ac0>] __kprobes_text_end+0x48/0x1e8
+
[<a8000000204d346c>] kernel_init+0x298/0x348
+
[<a800000020017770>] 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:
+
[<a800000020010c90>] dump_stack+0x8/0x48
+
[<a8000000200119c0>] schedule+0x510/0x9f0
+
[<a800000020012268>] schedule_timeout+0x110/0x170
+
[<a8000000200113ec>] wait_for_common+0x164/0x190
+
[<a80000002005ebd4>] call_usermodehelper_exec+0x94/0xc8
+
[<a8000000201e2470>] kobject_uevent_env+0x4f8/0x530
+
[<a800000020243d4c>] device_add+0x5e4/0x740
+
[<a800000020243fd0>] device_create_vargs+0x100/0x118
+
[<a80000002024400c>] device_create+0x24/0x30
+
[<a800000020218304>] tty_register_device+0x114/0x170
+
[<a800000020238e34>] uart_add_one_port+0x1e4/0x4e0
+
[<a8000000202403e8>] serial8250_register_port+0x1d0/0x360
+
[<a800000020241f88>] ioc3uart_probe+0x178/0x1f8
+
[<a800000020318934>] ioc3_probe+0x5ac/0xdc0
+
[<a8000000201f9924>] local_pci_probe+0x1c/0x28
+
[<a8000000201f9c4c>] pci_device_probe+0x84/0xb0
+
[<a800000020246ba4>] driver_probe_device+0xdc/0x278
+
[<a800000020246de8>] __driver_attach+0xa8/0xb0
+
[<a8000000202460c0>] bus_for_each_dev+0x60/0xc8
+
[<a800000020245708>] bus_add_driver+0x2a0/0x388
+
[<a80000002024708c>] driver_register+0x84/0x190
+
[<a8000000201fa1b8>] __pci_register_driver+0x60/0xe0
+
[<a800000020014ac0>] __kprobes_text_end+0x48/0x1e8
+
[<a8000000204d346c>] kernel_init+0x298/0x348
+
[<a800000020017770>] kernel_thread_helper+0x10/0x18
+
 
+
BUG: scheduling while atomic: swapper/1/0x00000002
+
Modules linked in:
+
Call Trace:
+
[<a800000020010c90>] dump_stack+0x8/0x48
+
[<a8000000200119c0>] schedule+0x510/0x9f0
+
[<a800000020012268>] schedule_timeout+0x110/0x170
+
[<a8000000200113ec>] wait_for_common+0x164/0x190
+
[<a80000002005ebd4>] call_usermodehelper_exec+0x94/0xc8
+
[<a8000000201e2470>] kobject_uevent_env+0x4f8/0x530
+
[<a80000002024361c>] device_del+0x164/0x1c0
+
[<a80000002024368c>] device_unregister+0x14/0x28
+
[<a8000000202436ec>] device_destroy+0x4c/0x60
+
[<a80000002023849c>] uart_remove_one_port+0xbc/0x150
+
[<a800000020240344>] serial8250_register_port+0x12c/0x360
+
[<a800000020241fa8>] ioc3uart_probe+0x198/0x1f8
+
[<a800000020318934>] ioc3_probe+0x5ac/0xdc0
+
[<a8000000201f9924>] local_pci_probe+0x1c/0x28
+
[<a8000000201f9c4c>] pci_device_probe+0x84/0xb0
+
[<a800000020246ba4>] driver_probe_device+0xdc/0x278
+
[<a800000020246de8>] __driver_attach+0xa8/0xb0
+
[<a8000000202460c0>] bus_for_each_dev+0x60/0xc8
+
[<a800000020245708>] bus_add_driver+0x2a0/0x388
+
[<a80000002024708c>] driver_register+0x84/0x190
+
[<a8000000201fa1b8>] __pci_register_driver+0x60/0xe0
+
[<a800000020014ac0>] __kprobes_text_end+0x48/0x1e8
+
[<a8000000204d346c>] kernel_init+0x298/0x348
+
[<a800000020017770>] 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:
+
[<a800000020010c90>] dump_stack+0x8/0x48
+
[<a8000000200119c0>] schedule+0x510/0x9f0
+
[<a800000020012268>] schedule_timeout+0x110/0x170
+
[<a8000000200113ec>] wait_for_common+0x164/0x190
+
[<a80000002005ebd4>] call_usermodehelper_exec+0x94/0xc8
+
[<a8000000201e2470>] kobject_uevent_env+0x4f8/0x530
+
[<a800000020243d4c>] device_add+0x5e4/0x740
+
[<a800000020243fd0>] device_create_vargs+0x100/0x118
+
[<a80000002024400c>] device_create+0x24/0x30
+
[<a800000020218304>] tty_register_device+0x114/0x170
+
[<a800000020238e34>] uart_add_one_port+0x1e4/0x4e0
+
[<a8000000202403e8>] serial8250_register_port+0x1d0/0x360
+
[<a800000020241fa8>] ioc3uart_probe+0x198/0x1f8
+
[<a800000020318934>] ioc3_probe+0x5ac/0xdc0
+
[<a8000000201f9924>] local_pci_probe+0x1c/0x28
+
[<a8000000201f9c4c>] pci_device_probe+0x84/0xb0
+
[<a800000020246ba4>] driver_probe_device+0xdc/0x278
+
[<a800000020246de8>] __driver_attach+0xa8/0xb0
+
[<a8000000202460c0>] bus_for_each_dev+0x60/0xc8
+
[<a800000020245708>] bus_add_driver+0x2a0/0x388
+
[<a80000002024708c>] driver_register+0x84/0x190
+
[<a8000000201fa1b8>] __pci_register_driver+0x60/0xe0
+
[<a800000020014ac0>] __kprobes_text_end+0x48/0x1e8
+
[<a8000000204d346c>] kernel_init+0x298/0x348
+
[<a800000020017770>] 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:
+
[<a800000020010c90>] dump_stack+0x8/0x48
+
[<a8000000200119c0>] schedule+0x510/0x9f0
+
[<a800000020012268>] schedule_timeout+0x110/0x170
+
[<a8000000200113ec>] wait_for_common+0x164/0x190
+
[<a80000002005ebd4>] call_usermodehelper_exec+0x94/0xc8
+
[<a8000000201e2470>] kobject_uevent_env+0x4f8/0x530
+
[<a800000020243d4c>] device_add+0x5e4/0x740
+
[<a8000000203327a8>] register_netdevice+0x400/0x608
+
[<a8000000203329f4>] register_netdev+0x44/0x68
+
[<a80000002000ecb0>] ioc3eth_probe+0x358/0x518
+
[<a800000020318934>] ioc3_probe+0x5ac/0xdc0
+
[<a8000000201f9924>] local_pci_probe+0x1c/0x28
+
[<a8000000201f9c4c>] pci_device_probe+0x84/0xb0
+
[<a800000020246ba4>] driver_probe_device+0xdc/0x278
+
[<a800000020246de8>] __driver_attach+0xa8/0xb0
+
[<a8000000202460c0>] bus_for_each_dev+0x60/0xc8
+
[<a800000020245708>] bus_add_driver+0x2a0/0x388
+
[<a80000002024708c>] driver_register+0x84/0x190
+
[<a8000000201fa1b8>] __pci_register_driver+0x60/0xe0
+
[<a800000020014ac0>] __kprobes_text_end+0x48/0x1e8
+
[<a8000000204d346c>] kernel_init+0x298/0x348
+
[<a800000020017770>] 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
+
 
<table>
 
<table>
 
<tr><td rowspan="4" bgcolor="#a0ffa0">CPU and memory</td><td bgcolor="#a0ffa0">64-bit kernel support</td><td bgcolor="#a0ffa0">Yes</td><td bgcolor="#a0ffa0"></td></tr>
 
<tr><td rowspan="4" bgcolor="#a0ffa0">CPU and memory</td><td bgcolor="#a0ffa0">64-bit kernel support</td><td bgcolor="#a0ffa0">Yes</td><td bgcolor="#a0ffa0"></td></tr>
Line 515: Line 275:
 
</table>
 
</table>
  
 +
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.
  
  * Things to keep in mind when building a kernel for an SGI Octane:
+
==== PCI Card Cages ====
* - 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.
+
  
 +
* broken OHCI-based USB cards
 +
* partially broken UHCI-based USB cards.
  
* Applying patch-2.6.29.1.patch (-p1) ...                                                                                                                          [ ok ]
+
==== dmesg ====
* Applying mipsgit-2.6.29-20090324.diff.patch (-p1) ...                                                                                                            [ ok ]
+
* [[Flameman/sgi/octane-dmesg#kernel-2.6.17.4]]
 
+
>>> 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 ====
 
==== add on board support ====
Line 572: Line 305:
 
* 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 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).
 
* 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 ===
 
=== boot examples ===
  
 
* [http://www.youtube.com/watch?v=EXWYSAnEu_8  booting openbsd]
 
* [http://www.youtube.com/watch?v=EXWYSAnEu_8  booting openbsd]
 
 
 
= XFS support by SGI =
 
 
* [http://oss.sgi.com/projects/xfs/ project]
 
  
 
= dual boot, idea =
 
= dual boot, idea =
Line 591: Line 317:
 
* To boot Linux, drop to the monitor prompt and run boot -f arcload.
 
* To boot Linux, drop to the monitor prompt and run boot -f arcload.
  
 +
 +
= interesting url =
 +
 +
* [http://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/experimental/mips mirrorservice, mirror of ramrootfs, booting gentoo cd, etc ...]
 +
* [http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/hdwr/bks/SGI_EndUser/books/O2_OG/sgi_html/apa.html#id16904 SGICable Pinout Assignments]
 +
* [http://arnaud.giersch.free.fr/parport_ip32.html SGI O2 parport]
 +
* [http://www.linux-mips.org/wiki/IP32 mips org IP32]
 +
* [http://oss.sgi.com/projects/xfs/ XFS support by SGI]
  
  
 
[[Category:Mips]]
 
[[Category:Mips]]
 
[[Category:Sgi]]
 
[[Category:Sgi]]

Revision as of 18:40, 11 August 2013

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

machine

indy

8 PinMini DIN (SGI) DB25 Plug Name
4 7 GND
5 2 TD
3 3 RD
1 8 CD
7 4 DTR

add on board support

board over gio32 kernel support
scsi add on dunno
phobos g130 dunno


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

o2

kernel status

kernel note
2.6.37-rc8 working, under testing, note1 needs to be applied


  • note1
removing 
- Tickless System (Dynamic Ticks) 
- High Resolution Timer Support 
- SCSI generic support 
- RAID Transport Class 
- Verbose SCSI error reporting (kernel size +=12K) 
- SCSI logging facility 

forcing 
- No Forced Preemption 
- SCSI_WAIT_SCAN compiled as builtin (it was an hidden module) 

add on board support

board over pci kernel support
_ dunno


about sgi o2


Known working PCI cards with IRIX

  • SGI PCI Serial I/O a.k.a. PCI SIO UFC, part number 030-1657-003, Provides two RS-232/RS-422 serial ports. The board is slotted for universal voltage, but SGI only provides drivers for Onyx 300/350/3000 systems. The SGI marketing code is PCI-SER-10002.
  • SGI PCI Digital Audio Board <also known as the RADical Audio board>. The SGI part number for the example shown is 030-1649-001, it appears in an hinv with PCI vendor ID 0x10a9(SGI) and a device ID of 0x0005(RAD Audio):
  • SGI PCI Gigabit Ethernet:, 1000 Base SX (fiber optic interface) and 1000 Base T (copper interface) - shown mounted in an O2k XIO Shoehorn <a PCI-to-XIO slot adapter>: Both are keyed as 'universal' PCI cards to fit in either 3.3 or 5 volt slots.
  • SGI O2 10/100BaseT Network Card for O2: SGI marketing code SGI_PCI-ENET-TX-1P; part number 9210105
  • SGI USB PCI card, SGI part number 9210286: NEC chipset - Slotted for 3.3 and 5V PCI applications. SGI equipped Onyx 350 InfiniteReality and InfinitePerformance systems with this card as an attachment point for USB keyboards and mice. There are some references on TechPubs indicating Orange Micro as the OEM, while "UP205-0525" screened on the PCB returns Adaptec references. It appears in an hinv with a PCI vendor ID of 0x1033 (NEC) PCI device numbers 0x0035(Dual OHCI controllers plus Single EHCI controller) and 0x00e0(USB 2.0 Host Controller).
  • DATAFIRE PCI 1ST ISDN card SGI PN: 9210111 Came inside one O2, SGI part number 9981028 SGI


See more here [1]

impact

add on board support

board over gio64 / eisa kernel support
_ dunno


fuel

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

octane2

Things to keep in mind when building 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.

kernel status

it has been tested on this machine

>> hinv
                   System: IP30
                Processor: 400 Mhz R12000, 2M secondary cache
                Processor: 400 Mhz R12000, 2M secondary cache, (cpu 1)
              Memory size: 1536 Mbytes
                  Network: ef0 ethernet (100/10 base-T)
                    Audio: RAD Audio Processor
                  PCI Bus: XTALKPCI (13)
               PCI Device: slot 1 vendor 0x1033 part 0x35 rev 67
                 Graphics: ESI
                 Graphics: ODYSSEY

Adding/removing ESI, ODYSSEY

kernel note
2.6.17 pretty stable, used in production, 2xR12K and 2Gbyte of ram, ram should be reduced to 1.5Gb in order to use PCI, also IOC-serial-kb must be removed from the kernel
2.6.19 not stable as 2.6.17, issue when executed on system with 2Gbyte of ram, PCI-cadge not working, issues with SMP
2.6.20.* may be work, not tested
2.6.25 busted, stay away
2.6.26 may be there is a patch, but IOC3 is hardly issued, SMP dead
2.6.29 bugs in the scheduler, not booting on 2xR12K
3.x.x @https://github.com/jaaron/linux-mips-ip30 system boots but IOC3 was still dead, as was SMP


2.6.17.464-bit kernel supportYes
Memory controller supportYessupport for 1.5GB
Interrupt supportYesworking
SMP supportYes2xR12K
Eth0Yes
PCI expansionYesworking with USD NEC EHCI
ram rootfsYesuclibc & glibc working
rootfsYes2006 mips3, mips4 are working
2.6.29.164-bit kernel supportYes
Memory controller supportYessupport for 1.5GB
Interrupt supportYesnot pretty working, also scheduling while atomic issue
SMP supportYes2xR12K does not boot, 1xR12K boots
Eth0Yes
PCI expansionYesnot tested
ram rootfsYesuclibc & glibc working
rootfsYes2006 mips3, mips4 are working

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


last working kernel 2.6.17-r14

kernel 2.6.17-r14, we are stopped at the year 2006, running a 2008 stage3 rootfs

status

CPU and memory64-bit kernel supportYes
Memory controller supportYessupport for >1GB added in 2.6.12-R22
Interrupt supportYes
SMP supportYes
XIO supportBasic mapping WPwork in progress - XIO API
Device discovery WPit basically works, but waits for XIO API
Flow control WPsoon to come in the new XIO API
PCI supportBasic mappingYes
Device discoveryYes
64-bit DMAYes
32-bit DMAYes
System bridgeYes
Additional bridgesYes
IOC3 supportEthernetYesalso for IP27
SuperIO meta-deviceYesalso for IP27
Serial portsYesalso for IP27
RS232/RS422 mode switchNo =(low priority task, but no real problems
Parallel portNo =(unavailability of non-standard cable for testing
Real Time ClockYes
Software power downYes
Voltage monitorNo =(low priority task, not enough information
LEDsYes
PS/2 portsYes
SCSI supportInternal devicesYes
External devicesYes
RAD1 supportData DMA supportYes
Status DMA supportYes
Analog outputYes
Analog inputYes
AES outputYes
AES inputYes
ADAT outputNo =(no test equipment
ADAT inputNo =(no test equipment
ALSA PCM supportYesplease report bugs!
ALSA mixer supportYes
ImpactSR supportLinux console supportYes
MPlayer output supportYes
X Window supportYesshadowfb driver
24-bit depth setupYes
Video mode changeNo =(not enough information
Image DMAYes
Hardware cursorYes
2D accelerationYes
3D accelerationNo =(not enough information
Flow controlNo =(not enough information, lack of XIO flow control
Multiple cardsNo =(lack of test hardware
VPro supportLinux console supportYes
X Window supportNo =(complexity of accelerated X drivers
24-bit depth setupYes
2D accelerationYes
3D accelerationYes
Image DMANo =(it's not really easy

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.

PCI Card Cages

  • broken OHCI-based USB cards
  • partially broken UHCI-based USB cards.

dmesg

add on board support

board over xio24 / pci cartridge kernel support
v6 over xio24 2.6.17: no X11 support, pretty text console
impactSR over xio24 2.6.17: pretty X11 support, pretty text console

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

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