[KERNEL][3.x][dev] Nook Color ICS/CM9 kernel development

Search This thread

fattire

Inactive Recognized Developer
Oct 11, 2010
2,281
6,473
www.eff.org
I have been following along at home and have been building with a 4.7 tool chain I built from source after it was released. I haven't ever gotten the rom to progress past the upgrade notification.

I figured i was missing patches or possibly because I can only get the kernel to build by itself, not within a CM9 build. Both your and krylons local.manifest are erroring out on me.

But yeah, consider this another report on the tool chain while also encouraging you to continue with the technical updates. I known they take time, but they are being put to use.

have you tried deleting the file /system/lib/hw/audio_primary.encore.so <--- this is totally from memory and not likley to be the name of the file.. but it's something like that. in case it's getting stuck there?
 

fattire

Inactive Recognized Developer
Oct 11, 2010
2,281
6,473
www.eff.org
Okay, another brief update:

1. rebuilt w/linaro 4.7 & 3.0 kernel using slightly different cflags.
2. it got stuck again on netd.
3. I straced to see where it was getting stuck. replaced libjpeg.so with a recent nightly.
4. It boots!

Update: I think I need to redo this. I'm not 100% sure which compiler it used actually.. Update #2-- Hmm, no I actually suspect I did it right. but jic I'm gonna rebuild and try it again.

Here's what I used. Hopefully it still picked up the -O3 stuff, though i wasn't looking while it was building.

Code:
-TARGET_GLOBAL_CFLAGS += -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp 
-TARGET_GLOBAL_CPPFLAGS += -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp 
+TARGET_GLOBAL_CFLAGS += -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
+TARGET_GLOBAL_CPPFLAGS += -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
+TARGET_arm_CFLAGS   := -O3 -fomit-frame-pointer -fstrict-aliasing -funswitch-loops \
+                       -fmodulo-sched -fmodulo-sched-allow-regmoves
+TARGET_thumb_CFLAGS :=  -mthumb \
+                        -Os \
+                        -fomit-frame-pointer \
+                        -fstrict-aliasing
+TARGET_TOOLS_PREFIX=/home/fattire/Development/linaro/android-toolchain-eabi-4.7/bin/arm-linux-androideabi-
 TARGET_BOOTLOADER_BOARD_NAME := encore
 TARGET_PROVIDES_INIT_TARGET_RC := true
 TARGET_USERIMAGES_USE_EXT4 := true
+CROSS_COMPILE=~/Development/arm-2010q1/bin/arm-none-linux-gnueabi-

Looks like the kernel modules didn't load for some reason, so no wifi so I can't test quadrant or anything. Just wanted to update in case anyone was following along.
 
Last edited:

fattire

Inactive Recognized Developer
Oct 11, 2010
2,281
6,473
www.eff.org
A last thought...

Okay, so cyanogen has ruled out gcc 4.7 for the foreseeable future, so really anyone wanting to try this can do so once the changes for 3.0 are checked into the kernel. At that point, assuming the framework and bionic stuff are accepted by AOSP and/or CM9, it's just a few changes to the BoardConfig and then you can build it w/4.7 yourself as described above. It's all less important anyway than getting an actual, reliable working 3.0 kernel.

Keyodi has been out of town while I've been playing with linaro stuff, but I'm hoping to focus on the other 3.0 kernel things, as my time is available, which in the next few weeks, it may not be as much...
 

aludal

Senior Member
Aug 17, 2010
315
12
Capitola CA
fineoils.blogspot.com
Okay, so cyanogen has ruled out gcc 4.7 for the foreseeable future, so really anyone wanting to try this can do so once the changes for 3.0 are checked into the kernel. At that point, assuming the framework and bionic stuff are accepted by AOSP and/or CM9, it's just a few changes to the BoardConfig and then you can build it w/4.7 yourself as described above. It's all less important anyway than getting an actual, reliable working 3.0 kernel.

Keyodi has been out of town while I've been playing with linaro stuff, but I'm hoping to focus on the other 3.0 kernel things, as my time is available, which in the next few weeks, it may not be as much...
Could you please elaborate a little more on:
1) why current cyanogen builds preclude the use of GCC 4.7?
2) to hell with CyangenMod, are there any independent/kang GCC-4.7-compatible ICS AOSP builds for omapzoom/encore available, to play with?
3) if for the proof of concept only, could be some Ubuntu built with Linaro Enhancements for Encore?
Thank you for your excellent work.

---------- Post added at 10:37 AM ---------- Previous post was at 10:33 AM ----------

Could you please elaborate a little more on:
1) why current cyanogen builds preclude the use of GCC 4.7?
2) to hell with CyangenMod, are there any independent/kang GCC-4.7-compatible ICS AOSP builds for omapzoom/encore available, to play with?
3) if for the proof of concept only, could be some Ubuntu built with Linaro Enhancements for Encore?
Thank you for your excellent work.
Sorry, I have just discovered this in other thread:
Originally Posted by Cyanogen
I think I am just going to make an executive decision here and say that we aren't going with GCC 4.7.
AOSP master is moving to GCC 4.6, which is a step in the right direction and is much more stable. If we want to work with a new toolchain, this is a better choice.
So can Linaro Enhancements be built basing on GCC 4.6?
 

cybertimber2007

Senior Member
Oct 31, 2007
313
69
I think you figured it out, but if not...
The upstream source (AOSP - from Google) isn't (yet) compatible with gcc 4.7. Infact, if I understood Cyanogen, they are just now moving to 4.6.
Secondly... Linaro support for gcc 4.7 "is the current focus of development"... so while there have been some 4.7 releases, it doesn't sound solid yet.

So it sounds like gcc 4.6 is what you want to use.
 
Last edited:

frankusb

Senior Member
Mar 8, 2011
295
165
Hey CM9 kernel people,

I'm still running CM7 but compile my own kernel with Linaro 4.6. I found that if I turn off optimize for size and change -O2 to -O3, I get a measurable increase in Quadrant performance for a slight memory usage increase.

