Microblaze init port v4

2008-06-26 Thread monstr
Hi everybody,

current linux version is 2.6.26-rc8 and I think this is the right time
to send latest patches againts rc8 for Microblaze CPU.

I fixed there some issues which were reported to me.

We have there still problem with syscalls and we don't have chance to 
fix it to stable version, this is not part which I can do yourself. 
Microblaze will be n + 1 platform which use some old syscalls. 
I hope you understand.

I am sending more than 50 patches and I would like to see ACKs for patches
which are good and comments for patches which are bad.

Thanks for your time and review.

Best regards,
Michal Simek
www.monstr.eu


___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Microblaze init port v4

2008-06-26 Thread Adrian Bunk
On Thu, Jun 26, 2008 at 02:29:29PM +0200, [EMAIL PROTECTED] wrote:
 Hi everybody,
 
 current linux version is 2.6.26-rc8 and I think this is the right time
 to send latest patches againts rc8 for Microblaze CPU.
...

Thanks for your work on getting the architecture included.

I have two questions:

Where can I find a toolchain for compiling a Microblaze kernel?
What is the status of Microblaze support in upstream binutils and gcc?

 Best regards,
 Michal Simek

TIA
Adrian

-- 

   Is there not promise of rain? Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   Only a promise, Lao Er said.
   Pearl S. Buck - Dragon Seed

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Microblaze init port v4

2008-06-26 Thread Arnd Bergmann
On Thursday 26 June 2008, [EMAIL PROTECTED] wrote:
 We have there still problem with syscalls and we don't have chance to 
 fix it to stable version, this is not part which I can do yourself. 
 Microblaze will be n + 1 platform which use some old syscalls. 
 I hope you understand.

That still leaves the problem that a lot of your syscalls have bugs
copied from other platforms. If you need to maintain backwards compatibility
with your existing binaries, that's fine, but please fix the code you are
adding.

Arnd 
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Microblaze init port v4

2008-06-26 Thread Arnd Bergmann
On Thursday 26 June 2008, Arnd Bergmann wrote:

 That still leaves the problem that a lot of your syscalls have bugs
 copied from other platforms. If you need to maintain backwards compatibility
 with your existing binaries, that's fine, but please fix the code you are
 adding.

Sorry for my harsh words here, I should have read your patch set before
commenting on the introduction.
Most of the interfaces look good now, there are really just details left
now.

So contrary to what we had discussed before, you seem to have decided
to try to maintain source level compatibility with old uClibc versions,
but dropped binary compatibility that does not make much sense on
your architecture (considering that people synthesize their CPU with
a custom instruction set and then build kernel and user space for that),
which sounds reasonable to me, based on the earlier discussion.

On a more detailed level, there are a number of decisions in your
syscall interface, so let me summarize what I see you have done
and please tell me if this was all intentional or just an arbitrary
decision that seemed good at some point:

* off_t is 32 bit, and you use both off_t and loff_t based syscalls:
This is required because uClibc calls both versions of the syscalls,
otherwise you'd need to add a lot of code in uClibc.

* You implement both legacy and rt signal interfaces, just like
everyone else does. It probably seemed like a good idea because
something might actually be using the legacy interfaces in
arch/microblaze/kernel/signal.c, but AFAICT, neither libc nor
uClibc has been using them in a very long time when they are
both present, certainly longer than microblaze has been around.
The fact that you never noticed the missing sigaltstack implementation
is a good indication that this code has never seen any testing
and probably has more bugs.

* You have not implemented the *at() family of syscalls, which seems
to be an accidental misimplementation, and you have consequently
not removed the older versions of these syscalls, which is
correct if you don't want to break source level compatibility.

* Your syscall list follows the exact same numbering as i386,
which is fairly unusual, but not incorrect, despite wasting
a little memory on the unused slots. I suppose you did this
in order to keep some level of binary compatibility with older
user code. Since you are subtly breaking compatibility now,
I would still recommend changing all the numbers so that you
can guarantee that every old binary is obviously broken
instead of showing random problems.

