Hi Christoph, On Thu, Sep 20, 2018 at 11:09:41PM -0700, Christoph Hellwig wrote: > On Thu, Sep 20, 2018 at 08:48:37PM +0000, Paul Burton wrote: > > > Speaking of nanoMIPS, what is your plan for the syscall ABI there? > > > I can see two ways of approaching it: > > > > > > a) keep all the MIPSisms in the data structures, and just use a subset of > > > o32 that drops all the obsolete entry points > > > b) start over and stay as close as possible to the generic ABI, using the > > > asm-generic versions of both the syscall table and the uapi header > > > files instead of the traditional version. > > > > We've taken option b in our current downstream kernel & that's what I > > hope we'll get upstream too. There's no expectation that we'll ever need > > to mix pre-nanoMIPS & nanoMIPS ISAs or their associated ABIs across the > > kernel/user boundary so it's felt like a great opportunity to clean up & > > standardise. > > > > Getting nanoMIPS/p32 support submitted upstream is on my to-do list, but > > there's a bunch of prep work to get in first & of course that to-do list > > is forever growing. Hopefully in the next couple of cycles. > > p32 is just the ABI name for nanoMIPS or yet another MIPS ABI? p32 is the ABI for nanoMIPS - ie. it is a new ABI, but it's not for use with pre-nanoMIPS ISAs & nanoMIPS isn't used with o32/n32/n64. Some of the code density improvements nanoMIPS brings are due to the ISA & p32 ABI being developed together - eg. the load/store multiple & save/restore instructions make it easy to save sequences of $sp, $fp, $ra & some number of the $sN callee-saved registers. Compressed register number encodings generally include registers that make sense for the p32 ABI, and I'm sure there were other things I've forgotten. > Either way, І think if there is yet another ABI even on an existing port > we should always aim for the asm-generic syscall table indeed. > > Especially for mips where o32 has a rather awkward ABI only explained by > odd decisions more than 20 years ago. Glad to hear we're on the same page :) I'm all for being less "special" & couldn't care less if our nanoMIPS support isn't compatible with IRIX. Thanks, Paul