[PROJECT] Kernel 3.4.x For Galaxy 3

Search This thread

hillbeast

Inactive Recognized Developer
Feb 9, 2011
2,719
6,790
Dunedin
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.
 
Last edited:

hillbeast

Inactive Recognized Developer
Feb 9, 2011
2,719
6,790
Dunedin
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)
 
Last edited:

hillbeast

Inactive Recognized Developer
Feb 9, 2011
2,719
6,790
Dunedin
Things to be aware of
I feel these things should be mentioned as they are important changes that may disrupt peoples user experience on the phone.

  • Odin will not work anymore for flashing ROMs. It's as simple as that. We will no longer be using STL/BML/TFSR for interfacing with the NAND, and that is what ODIN expects to be working with: partitions in STL format. We simply will not support STL when this kernel is complete as it is closed source and will not function on kernel 3.x. We will be moving over to MTD which is mainline, and regularly gets updates to improve performance, reliability and in general to make it better.

    Kernels will however be flashable from ODIN. This WILL NOT change. Kernels, modem.bin, Sbl and boot.bin will all still work from Odin. Data, system and cache will not.

    I know this will annoy a few people, as it will disrupt me too as a developer and a Windows user, it's nice to be able to flash a ROM this way, but we're going to have to move towards distributing ROMs in system.imgs, or more preferably in update.zips.
  • There will be no support for Samsung Froyo/Eclair ROMs in kernel 3.x. The reasoning behind this is because Samsung ROMs want Samsung drivers and we won't be using any of them. We will be aiming to support CM7 and CM9, or generally any AOSP ROM, but not Samsungs proprietary ROM. You may think 'well why not make the drivers work for both', but the problem is not with making the drivers work, the problem is with the fact that a lot of these drivers were written for a kernel over 10 major versions out of date by now, and will not function on the new kernels APIs. If we try to make them work, it will make the kernel unstable and it's going to degrade the experience for the end user. As well as that, we don't know how half these drivers actually work because they are either coded so badly it's impossible to make heads or tails of it, or it's closed source and we can't find sources for it.

    There are plenty of good custom kernels for Froyo, and I have heard word in the grapevine a few people want to make a custom Eclair kernel (not confirmed, and that is just rumours), but I will not be adding support for Froyo to kernel 3.x
  • Kernel 3.x will not allow us to work magic with the phone. Having a newer kernel won't allow us to make the CPU itself faster, we can't give it more RAM (or find more RAM in there). We won't be able to unlock more performance from x part. This is not a magical rebirth of the phone, this is just a major fix up of all the current issues we face with AOSP based ROMs on the phone. It will most likely make the phone faster, but we can't magically make it into a dual core or something like that. It just isn't possible.
 
Last edited:

pkatsaras

Senior Member
Feb 28, 2011
891
589
Piraeus
+1! Yeah guys well done! Finally! Is it only me that I think that may we have a beta or final version of Gingerbread or (cross fingers) ICS if you guys port the 3.0 kernel for our phone?
 

raja4sure

Senior Member
Jul 10, 2011
486
712
Good to have a new thread now.....

All the best Mark & all the Devs in this project..
 

hillbeast

Inactive Recognized Developer
Feb 9, 2011
2,719
6,790
Dunedin
I may sound like an ultra-noob here : But what is Kernel 3.0 ?
Google isn't help here

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.

You could add this to the first post but only computer programmers will understand it, unlike me :p

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.
 

andreapier

Senior Member
Feb 7, 2011
419
162
This is what i wanted to see since long times now. I just wanto say thank you to all the devs for just trying
 

hillbeast

Inactive Recognized Developer
Feb 9, 2011
2,719
6,790
Dunedin
Frig. I was doing so well and then I hit a brick wall with bloody assembler...

Code:
hillbeast@powermacg5:~/devel/galaxy3/kernel-3.0$ ./build.sh Test
Setting kernel name to (Test)
Compiling the kernel
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
  UPD     include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  CC      init/version.o
  AS      arch/arm/kernel/debug.o
arch/arm/kernel/debug.S: Assembler messages:
arch/arm/kernel/debug.S:157: Error: too many positional arguments
arch/arm/kernel/debug.S:173: Error: too many positional arguments
make[1]: *** [arch/arm/kernel/debug.o] Error 1
make: *** [arch/arm/kernel] Error 2
make: *** Waiting for unfinished jobs....

Anyone smarter than me with assember know what that means?

