[PROJECT] Kernel 3.4.x For Galaxy 3

Search This thread

tom3q

Senior Member
May 31, 2011
358
1,611
Warsaw
github.com
I'd still say that s5p6442 should be almost identical to other SoCs from s5p64x0 family, but I'll try to look into it today, by comparing sources of s5pcxxx and s5p64x0 from mainline and s5p6442 from G3 kernel.

OK, I checked the sources. It looks like all the chips from S5P series are very similar, but indeed S5P64x0 is closest to S5P6442, so the work should be pointed into adding support of S5P6442 under S5P64x0 tree.

There are some subtle differences in memory map between S5P6442 and S5P6440, but same goes for S5P6450, which is also supported by the same code, so it just has to be extended to account for those differences.

Moreover, documentation for s5pc100, s5pc110 and s5pv210 is available (with little googling), so putting it together with original sources of G3, we can consider the S5P6442 chip as almost fully documented.
 
Last edited:

tom3q

Senior Member
May 31, 2011
358
1,611
Warsaw
github.com
Forgot to post one thing.

Talked about it with hillbeast yesterday, and then i deleted the kernel repo and repushed it

Now there's no linux-samsung, we'll be using android-3.0.

android-3.0 tracks upstream to android common kernel
apollo-3.0 is what we'ld be working on ;)

IMHO we should rather fork android-3.4. Support of S5P SoCs is evolving continuously and there is a lot of good stuff added between 3.0 and 3.4. Not even saying that I had to backport the whole V4L2 subsystem from Linux 3.3 to my spica-3.0 tree to be able to port s5p-fimc and s5p-jpeg drivers for s3c6410.
 
  • Like
Reactions: raja4sure

hillbeast

Inactive Recognized Developer
Feb 9, 2011
2,719
6,790
Dunedin
IMHO we should rather fork android-3.4. Support of S5P SoCs is evolving continuously and there is a lot of good stuff added between 3.0 and 3.4. Not even saying that I had to backport the whole V4L2 subsystem from Linux 3.3 to my spica-3.0 tree to be able to port s5p-fimc and s5p-jpeg drivers for s3c6410.

Agreed. It's always best to work with the newest code, and it's not like s5p6442 support is going anywhere seeing they removed that a long time ago.
 

tom3q

Senior Member
May 31, 2011
358
1,611
Warsaw
github.com
it's not like s5p6442 support is going anywhere seeing they removed that a long time ago.

Well, it is, not exactly as support for s5p6442, but as support for S5P/Exynos series. They removed only the low level SoC support, but support for all the IPs/peripherals (which are mostly common over the series) is being continuously developed.
 

hillbeast

Inactive Recognized Developer
Feb 9, 2011
2,719
6,790
Dunedin
Well, it is, not exactly as support for s5p6442, but as support for S5P/Exynos series. They removed only the low level SoC support, but support for all the IPs/peripherals (which are mostly common over the series) is being continuously developed.

Oh no I mean they can't exactly remove it more than they already have. The basic support for s5p is there yes, but not the exact mach code for s5p6442. Should have worded that better, and yes s5p is constantly being developed as Samsung have stuck to the same design for their SoC for a while now and people want to develop on it.

Also for everyone else, I should mention I updated one of the posts on the first page to give people some information they should know about kernel 3.x

http://xdaforums.com/showpost.php?p=25865886&postcount=4
 

tom3q

Senior Member
May 31, 2011
358
1,611
Warsaw
github.com
Oh no I mean they can't exactly remove it more than they already have. The basic support for s5p is there yes, but not the exact mach code for s5p6442. Should have worded that better, and yes s5p is constantly being developed as Samsung have stuck to the same design for their SoC for a while now and people want to develop on it.

Also for everyone else, I should mention I updated one of the posts on the first page to give people some information they should know about kernel 3.x

http://xdaforums.com/showpost.php?p=25865886&postcount=4

OK, fine.

By the way, I'm going to look into G3 kernel as soon as I finish implementing that freaking libcamera for Spica (and G3 after we get this kernel running with s5p-fimc and s5p-jpeg drivers). The whole low level camera API of Android is really bad, making it pretty hard to design libcamera nicely.

My plan is to compile the original kernel with minimalistic configuration (only things needed to start recovery, see it on the screen and have working adb) and kexec enabled with kexec tools included in initramfs. This will simplify testing kernel builds (and recovering from builds that fail to boot) and debugging them (ram console can be captured from the working kernel after a reboot).
 
  • Like
Reactions: z3c0 and austin266

hillbeast

Inactive Recognized Developer
Feb 9, 2011
2,719
6,790
Dunedin
OK, fine.

By the way, I'm going to look into G3 kernel as soon as I finish implementing that freaking libcamera for Spica (and G3 after we get this kernel running with s5p-fimc and s5p-jpeg drivers). The whole low level camera API of Android is really bad, making it pretty hard to design libcamera nicely.