Diffs here and here. Results here.

Frank
 

adm1jtg

Senior Member
Jul 26, 2010
2,841
886
Georgia
Google Pixel 3a XL
Google Pixel 6
Hey CM9 kernel people,

I'm still running CM7 but compile my own kernel with Linaro 4.6. I found that if I turn off optimize for size and change -O2 to -O3, I get a measurable increase in Quadrant performance for a slight memory usage increase.

Diffs here and here. Results here.

Frank

Any chance you can post your work in a cw flashable format so others can test and play with it?
 

frankusb

Senior Member
Mar 8, 2011
295
165
Any chance you can post your work in a cw flashable format so others can test and play with it?

Be glad to, here is the thread.

I've since backed down to -O2, it reduced the kernel size with no impact on Quadrant scores. I'm also running a 16 bit frame buffer. Other than it's the same as mrg666's kernel. It is a CM7 kernel, not CM9.

Frank
 
Last edited:
  • Like
Reactions: asting

keyodi

Senior Member
Feb 3, 2011
133
476
Audio

@fattire or anyone interested

I was finally able to get the sound driver detected, but i'm not getting any sound from either the jack or external speaker. I pushed my changes up, so you can take a look at it. I'm probably missing something or the codec may need to modified, not sure...

Code:
<6><6>aic31xx_i2c_init: mod init
<6><6>tlv320aic31xx_i2c_probe: started
<4>DEVICE :::::::::::::::::::::::::::: tlv320aic31xx-codec
<6>aic31xx_register sucess...
<6>tlv320aic31xx_i2c_probe exited...
<4>omap3epd-sound: Audio SoC init +
<6>+aic31xx_probe: function entered
<6><1>##+tlv320aic31xx_init
<6>mmc0: new high speed MMC card at address 0001
<6>mmcblk0: mmc0:0001 SEM08G 7.39 GiB 
<6>mmcblk0boot0: mmc0:0001 SEM08G partition 1 1.00 MiB
<6>mmcblk0boot1: mmc0:0001 SEM08G partition 2 1.00 MiB
<6>(stk) :ldisc_install = 1
<6> mmcblk0: p1 p2 p3 p4 < p5 p6 p7 p8 >
<6> mmcblk0boot1: unknown partition table
<6> mmcblk0boot0: unknown partition table
<6>aic31xx_dac_mute: mute = 1	 priv->mute = 0	 headset_detect = 1
<6>### Page 0 Regs from 0 to 95
<6>reg = 0 val = 0
<6>reg = 1 val = 0
<6>reg = 2 val = 1
<6>reg = 3 val = 66
<6>reg = 4 val = 3
<6>reg = 5 val = 11
<6>reg = 6 val = 4
<6>reg = 7 val = 0
<6>reg = 8 val = 0
<6>reg = 9 val = 0
<6>reg = 10 val = 0
<6>reg = 11 val = 1
<6>reg = 12 val = 1
<6>reg = 13 val = 0
<6>reg = 14 val = 80
<6>reg = 15 val = 80
<6>reg = 16 val = 8
<6>reg = 17 val = 0
<6>reg = 18 val = 1
<6>reg = 19 val = 1
<6>reg = 20 val = 80
<6>reg = 21 val = 80
<6>reg = 22 val = 4
<6>reg = 23 val = 0
<6>reg = 24 val = 0
<6>reg = 25 val = 0
<6>reg = 26 val = 1
<6>reg = 27 val = 0
<6>reg = 28 val = 0
<6>reg = 29 val = 1
<6>reg = 30 val = 1
<6>reg = 31 val = 0
<6>reg = 32 val = 0
<6>reg = 33 val = 0
<6>reg = 34 val = 0
<6>reg = 35 val = 0
<6>reg = 36 val = 80
<6>reg = 37 val = 0
<6>reg = 38 val = 0
<6>reg = 39 val = 0
<6>reg = 40 val = 0
<6>reg = 41 val = 0
<6>reg = 42 val = 0
<6>reg = 43 val = 0
<6>reg = 44 val = 0
<6>reg = 45 val = 0
<6>reg = 46 val = 0
<6>reg = 47 val = 0
<6>reg = 48 val = c0
<6>reg = 49 val = 0
<6>reg = 50 val = 0
<6>reg = 51 val = 2
<6>reg = 52 val = 32
<6>reg = 53 val = 12
<6>reg = 54 val = 3
<6>reg = 55 val = 2
<6>reg = 56 val = 2
<6>reg = 57 val = 11
<6>reg = 58 val = 10
<6>reg = 59 val = 0
<6>reg = 60 val = 1
<6>reg = 61 val = 4
<6>reg = 62 val = 0
<6>reg = 63 val = 14
<6>reg = 64 val = c
<6>reg = 65 val = 0
<6>reg = 66 val = 0
<6>reg = 67 val = 87
<6>reg = 68 val = 1a
<6>reg = 69 val = 0
<6>reg = 70 val = b6
<6>reg = 71 val = 0
<6>reg = 72 val = 0
<6>reg = 73 val = 0
<6>reg = 74 val = 0
<6>reg = 75 val = ee
<6>reg = 76 val = 10
<6>reg = 77 val = d8
<6>reg = 78 val = 7e
<6>reg = 79 val = e3
<6>reg = 80 val = 0
<6>reg = 81 val = 0
<6>reg = 82 val = 80
<6>reg = 83 val = 0
<6>reg = 84 val = 0
<6>reg = 85 val = 0
<6>reg = 86 val = 0
<6>reg = 87 val = 0
<6>reg = 88 val = 7f
<6>reg = 89 val = 0
<6>reg = 90 val = 0
<6>reg = 91 val = 0
<6>reg = 92 val = 0
<6>reg = 93 val = 0
<6>reg = 94 val = 0
<6>-------------------------------------------
<6>### Page 1 Regs from 30 to 52
<6>reg = 30 val = 3
<6>reg = 31 val = 4
<6>reg = 32 val = 6
<6>reg = 33 val = af
<6>reg = 34 val = 70
<6>reg = 35 val = 0
<6>reg = 36 val = 7f
<6>reg = 37 val = 7f
<6>reg = 38 val = 7f
<6>reg = 39 val = 7f
<6>reg = 40 val = 2
<6>reg = 41 val = 2
<6>reg = 42 val = 0
<6>reg = 43 val = 0
<6>reg = 44 val = 6
<6>reg = 45 val = 86
<6>reg = 46 val = 0
<6>reg = 47 val = 80
<6>reg = 48 val = 0
<6>reg = 49 val = 0
<6>reg = 50 val = 0
<6>reg = 51 val = 0
<4>mmc1: host does not support reading read-only switch. assuming write-enable.
<6>####SPL_DRIVER_GAIN 0
<6>
<6>##### L_ANALOG_VOL_2_SPL 127 R_ANLOG_VOL_2_SPR 127
<6>
<6>#### LDAC_VOL 0 RDAC_VOL 0
<6>
<6>###OVER Temperature STATUS ( Page 0 Reg 3) 66
<6>
<6>###SHORT CIRCUIT STATUS (Page 0 Reg 44) 0
<6>
<6>mmc1: new high speed SDHC card at address e624
<6>mmcblk1: mmc1:e624 SU16G 14.8 GiB 
<6>###INTR_FLAG: SHORT_CKT(Page 0 Reg 46) 0
<6>
<6>###Speaker_Driver_Short_Circuit ( Page 1 Reg 32)6
<6>
<6>@@@  MIC_PGA (P1 R47) = 0x80
<6>
<6>@@@  ADC_FGA (P0 R82) = 0x80
<6>
<6>@@@  ADC_CGA (P0 R83) = 0x0
<6>
<6> mmcblk1: p1
<6>##-aic31xx_mute_codec 1
<6><1>##-tlv320aic31xx_init
<6>##aic31xx_add_widgets
<6>Completed adding dapm widgets size = 24
<6>Completed adding DAPM routes = 32
<6>widgets updated
<6>asoc: tlv320aic31xx-dai <-> omap-mcbsp-dai.1 mapping ok
<4>sys_ck = 26000000
<4>clkout2_src_ck = 26000000
<4>sys_clkout2 = 13000000
<4>omap3epd-sound: Audio SoC init -
<6>ALSA device list:
<6>  #0: OMAP3 EDP(tlv320aic31xx)
 

