Atrix + (Xoom kernel + Libs)

mvniekerk

Senior Member
Feb 11, 2010
127
384
0
Johannesburg
Both are Tegra2 devices
Both are using the same Wifi chips
Both are GSM/HSPA devices

Plan of action:
  1. Get Xoom kernel for 2.6.32 (same level as the kernel we've got for Atrix)
  2. Diff the two for platform specific changes
  3. Get Xoom kernel for 4.1.2 release (http://www.xda-developers.com/android/motorola-xoom-gets-stock-rooted-android-4-1-2/)
  4. Put in platform specific changes learned from diff

Then you should have a binary compatible Atrix-fied Xoom kernel, running on the Atrix. Which enables you to
  1. Use Xoom hardware acceleration
  2. Have a propper Project Butter experience
  3. Have a kernel that doesn't run on the compatibility mode of bionic libraries
  4. A more modern and mature Linux kernel (and libs)


Xoom Device specifics
git clone https://android.googlesource.com/device/moto/stingray
Xoom Kernel
git clone https://android.googlesource.com/kernel/tegra
Xoom Sourceforge page
http://sourceforge.net/projects/xoom.motorola/files/
Wiki entry for the SOC
http://en.wikipedia.org/wiki/Tegra (note the difference, we're using Ventana, Xoom is using Harmony => we are using different chips - surprise...)
board-*.c differences
ATRIX STARTUP (tegra_olympus_init)
  • Tegra common init
  • Programming jig on GPIO PV6 disable
  • Pin multiplexing
  • Clock init
  • Setup debug UART on UART B
  • Start DSI clock
  • Start 3D clock, make sure it is at correct speed
  • Register platform devices
  • Keypad
  • I2C
  • LCD Panel
  • SDHCI/MMC
  • WLAN
Nothing weird here.

XOOM STARTUP
  • Tegra common init
  • Tegra init suspend
  • EMC
  • Setup Tap delay on wifi chip to 6
  • Programming jig on GPIO PV4 disable
  • USB OTG setup
  • Setup GPIO for charging circuitry on GPIO PV5
  • Enable charge LEDS
  • Dynamic voltage and frequency scaling disabling on P1 hardware
  • Enable power rail on Wifi/BT chip BCM4329
  • Pin mux edit
  • Clock init
  • Setup debug through UART B (! same as Atrix)
  • Init Digital->Audio converter 1
  • Init Digital->Audio converter 2
  • Setup device structs on platform struct
  • Audio init
  • RAM Console start
  • Weird memory carve outs (for what, firmware later on?)
  • Register platform devices with kernel
  • I2C
  • Power off (?) init
  • Keypad
  • Touch
  • Power
  • W1
  • WLAN
  • GPS
  • USB
    Marked are things that are different and / or weird in the init phase.
 
Last edited:
M

mateusdalpi

Guest
I really don't know what it means, but it was said very often in the forums:
Xoom = SoC T20
Atrix = SoC AP20h

But I hope that you can do some magic :silly:
 

peddarson

Senior Member
Aug 20, 2012
600
112
0
it's not only the cpu and antenna...there is also the camera,fingerprint and imo the resolution of the screen is also important...

so this kernel cannot be used...only some parts of it mabe
 

mvniekerk

Senior Member
Feb 11, 2010
127
384
0
Johannesburg
Last edited:
  • Like
Reactions: M_K_

Newbleeto

Senior Member
Aug 31, 2011
109
109
0
Finally someone that's thinking in the long term. Barring a kernel source leak from Motorola, this would be a way to go. Sounds like massive coding process though. Are you up to it? Do you have a plan?
Kudos for the idea.
 

nvboza

Senior Member
Sep 7, 2011
56
10
0
Požarevac
I have XOOM MZ601, because of that I buy Atrix, it's the same machine...this will be great, and also tu put webtop :) ( I know I am boring, but I have lapdock and I desperately need webtop :( ):good:
 

mvniekerk

Senior Member
Feb 11, 2010
127
384
0
Johannesburg
Finally someone that's thinking in the long term. Barring a kernel source leak from Motorola, this would be a way to go. Sounds like massive coding process though. Are you up to it? Do you have a plan?
Kudos for the idea.
Ok - some history:
I've worked at a mining communications/safety company Becker Mining Systems, for their R&D firm Becker R&D in South Africa.
We've developed an Android VOIP phone for to be used in mining (hazardous, please-don't-make-a-spark) environments. We've succeded, but then Germany practically canned their colleries (hug-a-tree-don't-kill-johnny-polar-bear) - resulting us to stop development 2 months before manufacturing (literally only had to make the moulds). Sigh - the collery overseers DSK was the contracting client.

My job was to get Android running on this Freescale iMX31 based platform. I did the kernel + Wifi + Android + VOIP and a bit of the UI.

Plan of action:
  • /arch/arm/ is the first point to go looking for things in the kernel. In this case, we'll be looking for /arch/arm/mach-tegra/, this is where all the platform specifics will hide away.
  • Compare board-olympus.c and board-stingray.c (+ board-olympus.h and board-stingray.h). Look for similarities, look for differences. These are the glue points - in this .c files the startup / fixup / powerup of the platform starts off. See it as the void main(void) file for the platforms.
  • Adapt the board-stingray.c in such a way that it starts up on the Atrix
  • After kernel start up, get the peripherals running. This includes UARTS (USB the most common, and debug), SPI (chats to other peripherals), MMC (chats to the WiFi/BT module) and also the screen.
  • Merge in libraries - we'll probably using the Atrix radio driver file, but the rest (Wifi, OpenGL libs) from the Xoom

If all of this doesn't make sense to you, please press the thank you button and refrain from commenting on this feed ;)
 

djluis48

Senior Member
Nov 16, 2009
1,773
232
0
Santo Domingo
Jokersax already said its possible, in fact, he was using some Xoom binaries that he ported, but he also said that it required a MASSIVE amount of coding, time and skills to get it done.

Hope you can accomplish this dude! Good luck! :D
 
Last edited:

lehjr

Senior Member
Sep 27, 2011
382
477
103
KIssimmee
It might help when nVidia goes opensource with the Tegra drivers, but so far I haven't seen enough details on that to be encouraged yet. I suspect that what we'll see will be either code dropped into nouveau or a separate driver set rather than nVidia opening up their proprietary drivers.