Skip to contentSkip to conversation

Upstream linux-omap kernel on Nokia N900?

DISCUSSION Arnaud Ebalard 6 participants 10 messages Apr 19, 2010 – Apr 20, 2010

lore
Share & tools
lore
#0 lore raw

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+

#1 lore raw

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
#2 lore raw
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

#3 lore raw
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

#4 lore raw
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

#5 lore raw
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.

#6 lore raw
In reply to Tony Lindgren
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

#7 lore raw
In reply to Felipe Balbi

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+

#8 lore raw

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
#9 lore raw
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+