[KERNEL][3.0.21+][HD video working now on 16Gb NT] Nook Tablet ICS kernel development

Search This thread

lbcoder

Senior Member
Jan 21, 2009
2,613
98
Dont feel like trying to go through about 80 pages of posts just to find where the devs talk about ways of either getting around the SoD or ways of preventing it for now. Its somewhere within these posts.

The human mind is an interesting thing. There was certainly talk about using wake locks and other tricks to prevent the device from sleeping, however, I recall those being in the CM10 thread and presented as hackarounds for that critical usability issue. That is probably what you are recalling. There was actually nothing implemented in the kernel to keep itself awake in this manner.

So.. its not true, but we forgive you for understandable mistake :good:
 

Montisaquadeis

Senior Member
Nov 16, 2011
352
35
Apparently I need to step away from all the technology forums I visit for a while as there are far to many threads that I keep track of and I have apparently mixed up info with what pretains to what and getting info screwed up. Dont want to send someone in the wrong direction so I will be taking a break for a while.
 

Kuzma30

Retired Recognized Developer
Nov 20, 2011
300
1,330
Vinnitsa
kuzma30.wordpress.com
Need help!

Two days ago TI make public release of omapconf (https://github.com/omapconf)

OMAPCONF is a Linux user-space standalone application designed to provide a quick'n easy way to diagnose (monitor/debug/...) TI OMAP processors configuration/status dynamically at runtime, in **any situation'''

I think this tools may help us.
Can anybody run this tool with command from https://github.com/omapconf/omapconf/wiki on 2.6 kernel and post outputs here?
 

lbcoder

Senior Member
Jan 21, 2009
2,613
98
You guys, rather than THANKING Kuzma30, how about you oblige by actually helping him out, rather than thank him for ASKING YOU?
 

Pepe.II

Senior Member
Feb 16, 2010
77
23
Brno
omapconf

Two days ago TI make public release of omapconf (https://github.com/omapconf)

OMAPCONF is a Linux user-space standalone application designed to provide a quick'n easy way to diagnose (monitor/debug/...) TI OMAP processors configuration/status dynamically at runtime, in **any situation'''

I think this tools may help us.
Can anybody run this tool with command from https://github.com/omapconf/omapconf/wiki on 2.6 kernel and post outputs here?


1) Do you have omapconf compiled for ARM architecture? If yes, plz. share it. I don't have crosscompiler instaled to do compilation.
2) With which params may i run omapconf? In this wiki is half milion options.

I am using CM7.2 from iamafanof.
 

Keithn

Senior Member
Feb 24, 2011
859
242
Google Pixel 6 Pro
Two days ago TI make public release of omapconf (https://github.com/omapconf)

OMAPCONF is a Linux user-space standalone application designed to provide a quick'n easy way to diagnose (monitor/debug/...) TI OMAP processors configuration/status dynamically at runtime, in **any situation'''

I think this tools may help us.
Can anybody run this tool with command from https://github.com/omapconf/omapconf/wiki on 2.6 kernel and post outputs here?

I'll try to help you out when I get some more time, but I had a few questions. Would you prefer us running stock or would CM7 work just as well (I know 2.6)? Also which of the commands would you prefer we run then post? There are more than a few, and we could get started with the more important things you need.
 
  • Like
Reactions: Solar.Plexus

Kuzma30

Retired Recognized Developer
Nov 20, 2011
300
1,330
Vinnitsa
kuzma30.wordpress.com
I got these files on the latest cm10 0.05.2 build (3.0.31+ kernel). I also had "I2C read failed" error while running the script.

Thanks. I2C error is normal. It try read audio chip at twl6040 which we have not onboard.

EDIT 1
nook_lover, can you rerun ./omapconf dump emif > dumpemif.txt with different CPU frequency selected?
EDIT 2
Excuse me, but when I write different freq I mean all supported freq. Sorry :)
 
Last edited:

nook_lover

Senior Member
Dec 7, 2011
171
140
Thanks. I2C error is normal. It try read audio chip at twl6040 which we have not onboard.

EDIT 1
nook_lover, can you rerun ./omapconf dump emif > dumpemif.txt with different CPU frequency selected?

Updated. Files from the 3.0.31+ kernel (cm10 0.05.2).
 

