FPGARelated.com
Forums

PPC Linux SoC on Virtex4 in 4 hours !?

Started by Antti February 28, 2006
Setting up MicroBlaze-uClinux on new FPGA board is a matter of hours -
with PPC linux, well there are gurus around claiming that it can be
done
within 4 hours - so far I have been very sceptical against such claims
mainly as I had until 10 minutes ago never created a Xilinx FPGA PPC
system with linux booting capability

So my schedule was

1 New V4 PPC system with EDK (complete from scratch)
2 ppc u-boot, compile test working
3 ppc uClinux, build load run, console prompt
==================
=> 2.5 days work

that is a defenetly more than 4 hours, but hey I believe
now that some guy with extensive linux-ppc-fpga experience
could have managed it all in 4 hours. First time try til
succesful linux prompt its just me who needed a bit more :)

When its done it always simple, the PPC capable linux SoC
requirements are actually same as for the microblaze uclinux
ram, intc, timer, uart,
then load linux.bin start and you get console prompt!

so my way to working PPC (uc)linux (with MMU !) was

1 VMWARE player, KDE 3.5/SUSE
2 http://www.itee.uq.edu.au/~pml/uclinux_powerpc/
3 build
4 WinXP, EDK 8.1 SP1, BSB new design, add uart, timer, plb sdram
5 configure, start bootloader,
6 wath the uclinux to boot up

I had to run synthesis maybe 8 or 9 times to get 'linux-ready'
bitstream, and I spend lots of time trouble shooting the kernel
as I used old version (make copied the new kernel to tftboot
not to tftpboot from where I fetched it...)

jipii jeee!!!

Antti
PS at the same clock frequency the V4 PPC design seems to
use less power (V4FX12-363 is not warm at all!) then similar
microblaze design in the same device

Hi Antti,

currently, you are the uCLinux guru in FPGA SoC ;)

Do you publish your work on the web? I think it could be useful for a 
lot of people. Particularly, the PowerPC-uCLinux implementation is 
interesting for me. I have implemented some PowerPC systems, but I have 
never time to run uCLinux in PowerPC. And, are you trying Linux?

Good work.

Regards,

Ivan


Antti wrote:
> Setting up MicroBlaze-uClinux on new FPGA board is a matter of hours - > with PPC linux, well there are gurus around claiming that it can be > done > within 4 hours - so far I have been very sceptical against such claims > mainly as I had until 10 minutes ago never created a Xilinx FPGA PPC > system with linux booting capability > > So my schedule was > > 1 New V4 PPC system with EDK (complete from scratch) > 2 ppc u-boot, compile test working > 3 ppc uClinux, build load run, console prompt > ================== > => 2.5 days work > > that is a defenetly more than 4 hours, but hey I believe > now that some guy with extensive linux-ppc-fpga experience > could have managed it all in 4 hours. First time try til > succesful linux prompt its just me who needed a bit more :) > > When its done it always simple, the PPC capable linux SoC > requirements are actually same as for the microblaze uclinux > ram, intc, timer, uart, > then load linux.bin start and you get console prompt! > > so my way to working PPC (uc)linux (with MMU !) was > > 1 VMWARE player, KDE 3.5/SUSE > 2 http://www.itee.uq.edu.au/~pml/uclinux_powerpc/ > 3 build > 4 WinXP, EDK 8.1 SP1, BSB new design, add uart, timer, plb sdram > 5 configure, start bootloader, > 6 wath the uclinux to boot up > > I had to run synthesis maybe 8 or 9 times to get 'linux-ready' > bitstream, and I spend lots of time trouble shooting the kernel > as I used old version (make copied the new kernel to tftboot > not to tftpboot from where I fetched it...) > > jipii jeee!!! > > Antti > PS at the same clock frequency the V4 PPC design seems to > use less power (V4FX12-363 is not warm at all!) then similar > microblaze design in the same device >
"Ivan" <gmivan@terra.es> schrieb im Newsbeitrag 
news:HA2Nf.665634$kp.4685064@telenews.teleline.es...
> Hi Antti, > > currently, you are the uCLinux guru in FPGA SoC ;) > > Do you publish your work on the web? I think it could be useful for a lot > of people. Particularly, the PowerPC-uCLinux implementation is interesting > for me. I have implemented some PowerPC systems, but I have never time to > run uCLinux in PowerPC. And, are you trying Linux? > > Good work. > > Regards,
Hi Ivan, the trick is there is no trick, its just is plain and simple ! compile the uclinux kernel as described here http://www.itee.uq.edu.au/~pml/uclinux_powerpc/ I used the same ref design that was included in that distro, only changing the amount of memory from 128MB down to 16MB after that created a ppc refdesing that matches the autoconfig loaded the linux image at 0x400000 into ram and executed it will decompress itself and boot. really no tricks - but as I had not done that before I was afraid it is more complicated, when in the matter of fact it isnt. I was trying to boot up the PPC SoC step by step 1) bram + uart, test for 'hello' 2) adding GPIO connected Sd-card (for image bootloader) 3) adding PLB sdram, testing with u-boot 4) adding intc, timer, testing with uclinux I think the same system can run full linux as well, because the ppc uclinux actually is using MMU already so it is almost full linux, I was using ppc uclinux as next step simply because of previous experience with Microblaze uclinux. And yes there will be some contributios back from me sd card drivers for u-boot,uclinux, some other stuff maybe as well, but well I need to get the source code cleaned up etc.. Sure I will check out the ppclinux 2.6 also, just next step.. Antti
Antti Lukats wrote:

> "Ivan" <gmivan@terra.es> schrieb im Newsbeitrag > news:HA2Nf.665634$kp.4685064@telenews.teleline.es... > > compile the uclinux kernel as described here > > http://www.itee.uq.edu.au/~pml/uclinux_powerpc/
So you discovered our work on PPC Linux - it had to happen eventually I suppose!
> I think the same system can run full linux as well, because > the ppc uclinux actually is using MMU already so it is > almost full linux, I was using ppc uclinux as next step > simply because of previous experience with Microblaze > uclinux.
It is "full Linux". We are just building an auto-config'd PPC Linux kernel inside the uClinux / SnapGear Linux build system. It's completely MMU enabled, etc etc. Nothing "uC" or noMMU about it. John
"John Williams" <jwilliams@itee.uq.edu.au> schrieb im Newsbeitrag 
news:newscache$bv4fvi$2x6$1@lbox.itee.uq.edu.au...
> Antti Lukats wrote: > >> "Ivan" <gmivan@terra.es> schrieb im Newsbeitrag >> news:HA2Nf.665634$kp.4685064@telenews.teleline.es... >> >> compile the uclinux kernel as described here >> >> http://www.itee.uq.edu.au/~pml/uclinux_powerpc/ > > So you discovered our work on PPC Linux - it had to happen eventually I > suppose! > >> I think the same system can run full linux as well, because >> the ppc uclinux actually is using MMU already so it is >> almost full linux, I was using ppc uclinux as next step >> simply because of previous experience with Microblaze >> uclinux. > > It is "full Linux". We are just building an auto-config'd PPC Linux > kernel inside the uClinux / SnapGear Linux build system. It's > completely MMU enabled, etc etc. Nothing "uC" or noMMU about it. > > John >
Hi John, thanks for clarification, I did think that it is full linux as it was using the MMU 'in full' so I was wondering from what point of view it is 'uc'linux not full :) as I have said already, there isnt any magic required, no tricks, no issues, just build as described, (adjust RAM size if you have less memory) then start from RAM and you get linux prompt I am using small 'pre-boot' loader that sits in 16KB BRAM and loads images from sd-card, but loading with XMD works equally well nice, thanks ! Antti
John Williams wrote:
>> >> compile the uclinux kernel as described here >> >> http://www.itee.uq.edu.au/~pml/uclinux_powerpc/ > > So you discovered our work on PPC Linux - it had to happen eventually I > suppose!
Hi John, I did not see the URL with details... but it is not a surprise for me that you are related with this work (PPC-uClinux). After your work in the uCLinux port to MicroBlaze, I think this port is full-functional too. I will follow the instructions... ;) Regards, Ivan P.S.: I am the same "Ivan" than writes in the uCLinux-MicroBlaze mailing list (salorankatu@yahoo.es), but here I use different e-mail address :)
Ivan,

