[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] uCLinux VS Linux



Hi Greg,

Greg Miller wrote:

> John, to answer your question below I am using open-source distribution 
> 2.4.30-pre1 from the MV website. (It is not the supported version however).
> I used Crosstool to build the ppc cross compiler.

OK, off to a good start.

> Here is what I want to do:
> 1). mount a drive on ddr like uCLinux does (i.e. not have to use nfs or 
> the ACE).
> 2). Build in Busybox like uCLinux
> 3). build a .bit file like uCLinux (not .elf)
> 4). Get MTD to work with flash.
>  
> Basically, I want it to be very similar to uCLinux except for the 
> running on the PPC in V4 not on MB.

I think this is a good approach - some work to get there however.

 From memory, here's what I did (hypothetically targeting Xilinx ml403, 
but you choose your own):

1.  Create vendors/Xilinx/ml403ppc  directory. Just copy from 
vendors/Xilinux/uclinux-auto or similar
2.  Create vendors/config/ppc directory - take contents from 
vendors/config/microblaze.  Edit the config.arch as appropriate (setup 
correct compiler prefixes etc).

3.  Edit vendors/Xilinx/ml403ppc/config.arch to include 
vendors/config/ppc/config.arch (instead of microblaze/config.arch)

** Now at least you have a vendor/board target that will try to use the 
ppc compiler instead of microblaze

4.  get a recent PPC kernel tree from MV

5.  link to it from within uClinux-dist (same as you normally do for 
uClinux-2.4.x tree)

$ ln -s ../linux-ppc-2.4.x linux-2.4.x

6.  make menuconfig, select your new vendor/board combo.  Probably need 
to go into kernel config and set up some sensible parameters.  Also, 
choose to update default values, so you don't have to make the same 
changes all the time.

7.  make dep, make linux, etc

That's about where my recipe has to stop - it's going to become a 
make/debug cycle for many iterations.

Doing essentially the above I built a PPC kernel last year, but never 
had any hardware to boot it on.

The issue here is that montavista use an entirely different approach to 
integrating into the EDK tools.  In my not so humble opinion the "bulk 
info dump" auto-config.in approach of mb-uclinux is superior, but the 
chances of getting that pushed into the MV tree are essentially zero.

So, the question becomes, go with the flow, or against the flow, 
maintaining patch sets and all that horrible mess.

One possibility is to import a newish PPC tree into the uClinux kernel, 
and work it in there.  That requires a ongoing maintenence effort to 
stay in synch with the MV PPC tree.

Alternatively, we could ignore MV's tree and just work on the mainline 
that gets imported by SnapGear into the uClinux CVS on a pretty regular 
basis.

This might actually be a nice way to go - we could essentaily redo the 
linux port for Xilinx PPC, do it the auto-config way from the start.  A 
bit of work, but maybe cleaner in the end.

Judging by the complete absence of any xilinx-specific stuff in the CVS 
ppc arch subdir, it seems MV haven't pushed any of that into the mainline.

Yashi, you've experimented with PPC kernels right?  Any thoughts on all 
of this?

I feel pretty strongly that a seamless transition between PPC kernels 
and MicroBlaze kernels within the uClinux-dist is a very potent tool, 
and would like to help to support that goal.

Cheers,

John
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/