My plan is to compile the original kernel with minimalistic configuration (only things needed to start recovery, see it on the screen and have working adb) and kexec enabled with kexec tools included in initramfs. This will simplify testing kernel builds (and recovering from builds that fail to boot) and debugging them (ram console can be captured from the working kernel after a reboot).

Yeah that's where I want to aim it as well. Initially if I can just get it to busybox sh via UART then I would be happy. Once we can get a UART output it will make all the debugging a lot easier as we can just see the UART dump. Just got to find out why in all the previous attempts I've gotten nothing. How do I enable the early init console that you mentioned?
 

tom3q

Senior Member
May 31, 2011
358
1,611
Warsaw
github.com
Yeah that's where I want to aim it as well. Initially if I can just get it to busybox sh via UART then I would be happy. Once we can get a UART output it will make all the debugging a lot easier as we can just see the UART dump. Just got to find out why in all the previous attempts I've gotten nothing. How do I enable the early init console that you mentioned?

As far as I remember, there should be an option in "Kernel hacking" called "Kernel low-level debugging functions" to enable early serial output and "S3C UART to use for low-level debug" to select to which port should it go. Also for even earlier output (in kernel decompressor) there is an option in "System type" called "S3C UART to use for low-level messages", which also selects the port.
 

hillbeast

Inactive Recognized Developer
Feb 9, 2011
2,719
6,790
Dunedin
As far as I remember, there should be an option in "Kernel hacking" called "Kernel low-level debugging functions" to enable early serial output and "S3C UART to use for low-level debug" to select to which port should it go. Also for even earlier output (in kernel decompressor) there is an option in "System type" called "S3C UART to use for low-level messages", which also selects the port.

Okay. Looking at the current option it says 0. Now do you know if it counts from 0 being the first UART, or does it count from 1 and 0 means 'none'?
 
  • Like
Reactions: propsia

stubborn_d0nkey

Senior Member
Dec 12, 2010
720
111
Mostar
Our community is awesome!
Newer version of the kernel that will be completely built from scratch. tom3q did this on the Spica and it worked wonders, now it's time to do it to our phone.



I don't like kernel.org. They're hopeless, shown by their hacking last year and their slow recovery time, and then made worse for the fact that Linus Torvalds himself switched to Github.

AFAIK he only hosts on github, he doesn't use for management/commits/whatever the exact lingo is (I have never used got(hub))
 

andreapier

Senior Member
Feb 7, 2011
419
162
Did you mage to get uart initialized? Or this project has stopped for some reason?
Please, i would really see our phone without any samsung software to understand its full capabilities.
 

CroNk3r

Senior Member
Oct 22, 2011
95
11
Varazdin
Did you mage to get uart initialized? Or this project has stopped for some reason?
Please, i would really see our phone without any samsung software to understand its full capabilities.

Just be patient, They will do it as fast as they can..
You can't expect from developers to work on this project 0/24 becouse they have no profit from this (except donations) and they must do something for living and they must take a rest like other ppls...
Think in this way- if you are developer would you do few hours a day for free, don't think so...
You should be thankfull for their work...
 

andreapier

Senior Member
Feb 7, 2011
419
162
Just be patient, They will do it as fast as they can..
You can't expect from developers to work on this project 0/24 becouse they have no profit from this (except donations) and they must do something for living and they must take a rest like other ppls...
Think in this way- if you are developer would you do few hours a day for free, don't think so...
You should be thankfull for their work...

... I will not start a fight for respect to devs but still I'm gonna tell you that it is not your duty to answer questions made to devs.
I didn't ask for eta, nor bugged anyone. I just expressed my will for this project and asked if something is stopping progresses.
Do not answer taking this personally, I just asked a question to dev. They can answer "we need time" by themselves if they want.
However I think it is important to dev to know that there are some people interested in non "hot" topics (like ics).

Sent from my GT-I5800 using XDA
 