fattire

Inactive Recognized Developer
Oct 11, 2010
2,281
6,473
www.eff.org
misc additional info

@fattire or anyone interested

I was finally able to get the sound driver detected, but i'm not getting any sound from either the jack or external speaker. I pushed my changes up, so you can take a look at it. I'm probably missing something or the codec may need to modified, not sure...

Code:
<6><6>aic31xx_i2c_init: mod init
<6><6>tlv320aic31xx_i2c_probe: started
<4>DEVICE :::::::::::::::::::::::::::: tlv320aic31xx-codec
<6>aic31xx_register sucess...
<6>  #0: OMAP3 EDP(tlv320aic31xx)

This is awesome... will look at it closer tomorrow. Way to go.

Code:
root@android:/ # alsa_aplay --list-devices                                     
[hide]**** List of PLAYBACK Hardware Devices ****
card 0: EDP [OMAP3 EDP], device 0: AIC31xx Audio tlv320aic31xx-dai-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
root@android:/ # alsa_aplay --list-pcms                                        
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=EDP
    OMAP3 EDP, 
    Default Audio Device[/hide]


Output of alsa_amixer:



Code:
1|root@android:/ # alsa_amixer                                                 
[hide]Simple mixer control 'Mic Bias Voltage',0
  Capabilities: enum
  Items: 'off' '2 V' '2.5 V' 'AVDD'
  Item0: 'off'
Simple mixer control 'Beep Cos(x) LSB',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 255
  Mono: 227 [89%]
Simple mixer control 'Beep Cos(x) MSB',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 255
  Mono: 126 [49%]
Simple mixer control 'Beep Length LSB',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 255
  Mono: 238 [93%]
Simple mixer control 'Beep Length MID',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 255
  Mono: 0 [0%]
Simple mixer control 'Beep Length MSB',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 255
  Mono: 0 [0%]
Simple mixer control 'Beep Sin(x) LSB',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 255
  Mono: 216 [85%]
Simple mixer control 'Beep Sin(x) MSB',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 255
  Mono: 16 [6%]
Simple mixer control 'Beep Volume Control(0 = -61 db, 63 = 2 dB)',0
  Capabilities: volume penum
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 63
  Front Left: 63 [100%]
  Front Right: 63 [100%]
Simple mixer control 'Beep generator Enable / Disable',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Disabled'
Simple mixer control 'ADC COARSE GAIN',0
  Capabilities: volume penum
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 144
  Front Left: 104 [72%]
  Front Right: 104 [72%]
Simple mixer control 'ADC FINE GAIN',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 4
  Mono: 4 [100%]
Simple mixer control 'ADC MIC_PGA GAIN',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 119
  Mono: 0 [0%]
Simple mixer control 'ADC Mute',0
  Capabilities: enum
  Items: 'Unmute' 'Mute'
  Item0: 'Mute'
Simple mixer control 'ADC Processing Block Selection(0 <->25)',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 18
  Mono: 4 [22%]
Simple mixer control 'AGC Attack Time control',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 31
  Mono: 0 [0%]
Simple mixer control 'AGC Decay Time control',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 31
  Mono: 0 [0%]
Simple mixer control 'AGC Maximum PGA Control',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 119
  Mono: 127 [107%]
Simple mixer control 'AGC Noice bounce control',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 31
  Mono: 0 [0%]
Simple mixer control 'AGC Signal bounce control',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 15
  Mono: 0 [0%]
