On 10/24/14 19:08, Isaac Dunham wrote: > On Fri, Oct 24, 2014 at 02:27:46PM -0700, James McMechan wrote: >>>> TP-Link mr3020 - aboriginal will build MIPS, but static binaries do not >>>> run on openwrt kernel >>>> hoo-too Tripmate Elite - also MIPS not yet tested >>> >>> mips has a sort of oabi/eabi thing going on, where the old mipsr4k >>> binaries I'm building (with the hard 256 meg memory constraint) are >>> being replaced by "mips32" which is some confusing thing I need to read >>> up on and has some kind of "kernel space code and userspace code aren't >>> the same thing" weirdness going on that I got half an explanation of and >>> don't understand. >>> > > I can't explain that, but OpenWRT builds kernels without FPU emulation, > meaning that most MIPS routers need a soft-float ABI.
I honestly don't remember what the aboriginal mips target is currently using (whatever gcc 4.2.1 defaults to), but there's a GCC_FLAGS= entry in sources/targets/mips that we can feed other stuff to. (And tweak the uclibc and kernel configs to match...) I really need to get everything switched over to musl by default before fiddling with this sort of thing much more though. Another round of toolchain symbol visibility decision path tweaks. (The guts of gcc are never a fun place to hang out...) >> According to some of the notes for more than 384MB you need to boot a 64bit >> kernel >> MIPS32 looks like MIPS-II + bits from MIPS-III, MIPS-IV & MIPS-V but without >> the 64bit >> mode MIPS-III (R4000) and later instruction sets all had. >> The Indy low cost pizzabox used FPM SIMMs but could only go up to 8x32MB for >> 256MB >> Pretty much all others of the ones using standard FPM SIMMs could take more >> memory >> even back in the 1990s where is this hard 256MB limit from? > > http://www.linux-mips.org/wiki/Highmem > says it's basically that only 512MB are theoretically addresseable as lowmem, > and some of that is reserved so only half can be used. Somebody explained to me (many moons ago, in private email) that mips uses bits from the 32 bit physical pointers as status bits instead of having enough bits in the page tables, so only 512 megs of it is left as actual address space, half of which is used for I/O memory (more or less another status bit). So that's 256 megs actual physical memory. (Of course this explanation could be wrong...) Rob _______________________________________________ Toybox mailing list [email protected] http://lists.landley.net/listinfo.cgi/toybox-landley.net