Top Liked Posts

  • There are no posts matching your filters.
  • 94
    This thread to collaborate all efforts towards porting kernel 3.4.x on to the Galaxy 3. If any developers wish to help then please let me know and I will add you to the SG3 group on Github (provided you have proven yourself capable of helping by forking the repository and submitting a pull request of changes you have made - I won't just add people if they are 'learning how to develop for Linux').

    Changelog
    https://github.com/sg3/android_kernel_samsung_s5p6442/commits/s5p6442-3.4
    I chose the Github commit system to be the changelog as there are so many things going on at once it would be impossible to keep up with, and I cannot be assed explaining it. If you don't understand then ask, but please don't ask EVERYTHING. Most of the answers will be 'It just does'.

    I am trying to follow the standard process for committing to GIT by doing 's5p6442: change' or 'apollo: change' so it is easier to see what is being fixed and why we are changing it so people reviewing code have an easier job. I expect other developers to follow this as well. Pull requests made that do not follow this naming convention will be rejected.

    Source Code
    Source: https://github.com/sg3/android_kernel_samsung_s5p6442

    Members
    The following members already have full read/write access to the repository:
    • cdesai
    • hillbeast <- has UART
    • marcellusbe <- has UART
    • moikop <- has UART
    • tom3q <- has UART

    As you can see I also listed who has UART (that I currently know of). If you also have UART then let me know and I shall add it to the list. Having UART will be a huge help as it means we can see what is going on.

    Why Do We Need Kernel 3.
    • Easier updating the kernel to add security and performance boosts from mainline Linux kernels
    • More support for new versions of Android
    • Android 4.0 was built upon Linux Kernel 3.0.x and therefore expects kernel 3.0s APIs
    • Faster, more secure system
    • NO SAMSUNG MORONIC CODE
    • Because it's just better

    Please let me know if you are interested (able to) in helping this cause. Please don't put your hand up if you can't dedicate your phone to this. This will result in your phone being out of action quite a lot while we are testing, and if you need your phone 24/7 then you're going to need to keep flashing back. You will also NEED ODIN. Flashing from CWM is not an option.
    54
    Just a little update

    I've started working HARD (you can't imagine HOW HARD!) on this project on Monday, and I'm finally getting some results! :good:

    Until a few hours ago, all we knew was that the kernel was being decompressed, and then it crashed for some wicked reason. Now, thanks to me with some help from Hillbeast, we know exactly where the kernel is crashing, and now we can continue to work on it. This doesn't mean that it's working. However, I see this as a very good progress (from knowing almost nothing, to being able to point where the kernel crashes in the code).

    We are working to get this thing working, and I just wanted to give you guys a little update. But that doesn't give you the right to ask for etas ;)
    46
    Status

    What is working
    • Basic mach-code for s5p6442
    • Serial/UART
    • CPU clock and most clock sources
    • Most mach addresses/IRQs/GPIOs
    • Kernel init
    • initramfs init
    • MTD/OneNAND
    • GPIO
    • Screen/Framebuffer
    • Keypad/buttons
    • Reboot
    • Real time clock
    • I2C over GPIO
    • HSMMC

    What needs to be done
    • Samsung S3C I2C
    • Reboot modes
    • I2S
    • SDIO
    • Device Drivers (WiFi, Audio, sensors, etc)

    UART Dump
    Code:
    Starting kernel at 0x22000000...
    
    Uncompressing Linux... done, booting the kernel.
    [    0.000000] Booting Linux on physical CPU 0
    [    0.000000] Initializing cgroup subsys cpuset
    [    0.000000] Initializing cgroup subsys cpu
    [    0.000000] Linux version 3.4.27+ (hillbeast@carbuncle) (gcc version 4.6.2 20120613 (release) [ARM/embedded-4_6-branch revision 188521] (GNU Tools for ARM Embedded Processors) ) #Test Sun Jan 13 20:44:01 NZDT 2013
    [    0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv6TEJ), cr=00c5387d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
    [    0.000000] Machine: APOLLO
    [    0.000000] Memory policy: ECC disabled, Data cache writeback
    [    0.000000] CPU S5P6442 (id 0x36442000)
    [    0.000000] S3C24XX Clocks, Copyright 2004 Simtec Electronics
    [    0.000000] s5p6442_setup_clocks: clkdiv0 = 10100000
    [    0.000000] S5P6442: PLL settings, A=667000000, M=166000000, E=48000000
    [    0.000000] mout_apll: source is fout_apll (1), rate is 667000000
    [    0.000000] mout_mpll: source is fout_mpll (1), rate is 166000000
    [    0.000000] mout_epll: source is fout_epll (1), rate is 48000000
    [    0.000000] mout_arm: source is mout_apll (1), rate is 667000000
    [    0.000000] mout_d0: source is mout_mpll (1), rate is 166000000
    [    0.000000] mout_d0sync: source is mout_d0 (1), rate is 166000000
    [    0.000000] mout_d1: source is mout_mpll (1), rate is 166000000
    [    0.000000] mout_d1sync: source is mout_d1 (1), rate is 166000000
    [    0.000000] sclk_mfc: source is mout_mpll (0), rate is 166000000
    [    0.000000] sclk_mmc: source is mout_mpll (6), rate is 83000000
    [    0.000000] sclk_mmc: source is mout_mpll (6), rate is 83000000
    [    0.000000] sclk_mmc: source is mout_mpll (6), rate is 83000000
    [    0.000000] dout_a2m: source is fout_apll (1), rate is 667000000
    [    0.000000] dout_apll: source is mout_apll (1), rate is 667000000
    [    0.000000] hclkd1: source is mout_d1 (1), rate is 166000000
    [    0.000000] hclkd0: source is mout_d0 (1), rate is 166000000
    [    0.000000] pclkd0: source is mout_d0 (1), rate is 83000000
    [    0.000000] pclkd1: source is mout_d1 (1), rate is 83000000
    [    0.000000] S5P6442: HCLKD0=166000000, HCLKD1=166000000, PCLKD0=83000000, PCLKD1=83000000
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 84832
    [    0.000000] Kernel command line: console=ttySAC1,115200 version=Sbl(1.0.0) 2010-10-27 17:10:33
    [    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] allocated 1212416 bytes of page_cgroup
    [    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
    [    0.000000] Memory: 256MB 80MB = 336MB total
    [    0.000000] Memory: 324804k/324804k available, 19260k reserved, 0K highmem
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    [    0.000000]     vmalloc : 0xe5800000 - 0xff000000   ( 408 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xe5000000   ( 592 MB)
    [    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc0995db4   (9784 kB)
    [    0.000000]       .init : 0xc0996000 - 0xc0c29000   (2636 kB)
    [    0.000000]       .data : 0xc0c2a000 - 0xc0cae688   ( 530 kB)
    [    0.000000]        .bss : 0xc0cae6ac - 0xc0e8bc38   (1910 kB)
    [    0.000000] SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] NR_IRQS:208
    [    0.000000] VIC @f6000000: id 0x00041192, vendor 0x41
    [    0.000000] VIC @f6010000: id 0x00041192, vendor 0x41
    [    0.000000] VIC @f6020000: id 0x00041192, vendor 0x41
    [    0.000000] vic_register: too few VICs, increase CONFIG_ARM_VIC_NR
    [    0.000000] sched_clock: 32 bits at 41MHz, resolution 24ns, wraps every 103493ms
    [    0.000000] Console: colour dummy device 80x30
    [    0.000363] Calibrating delay loop... 663.55 BogoMIPS (lpj=1658880)
    [    0.060015] pid_max: default: 32768 minimum: 301
    [    0.060273] Security Framework initialized
    [    0.060345] AppArmor: AppArmor initialized
    [    0.060775] Mount-cache hash table entries: 512
    [    0.061926] Initializing cgroup subsys cpuacct
    [    0.061959] Initializing cgroup subsys memory
    [    0.062041] Initializing cgroup subsys devices
    [    0.062064] Initializing cgroup subsys freezer
    [    0.062082] Initializing cgroup subsys blkio
    [    0.062124] Initializing cgroup subsys perf_event
    [    0.062325] CPU: Testing write buffer coherency: ok
    [    0.062417] ftrace: allocating 24113 entries in 71 pages
    [    0.256329] hw perfevents: enabled with v6 PMU driver, 3 counters available
    [    0.256470] Setting up static identity map for 0x20652280 - 0x206522dc
    [    0.259465] devtmpfs: initialized
    [    0.261208] EVM: security.selinux
    [    0.261230] EVM: security.SMACK64
    [    0.261243] EVM: security.capability
    [    0.262295] gpiochip_add: registered GPIOs 0 to 7 on device: GPA0
    [    0.262327] gpiochip_add: registered GPIOs 9 to 10 on device: GPA1
    [    0.262348] gpiochip_add: registered GPIOs 12 to 15 on device: GPB
    [    0.262366] gpiochip_add: registered GPIOs 17 to 21 on device: GPC0
    [    0.262384] gpiochip_add: registered GPIOs 23 to 27 on device: GPC1
    [    0.262402] gpiochip_add: registered GPIOs 29 to 30 on device: GPD0
    [    0.262420] gpiochip_add: registered GPIOs 32 to 37 on device: GPD1
    [    0.262438] gpiochip_add: registered GPIOs 39 to 46 on device: GPE0
    [    0.262457] gpiochip_add: registered GPIOs 48 to 52 on device: GPE1
    [    0.262475] gpiochip_add: registered GPIOs 54 to 61 on device: GPF0
    [    0.262494] gpiochip_add: registered GPIOs 63 to 70 on device: GPF1
    [    0.262512] gpiochip_add: registered GPIOs 72 to 79 on device: GPF2
    [    0.262531] gpiochip_add: registered GPIOs 81 to 86 on device: GPF3
    [    0.262549] gpiochip_add: registered GPIOs 88 to 94 on device: GPG0
    [    0.262568] gpiochip_add: registered GPIOs 96 to 102 on device: GPG1
    [    0.262587] gpiochip_add: registered GPIOs 104 to 110 on device: GPG2
    [    0.262606] gpiochip_add: registered GPIOs 148 to 155 on device: GPJ0
    [    0.262624] gpiochip_add: registered GPIOs 157 to 162 on device: GPJ1
    [    0.262644] gpiochip_add: registered GPIOs 164 to 171 on device: GPJ2
    [    0.262664] gpiochip_add: registered GPIOs 173 to 180 on device: GPJ3
    [    0.262683] gpiochip_add: registered GPIOs 182 to 186 on device: GPJ4
    [    0.262702] gpiochip_add: registered GPIOs 188 to 195 on device: MP01
    [    0.262721] gpiochip_add: registered GPIOs 197 to 200 on device: MP02
    [    0.262739] gpiochip_add: registered GPIOs 202 to 206 on device: MP03
    [    0.262758] gpiochip_add: registered GPIOs 208 to 215 on device: MP04
    [    0.262777] gpiochip_add: registered GPIOs 217 to 224 on device: MP05
    [    0.262796] gpiochip_add: registered GPIOs 226 to 233 on device: MP06
    [    0.262815] gpiochip_add: registered GPIOs 235 to 242 on device: MP07
    [    0.262834] gpiochip_add: registered GPIOs 244 to 251 on device: MP10
    [    0.262853] gpiochip_add: registered GPIOs 112 to 119 on device: GPH0
    [    0.262872] gpiochip_add: registered GPIOs 121 to 128 on device: GPH1
    [    0.262891] gpiochip_add: registered GPIOs 130 to 137 on device: GPH2
    [    0.262910] gpiochip_add: registered GPIOs 139 to 146 on device: GPH3
    [    0.263470] dummy:
    [    0.264100] NET: Registered protocol family 16
    [    0.275100] apollo_machine_init : hw_rev_pin=0x0
    [    0.275128] apollo_machine_init : bootmode=0x0
    [    0.275146] apollo_machine_init : lcd_id=1
    [    0.275161] apollo_machine_init : uart_sel=1
    [    0.275216] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
    [    0.275237] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [    0.275523] S5P6442: Initializing architecture
    [    0.291494] bio: create slab <bio-0> at 0
    [    0.293402] SCSI subsystem initialized
    [    0.294000] usbcore: registered new interface driver usbfs
    [    0.294214] usbcore: registered new interface driver hub
    [    0.294630] usbcore: registered new device driver usb
    [    0.295434] i2c i2c-3: Not I2C compliant: can't read SCL
    [    0.295462] i2c i2c-3: Bus may be unreliable
    [    0.295487] i2c-gpio i2c-gpio.3: using pins 220 (SDA) and 219 (SCL, no clock stretching)
    [    0.296287] max8998 4-0066: No interrupt specified, no interrupts
    [    0.300785] VALIVE_1.1V: 1100 mV
    [    0.302519] VUSB+MIPI_1.1V: 1100 mV
    [    0.304283] VDAC_3.3V: 3300 mV
    [    0.306136] VTF_2.8V: 2800 mV
    [    0.307889] VCC_3.3V: 3300 mV
    [    0.310548] VLCD_1.8V: 1800 mV
    [    0.312288] VUSB+VADC_3.3V: 3300 mV
    [    0.314100] VCC+VCAM_2.8V: 2800 mV
    [    0.316692] VPLL_1.1V: 1100 mV
    [    0.318393] CAM_IO_2.8V: 2800 mV
    [    0.320204] CAM_ISP_1.2V: 1200 mV
    [    0.321958] CAM_A_2.8V: 2800 mV
    [    0.323682] CAM_CIF_1.8V: 1800 mV
    [    0.325508] CAM_AF_3.3V: 3300 mV
    [    0.327243] VMIPI_1.8V: 1800 mV
    [    0.329838] VCC_3.0V_LCD: 3000 mV
    [    0.331270] VARM_1.2V: 1200 mV
    [    0.332645] VINT_1.2V: 1200 mV
    [    0.334014] VCC_1.8V: 1800 mV
    [    0.336329] CAM_CORE_1.2V: 1200 mV
    [    0.337442] i2c-gpio i2c-gpio.4: using pins 182 (SDA) and 185 (SCL)
    [    0.337761] i2c-gpio i2c-gpio.7: using pins 153 (SDA) and 152 (SCL)
    [    0.338087] i2c-gpio i2c-gpio.8: using pins 34 (SDA) and 35 (SCL)
    [    0.338390] i2c-gpio i2c-gpio.9: using pins 178 (SDA) and 179 (SCL)
    [    0.338704] s3c-i2c s3c2410-i2c.0: slave address 0x10
    [    0.338750] s3c-i2c s3c2410-i2c.0: bus frequency set to 81 KHz
    [    0.338797] s3c-i2c s3c2410-i2c.0: cannot claim IRQ 78
    [    0.338850] s3c-i2c: probe of s3c2410-i2c.0 failed with error -38
    [    0.339021] s3c-i2c s3c2410-i2c.1: slave address 0x10
    [    0.339066] s3c-i2c s3c2410-i2c.1: bus frequency set to 81 KHz
    [    0.339106] s3c-i2c s3c2410-i2c.1: cannot claim IRQ 109
    [    0.339157] s3c-i2c: probe of s3c2410-i2c.1 failed with error -22
    [    0.339322] s3c-i2c s3c2410-i2c.2: slave address 0x10
    [    0.339364] s3c-i2c s3c2410-i2c.2: bus frequency set to 81 KHz
    [    0.339682] s3c-i2c s3c2410-i2c.2: i2c-2: S3C I2C adapter
    [    0.339810] Linux video capture interface: v2.00
    [    0.340585] Advanced Linux Sound Architecture Driver Version 1.0.25.
    [    0.341666] Bluetooth: Core ver 2.16
    [    0.341800] NET: Registered protocol family 31
    [    0.341822] Bluetooth: HCI device and connection manager initialized
    [    0.341843] Bluetooth: HCI socket layer initialized
    [    0.341860] Bluetooth: L2CAP socket layer initialized
    [    0.341920] Bluetooth: SCO socket layer initialized
    [    0.341941] NetLabel: Initializing
    [    0.341955] NetLabel:  domain hash size = 128
    [    0.341967] NetLabel:  protocols = UNLABELED CIPSOv4
    [    0.342112] NetLabel:  unlabeled traffic allowed by default
    [    0.342849] Switching to clocksource s5p_clocksource_timer
    [    0.379780] AppArmor: AppArmor Filesystem Enabled
    [    0.409043] NET: Registered protocol family 2
    [    0.409412] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.410301] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
    [    0.411581] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
    [    0.412212] TCP: Hash tables configured (established 16384 bind 16384)
    [    0.412232] TCP: reno registered
    [    0.412256] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [    0.412319] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [    0.412878] NET: Registered protocol family 1
    [    0.413878] RPC: Registered named UNIX socket transport module.
    [    0.413908] RPC: Registered udp transport module.
    [    0.413924] RPC: Registered tcp transport module.
    [    0.413940] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    2.313502] audit: initializing netlink socket (disabled)
    [    2.313597] type=2000 audit(2.175:1): initialized
    [    2.518638] VFS: Disk quotas dquot_6.5.2
    [    2.519085] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    [    2.523547] NFS: Registering the id_resolver key type
    [    2.526646] fuse init (API version 7.18)
    [    2.527762] msgmni has been set to 634
    [    2.535433] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
    [    2.535935] io scheduler noop registered
    [    2.535965] io scheduler deadline registered
    [    2.536070] io scheduler cfq registered (default)
    [    2.545209] Console: switching to colour frame buffer device 30x25
    [    2.549050] s3c-fb s3c-fb: window 0: fb
    [    2.549647] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
    [    2.564511] s5pv210-uart.0: ttySAC0 at MMIO 0xec000000 (irq = 74) is a S3C6400/10
    [    2.565120] s5pv210-uart.1: ttySAC1 at MMIO 0xec000400 (irq = 75) is a S3C6400/10
    [    3.688673] console [ttySAC1] enabled
    [    3.692714] s5pv210-uart.2: ttySAC2 at MMIO 0xec000800 (irq = 76) is a S3C6400/10
    [    3.701079] ramoops: platform device not found, using module parameters
    [    3.706799] ramoops: The memory size and the record size must be non-zero
    [    3.713399] ramoops: probe of ramoops failed with error -22
    [    3.735283] brd: module loaded
    [    3.744057] loop: module loaded
    [    3.745830] nbd: registered device at major 43
    [    3.762773] i2c-core: driver [fsa9480] using legacy suspend method
    [    3.763421] i2c-core: driver [fsa9480] using legacy resume method
    [    3.770606] mtdoops: mtd device (mtddev=name/number) must be supplied
    [    3.776125] =================================================================
    [    3.783321] Samsung OneNAND Driver (AUDI).
    [    3.787406] =================================================================
    [    3.794866] OneNAND: Clock gating is enabled.
    [    3.799181] Muxed OneNAND 512MB 1.8V 16-bit (0x50)
    [    3.803964] OneNAND version = 0x013e
    [    3.809584] Scanning device for bad blocks
    [    3.852229] onenand_bbt_wait: ecc error = 0x0001, controller error 0x0400
    [    3.853463] OneNAND eraseblock 320 is an initial bad block
    [    4.077529] OneNAND eraseblock 2047 is an initial bad block
    [    4.079391] Creating 8 MTD partitions on "s5p-onenand":
    [    4.082775] 0x000000a00000-0x000001180000 : "boot"
    [    4.090109] 0x000001180000-0x00000ed80000 : "system"
    [    4.095512] 0x00000ed80000-0x00001b800000 : "userdata"
    [    4.100622] 0x00001b800000-0x00001de00000 : "cache"
    [    4.105243] 0x00001de00000-0x00001f500000 : "efs"
    [    4.110030] 0x00001f500000-0x00001ffc0000 : "reservoir"
    [    4.115311] 0x00001ffc0000-0x000020000000 : "dgs"
    [    4.120079] 0x000000180000-0x000000200000 : "param"
    [    4.129186] Fixed MDIO Bus: probed
    [    4.129479] tun: Universal TUN/TAP device driver, 1.6
    [    4.132039] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
    [    4.138886] PPP generic driver version 2.4.2
    [    4.143197] PPP BSD Compression module registered
    [    4.147386] PPP Deflate Compression module registered
    [    4.155764] PPP MPPE Compression module registered
    [    4.157358] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    [    4.165883] mousedev: PS/2 mouse device common for all mice
    [    4.170690] input: samsung-keypad as /devices/platform/samsung-keypad/input/input0
    [    4.183677] max8998-rtc max8998-rtc: rtc core: registered max8998-rtc as rtc0
    [    4.185222] max8998-rtc max8998-rtc: Failed to request alarm IRQ: 9: -22
    [    4.192094] max8998-rtc max8998-rtc: RTC CHIP NAME: max8998-rtc
    [    4.198341] s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling
    [    4.204232] s3c-rtc s3c64xx-rtc: rtc core: registered s3c as rtc1
    [    4.209837] s3c-rtc s3c64xx-rtc: warning: invalid RTC value so initializing it
    [    4.217293] i2c /dev entries driver
    [    4.223542] lirc_dev: IR Remote Control driver registered, major 252
    [    4.227104] IR NEC protocol handler initialized
    [    4.231789] IR RC5(x) protocol handler initialized
    [    4.236611] IR RC6 protocol handler initialized
    [    4.241188] IR JVC protocol handler initialized
    [    4.245773] IR Sony protocol handler initialized
    [    4.250448] IR RC5 (streamzap) protocol handler initialized
    [    4.256091] IR SANYO protocol handler initialized
    [    4.260894] IR MCE Keyboard/mouse protocol handler initialized
    [    4.266831] IR LIRC bridge handler initialized
    [    4.271884] vivi-000: V4L2 device registered as video0
    [    4.276490] Video Technology Magazine Virtual Video Capture Board ver 0.8.1 successfully loaded.
    [    4.286115] m2m-testdev m2m-testdev.0: mem2mem-testdevDevice registered as /dev/video1
    [    4.293614] S5P JPEG V4L2 Driver, (c) 2011 Samsung Electronics
    [    4.299987] s5p-jpeg s5p-jpeg.0: encoder device registered as /dev/video2
    [    4.306631] s5p-jpeg s5p-jpeg.0: decoder device registered as /dev/video3
    [    4.313092] s5p-jpeg s5p-jpeg.0: Samsung S5P JPEG codec
    [    4.319104] s5p-mfc s5p-mfc: decoder registered as /dev/video4
    [    4.324735] s5p-mfc s5p-mfc: encoder registered as /dev/video5
    [    4.331964] device-mapper: uevent: version 1.0.3
    [    4.335859] device-mapper: ioctl: 4.22.0-ioctl (2011-10-19) initialised: dm-devel@redhat.com
    [    4.344756] device-mapper: multipath: version 1.3.0 loaded
    [    4.349027] device-mapper: multipath round-robin: version 1.0.0 loaded
    [    4.355582] device-mapper: multipath queue-length: version 0.1.0 loaded
    [    4.362272] device-mapper: multipath service-time: version 0.2.0 loaded
    [    4.369166] Bluetooth: HCI UART driver ver 2.2
    [    4.373493] Bluetooth: HCI H4 protocol initialized
    [    4.378328] cpuidle: using governor ladder
    [    4.382413] cpuidle: using governor menu
    [    4.386665] sdhci: Secure Digital Host Controller Interface driver
    [    4.392711] sdhci: Copyright(c) Pierre Ossman
    [    4.397299] s3c-sdhci s3c-sdhci.0: clock source 0: mmc_busclk.0 (166000000 Hz)
    [    4.404494] s3c-sdhci s3c-sdhci.0: clock source 2: mmc_busclk.2 (83000000 Hz)
    [    4.413642] mmc0: SDHCI controller on samsung-hsmmc [s3c-sdhci.0] using ADMA
    [    4.419361] VTF_2.8V: operation not allowed
    [    4.423067] s3c-sdhci s3c-sdhci.0: could not set regulator OCR (-1)
    [    4.429579] s3c-sdhci s3c-sdhci.1: clock source 0: mmc_busclk.0 (166000000 Hz)
    [    4.436774] s3c-sdhci s3c-sdhci.1: clock source 2: mmc_busclk.2 (83000000 Hz)
    [    4.445522] VTF_2.8V: operation not allowed
    [    4.448203] s3c-sdhci s3c-sdhci.0: could not set regulator OCR (-1)
    [    4.454713] mmc1: no vmmc regulator found
    [    4.460242] mmc1: SDHCI controller on samsung-hsmmc [s3c-sdhci.1] using ADMA
    [    4.465940] s3c-sdhci s3c-sdhci.2: clock source 0: mmc_busclk.0 (166000000 Hz)
    [    4.476388] s3c-sdhci s3c-sdhci.2: clock source 2: mmc_busclk.2 (83000000 Hz)
    [    4.482175] VTF_2.8V: operation not allowed
    [    4.484543] s3c-sdhci s3c-sdhci.0: could not set regulator OCR (-1)
    [    4.491054] mmc2: no vmmc regulator found
    [    4.496685] mmc2: SDHCI controller on samsung-hsmmc [s3c-sdhci.2] using ADMA
    [    4.502247] sdhci-pltfm: SDHCI platform and OF driver helper
    [    4.509478] usbcore: registered new interface driver usbhid
    [    4.513457] usbhid: USB HID core driver
    [    4.518528] ashmem: initialized
    [    4.520813] logger: created 256K log 'log_main'
    [    4.528884] logger: created 256K log 'log_events'
    [    4.531558] logger: created 256K log 'log_radio'
    [    4.534910] logger: created 256K log 'log_system'
    [    4.552135] IPv4 over IPv4 tunneling driver
    [    4.553324] Initializing XFRM netlink socket
    [    4.555039] NET: Registered protocol family 17
    [    4.562972] NET: Registered protocol family 15
    [    4.565666] Bluetooth: RFCOMM TTY layer initialized
    [    4.569203] Bluetooth: RFCOMM socket layer initialized
    [    4.574203] Bluetooth: RFCOMM ver 1.11
    [    4.579328] NET: Registered protocol family 33
    [    4.584577] sctp: Hash tables configured (established 16384 bind 32768)
    [    4.589796] Registering the dns_resolver key type
    [    4.597496] VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
    [    4.604614] registered taskstats version 1
    [    4.614795] VCC_1.8V: incomplete constraints, leaving on
    [    4.615346] VINT_1.2V: incomplete constraints, leaving on
    [    4.621985] VARM_1.2V: incomplete constraints, leaving on
    [    4.626472] CAM_AF_3.3V: incomplete constraints, leaving on
    [    4.632575] CAM_ISP_1.2V: incomplete constraints, leaving on
    [    4.637494] CAM_IO_2.8V: incomplete constraints, leaving on
    [    4.643182] VPLL_1.1V: incomplete constraints, leaving on
    [    4.649650] VCC+VCAM_2.8V: incomplete constraints, leaving on
    [    4.656416] VUSB+VADC_3.3V: incomplete constraints, leaving on
    [    4.660221] VCC_3.3V: incomplete constraints, leaving on
    [    4.665695] VTF_2.8V: incomplete constraints, leaving on
    [    4.671548] VUSB+MIPI_1.1V: incomplete constraints, leaving on
    [    4.679449] input: gpio-keys as /devices/platform/gpio-keys.0/input/input1
    [    4.687987] max8998-rtc max8998-rtc: setting system clock to 2013-02-23 08:21:42 UTC (1361607702)
    [    4.692653] ALSA device list:
    [    4.695373]   No soundcards found.
    [    4.699028] Warning: unable to open an initial console.
    [    4.730337] Freeing init memory: 2636K
    [    4.730385] Write protecting the kernel text section c0008000 - c090d000
    [    4.925033] mmc2: new SD card at address aaaa
    [    4.933164] mmcblk0: mmc2:aaaa SU01G 942 MiB
    [    4.936670]  mmcblk0: p1
    [    5.113958] init: cannot open '/initlogo.rle'
    [    5.348302] EXT4-fs (mtdblock1): warning: maximal mount count reached, running e2fsck is recommended
    [    5.352863] EXT4-fs (mtdblock1): recovery complete
    [    5.357121] EXT4-fs (mtdblock1): mounted filesystem with ordered data mode. Opts: (null)
    [    5.366051] EXT4-fs (mtdblock1): re-mounted. Opts: (null)
    [    5.563526] EXT4-fs (mtdblock2): warning: maximal mount count reached, running e2fsck is recommended
    [    5.567565] EXT4-fs (mtdblock2): recovery complete
    [    5.572336] EXT4-fs (mtdblock2): mounted filesystem with ordered data mode. Opts: (null)
    [    5.638145] EXT4-fs (mtdblock3): warning: maximal mount count reached, running e2fsck is recommended
    [    5.642200] EXT4-fs (mtdblock3): recovery complete
    [    5.646958] EXT4-fs (mtdblock3): mounted filesystem with ordered data mode. Opts: (null)
    [    5.659542] EXT4-fs (mtdblock4): Unrecognized mount option "check=no" or missing value
    [    5.726831] lowmem_shrink: convert oom_adj to oom_score_adj:
    [    5.726892] oom_adj 0 => oom_score_adj 0
    [    5.730922] oom_adj 1 => oom_score_adj 58
    [    5.734942] oom_adj 2 => oom_score_adj 117
    [    5.739090] oom_adj 4 => oom_score_adj 235
    [    5.743230] oom_adj 7 => oom_score_adj 411
    [    5.747323] oom_adj 15 => oom_score_adj 1000
    [    5.752406] init (1): /proc/1/oom_adj is deprecated, please use /proc/1/oom_score_adj instead.
    sh: can't access tty; job control turned off
    # [    6.736529] init: untracked pid 139 exited
    [    7.097207] warning: `rild' uses 32-bit capabilities (legacy support in use)
    46
    And just for fun:

    1zwg50o.jpg


    Now I need to get those buttons to work. Also I noticed /dev/random is bugged. It just stops while generating random numbers or something. The device is still alive because the cursor is still flashing on fbcon and such, so I dunno what's wrong with it, but having a screen is great progress, and it means people without UART can now do development.
    44
    After poking around for ages, and even pulling out Microsoft Excel, and several cans of energy drink, many late nights, and much hair lost: buttons are working. About damned time.