Simple mixer control 'AGC Target Level Control',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 7
  Mono: 7 [100%]
Simple mixer control 'AGC_ATC_TIME_MULTIPLIER',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 8
  Mono: 0 [0%]
Simple mixer control 'AGC_DECAY_TIME_MULTIPLIER',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 8
  Mono: 0 [0%]
Simple mixer control 'AGC_HYSTERISIS',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 3
  Mono: 0 [0%]
Simple mixer control 'AGC_NOISE_THRESHOLD',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 32
  Mono: 32 [100%]
Simple mixer control 'Audio Gain Control(AGC)',0
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'CM selection for ADC IP M - terminal',0
  Capabilities: enum
  Items: 'off' '10 k' '20 k' '40 k'
  Item0: 'off'
Simple mixer control 'Class - D driver',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 4
  Mono: 0 [0%] [6.00dB]
Simple mixer control 'DAC',0
  Capabilities: pvolume penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 175
  Mono:
  Front Left: Playback 127 [73%] [0.00dB]
  Front Right: Playback 127 [73%] [0.00dB]
Simple mixer control 'DAC Processing Block Selection(0 <->25)',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 25
  Mono: 1 [4%]
Simple mixer control 'DAC Volume soft stepping',0
  Capabilities: enum
  Items: '1 step / sample' '1 step / 2 sample' 'disabled'
  Item0: '1 step / sample'
Simple mixer control 'DAC volume Control register/pin',0
  Capabilities: enum
  Items: 'control register' 'pin'
  Item0: 'control register'
Simple mixer control 'DAC volume Extra control',0
  Capabilities: enum
  Items: 'L & R Ind Vol' 'LVol = RVol' 'RVol = LVol'
  Item0: 'L & R Ind Vol'
Simple mixer control 'DRC Enable / Disable',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Disabled'
  Item1: 'Disabled'
Simple mixer control 'DRC Hysteresis value(0 = 0 db, 3 = 3 db)',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 3
  Mono: 2 [67%]
Simple mixer control 'DRC Threshold value(0 = -3 db, 7 = -24 db)',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 7
  Mono: 6 [86%]
Simple mixer control 'DRC attack rate',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 15
  Mono: 11 [73%]
Simple mixer control 'DRC decay rate',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 15
  Mono: 6 [40%]
Simple mixer control 'DRC hold time',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 15
  Mono: 0 [0%]
Simple mixer control 'HP Analog Gain',0
  Capabilities: volume penum
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 127
  Front Left: 0 [0%]
  Front Right: 0 [0%]
Simple mixer control 'HP Output common - mode voltage control',0
  Capabilities: enum
  Items: '1.35 V' '5 V ' '1.65 V' '1.8 V'
  Item0: '1.35 V'
Simple mixer control 'HP driver',0
  Capabilities: volume penum
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 9
  Front Left: 0 [0%] [0.00dB]
  Front Right: 0 [0%] [0.00dB]
Simple mixer control 'HP driver mute',0
  Capabilities: volume penum
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 2
  Front Left: 0 [0%]
  Front Right: 0 [0%]
Simple mixer control 'HPL_PWR_CTL',0
  Capabilities: enum
  Items: 'Mute' 'Unmute'
  Item0: 'Mute'
Simple mixer control 'HPR_PWR_CTL',0
  Capabilities: enum
  Items: 'Mute' 'Unmute'
  Item0: 'Mute'
Simple mixer control 'HP_BUTTON_DEBOUNCE_TIME',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 3
  Mono: 3 [100%]
Simple mixer control 'HP_DETECT_DEBOUNCE_TIME',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 5
  Mono: 1 [20%]
Simple mixer control 'Headset detection Enable / Disable',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Enabled'
Simple mixer control 'LDAC_PWR_CTL',0
  Capabilities: enum
  Items: 'Mute' 'Unmute'
  Item0: 'Mute'
Simple mixer control 'Left DAC Mute',0
  Capabilities: enum
  Items: 'Unmute' 'Mute'
  Item0: 'Mute'
Simple mixer control 'Left DAC input selection',0
  Capabilities: enum
  Items: 'off' 'left data' 'right data' '(left + right) / 2'
  Item0: 'left data'
Simple mixer control 'Left Output Mixer From DAC_L',0
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Left Output Mixer From MIC1LP',0
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Left Output Mixer From MIC1RP',0
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'LoopBack_Control',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 4
  Mono: 0 [0%]
Simple mixer control 'MIC PGA Setting',0
  Capabilities: enum
  Items: 'Gain controlled by D0 - D6' '0 db Gain'
  Item0: '0 db Gain'
Simple mixer control 'MIC1LM CM Setting',0
  Capabilities: enum
  Items: 'floating' 'connected to CM internally'
  Item0: 'floating'
Simple mixer control 'MIC1LM selection for ADC I/P M - terminal',0
  Capabilities: enum
  Items: 'off' '10 k' '20 k' '40 k'
  Item0: 'off'
Simple mixer control 'MIC1LM selection for ADC I/P P - terminal',0
  Capabilities: enum
  Items: 'off' '10 k' '20 k' '40 k'
  Item0: 'off'
Simple mixer control 'MIC1LP CM Setting',0
  Capabilities: enum
  Items: 'floating' 'connected to CM internally'
  Item0: 'floating'
Simple mixer control 'MIC1LP selection for ADC I/P P - terminal',0
  Capabilities: enum
  Items: 'off' '10 k' '20 k' '40 k'
  Item0: 'off'
Simple mixer control 'MIC1RP CM Setting',0
  Capabilities: enum
  Items: 'floating' 'connected to CM internally'
  Item0: 'floating'
Simple mixer control 'MIC1RP selection for ADC I/P P - terminal',0
  Capabilities: enum
  Items: 'off' '10 k' '20 k' '40 k'
  Item0: 'off'
Simple mixer control 'MIC_PGA_EN_CTL',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 2
  Mono: 1 [50%]