* You are using sys_ipc and sys_socketcall instead of the
broken-out syscalls, which is a direct consequence of following
the i386 numbering scheme.

* You have defined both stat and stat64, with different definitions.
uClibc does have a copy of the two struct definitions, so you can't
easily change them without changing uClibc as well. Otherwise it
would have been good to define struct stat in the same way as
struct stat64, and only provide sys_stat but not sys_stat64 as
a syscall.

* I have already commented on the __ARCH_WANT_SYS_* macros you
define. Independent of the off_t, signal and *at() syscalls, I
think you should reduce the number of them by as much as you
can without breaking uClibc support. You can probably remove
almost all of them (not __ARCH_WANT_SYS_RT_SIGACTION,
__ARCH_WANT_STAT64 and __ARCH_WANT_SYS_SOCKETCALL, as I mentioned).

* Your syscall_table now contains two entries for each of the
uid32 functions, e.g __NR_setreuid32 and __NR_setreuid have
different numbers but both point to sys_setreuid.
No problem here, but a little unusual. As with the other functions
I mentioned, uClibc and glibc always call the *32 variant if that
is defined and the other one if it's not. I would suggest doing either
#define __NR_setreuid32 __NR_setreuid
#define __NR_setreuid 203
or (better)
#undef __NR_setreuid32
#define __NR_setreuid 203
to make the architecture more regular in this regard.

Arnd 
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Microblaze init port v4

2008-06-26 Thread H. Peter Anvin

Arnd Bergmann wrote:


* You are using sys_ipc and sys_socketcall instead of the
broken-out syscalls, which is a direct consequence of following
the i386 numbering scheme.



Please pretty please kill, kill, kill...

-hpa
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Microblaze init port v4

2008-06-26 Thread Michal Simek
Hi Adrian,

 On Thu, Jun 26, 2008 at 02:29:29PM +0200, [EMAIL PROTECTED] wrote:
 Hi everybody,

 current linux version is 2.6.26-rc8 and I think this is the right time
 to send latest patches againts rc8 for Microblaze CPU.
 ...
 
 Thanks for your work on getting the architecture included.
 
 I have two questions:
 
 Where can I find a toolchain for compiling a Microblaze kernel?
I personally use petalogix toolchain from www.petalogix.com.

 What is the status of Microblaze support in upstream binutils and gcc?

I don't have any information about. We will discuss with John Williams and guys
from Xilinx
what we can do for it.

M

 Best regards,
 Michal Simek
 
 TIA
 Adrian
 
 
 
 
 
 
 No virus found in this incoming message.
 Checked by AVG. 
 Version: 8.0.101 / Virus Database: 270.4.1/1519 - Release Date: 25.6.2008 
 04:13
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Microblaze init port v4

2008-06-26 Thread Michal Simek
Hi Arnd,

 On Thursday 26 June 2008, [EMAIL PROTECTED] wrote:
 We have there still problem with syscalls and we don't have chance to 
 fix it to stable version, this is not part which I can do yourself. 
 Microblaze will be n + 1 platform which use some old syscalls. 
 I hope you understand.
 
 That still leaves the problem that a lot of your syscalls have bugs
 copied from other platforms. If you need to maintain backwards compatibility
 with your existing binaries, that's fine, but please fix the code you are
 adding.

This is for now. I'll remove when I will have new toolchain.

I saw an email from you about.

M
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Microblaze init port v4

2008-06-26 Thread Adrian Bunk
On Thu, Jun 26, 2008 at 08:50:37PM +0200, Michal Simek wrote:
 Hi Adrian,
 
  On Thu, Jun 26, 2008 at 02:29:29PM +0200, [EMAIL PROTECTED] wrote:
  Hi everybody,
 
  current linux version is 2.6.26-rc8 and I think this is the right time
  to send latest patches againts rc8 for Microblaze CPU.
  ...
  
  Thanks for your work on getting the architecture included.
  
  I have two questions:
  
  Where can I find a toolchain for compiling a Microblaze kernel?
 I personally use petalogix toolchain from www.petalogix.com.
 
  What is the status of Microblaze support in upstream binutils and gcc?
 
 I don't have any information about. We will discuss with John Williams and 
 guys
 from Xilinx
 what we can do for it.

