WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Porting between ARM platforms... How is it made?  (Read 11927 times)

Offline pioj

  • Jr. Member
  • **
  • Posts: 76
Porting between ARM platforms... How is it made?
« on: March 25, 2013, 08:22:34 AM »
I know every target system is a whole jungle, but I'm intrigued about how much difficult is to adapt Core from one ARM model to another...

What about those platforms based on the same architecture? like.. dunno.. The beaglebone and the beagleboard as example..


Or devices like those SheevaPlug. You know, several targets with the same CPU and/or same nucleus...


Thnx in advance

Offline roberts

  • Administrator
  • Hero Member
  • *****
  • Posts: 7361
  • Founder Emeritus
Re: Porting between ARM platforms... How is it made?
« Reply #1 on: March 25, 2013, 08:44:14 PM »
Since I was the one that made piCore and a10Core, I can only speak to those two different platforms.
Since they differ by processor, armv6 versus arm7, everthing in the base had to be compiled.
I used Code Sourcery on x86 Tiny Core for both projects. But that is only the beginning...

The pi differs from Mele A1000 vastly in their boot loaders. Although the pi uses plain text files, it requires computed hex value for the size of Core's initrd. Other boot paramters were easy.

Mele A1000 uses compiled configuration files and uses u-boot as its boot loader. Recently I recompiled u-boot for A1000 to be able to use uEnv.txt, a plain text configuration file. Now the pi being only a single source computer is easy as a bootable imge can be made and you are done. The Mele a1000 is only one manufacturer using the allwinner A10 armv7 processor. Each device available, cubieboard, hackberry, mk802, marsboard, pcDuino, miniX, ... each has its own u-boot binary and configuration files. It is not like x86 and a bios. These arm configuration files often are specific to the size and quantity of ram chips installed and memory addresses to load your OS.

So even if you have an alternate device which uses the same, say armv7, binaries, the boot loader for your specific target will be an adventure to learn and master.
10+ Years Contributing to Linux Open Source Projects.

Offline pioj

  • Jr. Member
  • **
  • Posts: 76
Re: Porting between ARM platforms... How is it made?
« Reply #2 on: March 25, 2013, 11:51:53 PM »
Thx for the answer, mr. RobertS.

Yes, I suspected the uboot config is an additional step for ARM devices, meaning the main adventure is to read enough info about the platform to know exactly which hex number has to be...

As  some of the boards already have a working Debian install option, is there a way you can use that in your favor?

- To recreate the desired Rootfs?
- To "mutate" that distro into a TinyCore? I mean, once it boots, we can start modifying init scripts by hand, and go part by part...


This question is important to me because it sets certain concepts about how a GNU/Linux distribution can be created. The LFS documentation was a good read but I want to deep more into it...

Offline roberts

  • Administrator
  • Hero Member
  • *****
  • Posts: 7361
  • Founder Emeritus
Re: Porting between ARM platforms... How is it made?
« Reply #3 on: March 26, 2013, 09:34:29 AM »
Having access to a working Debian/Ubuntu system is not too much of an advantage for Core.
Now for most typical traditional distros it is a huge advantage as one would only need to identify and recompile their binaries and swap in their rootfs. Use existing boot loader. Done. That is why shortly after Ubuntu was made available for Mele, you saw several distros become available.

Core is not traditional, it's rootfs is the initrd, so even existing Arm boot loaders need to be studied to accomodate our initrd rootfs.  Since the major work has already been done to create a minimal Core Arm based initrd, I would start with say the a10Core and try to see what adjustments would need to be made for your particular boot loader and hopefully pick a platform that supports Arm v7hf, else be prepared to identify and compile the binaries within a10Core.

I chose Allwinner, as it is one of least expensive yet quite capable Arm systems. I am currently using a 1GB MK802 as my day to day machine. I acknowledge that my needs are minimal compared to most, but I am quite happy with Core on A10.
10+ Years Contributing to Linux Open Source Projects.

Offline Zendrael

  • Sr. Member
  • ****
  • Posts: 362
    • Zendrael's home of projects
Re: Porting between ARM platforms... How is it made?
« Reply #4 on: April 05, 2013, 03:24:10 PM »
Mr. RobertS,

is the graphics 3D accelerated in the Core at Allwinner? Or 2D accelerated?