Simple mixer control 'M_Input_Mixer CM_PGA_CNTL',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 3
  Mono: 0 [0%]
Simple mixer control 'M_Input_Mixer MIC1LM_PGA_CNTL',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 3
  Mono: 0 [0%]
Simple mixer control 'P_Input_Mixer MIC1LM_PGA_CNTL',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 3
  Mono: 0 [0%]
Simple mixer control 'P_Input_Mixer MIC1LP_PGA_CNTL',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 3
  Mono: 0 [0%]
Simple mixer control 'P_Input_Mixer MIC1RP_PGA_CNTL',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 3
  Mono: 0 [0%]
Simple mixer control 'Program Registers',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 65535
  Mono: 0 [0%]
Simple mixer control 'RDAC_PWR_CTL',0
  Capabilities: enum
  Items: 'Mute' 'Unmute'
  Item0: 'Mute'
Simple mixer control 'Right DAC Mute',0
  Capabilities: enum
  Items: 'Unmute' 'Mute'
  Item0: 'Mute'
Simple mixer control 'Right DAC input selection',0
  Capabilities: enum
  Items: 'off' 'right data' 'left data' '(left+right)/2'
  Item0: 'right data'
Simple mixer control 'Right Output Mixer From DAC_R',0
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Right Output Mixer From MIC1RP',0
  Capabilities: pswitch pswitch-joined penum
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'SP Analog Gain(0 = 0 dB, 127 = -78.3 dB)',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 127
  Mono: 0 [0%]
Simple mixer control 'SP driver mute',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 2
  Mono: 0 [0%]
Simple mixer control 'Throughput of 7 - bit vol ADC for pin',0
  Capabilities: volume volume-joined penum
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 7
  Mono: 0 [0%][/hide]

Code:
# alsa_amixer scontrols    [hide]                                     
Simple mixer control 'Mic Bias Voltage',0
Simple mixer control 'Beep Cos(x) LSB',0
Simple mixer control 'Beep Cos(x) MSB',0
Simple mixer control 'Beep Length LSB',0
Simple mixer control 'Beep Length MID',0
Simple mixer control 'Beep Length MSB',0
Simple mixer control 'Beep Sin(x) LSB',0
Simple mixer control 'Beep Sin(x) MSB',0
Simple mixer control 'Beep Volume Control(0 = -61 db, 63 = 2 dB)',0
Simple mixer control 'Beep generator Enable / Disable',0
Simple mixer control 'ADC COARSE GAIN',0
Simple mixer control 'ADC FINE GAIN',0
Simple mixer control 'ADC MIC_PGA GAIN',0
Simple mixer control 'ADC Mute',0
Simple mixer control 'ADC Processing Block Selection(0 <->25)',0
Simple mixer control 'AGC Attack Time control',0
Simple mixer control 'AGC Decay Time control',0
Simple mixer control 'AGC Maximum PGA Control',0
Simple mixer control 'AGC Noice bounce control',0
Simple mixer control 'AGC Signal bounce control',0
Simple mixer control 'AGC Target Level Control',0
Simple mixer control 'AGC_ATC_TIME_MULTIPLIER',0
Simple mixer control 'AGC_DECAY_TIME_MULTIPLIER',0
Simple mixer control 'AGC_HYSTERISIS',0
Simple mixer control 'AGC_NOISE_THRESHOLD',0
Simple mixer control 'Audio Gain Control(AGC)',0
Simple mixer control 'CM selection for ADC IP M - terminal',0
Simple mixer control 'Class - D driver',0
Simple mixer control 'DAC',0
Simple mixer control 'DAC Processing Block Selection(0 <->25)',0
Simple mixer control 'DAC Volume soft stepping',0
Simple mixer control 'DAC volume Control register/pin',0
Simple mixer control 'DAC volume Extra control',0
Simple mixer control 'DRC Enable / Disable',0
Simple mixer control 'DRC Hysteresis value(0 = 0 db, 3 = 3 db)',0
Simple mixer control 'DRC Threshold value(0 = -3 db, 7 = -24 db)',0
Simple mixer control 'DRC attack rate',0
Simple mixer control 'DRC decay rate',0
Simple mixer control 'DRC hold time',0
Simple mixer control 'HP Analog Gain',0
Simple mixer control 'HP Output common - mode voltage control',0
Simple mixer control 'HP driver',0
Simple mixer control 'HP driver mute',0
Simple mixer control 'HPL_PWR_CTL',0
Simple mixer control 'HPR_PWR_CTL',0
Simple mixer control 'HP_BUTTON_DEBOUNCE_TIME',0
Simple mixer control 'HP_DETECT_DEBOUNCE_TIME',0
Simple mixer control 'Headset detection Enable / Disable',0
Simple mixer control 'LDAC_PWR_CTL',0
Simple mixer control 'Left DAC Mute',0
Simple mixer control 'Left DAC input selection',0
Simple mixer control 'Left Output Mixer From DAC_L',0
Simple mixer control 'Left Output Mixer From MIC1LP',0
Simple mixer control 'Left Output Mixer From MIC1RP',0
Simple mixer control 'LoopBack_Control',0
Simple mixer control 'MIC PGA Setting',0
Simple mixer control 'MIC1LM CM Setting',0
Simple mixer control 'MIC1LM selection for ADC I/P M - terminal',0
Simple mixer control 'MIC1LM selection for ADC I/P P - terminal',0
Simple mixer control 'MIC1LP CM Setting',0
Simple mixer control 'MIC1LP selection for ADC I/P P - terminal',0
Simple mixer control 'MIC1RP CM Setting',0
Simple mixer control 'MIC1RP selection for ADC I/P P - terminal',0
Simple mixer control 'MIC_PGA_EN_CTL',0
Simple mixer control 'M_Input_Mixer CM_PGA_CNTL',0
Simple mixer control 'M_Input_Mixer MIC1LM_PGA_CNTL',0
Simple mixer control 'P_Input_Mixer MIC1LM_PGA_CNTL',0
Simple mixer control 'P_Input_Mixer MIC1LP_PGA_CNTL',0
Simple mixer control 'P_Input_Mixer MIC1RP_PGA_CNTL',0
Simple mixer control 'Program Registers',0
Simple mixer control 'RDAC_PWR_CTL',0
Simple mixer control 'Right DAC Mute',0
Simple mixer control 'Right DAC input selection',0
Simple mixer control 'Right Output Mixer From DAC_R',0[CODE]
Simple mixer control 'Right Output Mixer From MIC1RP',0
Simple mixer control 'SP Analog Gain(0 = 0 dB, 127 = -78.3 dB)',0
Simple mixer control 'SP driver mute',0
Simple mixer control 'Throughput of 7 - bit vol ADC for pin',0
[/hide][/code]