EDIT: It's to do with ASCII and UART o_O

Line 156-170 debug.S
Code:
ENTRY(printascii)
		addruart_current r3, r1, r2
		b	2f
1:		waituart r2, r3
		senduart r1, r3
		busyuart r2, r3
		teq	r1, #'\n'
		moveq	r1, #'\r'
		beq	1b
2:		teq	r0, #0
		ldrneb	r1, [r0], #1
		teqne	r1, #0
		bne	1b
		mov	pc, lr
ENDPROC(printascii)
 
Last edited:

moikop

Inactive Recognized Developer
Dec 5, 2010
544
690
Buenos Aires
Frig. I was doing so well and then I hit a brick wall with bloody assembler...

Code:
hillbeast@powermacg5:~/devel/galaxy3/kernel-3.0$ ./build.sh Test
Setting kernel name to (Test)
Compiling the kernel
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
  UPD     include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  CC      init/version.o
  AS      arch/arm/kernel/debug.o
arch/arm/kernel/debug.S: Assembler messages:
arch/arm/kernel/debug.S:157: Error: too many positional arguments
arch/arm/kernel/debug.S:173: Error: too many positional arguments
make[1]: *** [arch/arm/kernel/debug.o] Error 1
make: *** [arch/arm/kernel] Error 2
make: *** Waiting for unfinished jobs....

Anyone smarter than me with assember know what that means?

EDIT: It's to do with ASCII and UART o_O

Line 156-170 debug.S
Code:
ENTRY(printascii)
		addruart_current r3, r1, r2
		b	2f
1:		waituart r2, r3
		senduart r1, r3
		busyuart r2, r3
		teq	r1, #'\n'
		moveq	r1, #'\r'
		beq	1b
2:		teq	r0, #0
		ldrneb	r1, [r0], #1
		teqne	r1, #0
		bne	1b
		mov	pc, lr
ENDPROC(printascii)

The error is not on /arch/arm/kernel/debug.S, it's on /arch/arm/mach-s5p6442/include/mach/debug-macro.S (Error caused by just putting Samsung's .32 code into 3.x I guess...).

Check out that addruart_current is defined a few lines before, and it refers to "adduart" which is defined at debug-macro.S (that's why before defining addruart_current, debug-macro.S is included).
And if you check debug-macro.S, you'll see that adduart is defined only with one parameter, when in debug.S it's used with two parameters. That's where the error comes from.

In order to fix this, you'll have to redo the debug-macro.S file so that adduart takes two parameters (IMO should be based in S5PC110 or Spica's (or maybe s5p64x0?) debug-macro.S).
 
Last edited:

hillbeast

Inactive Recognized Developer
Feb 9, 2011
2,719
6,790
Dunedin
The error is not on /arch/arm/kernel/debug.S, it's on /arch/arm/mach-s5p6442/include/mach/debug-macro.S (Error caused by just putting Samsung's .32 code into 3.x I guess...).

Check out that addruart_current is defined a few lines before, and it refers to "adduart" which is defined at debug-macro.S (that's why before defining addruart_current, debug-macro.S is included).
And if you check debug-macro.S, you'll see that adduart is defined only with one parameter, when in debug.S it's used with two parameters. That's where the error comes from.

In order to fix this, you'll have to redo the debug-macro.S file so that adduart takes two parameters (IMO should be based in S5PC110 or Spica's (or maybe s5p64x0?) debug-macro.S).

Brilliant. Now we're back to good ol' fixing up references.
 

ajay.d96

Senior Member
Sep 22, 2011
411
372
Frig. I was doing so well and then I hit a brick wall with bloody assembler...

Code:
hillbeast@powermacg5:~/devel/galaxy3/kernel-3.0$ ./build.sh Test
Setting kernel name to (Test)
Compiling the kernel
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
  UPD     include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  CC      init/version.o
  AS      arch/arm/kernel/debug.o
arch/arm/kernel/debug.S: Assembler messages:
arch/arm/kernel/debug.S:157: Error: too many positional arguments
arch/arm/kernel/debug.S:173: Error: too many positional arguments
make[1]: *** [arch/arm/kernel/debug.o] Error 1
make: *** [arch/arm/kernel] Error 2
make: *** Waiting for unfinished jobs....

you're using homebrew right? if yes, does it compile faster? in a word, ill grab my sis macbook pro !

BTW, which baseband are you gonna use for this kernel ?
 
Last edited:

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.