It's Not Qualcomm's Fault: Dispelling TouchPad Mythsby Anand Lal Shimpi & Brian Klug on August 19, 2011 6:40 PM EST
- Posted in
There's a whole lot of misinformation on the web right now about reasons why HP had troubles with the TouchPad and eventually had to abandon the entire webOS hardware division. We'd moved on internally after yesterday's news but a bunch of stuff that popped up online today prompted a quick discussion about the realities of webOS hardware.
It's Not Qualcomm's Fault
Someone somewhere started this idea that by using Qualcomm hardware the TouchPad and presumably Veer/Pre 3 were handicapped. The theory is that by using Qualcomm hardware HP somehow limited performance of these devices and made it very difficult to run on devices that used other, non-Qualcomm SoCs.
Time for a reality check.
Palm's webOS launched on TI's OMAP 3. The original Palm Pre ran on an OMAP 3430. In fact, I did a quick head to head between it and the iPhone 3GS when it came out given the similar specs of the 3430 and Apple's 3rd generation SoC.
The Palm Pixi, on the other hand, used a Qualcomm MSM7x27 SoC. At the same time, the Palm Pre Plus was available with the same OMAP 3430 as the original Pre. Here we have two different SoCs which themselves implement different versions of the ARM instruction set (the MSM7x27 runs ARMv6, OMAP 3430 runs ARMv7), and yet it was possible to port the current version of webOS between two different SoCs from different vendors running different ARM instruction versions entirely.
Morover, webOS 2.0 is fundamentally the same beast at an OS level as webOS 1.x. The Pre Plus and original Pre can run webOS 2.x just fine (with appropriately changed radio firmware), an OS originally intended for the OMAP 3630 in the Pre 2 and the HP Veer's MSM7230. Porting between different SoCs thus isn't entirely impossible - already we're up to webOS 1.x and 2.x running on 4 different SoCs. It's reasonable to say that porting is actually relatively easy.
In fact, while doing the HP Veer review and poking around inside webOS 2.1.2, we found numerous references and plugins which were definite remnants of OMAP3 compatibility. This isn't a surprise at all considering that the Pre 2 likewise runs webOS 2.1.0.
It's not flip-a-switch trivial to port between SoCs, but it's not shoe-eating impossible, either. Apple, NVIDIA, TI and Qualcomm all implement the same ARMv7 instruction set in their latest SoCs (with the exception, again, of the Pixi's MSM7x27 which used ARMv6), and thus code compiled for one processor should run just fine on another. There are differences in terms of power management and what other instruction set extensions are supported (e.g. ARM's NEON SIMD extension, or thumb, vfpv3, and others) but these are minor in the big scheme of things. They require development time, but presumably the webOS team has (or is it had, now?) developers on staff whose responsibilities were to smooth over these differences.
Respective Extensions from cat /proc/cpuinfo:
MSM8x60/APQ8060:Processor : ARMv7 Processor rev 2 (v7l)Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3OMAP3x30:Processor : ARMv7 Processor rev 2 (v7l)Features : swp half thumb fastmult vfp edsp neon vfpv3MSM7x30:Processor : ARMv7 Processor rev 1 (v7l)Features : swp half thumb fastmult vfp edsp thumbee neonMSM7x27:Processor : ARMv6-compatible processor rev 5 (v6l)Features : swp half thumb fastmult vfp edsp java
One of the bigger issues in porting between these SoCs has to do with graphics drivers. While all of the aforementioned companies implement the same ARM instruction set, they all use very different GPUs. Each GPU requires its own driver, no different than on an notebook or a desktop. In the Windows world it's like driver heaven, every major GPU has a driver available for every major version of Windows. In the mobile space it's a bit more complicated.
Because there's an Adreno 220 driver for Android doesn't mean that one exists for iOS or webOS. To a certain extent, each OS needs its own driver. Granted there can be a lot of code reuse thanks to similar standards existing across the OSes (OpenGL ES 2.0 for example is on all three OSes) but here's another area where development time is required.
There are other differences as well between SoCs. Differences such as what video encoders the OS will use for camera input to encode both JPEG and MPEG video. What decoders onboard the SoC to use for video playback or flash video acceleration. Where and how big the SDRAM is. What interfaces (I2C, SPI, GPIO and USB) are to be used for accelerometer, ambient light, gyro, pressure, or compass sensors. Which of those I/O ports are used for controllers for the touch panel, backlight, LED, vibrate and WLAN. All of these are considerations that make moving an OS between not just SoCs but hardware platforms, something that initially seems daunting but really amounts to pointing things in the right direction and including the right kernel drivers. Thankfully since webOS is linux based, the kernel should take care of a huge percentage of that difficulty and largely make any SoC that Android runs on a potential host for webOS.
In the end, while it does require work to port webOS to various SoCs it has not only been done in webOS history but it's a small part of the work required to bring a new tablet or phone to market. If this were an insurmountable task then we wouldn't see Android working on every single major SoC released.
Post Your CommentPlease log in or sign up to comment.
View All Comments
someone0 - Monday, August 22, 2011 - linkThe author start confusing when he trying to prove that there is no hardware problem by saying that the CPU is fine. I'm sure a lot of people here have built their PC before. So, the analogy that CPU=hardware is not valid. Even given that it's CPU package, still shouldn't the author treat the tablet PCB like a motherboard. The whole article totally ignore the existance of the PCB. I'm sure the argument that the software/OS is not optimize, but it is iffy to start blanking a variable here and dumping the whole problem on OS. I guess this answer will be fully answer when we start seeing Android custom ROM on the tablet. But either way the fault still on HP regardless of whether it's hardware or software.
tipoo - Saturday, December 10, 2011 - linkSoC, not CPU. There's a reason these are called System on a Chip(s).
bobbozzo - Monday, August 22, 2011 - link1. s/morover/moreover/ on Page1
2. the CPU instruction set revision should be largely irrelevant:
it's Linux, so it's C, not assembly; therefore it's mostly just a matter of re-compiling. Yes, SMD optimizations (if done manually) are an exception.
p05esto - Tuesday, August 23, 2011 - linkI picked up two 16GB Touchpads for my wife and I at Best Buy Saturday night. ...and I'm KICKING myself for not getting the 32GB versions they also had there. A few movies later and my device is already full. I wish it had a FlashCard reader for additional memory, that part sucks.
But other than that I really LOVE this tablet. The email program is better than Outlook and the other webmail systems I use. The browser renders nice and some of the games are great. The $10 Need for Speed game is AMAZING, the graphics are fantastic, no lag, great detail. I can't believe how good the graphics are on this thing. It totally blows the iPad away in the gaming/graphics power area. It's got a dual-core 1.5ghz CPU which you can overclock to 1.7 with a little effort.
In short, for $100 this was the deal of a lifetime for me. I had no interest in tablets before (due to price point), but now I'm in love. It sure beats a laptop in bed/couch for casual email and web browsing. Also great for movies on the go for the kids or games to keep them all busy.
I hope HP opens up WebOS to the devewloper community, this little platform could really flourish if opened up to all for free. Open source could make this thing take off. With a few tweaks in the UI and cusomtization department I can see the TouchPad becoming a legenday device, a coveted item to own and something that another manufacturer will want to start developing hardware for!
Chadder007 - Tuesday, August 23, 2011 - linkAnd what....HP wants to be just a Software company now? LOL
Zextegra - Tuesday, August 23, 2011 - linkSorry I do not agree with your article. People buy to much into these benchmarks used on tablets and phones. They are inaccurate and unproven. Also the architecture of the CPUs look good on paper but most do not understand them and only take what the engineers have to say. I believe the snap dragon is the AMD in this tablet war and the a5 is the intel. I think once we see another os ported on the touchpad that soc was a large part of the fault.
spunkybart - Wednesday, August 24, 2011 - linkI'm mostly an Apple guy (iPad, iPhone, iMac, iPod...), but I was rooting for WebOS -- I had heard it was a decent OS. Apple needs competition so that Apple products get better (and to give users an escape hatch if Apple keeps trying to control user content too much!)
What surprised me most was how fast this all went down. If HP wasn't fully committed to WebOS and tablets for the long haul, then why'd they spend money and time on buying Palm and developing a tablet? It just seems a colossal waste -- and surely a morale buster inside the company.
amorexue - Sunday, September 25, 2011 - linkthis is my site www.loveweddingdress.co.uk
mattj7 - Wednesday, March 28, 2012 - linkI recently put Cyanogenmod 9 alpha 3 on my hp touchpad, and the difference is night and day. I honestly thought this was an under powered tablet because of the performance I was getting on webos. NOPE, with android this baby flies! I'm sure the asus transformer prime or ipad 3 would put it to shame, but it has all the power I need to game, browse pdfs, web pages, video, whatever, and Cyanogenmod 9 is still in alpha and full of bugs! But it has the hardware acceleration and thats probably the biggest jump in performance.
It's not the hardware, it's webOS holding back the touchpad. As much as I liked the swipe gestures, the deserted app market, and laggy performance makes having android on it all the sweeter!