Attachments

  • dumpemif-300mhz.txt
    6.9 KB · Views: 17
  • dumpemif-600mhz.txt
    6.9 KB · Views: 4
  • dumpemif-800mhz.txt
    6.9 KB · Views: 4
  • dumpemif-1008mhz.txt
    6.9 KB · Views: 13
Last edited:

Kuzma30

Retired Recognized Developer
Nov 20, 2011
300
1,330
Vinnitsa
kuzma30.wordpress.com

I compare emif setting with stock kernel
For 300Mhz
Code:
< | EMIF1_PERF_CNT_1             | 0x4C000080 | 0xF45C2345 |
< | EMIF1_PERF_CNT_2             | 0x4C000084 | 0x13438375 |
---
> | EMIF1_PERF_CNT_1             | 0x4C000080 | 0x2F14090D |
> | EMIF1_PERF_CNT_2             | 0x4C000084 | 0x10E4CCDE |
56c56
< | EMIF1_PERF_CNT_TIM           | 0x4C000090 | 0x84DE980E |
---
> | EMIF1_PERF_CNT_TIM           | 0x4C000090 | 0x34E66259 |
70c70
< | EMIF1_ZQ_CONFIG              | 0x4C0000C8 | 0xD00B3215 |
---
> | EMIF1_ZQ_CONFIG              | 0x4C0000C8 | 0xD00B3214 |
108,109c108,109
< | EMIF2_PERF_CNT_1             | 0x4D000080 | 0xEA8A306B |
< | EMIF2_PERF_CNT_2             | 0x4D000084 | 0x12287969 |
---
> | EMIF2_PERF_CNT_1             | 0x4D000080 | 0x2F32F308 |
> | EMIF2_PERF_CNT_2             | 0x4D000084 | 0x10F0CB7D |
112c112
< | EMIF2_PERF_CNT_TIM           | 0x4D000090 | 0x84E316DE |
---
> | EMIF2_PERF_CNT_TIM           | 0x4D000090 | 0x34E6D4AC |
126c126
< | EMIF2_ZQ_CONFIG              | 0x4D0000C8 | 0xD00B3215 |
---
> | EMIF2_ZQ_CONFIG              | 0x4D0000C8 | 0xD00B3214 |
For 600 Mhz
Code:
< | EMIF1_LPDDR2_MODE_REG_DATA   | 0x4C000040 | 0x02020202 |
---
> | EMIF1_LPDDR2_MODE_REG_DATA   | 0x4C000040 | 0x01010101 |
52,53c52,53
< | EMIF1_PERF_CNT_1             | 0x4C000080 | 0xEFD4BDFA |
< | EMIF1_PERF_CNT_2             | 0x4C000084 | 0x19CA7F3A |
---
> | EMIF1_PERF_CNT_1             | 0x4C000080 | 0x3844A843 |
> | EMIF1_PERF_CNT_2             | 0x4C000084 | 0x14271C21 |
56c56
< | EMIF1_PERF_CNT_TIM           | 0x4C000090 | 0x435E2C1D |
---
> | EMIF1_PERF_CNT_TIM           | 0x4C000090 | 0x77B8FE4E |
70c70
< | EMIF1_ZQ_CONFIG              | 0x4C0000C8 | 0xD00B3215 |
---
> | EMIF1_ZQ_CONFIG              | 0x4C0000C8 | 0xD00B3214 |
97c97
< | EMIF2_LPDDR2_MODE_REG_DATA   | 0x4D000040 | 0x02020202 |
---
> | EMIF2_LPDDR2_MODE_REG_DATA   | 0x4D000040 | 0x01010101 |
108,109c108,109
< | EMIF2_PERF_CNT_1             | 0x4D000080 | 0xDC22B780 |
< | EMIF2_PERF_CNT_2             | 0x4D000084 | 0x176EA0EF |
---
> | EMIF2_PERF_CNT_1             | 0x4D000080 | 0x386E7C88 |
> | EMIF2_PERF_CNT_2             | 0x4D000084 | 0x14385F8D |
112c112
< | EMIF2_PERF_CNT_TIM           | 0x4D000090 | 0x4362C70B |
---
> | EMIF2_PERF_CNT_TIM           | 0x4D000090 | 0x77BA2440 |
126c126
< | EMIF2_ZQ_CONFIG              | 0x4D0000C8 | 0xD00B3215 |
---
> | EMIF2_ZQ_CONFIG              | 0x4D0000C8 | 0xD00B3214 |
For 800Mhz
Code:
< | EMIF1_LPDDR2_MODE_REG_DATA   | 0x4C000040 | 0x02020202 |
---
> | EMIF1_LPDDR2_MODE_REG_DATA   | 0x4C000040 | 0x01010101 |
52,53c52,53
< | EMIF1_PERF_CNT_1             | 0x4C000080 | 0xF52F769B |
< | EMIF1_PERF_CNT_2             | 0x4C000084 | 0x1CCF9411 |
---
> | EMIF1_PERF_CNT_1             | 0x4C000080 | 0x3FA386C6 |
> | EMIF1_PERF_CNT_2             | 0x4C000084 | 0x16F81307 |
56c56
< | EMIF1_PERF_CNT_TIM           | 0x4C000090 | 0x64B4A326 |
---
> | EMIF1_PERF_CNT_TIM           | 0x4C000090 | 0x399D6549 |
70c70
< | EMIF1_ZQ_CONFIG              | 0x4C0000C8 | 0xD00B3215 |
---
> | EMIF1_ZQ_CONFIG              | 0x4C0000C8 | 0xD00B3214 |
97c97
< | EMIF2_LPDDR2_MODE_REG_DATA   | 0x4D000040 | 0x02020202 |
---
> | EMIF2_LPDDR2_MODE_REG_DATA   | 0x4D000040 | 0x01010101 |
108,109c108,109
< | EMIF2_PERF_CNT_1             | 0x4D000080 | 0xE15DC91B |
< | EMIF2_PERF_CNT_2             | 0x4D000084 | 0x1A7058F9 |
---
> | EMIF2_PERF_CNT_1             | 0x4D000080 | 0x3FD669E3 |
> | EMIF2_PERF_CNT_2             | 0x4D000084 | 0x170CDE0D |
112c112
< | EMIF2_PERF_CNT_TIM           | 0x4D000090 | 0x64B8113A |
---
> | EMIF2_PERF_CNT_TIM           | 0x4D000090 | 0x399BF173 |
126c126
< | EMIF2_ZQ_CONFIG              | 0x4D0000C8 | 0xD00B3215 |
---
> | EMIF2_ZQ_CONFIG              | 0x4D0000C8 | 0xD00B3214 |
For 1Gh diff
Code:
< | EMIF1_LPDDR2_MODE_REG_DATA   | 0x4C000040 | 0x02020202 |
---
> | EMIF1_LPDDR2_MODE_REG_DATA   | 0x4C000040 | 0x01010101 |
52,53c52,53
< | EMIF1_PERF_CNT_1             | 0x4C000080 | 0xF9B0A7E8 |
< | EMIF1_PERF_CNT_2             | 0x4C000084 | 0x1F431C41 |
---
> | EMIF1_PERF_CNT_1             | 0x4C000080 | 0x46D634DC |
> | EMIF1_PERF_CNT_2             | 0x4C000084 | 0x19A15442 |
56c56
< | EMIF1_PERF_CNT_TIM           | 0x4C000090 | 0xEF7E4FCF |
---                                                                                                                           
> | EMIF1_PERF_CNT_TIM           | 0x4C000090 | 0xF997E472 |                                                                  
70c70                                                                                                                         
< | EMIF1_ZQ_CONFIG              | 0x4C0000C8 | 0xD00B3215 |                                                                  
---                                                                                                                           
> | EMIF1_ZQ_CONFIG              | 0x4C0000C8 | 0xD00B3214 |                                                                  
97c97
< | EMIF2_LPDDR2_MODE_REG_DATA   | 0x4D000040 | 0x02020202 |
---
> | EMIF2_LPDDR2_MODE_REG_DATA   | 0x4D000040 | 0x01010101 |
108,109c108,109
< | EMIF2_PERF_CNT_1             | 0x4D000080 | 0xE5C5DA4B |
< | EMIF2_PERF_CNT_2             | 0x4D000084 | 0x1CE0EBC2 |
---
> | EMIF2_PERF_CNT_1             | 0x4D000080 | 0x4716B8E0 |
> | EMIF2_PERF_CNT_2             | 0x4D000084 | 0x19BA0016 |
112c112
< | EMIF2_PERF_CNT_TIM           | 0x4D000090 | 0xEF829C8E |
---
> | EMIF2_PERF_CNT_TIM           | 0x4D000090 | 0xF9ADA069 |
126c126
< | EMIF2_ZQ_CONFIG              | 0x4D0000C8 | 0xD00B3215 |
---
> | EMIF2_ZQ_CONFIG              | 0x4D0000C8 | 0xD00B3214 |