Does the drivers compilation differ from the proccess on the x86 ones?

Thanks.

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 10960
Re: Porting between ARM platforms... How is it made?
« Reply #5 on: April 06, 2013, 01:57:16 AM »
There exists no accelerated 2d driver for Mali (the GPU in allwinner A10). The 3d driver is a binary blob, which I doubt is included.
« Last Edit: April 06, 2013, 06:58:08 AM by curaga »
The only barriers that can stop you are the ones you create yourself.

Offline Zendrael

  • Sr. Member
  • ****
  • Posts: 362
    • Zendrael's home of projects
Re: Porting between ARM platforms... How is it made?
« Reply #6 on: April 06, 2013, 04:22:19 AM »
Thank you Curaga! In the piCore, the graphics are accelerated? Is it in some ARM supported platform?

Offline bmarkus

  • Administrator
  • Hero Member
  • *****
  • Posts: 7183
    • My Community Forum
Re: Porting between ARM platforms... How is it made?
« Reply #7 on: April 06, 2013, 06:50:04 AM »
Thank you Curaga! In the piCore, the graphics are accelerated?

No
Béla
Ham Radio callsign: HA5DI

"Amateur Radio: The First Technology-Based Social Network."

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 10960
Re: Porting between ARM platforms... How is it made?
« Reply #8 on: April 06, 2013, 06:59:08 AM »
The whole ARM graphics state is pretty bad. Only 3d blobs, and nobody has good 2d acceleration either.
The only barriers that can stop you are the ones you create yourself.

Offline roberts

  • Administrator
  • Hero Member
  • *****
  • Posts: 7361
  • Founder Emeritus
Re: Porting between ARM platforms... How is it made?
« Reply #9 on: April 06, 2013, 07:40:22 AM »
I guess it really depends on your needs. If you are looking to be able to play video files...
I can visit samplemedia.linaro.org and easily have access to many video test files to download.
I run my machine at 720 as that is the monitor/tv that I have. I can easily play the 720p video files.
I have tested .webm, .ogg, VP6.flv, mpg2, mpeg4, avi
I can play 1080p but I only see a portion of the screen given my current hardware setup.
10+ Years Contributing to Linux Open Source Projects.

Offline SWR

  • Newbie
  • *
  • Posts: 12
Re: Porting between ARM platforms... How is it made?
« Reply #10 on: April 15, 2013, 03:17:18 PM »
Work is beeing done in this area though, and I think they are getting pretty close over at www.limadriver.org  :)
A Core port to the Odroid-U2 platform together with an open source limadriver would pack a serious punch for less than 100 USD.  8)

Best regards
Soren

Offline pioj

  • Jr. Member
  • **
  • Posts: 76
Re: Porting between ARM platforms... How is it made?
« Reply #11 on: May 22, 2013, 03:04:22 PM »
I'm pretty amazed to see how quickly quad-core ARM sticks are becoming available.

Let's take one of the current top, for example:

Quote
1.8 GHz RK3188 ARM Cortex-A9 quad-core processor, ARM Mali 400 quad-core graphics, 2GB of RAM, and 8GB Flash NAND.

That means dual-core sticks getting their price as low as a Rasberry PI...

You can check some at http://liliputing.com


Offline lovenini

  • Newbie
  • *
  • Posts: 11
Re: Porting between ARM platforms... How is it made?
« Reply #12 on: May 26, 2013, 12:30:44 AM »
Quote
roberts
I chose Allwinner, as it is one of least expensive yet quite capable Arm systems. I am currently using a 1GB MK802 as my day to day machine. I acknowledge that my needs are minimal compared to most, but I am quite happy with Core on A10.
============================
wow....good to know

I just searched latest price it dropped to 30$ and allow microSD inserted, wifi connection, wireless mouse and hdmi to LCDmonitor/TV

MK802 is single core A8 and android4.0.4 + 1GBram

I think it'll upgrade to quad core A7+sgx544MP2 dual core GPU
and rockchip rk3188 is upgraded to 28nm quad core A9 1.6Ghz+mali400MP4

I have a rk2918 and rk3066 and rk3188, dual core A9 is a big leap versus single core A8 in terms of sunspider and screen pagedown rolling

but I think rockchip is closed source ,so probably allwinner is better to go for DIY