Miscellaneous Operating Systems/Hardware

who is on Gentoo/MIPS_SGI ? - Page 1

Code: Select all

____                   _
/    \   ___    ___  __| |__  __   __                       Gentoo MIPS SGI &C
- ( ) \ /   \  ;   \(__   __)/  \ /  \                      Developers & Users
\    //  O _| / /\ \  | |  | /\ | /\ |
/   / \   /__| /  \ \ | |  | \/ | \/ |
(___/   \____/|_;  |_| \_/   \__/ \__/


just to know

it seems I am alone with IP30
I know only three guys with Gentoo/MIPS
  • Kumba (gentoo/MIPS team)
  • Ralf Baechle ( at linux-mips dot org, but … it's a bit difficult to get an email from him )
  • Redhatter (Stuart Longland, australian dude, he was a gentoo dev/user, enjoying tinkering in the fields of embedded and RISC computing, and curing a blog, but I haven't read anything from him since a while)

any other :D ?

(nice to meet you, in advance)
have fun
I'm running Gentoo on an Origin 350 as my main MIPS system (currently based on kernel 4.2.0). There's an FPU bug that affects t5 CPUs (preventing proper FPU operation for n32 and n64 systems, but not affecting o32 systems), and what looks like some sort of TLB bug that needs hunting down, and it's only running one CPU, but things are generally stable.

I have a couple of IP30 systems to install Linux on, I just haven't settled in to trying to get them to work.
nyef wrote: I have a couple of IP30 systems to install Linux on, I just haven't settled in to trying to get them to work


nice to hear :D

I am still currently running linux v2.6.17.4+hack on my IP30
but today I have evaluated v4.3, work in progress, it will take a while

Code: Select all

sys-kernel/mips-sources-4.3.0
* Things that DON'T work:
*    - Do NOT use CONFIG_TRANSPARENT_HUGEPAGE, otherwise, when the machine
*      starts to boot into userland, it will trigger Instruction
*      Bus Errors (IBEs), which requires a complete powerdown of the
*      machine for about 15 seconds to clear.
*    - DO NOT USE CONFIG_SLUB, otherwise, you'll get errors when booting
*      regarding duplicate /sys/kernel/slab/* entries in sysfs.
*    - Greater than 2GB memory causes problems with DMA.  This is a long-standing
*      problem and patches to fix it by DMA experts would be greatly appreciated!
*    - Do not use OHCI-based USB cards in Octane.  They're broke on this machine.
*      Patches are welcome to fix the issue.
*
* Things that might work, but have problems, or are unknown:
*    - Serial support on the Octane uses a very basic UART driver that drives
*      the 16550A chip on the IOC3 directly.  It does not use interrupts,
*      only a polling routine on a timer, which makes it slow and CPU-
*      intensive.  The baud rate is limited to no more than 38.4kbps on
*      this driver.  Patches for getting the Altix IOC3 serial driver to
*      work (which uses DMA and supports faster baud rates) are welcome.
*    - UHCI Cards are known to have issues, but should still have some functionality.
*      This issue primarily manifests itself when using pl2303 USB->Serial adapters.
*    - MENET boards appear to have the four ethernet ports detected, however
*      the six serial ports didn't appear to get picked up by the IOC3
*      UART driver.  The NIC part number is also not read correctly
*      from the four Number-In-a-Cans.  Additional testing would be
*      appreciated and patches welcome.
*    - Other XIO-based devices, like various Impact addons, remain untested
*      and are not guaranteed to work.  This applies to various digital
*      video conversion boards as well.
*
* Things that DO work:
*    - SMP works again, celebrate!
*    - Impact (MGRAS) console and X driver, please report any bugs.
*    - VPro (Odyssey) console, 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).
*    - SCSI, RTC, basic PCI, IOC3 Ethernet, keyboard, and mouse.  Please
*      report any problems with these devices.
*
* Excluding Patch #5010_enable-additional-cpu-optimizations-for-gcc-4.9.patch … [ ok ]
* Excluding Patch #5015_kdbus*.patch … [ ok ]
* Applying mipsgit-4.3.0-20151126.diff.patch (-p1) … [ ok ]
* Applying 2001_4.3-ip32-meth-cleanup.patch … [ ok ]
* Applying 4001_4.3-all-add-byteorder-to-proc.patch … [ ok ]
* Applying 4002_4.3-all-early-printk-menu.patch … [ ok ]
* Applying 4003_4.3-all-set_pte-fixes.patch … [ ok ]
* Applying 4004_4.3-all-add-sgi-common.patch … [ ok ]
* Applying 4005_4.3-all-add-impact-driver.patch … [ ok ]
* Applying 4006_4.3-all-add-impact_early.patch … [ ok ]
* Applying 4007_4.3-all-add-odyssey-driver.patch … [ ok ]
* Applying 4008_4.3-all-add-odyssey_early.patch … [ ok ]
* Applying 5101_4.3-ioc3-metadriver.patch … [ ok ]
* Applying 5102_4.3-pci-misc-fixes.patch … [ ok ]
* Applying 5103_4.3-usb-pci-quirks.patch … [ ok ]
* Applying 5104_4.3-r10000-split-family.patch … [ ok ]
* Applying 5401_4.3-ip30-octane-support.patch … [ ok ]
* Applying 7001_4.3-bfq-io-scheduler-v7r8.patch … [ ok ]
* Applying 7002_4.2-md-revert-resync-ac8fa4196d20.patch … [ ok ]
* Done



I have my two ramrootfs, based on uclibc, soft float & hard float, mips3/be
so it's also good for
  • RS/PRO, Atheros AR7161 CPU
  • GL-iNet-6416, Atheros AR7240 CPU
  • TL-WR703N, Atheros AR7240 CPU
  • Fonera, FON2100A (hack SPI), FON2200, FON2202(built-in USB)

they are tiny routers :D

edit:
routers (MIPS32r2) vs SGI(MIPS4)
have fun

Code: Select all

*    - Greater than 2GB memory causes problems with DMA.  This is a long-standing
*      problem and patches to fix it by DMA experts would be greatly appreciated!

On my list to hack on once I get a working IP30 setup. IP35 doesn't have a problem with this, and I have some experience with getting DMA working on XBridge and PIC, and BRIDGE is basically XBridge so I don't expect too much trouble on that front.

Code: Select all

*    - Do not use OHCI-based USB cards in Octane.  They're broke on this machine.
*      Patches are welcome to fix the issue.

On my O300, I find that enabling the OHCI driver causes the SCSI driver to stop functioning (!).

Code: Select all

*    - Serial support on the Octane uses a very basic UART driver that drives
*      the 16550A chip on the IOC3 directly.  It does not use interrupts,
*      only a polling routine on a timer, which makes it slow and CPU-
*      intensive.  The baud rate is limited to no more than 38.4kbps on
*      this driver.  Patches for getting the Altix IOC3 serial driver to
*      work (which uses DMA and supports faster baud rates) are welcome.

Working on IP35, using the DMA-based driver. Took a bit to sort out endianness issues and DMA and whatnot, but was fairly straightforward overall.

Code: Select all

*    - UHCI Cards are known to have issues, but should still have some functionality.
*      This issue primarily manifests itself when using pl2303 USB->Serial adapters.

I have a few pl2303 adapters handy, not sure about the UHCI cards, though.

Unfortunately, the IP35 code conflicts a bit with the IP30 code, so merging things is a bit tricky.
After a ~2 month hiatus, I've got the Octane running and have been building N32 stages for the last week. mips4_r12k_n32 and mips3_n32 are done, but then I discovered a ~2012 uclibc-based stage4, mips3 big-endian, that another Gentoo dev rolled, and have been trying to bit-bang that into updating so I can use it as a seed stage to finally create new MIPS uClibc-based stages for generating new netboot images. Install stages are only good if you can boot something to install them with. Last uclibc stages were done in ~2006 or 2007.

I had tried a musl-based netboot image, but I have been experimenting with PAGE_SIZE=64K on my Octane/Origin kernels lately, which really helps speed up compiling (shaves ~45mins off of a binutils compile). However, musl seems to hardcode the PAGE_SIZE it was built with somewhere, so if you booted a kernel with PAGE_SIZE=4K with this musl netboot....all sorts of problems cropped up. Glibc is just too bloated to make an all-purpose netboot, as IP22-class systems have severe limitations on the size of the kernel image that can be loaded, and IP32 can get fussy as well.

Other successes include gcc-5.3.0 building successfully under uclibc (O32). I'll have to build it again under glibc (N32) later tonight to see if gcc PR66038 is resolved now, as that's prevented me from successfully building any gcc-5.x release under glibc (N32) so far. If that holds true, well, I'll be restarting my stage builds all over again. It's a pity the Onyx2 still locks up at random, else I could run that to speed up my stage builds. I suspect the lock up has something to do with a race condition and page migration, but I haven't had time to chase it down much more.
:Onyx2: 4x R14000 :Tezro: 4x R16000 :Fuel: 1x R16000 :Octane: 2x R14000 :O2+: RM7000 :O2: R10000 :O2: RM5200 :Indigo: R4400 :Indigo2IMP: R10000 :Indigo2: R8000 :O3x0: 4x R14000 :Indy: R5000

"The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between."
--Emperor Turhan, Centauri Republic
nyef wrote:

Code: Select all

*    - Greater than 2GB memory causes problems with DMA.  This is a long-standing
*      problem and patches to fix it by DMA experts would be greatly appreciated!

On my list to hack on once I get a working IP30 setup. IP35 doesn't have a problem with this, and I have some experience with getting DMA working on XBridge and PIC, and BRIDGE is basically XBridge so I don't expect too much trouble on that front.

Hopefully I'll be able to get you a working beta-netboot within the next 1-2 weeks for the Octane, if this uclibc experiment pans out. The DMA thing has been driving me up the wall, because once the 2GB barrier is worked around and I can hunt down some more high-density RAM chips, I can maybe use a ramdisk for some of the compiling to further speed things up.


nyef wrote:

Code: Select all

*    - Do not use OHCI-based USB cards in Octane.  They're broke on this machine.
*      Patches are welcome to fix the issue.

On my O300, I find that enabling the OHCI driver causes the SCSI driver to stop functioning (!).

I don't even know why anyone would want to run USB1.x anymore. I should probably get EHCI and xHCI cards and plug them in to do some USB2 and USB3 testing under IP30. As long as nothing I test is a USB hub, might get something workable out. Speed tests especially would be interesting.


nyef wrote:

Code: Select all

*    - Serial support on the Octane uses a very basic UART driver that drives
*      the 16550A chip on the IOC3 directly.  It does not use interrupts,
*      only a polling routine on a timer, which makes it slow and CPU-
*      intensive.  The baud rate is limited to no more than 38.4kbps on
*      this driver.  Patches for getting the Altix IOC3 serial driver to
*      work (which uses DMA and supports faster baud rates) are welcome.

Working on IP35, using the DMA-based driver. Took a bit to sort out endianness issues and DMA and whatnot, but was fairly straightforward overall.

Got a stand-alone patch for that? Fixes for that are probably distinct from the core IOC3 mess. Would be interesting to see if Octane's DMA situation is sane enough to run that. After I fix the "ttyIOCx" names back to a proper "ttySx" naming scheme...


nyef wrote:

Code: Select all

*    - UHCI Cards are known to have issues, but should still have some functionality.
*      This issue primarily manifests itself when using pl2303 USB->Serial adapters.

I have a few pl2303 adapters handy, not sure about the UHCI cards, though.

pl2303 converters are junk anyways. I've switched to using the XS880 from U.S. Converters, which is based off of an FTDI FT232RL chipset and ZyWyn ZT213LEEA serial driver. They're not cheap at about ~$44 a pop, but all of the problems I've had with serial consoles has practically vanished since picking several of these up. Have yet to test them in the Octane, though, but I assume any problems will be in the IP30 code and not tied to these devices or the Linux driver for them.


nyef wrote: Unfortunately, the IP35 code conflicts a bit with the IP30 code, so merging things is a bit tricky.

Yeah, we still gotta work on that :) Getting the IOC3 bits hammered out and upstreamed will simplify things a bit. I just got busy the last two months, and may do so again in the new year (but we'll see).
:Onyx2: 4x R14000 :Tezro: 4x R16000 :Fuel: 1x R16000 :Octane: 2x R14000 :O2+: RM7000 :O2: R10000 :O2: RM5200 :Indigo: R4400 :Indigo2IMP: R10000 :Indigo2: R8000 :O3x0: 4x R14000 :Indy: R5000

"The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between."
--Emperor Turhan, Centauri Republic
Kumba wrote: After a ~2 month hiatus, I've got the Octane running and have been building N32 stages for the last week. mips4_r12k_n32 and mips3_n32 are done, but then I discovered a ~2012 uclibc-based stage4, mips3 big-endian, that another Gentoo dev rolled, and have been trying to bit-bang that into updating so I can use it as a seed stage to finally create new MIPS uClibc-based stages for generating new netboot images. Install stages are only good if you can boot something to install them with. Last uclibc stages were done in ~2006 or 2007.

I have bad news for you: If you check, you'll find that the FPU won't kick over to FR1 mode, which is required for N32 and N64. It's on my shortlist to try and fix, but my project bandwidth has shifted away from MIPS kernel hacking for the past while.

I had tried a musl-based netboot image, but I have been experimenting with PAGE_SIZE=64K on my Octane/Origin kernels lately, which really helps speed up compiling (shaves ~45mins off of a binutils compile). However, musl seems to hardcode the PAGE_SIZE it was built with somewhere, so if you booted a kernel with PAGE_SIZE=4K with this musl netboot....all sorts of problems cropped up. Glibc is just too bloated to make an all-purpose netboot, as IP22-class systems have severe limitations on the size of the kernel image that can be loaded, and IP32 can get fussy as well.

Interesting (probably bad) news: I have a short C test program that causes my O350 to reliably do something weird, and one of the failure modes is a bus error. And it runs perfectly well on my ERLite-3. I think it's a TLB thing, but haven't tracked it down beyond getting a test program, which I did hand off to Ralf so that there'd be more than one set of eyes on the problem. http://paste.lisp.org/display/160204 if you want to take a look.

nyef wrote:

Code: Select all

*    - Greater than 2GB memory causes problems with DMA.  This is a long-standing
*      problem and patches to fix it by DMA experts would be greatly appreciated!

On my list to hack on once I get a working IP30 setup. IP35 doesn't have a problem with this, and I have some experience with getting DMA working on XBridge and PIC, and BRIDGE is basically XBridge so I don't expect too much trouble on that front.

Hopefully I'll be able to get you a working beta-netboot within the next 1-2 weeks for the Octane, if this uclibc experiment pans out. The DMA thing has been driving me up the wall, because once the 2GB barrier is worked around and I can hunt down some more high-density RAM chips, I can maybe use a ramdisk for some of the compiling to further speed things up.

I'm still keeping an eye out for high-density Octane SIMMs myself, even if I haven't managed to fix (or work around) the bent (and now stripped) screw that's keeping me from getting at the mainboard with the 2x600 CPU module.

nyef wrote:

Code: Select all

*    - Serial support on the Octane uses a very basic UART driver that drives
*      the 16550A chip on the IOC3 directly.  It does not use interrupts,
*      only a polling routine on a timer, which makes it slow and CPU-
*      intensive.  The baud rate is limited to no more than 38.4kbps on
*      this driver.  Patches for getting the Altix IOC3 serial driver to
*      work (which uses DMA and supports faster baud rates) are welcome.

Working on IP35, using the DMA-based driver. Took a bit to sort out endianness issues and DMA and whatnot, but was fairly straightforward overall.

Got a stand-alone patch for that? Fixes for that are probably distinct from the core IOC3 mess. Would be interesting to see if Octane's DMA situation is sane enough to run that. After I fix the "ttyIOCx" names back to a proper "ttySx" naming scheme...

As part of http://git.linux-mips.org/cgit/nyef/linux-ip35/log/?h=v4.2-ioc-changes , there is commit http://git.linux-mips.org/cgit/nyef/linux-ip35/commit/?h=v4.2-ioc-changes&id=6142674bcb716f1702ec2e364887a4434f75720d , which is the IOC3 serial magic.

I've got a possible further angle so that we don't have to do this constant "blah, blah, and on SGI MIPS we also have to twiddle this bit in the DMA address" thing. And, now that I'm thinking about it, my patches may not work for you due to the differences between the DMA setup between the IP30 bridge driver and the IP35 bridge driver.

nyef wrote:

Code: Select all

*    - UHCI Cards are known to have issues, but should still have some functionality.
*      This issue primarily manifests itself when using pl2303 USB->Serial adapters.

I have a few pl2303 adapters handy, not sure about the UHCI cards, though.

pl2303 converters are junk anyways. I've switched to using the XS880 from U.S. Converters, which is based off of an FTDI FT232RL chipset and ZyWyn ZT213LEEA serial driver. They're not cheap at about ~$44 a pop, but all of the problems I've had with serial consoles has practically vanished since picking several of these up. Have yet to test them in the Octane, though, but I assume any problems will be in the IP30 code and not tied to these devices or the Linux driver for them.

Yeah, the pl2303 adapters are junk. Realized only after having accumulated three or four of them that they were less than excellent. Promptly started transitioning to using the network interfaces on system controllers where appropriate (an HP iLO, a Sun ALOM), and I'm planning on making a couple more cables for my EL-16 to cover the rest of what I have hooked up via USB-serial adapters. My primary use-case is remote management of a stack of machines over a VPN, so the USB-serial bit was more of a hack to get things working than a real solution.

nyef wrote: Unfortunately, the IP35 code conflicts a bit with the IP30 code, so merging things is a bit tricky.

Yeah, we still gotta work on that :) Getting the IOC3 bits hammered out and upstreamed will simplify things a bit. I just got busy the last two months, and may do so again in the new year (but we'll see).

I'm wondering if it might not make sense for me to create an IP30 branch from my current IP35 tree and basically try to bring it up like a new port, cribbing liberally from your existing patch set.
nyef wrote: I have bad news for you: If you check, you'll find that the FPU won't kick over to FR1 mode, which is required for N32 and N64. It's on my shortlist to try and fix, but my project bandwidth has shifted away from MIPS kernel hacking for the past while.

Is this affecting IP35-only? I haven't had much of an issue on IP30 running N32. IP27 had a minor buggeroo w/ FP support when Maciej added a patch that didn't account for IP27's setting FCSR to random values on a cold restart. That was quickly detected and fixed, though. That all said, I haven't tried running any programs that fully exploit N32 and FP yet, either.


nyef wrote: Interesting (probably bad) news: I have a short C test program that causes my O350 to reliably do something weird, and one of the failure modes is a bus error. And it runs perfectly well on my ERLite-3. I think it's a TLB thing, but haven't tracked it down beyond getting a test program, which I did hand off to Ralf so that there'd be more than one set of eyes on the problem. http://paste.lisp.org/display/160204 if you want to take a look.

Running this won't crash the kernel, will it? Don't want to interrupt the compile run on the uclibc stuff if it will...



It looks like this is the most relevant bit:

Code: Select all

diff --git a/drivers/tty/serial/ioc3_serial.c b/drivers/tty/serial/ioc3_serial.c
index 27b5fef..d8d3328 100644
--- a/drivers/tty/serial/ioc3_serial.c
+++ b/drivers/tty/serial/ioc3_serial.c
@@ -23,6 +23,10 @@
#include <linux/ioc3.h>
#include <linux/slab.h>

+#ifdef CONFIG_SGI_IP35
+#include <asm/pci/bridge.h>
+#endif
+
/*
* Interesting things about the ioc3
*/
@@ -445,7 +449,11 @@ static int inline port_init(struct ioc3_port *port)

sbbr_l = &idd->vma->sbbr_l;
sbbr_h = &idd->vma->sbbr_h;
+#ifdef CONFIG_SGI_IP35
+                ring_pci_addr = ((unsigned long __iomem)port->ip_dma_ringbuf) & ~(PCI64_ATTR_SWAP);
+#else
ring_pci_addr = (unsigned long __iomem)port->ip_dma_ringbuf;
+#endif
DPRINT_CONFIG(("%s: ring_pci_addr 0x%p\n",
__func__, (void *)ring_pci_addr));

I believe I have most of what is in your ioc3.h hunk in the base IOC3 patch. I'll try to apply this one change and see if IP30 comes up on the DMA driver.


nyef wrote: I've got a possible further angle so that we don't have to do this constant "blah, blah, and on SGI MIPS we also have to twiddle this bit in the DMA address" thing. And, now that I'm thinking about it, my patches may not work for you due to the differences between the DMA setup between the IP30 bridge driver and the IP35 bridge driver.

I got a feeling a lot of the [X]BRIDGE setup code between IP27, IP30, and IP35 can be unified a bit more over time. Make the mess a lot easier to read and follow. IP27's big issue is the resource allocation part. I ended up changing that to the XIO window bases, and it works for internal PCI stuff, but that system was not picking up on a USB2.0 card I installed via an XIO shoehorn. Ended up pulling that card before I thought to revert to the original code and test again.

nyef wrote: I'm wondering if it might not make sense for me to create an IP30 branch from my current IP35 tree and basically try to bring it up like a new port, cribbing liberally from your existing patch set.

That should work. I can cherry pick as needed until things are more unified. I track upstream a lot faster, using rolling new patches from my local git repo when a new kernel is released and Ralf pulls from upstream. 4.4 looks to still be a few weeks off, probably 2-3rd week of January, if I had to guess. I need to re-submit patches I had for 4.4 for 4.5 (or 4.6), as Ralf didn't get to them for the 4.4 merge window.
:Onyx2: 4x R14000 :Tezro: 4x R16000 :Fuel: 1x R16000 :Octane: 2x R14000 :O2+: RM7000 :O2: R10000 :O2: RM5200 :Indigo: R4400 :Indigo2IMP: R10000 :Indigo2: R8000 :O3x0: 4x R14000 :Indy: R5000

"The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between."
--Emperor Turhan, Centauri Republic
Hopefully I'll be able to get you a working beta-netboot within the next 1-2 weeks for the Octane,


already done for 2.6.17, I can re-use the ramrootfs with kernel 4.* :D

p.s.
is there a Gigabit/sec PCI card that is known to work with XIO_PCI (ShoeHorn or ShoeBox) ?
have fun
ivelegacy wrote:
Hopefully I'll be able to get you a working beta-netboot within the next 1-2 weeks for the Octane,

already done for 2.6.17, I can re-use the ramrootfs with kernel 4.* :D

You can, as I sometimes use that old ~2007 netboot for fixing things. But it is *severely* bitrotted. mdadm can't create RAID arrays at all, networking is a touch fickle, etc there's other issues that I can't even remember. I wouldn't trust the filesystem tools one bit, either, in that netboot.


ivelegacy wrote: p.s.
is there a Gigabit/sec PCI card that is known to work with XIO_PCI (ShoeHorn or ShoeBox) ?

Unknown. Just has to support 5V power, so look for PCI-X gigabit cards. Two I ran into earlier tonight are from Sonnet, which caters more to the Mac crowd (but their PCI boards are purple). They have a single-port gigabit card as well as a dual-port. I am told their products are not at all cheap, but are very well built. I have no idea if they'll work in an Octane or Origin/Onyx2:

Sonnet Presto™ Gigabit Pro PCI card:
http://www.sonnettech.com/product/prestogigpro.html

Sonnet Presto™ Gigabit Server:
http://www.sonnettech.com/product/prestogigserver.html
:Onyx2: 4x R14000 :Tezro: 4x R16000 :Fuel: 1x R16000 :Octane: 2x R14000 :O2+: RM7000 :O2: R10000 :O2: RM5200 :Indigo: R4400 :Indigo2IMP: R10000 :Indigo2: R8000 :O3x0: 4x R14000 :Indy: R5000

"The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between."
--Emperor Turhan, Centauri Republic
Kumba wrote: You can, as I sometimes use that old ~2007 netboot for fixing things


I have already built mine, also used for my routers, as I do not like the OpenWRT rootfs, but in case, I can re-use the OpenWRT builder

All the routers in the above list are MIPS3/be-uslibc-softfloat profiled, good enough for SGI R1*K

Image
FON2100A (hack SPI), FON2200, FON2202(built-in USB)

Code: Select all

Ethernet eth0: MAC address 00:18:84:d0:80:bc
IP: 192.168.1.3/255.255.255.0, Gateway: 192.168.1.1
Default server: 192.168.1.14

RedBoot(tm) bootstrap and debug environment [ROMRAM]
OpenWrt certified release, version 1.1 - built 12:40:38, Sep  3 2007

Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.

Board: FON 2202
RAM: 0x80000000-0x82000000, [0x80040290-0x80fe1000] available
FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each.
== Executing boot script in 3.000 seconds - enter ^C to abort
RedBoot> load gentoo-mips-fonera-2202.img
Using default protocol (TFTP)
Entry point: 0x80361750, address range: 0x80041000-0x8084f93b
RedBoot> exec
Now booting linux kernel:
Base address 0x80030000 Entry 0x80361750
Cmdline :

#########################################################################
########       #########       ###    ###          #####       ##########
########        #######        ###    ###    ####   ###    ###   ########
########         #####         ###    ###    ####   ###    ###   ########
########     #    ###    #     ###    ###    ####   ###    ###   ########
########     ##    #    ##     ###    ###    ####   ###    ###   ########
########     ###       ###     ###    ###    ####   ###    ##############
########     ####     ####     ###    ###          #####        #########
########     #####   #####     ###    ###     ###############   #########
########     #############     ###    ###     #########    ###   ########
########     #############     ###    ###     #########    ###   ########
########     #############     ###    ###     #########    ###   ########
########     #############     ###    ###     ##########        #########
#########################################################################
########### P ######### O ######### W ######### E ######### R ###########

kernel_info: version 2.6.26-rotary-wombat-fonera2
kernel_info: compiled by root@kika
kernel_info: compiled with gcc version 4.1.2 (Gentoo 4.1.2 p1.3)
kernel_info: compiled on #329 Tue Aug 20 19:47:36 CEST 2013
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CPU revision is: 00019064 (MIPS 4KEc)
Determined physical RAM map:
memory: 02000000 @ 00000000 (usable)
Initrd not found or empty - disabling initrd
Zone PFN ranges:
Normal          0 ->     8192
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0:        0 ->     8192
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
Kernel command line: ip=off console=ttyS0,115200 rdinit=/sbin/init init=/bin/bash
Primary instruction cache 16kB, VIPT, 4-way, linesize 16 bytes.
Primary data cache 16kB, 4-way, VIPT, no aliases, linesize 16 bytes
PID hash table entries: 128 (order: 7, 512 bytes)
Console: colour dummy device 80x25
console [ttyS0] enabled
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 23844k/32768k available (3231k kernel code, 8924k reserved, 599k data, 4420k init, 0k highmem)
SLUB: Genslabs=6, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Mount-cache hash table entries: 512
net_namespace: 192 bytes
NET: Registered protocol family 16
arch.mips.board: Radio config found at offset 0xf8(0x1f8)
m.y. AR531x PCI init .. done
SCSI subsystem initialized
usb.usbcore: registered new interface driver usb.drv.usbfs
usb.usbcore: registered new interface driver usb.drv.hub
usbcore: registered new device driver usb
PCI: fixing up device 0,3,0
PCI.0000:00:03.0 allocating resource.1 mem size=0x4000000 .. skipped
PCI.0000:00:03.0 allocating resource.2 mem size=0x400000 .. done
PCI.0000:00:03.0 allocating resource.0 mem size=0x20000 .. done
PCI.0000:00:00.0 allocating resource.0 mem size=0x1000 .. done
PCI.0000:00:00.1 allocating resource.0 mem size=0x100 .. done
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
NET: Registered protocol family 1
ar531x: Registering GPIODEV device
fs.procfs.machine: /proc/machine created
fs.procfs.endian: /proc/endian created
fuse init (API version 7.9)
msgmni has been set to 46
io scheduler noop registered
io scheduler deadline registered (default)
fb0: Virtual frame buffer device, using 1024K of video memory
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
serial8250: ttyS0 at MMIO 0xb1100003 (irq = 37) is a 16550A
loop: module loaded
nbd: registered device at major 43
usb.usbcore: registered new interface driver usb.drv.ub
Fixed MDIO Bus: probed
m.y.lan eth0: Atheros AR5315: mac=00:18:84:d0:80:bc, irq 4
ar5315_eth_mii: probed
#####################################################
############ Marvell 88E6060 PHY driver #############
#####################################################
eth0: Marvell 88E6060 PHY driver attached in trailer_mode
eth0: attached PHY driver [PHY Marvell 88E6060] (mii_bus:phy_addr=0:1f)
usb.usbcore: registered new interface driver usb.drv.cdc_ether
usb.usbcore: registered new interface driver usb.drv.rndis_host
ath_hal: Ath5KWiSoC (, , , , , , , , )
Driver 'sd' needs updating - please use bus_type methods
Driver 'sr' needs updating - please use bus_type methods
cmdlinepart partition parsing not available
Searching for RedBoot partition table in spiflash at offset 0x7d0000
Searching for RedBoot partition table in spiflash at offset 0x7e0000
7 RedBoot partitions found on MTD device spiflash
Creating 7 MTD partitions on "spiflash":
0x00000000-0x00030000 : "RedBoot"
0x00030000-0x006e0000 : "rootfs"
mtd: partition "rootfs" set to be root filesystem
split_squashfs: no squashfs found in "spiflash"
0x006e0000-0x007d0000 : "vmlinux.bin.l7"
0x007d0000-0x007e0000 : "unallocated"
0x007e0000-0x007ef000 : "FIS directory"
0x007ef000-0x007f0000 : "RedBoot config"
0x007f0000-0x00800000 : "boardconfig"
PCI: Enabling device 0000:00:00.1 (0000 -> 0002)
my_ehci_hcd 0000:00:00.1: EHCI Host Controller
my_ehci_hcd 0000:00:00.1: new USB bus registered, assigned bus number 1
my_ehci_hcd 0000:00:00.1: irq 5, io mem 0x80c21000
my_ehci_hcd 0000:00:00.1: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb.core.hub udev->authorized=True
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 3 ports detected
usb usb1: New USB device found, NEC D72010 USB 2.0 Controller
Initializing USB Mass Storage driver...
usb 1-1: new high speed USB device using my_ehci_hcd and address 2
usb.core.hub udev->authorized=True
usb 1-1: configuration #1 chosen from 1 choice
uba: uba1 uba2
usb 1-1: New USB device found, idVendor=0781, idProduct=5567
usb.usbcore: registered new interface driver usb.drv.usb-storage
USB Mass Storage support registered.
Registered led device: gpio1
Registered led device: wlan
Registered led device: gpio3
Registered led device: gpio4
Registered led device: gpio7
usb.usbcore: registered new interface driver usb.drv.usbhid
usbhid: v2.6:USB HID core driver
NET: Registered protocol family 26
TCP cubic registered
NET: Registered protocol family 17
NET: VLAN-802.1Q-Support v1.8
SCTP: Hash tables configured (established 1024 bind 2048)
eth0: Configuring MAC for full duplex
Freeing unused kernel memory: 4420k freed
FPU: CPU has no floating point unit
FPU: IEEE754 floating MIPS floating point support provided as kernel float emulation
FPU: you'll get much better performance by compiling with -msoft-float!

i                   n                    i                   t
e    a    r    l    y     r    a    m    r    o    o    t    f    s

[*] kernel-wait
kernel waiting ...
[*] environment
[*] mount
[*] dev
adding /dev/initctl
[*] ttykeymaps
/dev/tty0 /dev/tty1 /dev/tty2 /dev/tty3 /dev/tty4 /dev/tty5 /dev/tty6 /dev/tty7
/dev/ttyS0 /dev/ttyS1
[*] machine-identify
[*] networking
net.up  []={ eth0  }
[*] rtc-dev
[*] rtc-dummy
[*] hostname
[*] telnetd
[*] env-shared-libraries
[*] tiniweb
[*] tiniweb-machine-info
[*] issue
[*] sshd
[*] mysync
[*] machine-specific
fonera-2202 specific code init
- loading kernel modules
ath_ahb: magic
wlan: magic
wlan: mac acl policy registered
ath_rate_minstrel: Minstrel automatic rate control algorithm 1.2 (magic)
ath_rate_minstrel: look around rate set to 10%
ath_rate_minstrel: EWMA rolloff level set to 75%
ath_rate_minstrel: max segment size in the mrr set to 6000 us
wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wifi0: turboG rates: 6Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wifi0: H/W encryption support: WEP AES AES_CCM TKIP
ath_ahb: wifi0: : mem=0xb0000000, irq=3
fon2202-power: registering device ... success, /dev/power:253.0
usb.usbcore: registered new interface driver usb.drv.usbd480fb
- creating /dev/power
network, configuring bridge
__________________________
/  [eth0.0][eth0.1]   [ath]
|        |       |
|      __|_______|__
|     |             |
|     |   88E6060   |
|     |_____________|
|         |
|         | eth0
|       __|_____
|      |        |
|      | AR2315 |
|      |________|
|
port0
device.eth0: added VLAN with VID0
device eth0.0 entered promiscuous mode
port1
device.eth0: added VLAN with VID1
device eth0.1 entered promiscuous mode
bridge
device eth0 entered promiscuous mode
bridge0: port 1(eth0.0) entering learning state
bridge0: port 2(eth0.1) entering learning state
waiting .. done
bridge0: topology change detected, propagating
bridge0: port 1(eth0.0) entering forwarding state
bridge0: topology change detected, propagating
bridge0: port 2(eth0.1) entering forwarding state
network, wifi init
__________________________
/  [eth0.0][eth0.1]   [ath]
|        |       |       |
|      __|_______|__     |
|     |             |    |
|     |   88E6060   |    |
|     |_____________|    |
|         |              |
|         | eth0         |
|       __|_____         |
|      |        |        |
|      | AR2315 |--------x
|      |________|
|
ath0
device ath0 entered promiscuous mode
bridge1: port 1(ath0) entering learning state
configuring fonera as master to provide m.y.wlan.fonera2-hallo
waiting .. done
bridge1: topology change detected, propagating
bridge1: port 1(ath0) entering forwarding state
[*] rtc

calling login 1th/2 ...
,,,,
$$$$$$
$$$$$$$$$
$$$$$$$$$$$                                 ,,
$$$$$$$$$$$$                              $$$$$,
`$$$$$$$$$$$                            $$$$$$$$
`$$$$$$$$$Z$      $$$       $$$       $$$$$$$$`
`$ZzZ$$$Z$$$   $$$$$$$   $$$$$$$    $$$$$$$$`
`$$$ZZZ$$$$$ $$$$$$$$$ $$$$$$$$$  $$$$$$$$`
`$$$$$$$$$$ $$ZZ$$$$$ $$ZZZ$$$$ $$$$$$$$
u$$$$$$u      `$$$$$$$$$$ $$$ZZZ$$ $$$$$ZZ$$ $$$$$$$`
$$$$$$$$$$Z$     `$ZZ$$$ZZZ $$$$$$$$ $$$$$$$$$ $$$$$$
$$$$$$$$$$$Z$$$$  $$$$zzz$$$ $$$$$$$$ $$$$$$$$$ $$$$$$`
$$$$$$$$$$Z$$$$$$$$$$$$$$$$$ $$ZZ$$$$ $ZZZ$$$$$ $$$$$`
`$$$$$$$Z$$$$$$$$$$$$$$$$$ $$$$$ZZ$ $ $$$$$$$ $$$$$`
`$Z$$$$$$$$$$$$$$$$$$ $SB$$$  $$ $$$$$$ $$$$`
`$$$$$$$$$$$$$$$$$$$,````,$$$$, ````,$$$$`
`$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$`
`$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$`
`$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$`
`$$$$$$$$$$$$$$$$ $$$$$$$$$$`
`$$$$$$$$$$$$$$$$ $$$$$$$`
$$$$$$$$$$$$$$$$$$$$$$

P  o  w  e  r  u  c   m  a  c  h  i  n  e

genuine interest in the u' n i x platform
genuine appreciation of solid engineering


i   n   s   e   r   t      c  o  i  n  s      p   l   e   a   s   e

-> [*******]  ... access allowed, calling shell ...

e    a    r    l    y     r    a    m    r    o    o    t    f    s
Y O U    H A V E    T H E   P O W E R    U S E    C A R E F U L L Y

uc-fonera-2202 / # cat /proc/machine
fonera2-2202
uc-fonera-2202 / # cat /proc/endian
big-endian
uc-fonera-2202 / # cat /proc/cpuinfo
system type      : Atheros AR2315
machine         : fonera2g 2202
release         : hacked, on kika, to be tested
processor      : 0
cpu model      : MIPS 4KEc V6.4
BogoMIPS      : 219.54
wait instruction   : yes
microsecond timers   : yes
tlb_entries      : 16
extra interrupt vector   : yes
hardware watchpoint   : no
ASEs implemented   :
shadow register sets   : 1
core         : 0
VCED exceptions      : not available
VCEI exceptions      : not available

uc-fonera-2202 / # nbench
BBBBBB   YYY   Y  TTTTTTT  EEEEEEE
BBB   B  YYY   Y    TTT    EEE
BBB   B  YYY   Y    TTT    EEE
BBBBBB    YYY Y     TTT    EEEEEEE
BBB   B    YYY      TTT    EEE
BBB   B    YYY      TTT    EEE
BBBBBB     YYY      TTT    EEEEEEE

b   e   n   c   h    m   a   r   k

TEST                : Iterations/sec.  : A1 Index    : A2 Index
--------------------:------------------:-------------:------------
NUMERIC SORT        :          58.953  :       1.51  :       0.50
STRING SORT         :          5.0528  :       2.26  :       0.35
BITFIELD            :      1.8046e+07  :       3.10  :       0.65
FP EMULATION        :          4.8603  :       2.33  :       0.54
FOURIER             :          6.1951  :       0.01  :       0.00
ASSIGNMENT          :          0.5234  :       1.99  :       0.52
IDEA                :          302.81  :       4.63  :       1.38
HUFFMAN             :          11.874  :       0.33  :       0.11
NEURAL NET          :        0.005059  :       0.01  :       0.00
LU DECOMPOSITION    :         0.14948  :       0.01  :       0.01
==========================BYTEMARK RESULTS==========================
INTEGER INDEX       : 1.852
FLOATING-POINT INDEX: 0.008
MEMORY INDEX        : 0.489
INTEGER INDEX       : 0.443
FLOATING-POINT INDEX: 0.004

uc-fonera-2202 / #


I have already shown you a screenshot, the above ramrootfs runs on IP30 too

(about good test-code, I am using nbench)


IP30/SMP (2.6.17.4.hack), Toshiba RISC 2xR12000 @ 400Mhz with FPU -> BogoMIPS 598.01+600.00

Code: Select all

TEST                : Iterations/sec.  : A1 Index    : A2 Index
--------------------:------------------:-------------:------------
NUMERIC SORT        :          232.48  :       5.96  :       1.96
STRING SORT         :          12.302  :       5.50  :       0.85
BITFIELD            :      5.3881e+07  :       9.24  :       1.93
FP EMULATION        :          18.449  :       8.85  :       2.04
FOURIER             :          4538.6  :       5.16  :       2.90
ASSIGNMENT          :          3.4313  :      13.06  :       3.39
IDEA                :          830.71  :      12.71  :       3.77
HUFFMAN             :          331.39  :       9.19  :       2.93
NEURAL NET          :          3.0852  :       4.96  :       2.08
LU DECOMPOSITION    :          139.52  :       7.23  :       5.22
==========================BYTEMARK RESULTS==========================
INTEGER INDEX       : 8.800
FLOATING-POINT INDEX: 5.697
MEMORY INDEX        : 1.772
INTEGER INDEX       : 2.580
FLOATING-POINT INDEX: 3.160


IP30 SMP (2.6.17.4.hack), Toshiba RISC 2xR14000 @ 600Mhz with FPU -> BogoMIPS 897.02+897.02

Code: Select all

TEST                : Iterations/sec.  : A1 Index    : A2 Index
--------------------:------------------:-------------:------------
NUMERIC SORT        :          346.24  :       8.88  :       2.92
STRING SORT         :          18.283  :       8.17  :       1.26
BITFIELD            :      8.0344e+07  :      13.78  :       2.88
FP EMULATION        :          27.519  :      13.20  :       3.05
FOURIER             :          6776.2  :       7.71  :       4.33
ASSIGNMENT          :          5.0623  :      19.26  :       5.00
IDEA                :          1241.6  :      18.99  :       5.64
HUFFMAN             :          494.07  :      13.70  :       4.38
NEURAL NET          :          4.6025  :       7.39  :       3.11
LU DECOMPOSITION    :           199.2  :      10.32  :       7.45
==========================BYTEMARK RESULTS==========================
INTEGER INDEX       : 13.099
FLOATING-POINT INDEX: 8.378
MEMORY INDEX        : 2.630
INTEGER INDEX       : 3.848
FLOATING-POINT INDEX: 4.646



So I can measure & compare "progresses" from 2.6.17 to 4.* :D
have fun
Kumba wrote:
nyef wrote: I have bad news for you: If you check, you'll find that the FPU won't kick over to FR1 mode, which is required for N32 and N64. It's on my shortlist to try and fix, but my project bandwidth has shifted away from MIPS kernel hacking for the past while.

Is this affecting IP35-only? I haven't had much of an issue on IP30 running N32. IP27 had a minor buggeroo w/ FP support when Maciej added a patch that didn't account for IP27's setting FCSR to random values on a cold restart. That was quickly detected and fixed, though. That all said, I haven't tried running any programs that fully exploit N32 and FP yet, either.

All R1x000 CPUs. The FPU implementation/revision ID register is defined to have the top half wired to zero, but the kernel treats it as a bunch of flags for features present or not present (probably a mips32/mips64 thing, and since mips4 predates them we get bit).

nyef wrote: Interesting (probably bad) news: I have a short C test program that causes my O350 to reliably do something weird, and one of the failure modes is a bus error. And it runs perfectly well on my ERLite-3. I think it's a TLB thing, but haven't tracked it down beyond getting a test program, which I did hand off to Ralf so that there'd be more than one set of eyes on the problem. http://paste.lisp.org/display/160204 if you want to take a look.

Running this won't crash the kernel, will it? Don't want to interrupt the compile run on the uclibc stuff if it will...

I've not noticed it crash the kernel, but you may want to play it safe anyway. It also might only crash on the smaller page size.

nyef wrote: I've got a possible further angle so that we don't have to do this constant "blah, blah, and on SGI MIPS we also have to twiddle this bit in the DMA address" thing. And, now that I'm thinking about it, my patches may not work for you due to the differences between the DMA setup between the IP30 bridge driver and the IP35 bridge driver.

I got a feeling a lot of the [X]BRIDGE setup code between IP27, IP30, and IP35 can be unified a bit more over time. Make the mess a lot easier to read and follow. IP27's big issue is the resource allocation part. I ended up changing that to the XIO window bases, and it works for internal PCI stuff, but that system was not picking up on a USB2.0 card I installed via an XIO shoehorn. Ended up pulling that card before I thought to revert to the original code and test again.

I have near certainty that they can be unified. The main differences are the IRQ mapping, and that 512-meg DMA thing on IP30. And since the DMA thing is for D32 DMA, which neither IP27 nor IP35 are using (and I'll argue that IP30 probably shouldn't use either)...

nyef wrote: I'm wondering if it might not make sense for me to create an IP30 branch from my current IP35 tree and basically try to bring it up like a new port, cribbing liberally from your existing patch set.

That should work. I can cherry pick as needed until things are more unified. I track upstream a lot faster, using rolling new patches from my local git repo when a new kernel is released and Ralf pulls from upstream. 4.4 looks to still be a few weeks off, probably 2-3rd week of January, if I had to guess. I need to re-submit patches I had for 4.4 for 4.5 (or 4.6), as Ralf didn't get to them for the 4.4 merge window.

Okay, so if I start within the next month, rebasing to a 4.4-rc tree is probably in order as a first step.
Guys, don't worry about kernel crashes, since I have implemented this hw hack, I am now able to reboot the machine remotely! So I can test whatever you want to be tested, including unsafe kernel code :D
have fun
I am told their products are not at all cheap, but are very well built.


That's pretty much Sonnet in a nutshell. The one card of theirs I had that went bad, they no longer sold, but were able to locate a replacement for me out of new old stock at their expense. And that was after the warranty ended, by the way.
smit happens.

:Fuel: bigred , 900MHz R16K, 4GB RAM, V12 DCD, 6.5.30
:Indy: indy , 150MHz R4400SC, 256MB RAM, XL24, 6.5.10
:Indigo2IMP: purplehaze , 175MHz R10000, Solid IMPACT
probably posted from Image bruce , Quad 2.5GHz PowerPC 970MP, 16GB RAM, Mac OS X 10.4.11
plus IBM POWER6 p520 * Apple Network Server 500 * HP C8000 * BeBox * Solbourne S3000 * Commodore 128 * many more...
nyef wrote: All R1x000 CPUs. The FPU implementation/revision ID register is defined to have the top half wired to zero, but the kernel treats it as a bunch of flags for features present or not present (probably a mips32/mips64 thing, and since mips4 predates them we get bit).

Yeah, I've always noticed that the Kernel seems to read the FPU revision a bit oddly, always reporting it in "uname -a" as "0.0" (Gentoo's version of uname parses the Machine/CPU/FPU type out of /proc/cpuinfo). Sounds like a bug to report to the linux-mips ML; maybe get Ralf or Maciej's attention on it. That said, I haven't seen any ill effects running N32 on the Octane, so I must not have managed to trip it up just yet.


nyef wrote: I've not noticed it crash the kernel, but you may want to play it safe anyway. It also might only crash on the smaller page size.

Or the stars will become right again and dead Cthulhu will live once more.


nyef wrote: I have near certainty that they can be unified. The main differences are the IRQ mapping, and that 512-meg DMA thing on IP30. And since the DMA thing is for D32 DMA, which neither IP27 nor IP35 are using (and I'll argue that IP30 probably shouldn't use either)...

Agreed. I have a test branch in my local repo where I switched the bits over to do DMA64 and use large XIO windows. The machine actually booted and ran for a few minutes, before something in the SCSI subsystem locked it up. So it's definitely doable, but needs further work. Also, the other bits are to properly handle pure-XIO devices with Linux's DMA setup, because it blindly assumes anything doing DMA is a PCI device. That's likely the source of the Impact driver's ills.
:Onyx2: 4x R14000 :Tezro: 4x R16000 :Fuel: 1x R16000 :Octane: 2x R14000 :O2+: RM7000 :O2: R10000 :O2: RM5200 :Indigo: R4400 :Indigo2IMP: R10000 :Indigo2: R8000 :O3x0: 4x R14000 :Indy: R5000

"The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between."
--Emperor Turhan, Centauri Republic
which stress & test apps do you run ? && what do you think about "nbench" ?

unfortunately all my routers are FPU_LESS, so I am using two solutions
  • soft float profile, the floating point is provided in userspace by an external emulation library, directly linked to the App, and gcc is patched and configured to use it.
  • kernel support, trapping all the exceptions in kernel space, so the Application believes that the hardware owns a floating point unit

currently I am using the first one, as it's the default choice used by OpenWRT (and I am recycling a part of their code/builder)

I'd like to have "something" (an application, a piece of C code, whatever) to measures the fine grane scheduling speedup, as my 2.6.17 was still using big-kernel-locks. Today I have completed the v4.3 build up, I am going to give it a full try, planned for this WE
bye.
gentoo-4.3.0.20151126: the first try … fails

Code: Select all


System Maintenance Command Monitor
>> bootp():
Setting $netaddr to 192.168.1.4 (from server )
Obtaining  from server
12953624+305080 entry: 0xa80000002066a590
Linux version 4.3.0-Blurry-Fish-Butt-ip30 (root@kika) (gcc version 4.3.5 (Gentoo 4.3.5 p1.1) ) #3 Thu Dec 10 12:40:07 CET 2015
ARCH: SGI-IP30
PROMLIB: ARC firmware Version 64 Revision 0
bootconsole [early0] enabled
CPU0 revision is: 00000f24 (R14000)
FPU revision is: 00000900
Checking for the multiply/shift bug... no.
Checking for the daddiu bug... no.
Detected 1536MB of physical memory.
Determined physical RAM map:
memory: 0000000000004000 @ 0000000000000000 (reserved)
memory: 0000000000ca5000 @ 0000000020004000 (reserved)
memory: 0000000000257000 @ 0000000020ca9000 (usable)
memory: 0000000000100000 @ 0000000020f00000 (ROM data)
memory: 000000005f000000 @ 0000000021000000 (usable)
Wasting 7521528 bytes for tracking 134313 unused pages
Initrd not found or empty - disabling initrd
Zone ranges:
DMA      [mem 0x0000000000000000-0x000000009fffffff]
Normal   empty
Movable zone start for each node
Early memory node ranges
node   0: [mem 0x0000000000000000-0x0000000000003fff]
node   0: [mem 0x0000000020004000-0x000000007fffffff]
Initmem setup node 0 [mem 0x0000000000000000-0x000000007fffffff]
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.
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 386048
Kernel command line:  ip=off console=ttyS0,9600 rdinit=/sbin/init init=/bin/bash
PID hash table entries: 4096 (order: 3, 32768 bytes)
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Memory: 1527020K/1572864K available (6584K kernel code, 284K rwdata, 1412K rodata, 4348K init, 291K bss, 45844K reserved, 0K cma-reserved)
SLUB: HWalign=128, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:128
IP30: HEART interrupt controller initialized.
IP30: CPU0: 600 MHz CPU detected
clocksource: HEART: mask: 0xfffffffffffff max_cycles: 0x2e2049cda, max_idle_ns: 440795202628 ns
sched_clock: 52 bits at 12MHz, resolution 80ns, wraps every 4398046511080ns
clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6370232830 ns
sched_clock: 32 bits at 300MHz, resolution 3ns, wraps every 7157564926ns
Console: colour dummy device 80x25
Calibrating delay loop... 897.02 BogoMIPS (lpj=1794048)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
Checking for the daddi bug... no.
devtmpfs: initialized
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
xor: measuring software checksum speed
8regs     :   770.000 MB/sec
8regs_prefetch:   740.000 MB/sec
32regs    :   763.000 MB/sec
32regs_prefetch:   745.000 MB/sec
xor: using function: 8regs (770.000 MB/sec)
NET: Registered protocol family 16
xtalk:0 xbow widget (rev 2.0) registered as a platform device.
xtalk:8 heart widget (rev F) registered as a platform device.
xtalk:10 bridge widget (rev D) registered as a platform device.
xtalk:11 bridge widget (rev D) registered as a platform device.
xtalk:15 bridge widget (rev D) registered as a platform device.



Running power-on diagnostics…


I am switching back to "ip30_defconfig-4.3.0", then I will try to add features and options


Code: Select all

>> bootp():
Setting $netaddr to 192.168.1.4 (from server )
Obtaining  from server
10547500+256516 entry: 0xa80000002049d240

*** PROM write error on cacheline 0x1fcc1100 at PC=0xa8000000205f8270 RA=0xa8000000205dc24c


the the second try fails funnier :lol:

Code: Select all

[5] mips64-unknown-linux-gnu-4.3.5
[6] mips64-unknown-linux-gnu-4.9.3 *


emerged & switched to sys-devel/kgcc64-v4.9.3!
(64bit kernel compiler)
bye.
ivelegacy wrote: gentoo-4.3.0.20151126: the first try … fails

Code: Select all

xtalk:0 xbow widget (rev 2.0) registered as a platform device.
xtalk:8 heart widget (rev F) registered as a platform device.
xtalk:10 bridge widget (rev D) registered as a platform device.
xtalk:11 bridge widget (rev D) registered as a platform device.
xtalk:15 bridge widget (rev D) registered as a platform device.



Running power-on diagnostics…


I am switching back to "ip30_defconfig-4.3.0", then I will try to add features and options

I said I stripped that defconfig down a fair bit. Can't rule out I removed something critical. I'll have to remember to do some test boots to work out a generic defconfig and add it to my patch set.

That said, at the above point you indicated, did it simply freeze up or auto-reboot itself?


ivelegacy wrote:

Code: Select all

>> bootp():
Setting $netaddr to 192.168.1.4 (from server )
Obtaining  from server
10547500+256516 entry: 0xa80000002049d240

*** PROM write error on cacheline 0x1fcc1100 at PC=0xa8000000205f8270 RA=0xa8000000205dc24c


the the second try fails funnier :lol:

This is one of those annoying errors that no one has ever figured out. Similar to why CONFIG_DEBUG_LOCK_ALLOC always triggers the "doesn't fit in a FreeMemory area." error on at least IP27 and IP30. I suspect both are probably related to alignment oddies in the final kernel image.


ivelegacy wrote:

Code: Select all

[5] mips64-unknown-linux-gnu-4.3.5
[6] mips64-unknown-linux-gnu-4.9.3 *


emerged & switched to sys-devel/kgcc64-v4.9.3!
(64bit kernel compiler)

Yeah, please use a more recent compiler than 4.3.x. That's over 5 years old.

You can also build a cross-compiler on a faster Intel box using Gentoo's crossdev tool (if you have Gentoo on another box). The kernel currently running on my Octane is built with gcc-5.3.0, although right now, you can't compile 5.3.0 on MIPS N32 itself, possibly due to PR66038. Might work on O32, as I can build gcc-5.3.0 in a uclibc chroot, but haven't tried on a glibc chroot yet.

You have dual R14K/600MHz in your Octane, right? What graphics card?
:Onyx2: 4x R14000 :Tezro: 4x R16000 :Fuel: 1x R16000 :Octane: 2x R14000 :O2+: RM7000 :O2: R10000 :O2: RM5200 :Indigo: R4400 :Indigo2IMP: R10000 :Indigo2: R8000 :O3x0: 4x R14000 :Indy: R5000

"The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between."
--Emperor Turhan, Centauri Republic
Kumba wrote: That said, at the above point you indicated, did it simply freeze up or auto-reboot itself?


auto-reboot itself!

You have dual R14K/600MHz in your Octane, right? What graphics card?


my IP30 is SMP2xR12K@400Mhz, my friend machine is 2XR14K@600Mhz
both machines do not have a GfX installed, mine has a MENET and ShoeHorn
his machine has a empty carrier (just the plastics without anything installed)

the above screenshot is from his machine, mine auto-reboot itself
so we get the same reaction from both of them

Kumba wrote: gcc-5.3.0


my production kernel, 2.6.17-rc4-hack, gets compiled by kgcc-v4.3.5 and boots fine
I have switched to the last kgcc in the portage

gcc-5.3.0, as far as I see from the portage (last --sync, yesterday) it's currently ~mips
but I can force it, just give me the time, my Atheros9 takes 9 hours to compile gcc

Atheros9 = mips32r2/be/32bit, funny 900Mhz machine
bye.
ivelegacy wrote: auto-reboot itself!

That would indeed be odd. Usually, the kernel would just lock up, not trigger the PROM reset vector or HEART's cold reset bit. Gonna have to write this one off to your compiler for now.


ivelegacy wrote: my IP30 is SMP2xR12K@400Mhz, my friend machine is 2XR14K@600Mhz
both machines do not have a GfX installed, mine has a MENET and ShoeHorn
his machine has a empty carrier (just the plastics without anything installed)

the above screenshot is from his machine, mine auto-reboot itself
so we get the same reaction from both of them

I'll upload a config in a bit that has SMP stuff, but lacks graphics entirely. If that fails, then I'll build a kernel for you to try.


ivelegacy wrote: my production kernel, 2.6.17-rc4-hack, gets compiled by kgcc-v4.3.5 and boots fine
I have switched to the last kgcc in the portage

gcc-5.3.0, as far as I see from the portage (last --sync, yesterday) it's currently ~mips
but I can force it, just give me the time, my Atheros9 takes 9 hours to compile gcc

Still need to get you off of 2.6.x entirely. I can only wonder about the security flaws that cumulatively exist in such an old release.

gcc-5.3.0 is ~mips, but as I mentioned previously, none of the 5.x series will compile under N32 (N64 is unknown). It might under O32, but I can only vouch for that on a Uclibc root, as my glibc-based o32 root got brain-damaged when I was trying to migrate to N32 a while back, and I just haven't set up another one yet. That said, I *think* 5.x compiles faster. In uclibc, I timed a full build at ~11 hours, while I know 4.9.x is closer to 13 hours. That was on a dual R14K/600MHz CPU, though. The 5.3 release notes suggest that this release sports faster code generation and link times, so that might explains the differences.
:Onyx2: 4x R14000 :Tezro: 4x R16000 :Fuel: 1x R16000 :Octane: 2x R14000 :O2+: RM7000 :O2: R10000 :O2: RM5200 :Indigo: R4400 :Indigo2IMP: R10000 :Indigo2: R8000 :O3x0: 4x R14000 :Indy: R5000

"The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between."
--Emperor Turhan, Centauri Republic