Thanks!

 M

cu
Adrian

-- 

   Is there not promise of rain? Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   Only a promise, Lao Er said.
   Pearl S. Buck - Dragon Seed

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


RE: Microblaze init port v4

2008-06-26 Thread Stephen Neuendorffer

We're looking at putting a microblaze toolchain on git.xilinx.com, which
will be slightly easier than grabbing all of petalinux, if people just
want to compile test it.  

At the moment, we would very much like to push the microblaze
architecture code to the gcc mainline.  I believe the main barrier is
that we don't have someone with the bandwidth to interact with the gcc
community at the moment, although hiring someone to work on it may be in
the works. (Anyone interested?)

Steve

 -Original Message-
 From: Adrian Bunk [mailto:[EMAIL PROTECTED]
 Sent: Thursday, June 26, 2008 12:43 PM
 To: Michal Simek
 Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED];
[EMAIL PROTECTED]; Stephen Neuendorffer;
 John Linn; [EMAIL PROTECTED]; [EMAIL PROTECTED];
[EMAIL PROTECTED]; [EMAIL PROTECTED];
 [EMAIL PROTECTED]; [EMAIL PROTECTED];
linuxppc-dev@ozlabs.org;
 [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
 Subject: Re: Microblaze init port v4
 
 On Thu, Jun 26, 2008 at 08:50:37PM +0200, Michal Simek wrote:
  Hi Adrian,
 
   On Thu, Jun 26, 2008 at 02:29:29PM +0200, [EMAIL PROTECTED] wrote:
   Hi everybody,
  
   current linux version is 2.6.26-rc8 and I think this is the right
time
   to send latest patches againts rc8 for Microblaze CPU.
   ...
  
   Thanks for your work on getting the architecture included.
  
   I have two questions:
  
   Where can I find a toolchain for compiling a Microblaze kernel?
  I personally use petalogix toolchain from www.petalogix.com.
 
   What is the status of Microblaze support in upstream binutils and
gcc?
 
  I don't have any information about. We will discuss with John
Williams and guys
  from Xilinx
  what we can do for it.
 
 Thanks!
 
  M
 
 cu
 Adrian
 
 --
 
Is there not promise of rain? Ling Tan asked suddenly out
 of the darkness. There had been need of rain for many days.
Only a promise, Lao Er said.
Pearl S. Buck - Dragon Seed
 


This email and any attachments are intended for the sole use of the named 
recipient(s) and contain(s) confidential information that may be proprietary, 
privileged or copyrighted under applicable law. If you are not the intended 
recipient, do not read, copy, or forward this email message or any attachments. 
Delete this email message and any attachments immediately.


___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: Microblaze init port v4

2008-06-26 Thread John Williams
Hi,

On 6/27/08, Adrian Bunk [EMAIL PROTECTED] wrote:
 On Thu, Jun 26, 2008 at 02:29:29PM +0200, [EMAIL PROTECTED] wrote:

   current linux version is 2.6.26-rc8 and I think this is the right time
   to send latest patches againts rc8 for Microblaze CPU.
  ...

  Thanks for your work on getting the architecture included.

  I have two questions:

  Where can I find a toolchain for compiling a Microblaze kernel?

We bundle it in the PetaLinux distro:

http://developer.petalogix.com

  What is the status of Microblaze support in upstream binutils and gcc?

noMMU uClibc toolchain is at 3.4.1, MMU/glibc is at 4.1.1  Xilinx does
their gcc/binutils stuff mostly in-house, and none of it is upstream.
We (PetaLogix) build and distribute the uClibc toolchain, and we are
slowly merging the MMU support across to our regular distro, that will
also include the glibc tools.

Cheers,

John
-- 
John Williams, PhD, B.Eng, B.IT
PetaLogix - Linux Solutions for a Reconfigurable World
w: www.petalogix.com  p: +61-7-30090663  f: +61-7-30090663
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev