Upstream linux-omap kernel on Nokia N900?
Hi,
Nokia N900 is shipped to users with a 2.6.28 omap kernel. Many patches for the hardware and various features have been pushed upstream by Nokia developers and possibly others. Those are now available in current l-o tree.
Nonetheless, many drivers and various features are still missing upstream. Simply put, one cannot expect to run a current l-o kernel on the device (and expect to get a GUI and/or make call with the device).
To get an idea of what it would take to achieve that, I started looking at what is missing upstream, what is already there and what is currently being pushed. I started putting some notes on this triage work and a set of patches here:
http://natisbad.org/N900/n900-current-linux-omap-kernel.html
If some among you are interested and/or have comments on the topic, they are welcome. Among other things, I am worried about the OMAP 3430 GPU
code: if some people from TI can provide some advice on that aspect, that would be great!
Cheers,
a+
Hi,
Quoted 8 lines · ext Arnaud Ebalard
Nokia N900 is shipped to users with a 2.6.28 omap kernel. Many patches for the hardware and various features have been pushed upstream by Nokia developers and possibly others. Those are now available in current l-o tree.
Nonetheless, many drivers and various features are still missing upstream. Simply put, one cannot expect to run a current l-o kernel on the device (and expect to get a GUI and/or make call with the device).
tell me about it :-p
Thing is that it doesn't really depend only on Nokia to get those parts done. Well, we can get the kernel part done by just cleaning up and porting the 2.6.28 drivers to current mainline, but in case of e.g. SGX we still miss the xorg driver and I don't think that'll be released any time soon.
Another problem is that the bootloader believes it can pass all the obsoleted OMAP TAGs to kernel and the 2.6.28 kernel depends on those, maybe that can be worked around. I don't know whether kernel simply drops invalid TAGs or not...
Good work anyways... At least it's now documented ;-)
PS:
BTW, CBUS isn't really necessary for n900 and I have almost 40 patches cleaning that up pending in this mailing list :-p
Signature · 1 line
balbi
Quoted 12 lines · Balbi Felipe (Nokia-D/Helsinki)
Hi,
Quoted 8 lines · ext Arnaud Ebalard
Nokia N900 is shipped to users with a 2.6.28 omap kernel. Many patches for the hardware and various features have been pushed upstream by Nokia developers and possibly others. Those are now available in current l-o tree.
Nonetheless, many drivers and various features are still missing upstream. Simply put, one cannot expect to run a current l-o kernel on the device (and expect to get a GUI and/or make call with the device).
Quoted 5 lines
tell me about it :-p
Thing is that it doesn't really depend only on Nokia to get those parts done. Well, we can get the kernel part done by just cleaning up and porting the 2.6.28 drivers to current mainline, but in case of e.g. SGX we still miss the xorg driver and I don't think that'll be released any time soon.
Another problem is that the bootloader believes it can pass all the obsoleted OMAP TAGs to kernel and the 2.6.28 kernel depends on those, maybe that can be worked around. I don't know whether kernel simply drops invalid TAGs or not...
Yes kernel simply drops unrecognized TAGs and just prints a warning message.
Quoted 7 lines
Good work anyways... At least it's now documented ;-)
PS:
BTW, CBUS isn't really necessary for n900 and I have almost 40 patches cleaning that up pending in this mailing list :-p
Quoted 21 lines · Roger Quadros
Quoted 20 lines · Balbi Felipe (Nokia-D/Helsinki)
Hi,
Quoted 8 lines · ext Arnaud Ebalard
Nokia N900 is shipped to users with a 2.6.28 omap kernel. Many patches for the hardware and various features have been pushed upstream by Nokia developers and possibly others. Those are now available in current l-o tree.
Nonetheless, many drivers and various features are still missing upstream. Simply put, one cannot expect to run a current l-o kernel on the device (and expect to get a GUI and/or make call with the device).
tell me about it :-p
Thing is that it doesn't really depend only on Nokia to get those parts done. Well, we can get the kernel part done by just cleaning up and porting the 2.6.28 drivers to current mainline, but in case of e.g. SGX we still miss the xorg driver and I don't think that'll be released any time soon.
Quoted 6 lines
Quoted 4 lines
Another problem is that the bootloader believes it can pass all the obsoleted OMAP TAGs to kernel and the 2.6.28 kernel depends on those, maybe that can be worked around. I don't know whether kernel simply drops invalid TAGs or not...
Yes kernel simply drops unrecognized TAGs and just prints a warning message.
All the the custom tags should be replaced with platform_data.
If something is needed for revision detection of the board, there is arm-linux common ATAG_REVISION.
However, also Maemo userspace depends on some things set by the custom tags. As this is non-standard, we should not spend much effort on that. Instead we should concentrate on making N900 work with any distro the standard Linux way.
So I recommend using kexec patched Maemo kernel, then boot the new mainline kernel from Maemo kernel and mount root directly on the eMMC.
As Maemo user space has some dependencies to the partition layout, you need to keep the existing partition layout too. In any case, I ended up resizing the eMMC partitions and using /dev/mmcblk0p2 (mounted as /home in Maemo) as the new root partition.
Cheers,
Tony
Quoted 32 lines · ext Tony Lindgren
Quoted 20 lines · Roger Quadros
Quoted 19 lines · Balbi Felipe (Nokia-D/Helsinki)
Hi,
Quoted 8 lines · ext Arnaud Ebalard
Nokia N900 is shipped to users with a 2.6.28 omap kernel. Many patches for the hardware and various features have been pushed upstream by Nokia developers and possibly others. Those are now available in current l-o tree.
Nonetheless, many drivers and various features are still missing upstream. Simply put, one cannot expect to run a current l-o kernel on the device (and expect to get a GUI and/or make call with the device).
tell me about it :-p
Thing is that it doesn't really depend only on Nokia to get those parts done. Well, we can get the kernel part done by just cleaning up and porting the 2.6.28 drivers to current mainline, but in case of e.g. SGX we still miss the xorg driver and I don't think that'll be released any time soon.
Quoted 5 lines
Quoted 4 lines
Another problem is that the bootloader believes it can pass all the obsoleted OMAP TAGs to kernel and the 2.6.28 kernel depends on those, maybe that can be worked around. I don't know whether kernel simply drops invalid TAGs or not...
Yes kernel simply drops unrecognized TAGs and just prints a warning message.
All the the custom tags should be replaced with
platform_data.If something is needed for revision detection of the board, there is arm-linux common
ATAG_REVISION.
Quoted 8 lines
However, also Maemo userspace depends on some things set by the custom tags. As this is non-standard, we should not spend much effort on that. Instead we should concentrate on making N900 work with any distro the standard Linux way.
So I recommend using kexec patched Maemo kernel, then boot the new mainline kernel from Maemo kernel and mount root directly on the eMMC.
FYI. kexec-tools will be available in maemo.org repo soon and you can also expect kexec patched kernel to be available.
Then we need a kexec helper utility that parses /proc/atags and feeds the necessary stuff on Command line for the new kernel.
So the ATAG Hacks will be unnecessary.
cheers,
-roger
Quoted 38 lines · Quadros Roger (Nokia-D/Helsinki)
Quoted 37 lines · ext Tony Lindgren
Quoted 20 lines · Roger Quadros
Quoted 19 lines · Balbi Felipe (Nokia-D/Helsinki)
Hi,
Quoted 8 lines · ext Arnaud Ebalard
Nokia N900 is shipped to users with a 2.6.28 omap kernel. Many patches for the hardware and various features have been pushed upstream by Nokia developers and possibly others. Those are now available in current l-o tree.
Nonetheless, many drivers and various features are still missing upstream. Simply put, one cannot expect to run a current l-o kernel on the device (and expect to get a GUI and/or make call with the device).
tell me about it :-p
Thing is that it doesn't really depend only on Nokia to get those parts done. Well, we can get the kernel part done by just cleaning up and porting the 2.6.28 drivers to current mainline, but in case of e.g. SGX we still miss the xorg driver and I don't think that'll be released any time soon.
Quoted 5 lines
Quoted 4 lines
Another problem is that the bootloader believes it can pass all the obsoleted OMAP TAGs to kernel and the 2.6.28 kernel depends on those, maybe that can be worked around. I don't know whether kernel simply drops invalid TAGs or not...
Yes kernel simply drops unrecognized TAGs and just prints a warning message.
All the the custom tags should be replaced with
platform_data.If something is needed for revision detection of the board, there is arm-linux common
ATAG_REVISION.However, also Maemo userspace depends on some things set by the custom tags. As this is non-standard, we should not spend much effort on that. Instead we should concentrate on making N900 work with any distro the standard Linux way.
Quoted 6 lines
Quoted 3 lines
So I recommend using kexec patched Maemo kernel, then boot the new mainline kernel from Maemo kernel and mount root directly on the eMMC.
FYI. kexec-tools will be available in maemo.org repo soon and you can also expect kexec patched kernel to be available.
Everything related to kexec (kernel patches and user-space) on n900 is documented here:
http://wiki.meego.com/ARM/Meego_kexec_install_on_N900
kexec-tools is already available from maemo-extras (testing) repository.
Cheers,
Ameya.
Quoted 43 lines · ext Tony Lindgren
Quoted 21 lines · Roger Quadros
Quoted 20 lines · Balbi Felipe (Nokia-D/Helsinki)
Hi,
Quoted 8 lines · ext Arnaud Ebalard
Nokia N900 is shipped to users with a 2.6.28 omap kernel. Many patches for the hardware and various features have been pushed upstream by Nokia developers and possibly others. Those are now available in current l-o tree.
Nonetheless, many drivers and various features are still missing upstream. Simply put, one cannot expect to run a current l-o kernel on the device (and expect to get a GUI and/or make call with the device).
tell me about it :-p
Thing is that it doesn't really depend only on Nokia to get those parts done. Well, we can get the kernel part done by just cleaning up and porting the 2.6.28 drivers to current mainline, but in case of e.g. SGX we still miss the xorg driver and I don't think that'll be released any time soon.
Quoted 6 lines
Quoted 4 lines
Another problem is that the bootloader believes it can pass all the obsoleted OMAP TAGs to kernel and the 2.6.28 kernel depends on those, maybe that can be worked around. I don't know whether kernel simply drops invalid TAGs or not...
Yes kernel simply drops unrecognized TAGs and just prints a warning message.
All the the custom tags should be replaced with
platform_data.If something is needed for revision detection of the board, there is arm-linux common
ATAG_REVISION.However, also Maemo userspace depends on some things set by the custom tags. As this is non-standard, we should not spend much effort on that. Instead we should concentrate on making N900 work with any distro the standard Linux way.
So I recommend using kexec patched Maemo kernel, then boot the new mainline kernel from Maemo kernel and mount root directly on the eMMC.
Quoted 5 lines
As Maemo user space has some dependencies to the partition layout, you need to keep the existing partition layout too. In any case, I ended up resizing the eMMC partitions and using
/dev/mmcblk0p2(mounted as /home in Maemo) as the new root partition.
Yup, I agree with Tony. I would much prefer to see real debian running on the device over a somewhat patched-up Maemo with a newer kernel. The X.org server can work without the SGX driver just fine, only the OMAP DSS needs to function in order to get stuff on screen. What you might miss is the task switcher, but as one prolific person has said, having to have a task manager indicates failure ;P
/lauri
Hi,
Quoted 10 lines · Felipe Balbi
Quoted 8 lines · ext Arnaud Ebalard
Nokia N900 is shipped to users with a 2.6.28 omap kernel. Many patches for the hardware and various features have been pushed upstream by Nokia developers and possibly others. Those are now available in current l-o tree.
Nonetheless, many drivers and various features are still missing upstream. Simply put, one cannot expect to run a current l-o kernel on the device (and expect to get a GUI and/or make call with the device).
Quoted 7 lines
tell me about it :-p
Thing is that it doesn't really depend only on Nokia to get those parts done. Well, we can get the kernel part done by just cleaning up and porting the 2.6.28 drivers to current mainline, but in case of e.g. SGX we still miss the xorg driver and I don't think that'll be released any time soon.
I agree. I also spotted SGX code as the main obstacle and I started wondering at how "kernel-independent" it was. IIRC, it is possible to make it compile againt current l-o with only limited changes. Maybe TI developers can provide some hints.
The other main obstacle was the code to interface with the phone stack (SSI MacSAAB, CMT stuff). Felipe, do you know if someone @nokia has some more recent version available which could be shared if there is good news from TI on SGX aspect.
Quoted 4 lines
Another problem is that the bootloader believes it can pass all the obsoleted OMAP TAGs to kernel and the 2.6.28 kernel depends on those, maybe that can be worked around. I don't know whether kernel simply drops invalid TAGs or not...
Well, with the first patches (simple update from the ones in official kernel) in my set, I think that I managed to get getbootstate happy, i.e. get /proc/bootreason available.
Quoted 1 line
Good work anyways... At least it's now documented ;-)
Thanks.
Quoted 4 lines
PS:
BTW, CBUS isn't really necessary for n900 and I have almost 40 patches cleaning that up pending in this mailing list :-p
yep, I kept it in my series file (cbus-support.patch) as uneeded.
Thanks for your work,
a+
Hi,
Quoted 4 lines · ext Arnaud Ebalard
The other main obstacle was the code to interface with the phone stack (SSI MacSAAB, CMT stuff). Felipe, do you know if someone @nokia has some more recent version available which could be shared if there is good news from TI on SGX aspect.
personally I really dislike the way the whole SSI were written but that's only my opinion. And I don't whether anyone would have other version of that. Maybe you can contact the original author which should be listed in the files' header.
Signature · 1 line
balbi
Quoted 10 lines · Felipe Balbi
Quoted 4 lines · ext Arnaud Ebalard
The other main obstacle was the code to interface with the phone stack (SSI MacSAAB, CMT stuff). Felipe, do you know if someone @nokia has some more recent version available which could be shared if there is good news from TI on SGX aspect.
personally I really dislike the way the whole SSI were written but that's only my opinion. And I don't whether anyone would have other version of that. Maybe you can contact the original author which should be listed in the files' header.
Carlos Chinea (@nokia). I sent him an eamil two weeks ago but got no response yet. I will wait a bit more (he may be busy) and take a look at the code meanwhile.
Cheers,
a+