I posted the full link twice - sorry you did not get it from my first
posting. Info on Paul's website says tested on V2Pro only - as of
today I can confirm that it works completly 'out of the box' on V4FX
also inclusive ehternet. No issues. Just build load and run.

I had not tested networking yesterday, actually its a board where
ethernet has not been tester before at all, I only had the UCF file
setup, and when I booted ppclinux, well even network worked, I
only had to ping :)

Antti

Antti wrote:
> Ivan,
Hi Antti,
> > I posted the full link twice - sorry you did not get it from my first > posting. Info on Paul's website says tested on V2Pro only - as of > today I can confirm that it works completly 'out of the box' on V4FX > also inclusive ehternet. No issues. Just build load and run.
Don't worry. Thanks. I have a Virtex-II Pro FPGA, but it is interesting to know that it works on Virtex-4 FX too.
> > I had not tested networking yesterday, actually its a board where > ethernet has not been tester before at all, I only had the UCF file > setup, and when I booted ppclinux, well even network worked, I > only had to ping :)
It sounds good!! ;) Regards, Ivan
Antti,

Any chance you can report some power consumption numbers and the clock rate
of the PPC? Particularly the power delta between MB linux and PPC linux?

I'm on the hook to produce an embedded linux platform at under 2 watts and
I'm anxious to know how hard it will be.

Thanks,
Clark



"Antti" <Antti.Lukats@xilant.com> wrote in message
news:1141141108.784065.172110@i40g2000cwc.googlegroups.com...
> Setting up MicroBlaze-uClinux on new FPGA board is a matter of hours - > with PPC linux, well there are gurus around claiming that it can be > done > within 4 hours - so far I have been very sceptical against such claims > mainly as I had until 10 minutes ago never created a Xilinx FPGA PPC > system with linux booting capability > > So my schedule was > > 1 New V4 PPC system with EDK (complete from scratch) > 2 ppc u-boot, compile test working > 3 ppc uClinux, build load run, console prompt > ================== > => 2.5 days work > > that is a defenetly more than 4 hours, but hey I believe > now that some guy with extensive linux-ppc-fpga experience > could have managed it all in 4 hours. First time try til > succesful linux prompt its just me who needed a bit more :) > > When its done it always simple, the PPC capable linux SoC > requirements are actually same as for the microblaze uclinux > ram, intc, timer, uart, > then load linux.bin start and you get console prompt! > > so my way to working PPC (uc)linux (with MMU !) was > > 1 VMWARE player, KDE 3.5/SUSE > 2 http://www.itee.uq.edu.au/~pml/uclinux_powerpc/ > 3 build > 4 WinXP, EDK 8.1 SP1, BSB new design, add uart, timer, plb sdram > 5 configure, start bootloader, > 6 wath the uclinux to boot up > > I had to run synthesis maybe 8 or 9 times to get 'linux-ready' > bitstream, and I spend lots of time trouble shooting the kernel > as I used old version (make copied the new kernel to tftboot > not to tftpboot from where I fetched it...) > > jipii jeee!!! > > Antti > PS at the same clock frequency the V4 PPC design seems to > use less power (V4FX12-363 is not warm at all!) then similar > microblaze design in the same device >
Hi Clark,

I dont have comparison results, I commented mostly on the 'finger'
feeling

data I can give:

V4FX12-SF363, everything clocked from 72MHz, the SoC has plb sdram
(3.3V powered), uartlite, timer, ethernet, development platfrom
HydraXC-50 on LEEB eval board, some info (also picture of the modue on
eval board)

http://www.hydraxc.com

power consumption as measurer from 5V supply

160ma when FPGA not configured,
250ma when configured (eg running FULL linux)

hope this helps :)

if you use lower powered memory and any other power lowering tricks you
should be able to get nice system with 2W power consumption, of course
you can have options to increase, or lower the clock to get higher
performance or lower consumption, optionally you may lower the 1.2 a
little this is nondocu by xilinx (they have not specified it) - Lattice
is offering low power mode for LatticeSC where the core running at 1.0
(not 1.2) is giving power advantage with timing lowered by 35 % (from
memory maybe less), similar trick should be possible for Xilinx also,
or even better self adjustable core regulator that adjust the voltage
as of performance needed.

Antti