EDIT 1 nook_lover, what SDRAM vendor in your NT?
 
Last edited:

lbcoder

Senior Member
Jan 21, 2009
2,613
98

Top Liked Posts

  • There are no posts matching your filters.
  • 103
    THIS IS FOR DEVELOPMENT COMMUNICATION ONLY -- THERE IS A USER-BASED THREAD IN GENERAL SECTION HERE:
    http://xdaforums.com/showthread.php?p=26931097

    I've started porting 3.0.x Android kernel to NookTablet.
    CURRENT LOG:
    http://pastebin.com/qWXL5LuG

    Working /Not working features:
    1. external SD card (thanks fattire), internal emmc works!
    2. LCD screen (working), back-light(always on as temporary hack). Tested backlight without loading ducati-m3.bin - it works. Thanks to icemank121 in IRC for recommending Hashcode to check the Archos Gen 9 tablet's backlight driver and mik_os for adaptation for NT.
    3. Touchscreen (enabled)
    4. G-sensor (enabled)
    5. Battery driver (enabled)

    6. Audio driver (enabled, working). Thanks to chrmhoffmann.
    7. WIFI (working).
    8. ADB works (test with CWM)
    9. Booting without rootfs in RAM. Ready for beta testing Ubuntu/Linux boot. http://xdaforums.com/showpost.php?p=23072540&postcount=119
    10. power button works in ICS. Poweroff working now. Thanks to Hashcode.
    11. Ducati don't work if backlight is working. (Timer 11 conflict)
    12. Add USB OTG driver to the kernel / don't have USB OTG cable to test :(
    13. Charger working with USB/wall charger.
    14. After software reset SD card don't recognized before shutdown. Fixed by mik_os.
    15. NT reboot only when USB cable is connected http://xdaforums.com/showpost.php?p=25749805&postcount=419
    Fixed. Tnahks to Rebellos and mik_os (http://xdaforums.com/showpost.php?p=25791963&postcount=426)
    16. Deep sleep working, but drain 2-3%/h
    17. Skype working for me now! Testing with 2 my skype account.[/COLOR] It working on buildin mic and headset mic too. Headset tested by joelee100. On test branch using of mic cause device reboot.
    18. Test HD video on YouTube on 16gb device. It working now. Thanks to HashCode to consulting
    Test release CM9 is here http://xdaforums.com/showpost.php?p=26762846&postcount=503


    The repositorie is here https://github.com/Kuzma30/kernel3NookTablet
    Some features are disabled. I will enable them, one by one.
    Help is greatly appreciated!

    This is beta version of 3.x kernel. Only for development use (yet)!

    Kernel development team: chrmhoffmann, fattire, mik_os, Rebell and hashcode (from KF)

    THANKS FOR DONATION TO : lost101 (10$), Aleq (10$), sangahm(15$), old_fart (10$), plantucha (5$), scuffell (10$), angusj (10$)

    Special thanks to aludal for his help at the initial stages of this development. Short descriptions of many stages for this project are being published at aludal's blog fineoils.blogspot.com

    Special thanks to demetris_I for his help in searching, communicating. He work like a BIG "SEARCH" MACHINE.
    37
    What's going on here!

    I guess he's doing good? I have no idea how you guys make heads or tails out of that stuff. Amazing!

    Iv'e tried reading up on compiling and such and honestly I'm lost. I consider myself to be above average in the computer world and it's all greek to me.

    Any suggestions as to a book or books for NooB's? Can compiling be accomplished without any experience with C++ ?? Does what I'm talking about even apply to the Kernel? In other words is what's going on here considered being "compiled"

    TIA

    So "compiling" as you may know is the process of taking human-readable code (or at least computer-programmer-human readable, it's not like a Steven King story) and converting it into a binary blob of code that can be processed and interpreted by the silicon chips in the computer. That translation is compiling, and there are several steps to it...

    What you're looking at in Kuzma's post isn't actual code, but a log of output showing the process of booting the kernel-- the kernel being the most "low-level" program that runs on the nook tablet. The Android kernel, based on the Linux kernel, is in charge of ensuring all the other programs get CPU time to run, and it oversees all the basic systems and all the hardware and everything at the most fundamental level. It's super complex. To use a bizarre analogy-- if a regular app you'd use in Android is as intricate as a shopping mall, I'd say the kernel's inner workings are about as complex as the city of Manhattan. :)

    The Nook Tablet's stock system comes with the 2.6.35 version kernel. However, that kernel is fairly old as kernels go. The newer 3.2.x kernels have been souped up by Texas Instruments (who make the OMAP4 platform upon which the Nook Tablet is based). These OMAP-specific enhancements add things to make the Nook Tablet be able to do super-fast graphic effects, play hardware-accelerated video, and offload processing from the CPU to other chips and save power in other ways. The 3.x kernels also have other improvements that Ice Cream Sandwich depends on for stuff like the network auditing (where you can see how many MB you download in a nice graph and automatically stop it from exceeding a limit).

    So for the past few weeks, hashcode, chrmhoffman, nemith, myself, and others have been moving features back from the 3.x kernel to the NT's 2.6.35 kernel because it's generally easier to grab a feature at a time and integrate it back. But going the other way is a much better if not harder way of doing it-- Kuzma's jumping to to the latest version from TI, then then grab all the 2.6.35 NT-specific code (such as touchscreen drivers, and SD cards and other peripherals and settings) and moving them forward into the newest kernel so it's "caught up".

    But to do this, you have to more or less work "blind" because you don't have a working screen to even see errors or to know if things are working or not. You just pop in the new kernel file, turn it on, and cross your fingers that everything will work out perfectly.

    No not really. That would never work. Instead, you need a way to see what's going on. And so you need to "tap" the physical hardware by connecting up some wires to the NT so it'll send a signal to your computer showing you what's happening with the kernel as you boot it on the NT-- whether the code you've changed is working or not.

    That's what the log above represents-- it's the output of the boot process, which shows various parts of the Nook Tablet starting up in the 3.x kernel-- this is the actual output of the kernel when it runs. Normally this output is "hidden" from view-- it's only viewable when you type the "dmesg" command in the shell. But he's tapped the internals of the Nook Tablet and is able to view it and log it and show it to us.

    And he's saying that he's having problems with registering the external MMC, also known as the "SD card". And so then he shows the part of the code in the kernel that is producing the error.

    The kernel is written in the C language, which is perhaps not the first one I'd recommend if you want to get your feet wet with this stuff. Instead, I'd take a look at python as a language. It's meant to be an easy language to learn, it's available free, it runs on everything from Macs to Linux to Windows to Android. It also happens to be very very very powerful and is used everywhere from NASA to the stock market to writing games. It's not a toy, even though children can learn it quickly.

    Which is why I'm going to recommend the book "Hello World" for you to check out. It's a great book written for kids, but I think it's a good place for you to start. I have nothing to do with it, just a fan and I've recommended it to others with good results.

    Hope this gives the discussion some context.
    33
    I have some very good news.
    We may finally have the opportunity to have ducati-m3.bin with GPTimer 9, 10 as WDT.
    It will take some days or weeks from now, so be patient.
    As i have some more news will post back.
    Thats all am allowed to say in time being.
    Keep your hope up guys we may finally have video acceleration on ICS!
    32
    I am continue working on kernel. If I have a news I'll report.
    24
    hey fattire,
    I don't wanna mess up your thread with noob questions, but why don't you release CM9 with the 2.6.35 kernel until the 3.x kernel is finished ? (feel free to delete the post after you answered it).

    Would you ask a writer why they dont just release part of their next book? Would you ask a painter to display a 1/2 finished work of art?

    This is the right way to do it. Anything else would be a hack. Porting the kernel over gives us a reference point to start with. You can pretty much assume that any custom kernel to come in the future will be based on work that is going on right here, right now.

    Please be considerate and do not clutter this thread with "Im impatient and i want somethimg now". Ive got work to do on Ubuntu as soon as this kernel is finished. CM9 will use this kernel when it is finished. Its likely that Barnes & Noble will use this kernel when its finished and will be asking for help and/or hiring those who did most of the work.

    Just hold your horses guy. We all want something new. You can build and test... You can research... You can try to understand... But please, dont rush perfection. Have respect for the work being done here and if you must, send a pm with a request. This is true development.