I know a request has been made to WMT on behalf of the community, via a
contact. I don't have anything else to report though.
- Angus
I just got word from Harald Welte that Wondermedia will be releasing
kernel & u-boot sources for WM8650. Apparently 100% source code this
time no binary blobs.
He's going to let me know once they're available for download from
gpl-devices.org.
I'm quite interested to see what the differences are.
- Angus
Posted:
http://ftp.gpl-devices.org/pub/vendors/Wondermedia/WM8650/
Big thanks to Harald for liaising with Wondermedia and arranging this.
I haven't downloaded and looked at what's there yet. It should be quite
interesting to compare these files to the WM8505 drop (based on what
we've seen in the past, I'd expect this code has the WM8505 drivers plus
tweaks.)
- Angus
From my initial fishing around:
* Apparently WM8650 is an ARM926EJ-S CPU, same as WM8505. BogoMIPS
scores on forums put its default clock speed at 700Mhz, ie double the
WM8505. Not sure about other SoC features.
* Kernel has a separate binary object tree that looks like it's designed
to be merged ala "make via_obj", but as yet I haven't found anything
that is binary-only in the source (haven't tried to build it yet though,
need to wait until I get home!)
* Codebase looks largely the same just newer, it seems likely you could
build a WM8505 kernel from this as well. There is no SoC-specific config
option that I could see, in many places it seems to be switching on the
hardware chipid.
* Things seem very slightly more documented, there are even some
readme files! ie drivers/input/sensor/readme.txt for the mma7660
accelerometer & drivers/char/wmt_vibrate/readme.txt
* CONFIG_LOGO_WMT_ANIMATION config item & source (in ge_main.c) is there
now for the animated Android boot sequence. This was added after the
WM8505 code drop. Dancing Android!
That's all I have for now, have to get to work. :). I'll diff the trees
more closely when I get home. :)
- Angus
I've just added a stub to hopefully let 8650 boot with my kernel (to
some yet undetermined point). Has anybody got a WM8650 device to test?
Best,
Alexey
Yay for long weekends!
Here are my notes from a better look through.
Machine:
* Looking in arch/arm/mach-wmt/include/mach, it looks like some memory
map areas & register offsets have moved around so my initial
prediction about "kernel might work on both" is almost certainly
wrong. Support for WM8505 seems to have been dropped from there,
although some driver areas (like video) might support both.
* arch/arm/mach-wmt has been rewritten in lots of places. From a casual
scan it's hard to tell how much is hardware changes and
how much is cleanup.
* new arch/arm/mach-wmt/wmt_clk.c for centralised clock management.
Graphics:
* drivers/video/wmt has had a significant code reorganisation
* New GE ioctl: GEIOSET_COLORKEY which calls through to old
ge_alpha_blend (single color + alpha channel)
* drivers/video/vmt/govrh.c now shows support for new pixel formats
VDO_COL_FMT_RGB_565 & VDO_COL_FMT_RGB_1555 (previously this was
YUV/ARGB only.)
* New HDMI output support.
* drivers/video/wmt/media/ is pretty exciting, seems to show hardware
decoding support for h264/mpeg2/mpeg4. This is in addition to the
hardware JPEG support (whose source is similar but not the same.)
* Plus encoding support for jpeg & h264.
Other Devices:
* drivers/mmc/host/mmc_atsmb.c is there, SD driver source finally!
* New support for IR decoding in this SoC?
drivers/input/rmtctl/wmt-rmtctl.h
* New support for VT1603 touchscreen via I2C/SPI
drivers/input/touchscreen/vt1603a_ts/
* New touchscreen calibration source in
drivers/input/touchscreen/wmt/spi2/wmt_ts.c
* The old wm9715-ts code seems to have been replaced entirely by the
above touchscreen drivers (different hardware, I think??)
Needless to say, it'd be great to dig up a datasheet at this point. :)
Basically, you take the aforementioned kernel, port WMT-specific parts
to an Android-patched 2.6.35 kernel or later, then find a usable
Android 3 image built for ARMv5 with the necessary hardware glue
libraries (which you may have had times finding). To my knowledge,
there is no source available for Android 3, so you can't build an
image for an arbitrary device yourself.
Still, if you are willing to port the code to a newer kernel version,
we could probably provide some advice.
Best,
Alexey
2011/4/28 Demelash Gobeze <yos...@gmail.com>:
In a private e-mail you mentioned Ubuntu installation. To my
knowledge, there is only some semi-official build of Ubuntu for ARM,
and that requires ARMv7 to run, while we only have an ARMv5-capable
CPU in vt8500/wm8505/wm8650. Thus, you will probably have to stick to
some other distro, like Debian, which has an official build for ARMv5
(armel). I personally prefer Gentoo, but that's a matter of taste. You
may search this group, there were some distro-related discussions.
Furthermore, you technically don't need to port anything anywhere, as
WonderMedia's 2.6.32 source archive is good enough to build a kernel
compatible with any recent desktop distro. The only real reason to
bother with this is to get some more recent Android version. I'm not
quite familiar with the exact requirements of 2.3/3+, but maybe they
will even run on a .32 too.
Next, there is already ongoing work to create a kernel compatible with
wm8650 that is currently on version 2.6.39-rc3+. It may even boot up
if you disable the SD/MMC support, as that will definitely crash with
current code due to GPIO changes :) You may also search the group for
discussions of relative pros and cons of this kernel relative to
WonderMedia's release. It's not radically different from wm8505.
If you are really into the porting business, the procedure is
generally straightforward. You find the closest 'base' kernel version
on which WonderMedia could have built their custom kernel, run diff
between the two and try to apply the resulting diff as a patch over a
newer version. At this point the straightforward part ends, though :-)
The reason is that the patch will most likely fail to apply. You'll
have to study the differences in underlying upstream kernels and
transfer WonderMedia's additions manually. Occasionally, you may need
to adapt their sources to possible changes in internal kernel APIs.
Diffing and patching could be done more easily and reliably if you
know Git or wish to learn it by doing.
Best,
Alexey
2011/4/28 Demelash Gobeze <yos...@gmail.com>:
It uses U-boot and there is an 'sd card method' of booting whatever you want. There's even a ready-made build of Gentoo with instructions by WendyB, just search it. You'll only need to rebuild the kernel from current git if you have a wm8650. However, Gentoo won't help you get an Android on it in any way:)
Best regards,
Alexey
On Apr 29, 2011 2:22 AM, "yosias" <soli...@gmail.com> wrote:
Thank you very much!!!
So how do I install Gentoo on these babies? Then I can installing
Android 3 on top of that :)
I am oh so new but not afriad to get my hands dirty for this
inexpensive device. I am looking into RedBoot etc.
Is there a simpler way of loading Gentoo?
Can you point me to any articles and/or describe the process?
Thanks again
On Apr 28, 1:49 pm, Alexey Charkov <alch...@gmail.com> wrote:
> Ok, first I'll probably clarify som...
> 2011/4/28 Demelash Gobeze <yosi...@gmail.com>:
>
> > How do you do what you describe. I got time to kill so please advise!
>
> > On Apr 27, 12:08 p...
Sure. There they are:
https://gitorious.org/linux-on-via-vt8500/vt8500-kernel
Best,
Alexey
Still the same: it may boot, it may even work, but nobody has tested
it yet, so no idea :-) We'll need to sort out the differences in MMIO
regions and interrupt numbers between 8505 and 8650. Crucial stuff
like PMC is still the same, but peripherals may have changed, so it
may crash somewhere.
> the kernel and see if I can learn something about this stuff, so will
> you recomend me start palying with official sources or yours?
Depends on what you'd like to achieve as a result. For common usage
vendor's source is probably fine. For development and improvement, bug
reports etc better go for the git version. I'm not sure whether you
will get the touchscreen to work, though, and there's no NAND (unless
you patch in Darek's driver) or sound. There are plenty of
opportunities to improve stuff ;-)
> Thanks with the patience with the newbies ;)
You're welcome :-)
Best,
Alexey
2011/5/29 Carlos Balseiro <haml...@gmail.com>:
> Ok, I'm trying to understand the differences between the two kernels.
> I see in the WM one a cpufreq.c file with CPU freq specifications that
> doesn't seems to apply to 8650. I can't find the CPU freq code on your
> kernel.
There was an implementation of clocks framework and CPU frequency
modulation based on that written by Tony, but right now he says it
needs a rewrite. Unfortunately, we have no datasheet for 8650, so
writing good support for clocks there will be harder than for the
other chips in the family.
> I could probably sue any guide or advise about "Messing with the
> kernel for total newbies". Any suggestion will be welcome.
There's actually quite a lot of info in Documentation/, but no
all-inclusive comprehensive guide to hacking everything that I could
think of. I usually refer to cross-referenced sources
(lxr.free-electrons.com) when trying to understand how subsystems
work, googling around for the missing pieces. Which may not be the
best way to do it, actually.
> PS: also dummy steps to test stuff for you and send results will be
> welcome if you want me to do it. I'm about to solder a RS232 on the
> expansion board to get some debugging.
A serial connection to the device would be great, as it would provide
you with early printk debug messages. Just try to load the kernel
first, there's a couple of hints in the project Wiki on Gitorious.
PS Please consider joining the group to post messages directly, as
Google stubbornly ignores the "Always allow" choice in pre-moderation
of non-member messages.
Thanks,
Alexey