Code:
# alsa_ucm listcards
[hide]                                          
ALSA lib external/alsa-lib/src/ucm/parser.c:1142:(uc_mgr_scan_master_configs) error: could not scan directory /system/usr/share/alsa/ucm: No such file or directory
alsa_ucm: unable to obtain card list: No such file or directory
1|root@android:/ # [/hide]

trying to play a sound...


Code:
1|root@android:/ # alsa_aplay /sdcard/sound.wav                                
[hide]Playing WAVE '/sdcard/sound.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
aplay: set_params:1124: Unable to install hw params:
ACCESS:  RW_INTERLEAVED
FORMAT:  S16_LE
SUBFORMAT:  STD
SAMPLE_BITS: 16
FRAME_BITS: 16
CHANNELS: 1
RATE: 44100
PERIOD_TIME: (124988 124989)
PERIOD_SIZE: 5512
PERIOD_BYTES: 11024
PERIODS: 4
BUFFER_TIME: (499954 499955)
BUFFER_SIZE: 22048
BUFFER_BYTES: 44096
TICK_TIME: 0[/hide]

(don't hear anything)

Code:
# alsa_aplay -D plughw:1,0 -vvv /sdcard/sound.wav             
[hide]ALSA lib external/alsa-lib/src/pcm/pcm_hw.c:1400:(_snd_pcm_hw_open) Invalid value for card
aplay: main:661: audio open error: No such file or directory[/hide]
1|root@android:/ # alsa_aplay -l
[hide]**** List of PLAYBACK Hardware Devices ****
card 0: EDP [OMAP3 EDP], device 0: AIC31xx Audio tlv320aic31xx-dai-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
root@android:/ # aplay -L
/system/bin/sh: aplay: not found[/hide]
127|root@android:/ # alsa_aplay -L
[hide]null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=EDP
    OMAP3 EDP, 
    Default Audio Device[/hide]


Note that you can adjust the volume with

alsa_amixer sset 'HP Analog Gain' 100

for example.

I think this is pretty close (fingers crossed) but it's 4:30 am so it'll have to wait till tomorrow...
 
Last edited:

MДЯCЦSДИT

Inactive Recognized Developer
Nov 21, 2010
6,563
4,616
Why no pastebin? At least use spoiler tags
I think


Sent from my SPH-D700 using Tapatalk 2
 

fattire

Inactive Recognized Developer
Oct 11, 2010
2,281
6,473
www.eff.org
Why no pastebin? At least use spoiler tags
I think


Sent from my SPH-D700 using Tapatalk 2

Meh. I tried it, it looks crappy. But whatever. I kinda figured that on a dev thread, people could handle inline code and might want to use parts of it in requoted replies... Also I think it's easier to read. but whatever. Now you get to click 14 times..
 

fattire

Inactive Recognized Developer
Oct 11, 2010
2,281
6,473
www.eff.org
Stuff that didn't work.

Going to sleep. But here's a couple quick notes for the night for keyodi and anyone else--

1. If you're building the latest hardware/ti/omap3 stuff, don't forget to pull the sound stuff out of the proprietary vendor folder. It's all being rebuilt, so don't want to use old libraries and things (I think).

2. To get hardware/ti/omap3 to build in its entirety, I did three things:

a. These hacky patches
b. killed the entire camera directory.
c. To omx/Android.mk:
-include $(TI_OMX_VIDEO)/video_encode/Android.mk

You can also get rid of omx/video/src/openmax_il/video_encode entirely if you want.

3. The card inits, but now Android is not happy:

(E/AudioFlinger( 2285): couldn't open audio hw device in audio.primary (Invalid argument))

tinyplay is not happy either:

root@android:/ # tinyplay /sdcard/sound.wav
Unable to open PCM device 0 (cannot set hw params: Invalid argument)

same error. And it's the same issue that plagues alsa_aplay too.


4. Inspired by comment #6 here I tried adding this to the kernel. It didn't seem to fix anything. But feels right.

5. Anyone know what this is? If we can fix it, that would be good:

open("/dev/snd/pcmC0D0p", O_RDWR) = 4
ioctl(4, AGPIOC_ACQUIRE or APM_IOC_STANDBY, 0xbef9c7ec) = 0
ioctl(4, 0xc25c4111, 0xbef9c590) = -1 EINVAL (Invalid argument)
close(4) = 0
write(2, "Unable to open PCM device 0 (can"..., 69Unable to open PCM device 0 (cannot set hw params: Invalid argument)
) = 69


Update: According to this I may need to play with tinymix some more (?). Tomorrow.
 
Last edited:

krylon360

Retired Recognized Developer
May 10, 2010
2,228
3,109
Seattle
Going to sleep. But here's a couple quick notes for the night for keyodi and anyone else--

1. If you're building the latest hardware/ti/omap3 stuff, don't forget to pull the sound stuff out of the proprietary vendor folder. It's all being rebuilt, so don't want to use old libraries and things (I think).

2. To get hardware/ti/omap3 to build in its entirety, I did three things:

a. These hacky patches
b. killed the entire camera directory.
c. To omx/Android.mk:
-include $(TI_OMX_VIDEO)/video_encode/Android.mk

You can also get rid of omx/video/src/openmax_il/video_encode entirely if you want.

3. The card inits, but now Android is not happy:

(E/AudioFlinger( 2285): couldn't open audio hw device in audio.primary (Invalid argument))

tinyplay is not happy either:

root@android:/ # tinyplay /sdcard/sound.wav
Unable to open PCM device 0 (cannot set hw params: Invalid argument)

same error. And it's the same issue that plagues alsa_aplay too.


4. Inspired by comment #6 here I tried adding this to the kernel. It didn't seem to fix anything. But feels right.

5. Anyone know what this is? If we can fix it, that would be good:

open("/dev/snd/pcmC0D0p", O_RDWR) = 4
ioctl(4, AGPIOC_ACQUIRE or APM_IOC_STANDBY, 0xbef9c7ec) = 0
ioctl(4, 0xc25c4111, 0xbef9c590) = -1 EINVAL (Invalid argument)
close(4) = 0
write(2, "Unable to open PCM device 0 (can"..., 69Unable to open PCM device 0 (cannot set hw params: Invalid argument)
) = 69


Update: According to this I may need to play with tinymix some more (?). Tomorrow.

FYI: TI's source IS in fact BROKE!
Look at hardware/ti/omap3/video/src/openmax_il/video_decode/src/OMX_VideoDecoder.c starting at line 534 all the way to the bottom. It's all commented out. almost 3500 lines! that's sad.

I tweeted them the error, and the fix. a simple // lol. They didn't comment out the entire string; just one line of it.

Something is up with the patch btw.

Code:
#ifdef __PERF_INSTRUMENTATION__
                PERF_SendingFrame(pComponentPrivate_CC->pPERFcomp,
                                  pComponentPrivate_CC->pOutputBufferList->pBufHdr[pComponentPrivate_CC->nInvalidFrameCount+1]->pBuffer,
                                  pComponentPrivate_CC->pOutputBufferList->pBufHdr[pComponentPrivate_CC->nInvalidFrameC
                                  PERF_ModuleHLMM);
                pComponentPrivate_CC->nInvalidFrameCount++;
                pComponentPrivate_CC->nInvalidFrameCount++;
#endif

causes this:
target thumb C: libOMX.TI.WMA.decode <= hardware/ti/omap3/omx/audio/src/openmax_il/wma_dec/src/OMX_WmaDec_Utils.c
hardware/ti/omap3/omx/audio/src/openmax_il/wma_dec/src/OMX_WmaDec_Utils.c:2083:50: error: macro "PERF_SendingFrame" requires 4 arguments, but only 3 given
hardware/ti/omap3/omx/audio/src/openmax_il/wma_dec/src/OMX_WmaDec_Utils.c: In function 'WMADECLCML_Callback':
hardware/ti/omap3/omx/audio/src/openmax_il/wma_dec/src/OMX_WmaDec_Utils.c:2079: error: 'PERF_SendingFrame' undeclared (first use in this function)
hardware/ti/omap3/omx/audio/src/openmax_il/wma_dec/src/OMX_WmaDec_Utils.c:2079: error: (Each undeclared identifier is reported only once
hardware/ti/omap3/omx/audio/src/openmax_il/wma_dec/src/OMX_WmaDec_Utils.c:2079: error: for each function it appears in.)
make: *** [out/target/product/encore/obj/SHARED_LIBRARIES/libOMX.TI.WMA.decode_intermediates/OMX_WmaDec_Utils.o] Error 1

Workaround for now.
I just used a prebuilt and removed it from building in device.mk. WMA isn't even coded into the OMXCodec.cpp as a valid codec to use. Same with WMV. So doesn't matter to much if it's built or not.
 
Last edited:

fattire

Inactive Recognized Developer
Oct 11, 2010
2,281
6,473
www.eff.org
Something is up with the patch btw.

Code:
#ifdef __PERF_INSTRUMENTATION__
                PERF_SendingFrame(pComponentPrivate_CC->pPERFcomp,
                                  pComponentPrivate_CC->pOutputBufferList->pBufHdr[pComponentPrivate_CC->nInvalidFrameCount+1]->pBuffer,
                                  pComponentPrivate_CC->pOutputBufferList->pBufHdr[pComponentPrivate_CC->nInvalidFrameC
                                  PERF_ModuleHLMM);
                pComponentPrivate_CC->nInvalidFrameCount++;
                pComponentPrivate_CC->nInvalidFrameCount++;
#endif

It looks like the end got cut off when I copy/pasted or something. This is the worst of the hackyness anyway but it should look like this.

Code:
-                                  pComponentPrivate_CC->pOutputBufferList->pBufHdr[pComponentPrivate_CC->nInvalidFrameCount++]->pBuffer,
-                                  pComponentPrivate_CC->pOutputBufferList->pBufHdr[pComponentPrivate_CC->nInvalidFrameCount++]->nFilledLen,
+                                  pComponentPrivate_CC->pOutputBufferList->pBufHdr[
+pComponentPrivate_CC->nInvalidFrameCount+1]->pBuffer,
+                                  pComponentPrivate_CC->pOutputBufferList->pBufHdr[pComponentPrivate_CC->nInvalidFrameCount+2]->nFilledLen,
                                   PERF_ModuleHLMM);
+               pComponentPrivate_CC->nInvalidFrameCount++;
+               pComponentPrivate_CC->nInvalidFrameCount++;

In other words, "nInvalidFrameC" is cut off.

And actually I believe these patches were to resolve a GCC 4.7 error, so you can probably just go back to the original and you'll be fine :) Heh
 

krylon360

Retired Recognized Developer
May 10, 2010
2,228
3,109
Seattle
The ion.h patch was needed. Though with my code error finding it might just work.

Got this from TI:

@TXInstruments @krylon360 thank you for pointing that out. We’ve alerted our software team.

:)

I'll fix the missing piece that got cut off in a little bit. Thank you.
Sent from my SPH-D710 using xda app-developers app
 

fattire

Inactive Recognized Developer
Oct 11, 2010
2,281
6,473
www.eff.org
Yup the ion one was first and the others I did quickly when hopping through 4.7 errors during my linaro phase :) it was like just whatever I needed to do fast to not trip gcc's more sensitive syntax checking.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 47
    This is quite awesome.

    Here's some amazing things that have happened today:

    * jellybean has been built by krylon360 from AOSP and he's testing it out. I'm doing the same with the cm10 repo. I've already created some jellybean branches in the device_repo and I'll push that.

    * epsylon3 has a module for defy that allow full video/omx stuff to work on omap3. It's for the .32 kernel and it may be a fast way to get omx using the old kernel. nemith has expressed interest if no one else wants to try it.

    * I started a 3.4 kernel port and got it to build. it's a mess so I want to start over at some point. I haven't tried it, I know it won't work and I lost all my microUSB cables for the moment.

    * oh, and keyodi has sound working in 3.0!!!

    Holy crap!
    35
    This thread is for development of a long-discussed 3.x kernel for encore/nookcolor. The goal is not only to have a modern kernel, but to take advantage of the expected support for hardware accelerated video and such.

    TI has released an incomplete 3.x branch which is now being used as a base. The project so far has been about getting stuff ready and working so that as more source comes into omapzoom, it can be readily incorporated into our kernel.

    keyodi (with some contributions from me, but mostly keyodi, so thank him below) has been doing the work thusfar for a few days, and there is now a VERY buggy build up-and-running. But since there has been so much discussion in the other cm9 dev thread, we felt maybe moving it here would be a good idea.

    Current status:
    (updated 5/27/12)

    • it boots up
    • accel 2d graphics work
    • mounting read/writing internal & external SD card
    • touchscreen (updated 3.4 driver) works but "stutters" (see below)
    • bluetooth works
    • adb works
    • no wifi wifi!
    • accelerometer works
    • charger not recognized on boot.
    • random restarts when sleeping
    • general sleep issues (pwr_core doesn't enter sleep)
    • no sound
    • weirdness where touchscreen is responsive only in short bursts.
    • no hardware accelerated video (no source for it)

    Userland-wise, OMAP_ENHANCEMENT support needs to be added back into ICS, but that's beyond the scope of this thread.

    Devs are invited to help. Anyone else should probably stay away, as this is buggy as hell.

    To Build:

    Add the following local_manifest.xml to ~/android/system/.repo:

    --------------------

    <?xml version="1.0" encoding="UTF-8"?>
    <manifest>

    <remote name = "gh"
    fetch="git://github.com/" />

    <remove-project name="CyanogenMod/android_hardware_ti_omap3" />

    <project path="device/bn/encore"
    name="fat-tire/android_device_bn_encore"
    remote="gh"
    revision="ics-3.0"/>

    <project path="kernel/bn/encore"
    name="keyodi/ti-omap-encore-kernel3"
    remote="gh"
    revision="encore-omap3-3"/>

    <project name="platform/hardware/ti/omap3" remote="oz" path="hardware/ti/omap3" revision="ics-mr1" />


    </manifest>


    --------------------
    Then repo sync, and then re-build (doing a make clobber may not be a bad idea to pick up changes to the BoardConfig.mk file). Changes were made to the device on its own branch to turn off audio for now. Also the kernel, using the cm9 conventions, is built along with the rest of CM9.

    Try at your own risk. It is truly an unusable, barely completed result at the moment. Kernel devs, meet up on irc.

    Also see the NookTablet (OMAP4, but lots of similar hardware) 3.x thread here as well as hashcode's Kindle Fire (OMAP4 also, but with 512MB) 3.x kernel thread here.
    29
    We have sound!!!

    I just got sound working...I pushed all the changes so we at least have the source, but the codec needs to be cleaned up a little and I still need to compare the current source w/ the .32 to make sure we're not missing anything.

    The legacy audio (BOARD_USES_AUDIO_LEGACY := true), also needs to be enabled in the BoardConfig in order for audio to work.
    16
    Okay, another brief update:

    1. rebuilt w/linaro 4.7 & 3.0 kernel using slightly different cflags.
    2. it got stuck again on netd.
    3. I straced to see where it was getting stuck. replaced libjpeg.so with a recent nightly.
    4. It boots!

    Update: I think I need to redo this. I'm not 100% sure which compiler it used actually.. Update #2-- Hmm, no I actually suspect I did it right. but jic I'm gonna rebuild and try it again.

    Here's what I used. Hopefully it still picked up the -O3 stuff, though i wasn't looking while it was building.

    Code:
    -TARGET_GLOBAL_CFLAGS += -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp 
    -TARGET_GLOBAL_CPPFLAGS += -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp 
    +TARGET_GLOBAL_CFLAGS += -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
    +TARGET_GLOBAL_CPPFLAGS += -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
    +TARGET_arm_CFLAGS   := -O3 -fomit-frame-pointer -fstrict-aliasing -funswitch-loops \
    +                       -fmodulo-sched -fmodulo-sched-allow-regmoves
    +TARGET_thumb_CFLAGS :=  -mthumb \
    +                        -Os \
    +                        -fomit-frame-pointer \
    +                        -fstrict-aliasing
    +TARGET_TOOLS_PREFIX=/home/fattire/Development/linaro/android-toolchain-eabi-4.7/bin/arm-linux-androideabi-
     TARGET_BOOTLOADER_BOARD_NAME := encore
     TARGET_PROVIDES_INIT_TARGET_RC := true
     TARGET_USERIMAGES_USE_EXT4 := true
    +CROSS_COMPILE=~/Development/arm-2010q1/bin/arm-none-linux-gnueabi-

    Looks like the kernel modules didn't load for some reason, so no wifi so I can't test quadrant or anything. Just wanted to update in case anyone was following along.