Hi, am I mistaken or has the mini6410 AND the 4.3" / 7" LCD fully included into the 2.6.39 kernel? I just scanned through the sources and it seems like it. Though, I just compiled a vanilla 2.6.39 kernel with an adopted 2.6.36 configuration and the current FriendlyARM toolchain and I get some funky output after decompressing the kernel: Welcome to minicom 2.1 OPTIONS: History Buffer, F-key Macros, Search History Buffer, I18n Compiled on Jul 2 2011, 22:14:05. Press CTRL-A Z for help on special keys ????ID Err Running OS 'LINUX' Loading kernel... Load kernel succeed Start Linux kernel... Uncompressing Linux... done, booting the kernel. ??.???Z????o?..{ƿ?o???j??.????.??..?/?+o.//k???...??..?.?f.???.??c???[. .????z.???{.??}?..???.?.?cg???{???.?.?.????...?.?..???????w?o.?o?????.߿ ;.?..?{??..?????{.???o?.?s?..?ooo???..?.?.?{??.;?? ? I tried gzip and lzma, I think it is a compiler problem... Has anyone else tried porting 2.6.39 already?
Mini6410 in 2.6.39 Kernel
Would you mind uploading it to, for example, http://www.mediafire.com ? I would like to have it, too.
Hi guys, got some news: those funky bull* characters appear only if you boot the kernel from SD - if you flash it to NAND it works (well... it displays proper characters, but those I don't wanna read: kernel BUG at drivers/mtd/nand/nand_base.c:3271! Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = c0004000 [00000000] *pgd=00000000 Internal error: Oops: 805 [#1] PREEMPT last sysfs file: Modules linked in: CPU: 0 Not tainted (2.6.39.3-ptx-2011.07.0deltaT #3) PC is at __bug+0x1c/0x28 LR is at __bug+0x18/0x28 pc : [<c0028764>] lr : [<c0028760>] psr: 60000013 sp : cf825ec8 ip : 00003f00 fp : 00000000 r10: c0306e20 r9 : 00000001 r8 : 00000000 r7 : c0306e28 r6 : cf8675e0 r5 : cf837400 r4 : cf8375a8 r3 : 00000000 r2 : cf825ebc r1 : c02abf21 r0 : 00000037 Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 00c5387d Table: 50004008 DAC: 00000017 Process swapper (pid: 1, stack limit = 0xcf824268) (and some more funky stuff) anyone got news on that?
Sorry, cut too far down: s3c6400-uart.0: ttySAC0 at MMIO 0x7f005000 (irq = 16) is a S3C6400/10 s3c6400-uart.1: ttySAC1 at MMIO 0x7f005400 (irq = 20) is a S3C6400/10 s3c6400-uart.2: ttySAC2 at MMIO 0x7f005800 (irq = 24) is a S3C6400/10 s3c6400-uart.3: ttySAC3 at MMIO 0x7f005c00 (irq = 28) is a S3C6400/10 at24 0-0050: 1024 byte 24c04 EEPROM, writable, 16 bytes/write S3C24XX NAND Driver, (c) 2004 Simtec Electronics s3c24xx-nand s3c6400-nand: Tacls=4, 30ns Twrph0=8 60ns, Twrph1=6 45ns s3c24xx-nand s3c6400-nand: System booted from NAND s3c24xx-nand s3c6400-nand: NAND hardware ECC NAND device: Manufacturer ID: 0xec, Chip ID: 0xd5 (Samsung NAND 2GiB 3,3V 8-bit) No oob scheme defined for oobsize 436 kernel BUG at drivers/mtd/nand/nand_base.c:3271! Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = c0004000 [00000000] *pgd=00000000 Internal error: Oops: 805 [#1] PREEMPT last sysfs file: Modules linked in: CPU: 0 Not tainted (2.6.39.3-ptx-2011.07.0deltaT #3) PC is at __bug+0x1c/0x28 LR is at __bug+0x18/0x28 pc : [<c0028764>] lr : [<c0028760>] psr: 60000013 sp : cf825ec8 ip : 00003f00 fp : 00000000 r10: c0306e20 r9 : 00000001 r8 : 00000000 r7 : c0306e28 r6 : cf8675e0 r5 : cf837400 r4 : cf8375a8 r3 : 00000000 r2 : cf825ebc r1 : c02abf21 r0 : 00000037 Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 00c5387d Table: 50004008 DAC: 00000017 Process swapper (pid: 1, stack limit = 0xcf824268) Stack: (0xcf825ec8 to 0xcf826000)
deltaT, did you see my announcement about the Mini6410 board support package? It contains the kernelconfig and a few patches for 2.6.39.3. (refer http://www.friendlyarm.net/forum/topic/3015). You can grab the required components from my GIT repo, or if you still interested, I can send you the required parts.
Ups, I should read fist and then answer. You are already using my kernel. It seems you are using a very huge MLC NAND with an OOB size the current NAND framework do not support. I will have a look into it, maybe there is a solution.
deltaT, yes, your NAND device is currently not supported. Here the routine that gives you the error message. if (!chip->ecc.layout && (chip->ecc.mode != NAND_ECC_SOFT_BCH)) { switch (mtd->oobsize) { case 8: chip->ecc.layout = &nand_oob_8; break; case 16: chip->ecc.layout = &nand_oob_16; break; case 64: chip->ecc.layout = &nand_oob_64; break; case 128: chip->ecc.layout = &nand_oob_128; break; default: printk(KERN_WARNING "No oob scheme defined for " "oobsize %d\n", mtd->oobsize); BUG(); } } Until it is supported you could disable NAND support in your kernel config and use the SD card for the a root filesystem instead.
Juergen: first and foremost: great job on the toolchain, I really love it! I am using the tiny6410 which comes with up to 2GB MLC2 NAND. I looked into the file in question and tried to port files from 2.6.38, but... let's just say it was messy. Also, you might want to look into the nand-partitioning at arch/arm/mach-s3c64xx/mach-mini610.c, I had to change the partition table to the one u-boot populates the flash - I can send you my version if you're interested. I am not quite sure how it is with the touchscreen, I am in the process of patching tslib, will submit a patch once it's confirmed working. As for the rootfs: until I have everything stable, I will work from nfs anyways, so no harm done.
detaT, I tried to get the data sheet of this NAND. But you can get it only with an NDA :-( It seems to be a NAND with 8 or 16 kiB page size (guessed) and 436 bytes OOB. Without a datasheet there is no chance to adapt it. The touchscreen is working here. What issues do you see with it, to change the code of tslib?
Juergen, according to arm9.net it's 8kiB page-size What information do you need exactly? maybe I can find it somewhere. RE touchscreen: apparently, there were some changes to the hardware as well, it seems the board is delivered with the TouchCom adapter (or something else...) it shows up as /dev/touchscreen-1wire and requires a specific tslib-plugin. Some brave hacker got published a modified tslib/plugins/input-raw.c (it's not pretty, but gets the job done) since evtouch is not working AT ALL (not even the images supplied by friendlyarm) With the modifications, I got the Xserver to stop bitching, but it still needs some fine-tuning
I need the NAND's datasheet ;-) Its hard to know what information I really need at this point of time. Page size, OOB size and erase block size are the most important ones. And then the info for address cycle count and commands are of interest. This is not only important for the kernel, also the bootloader must know it. Touchscreen: Do they change from a passive touchscreen (using the processor's internal ADC) to an external active touchscreen with its own controller??
Mhkay... so there's no way to pull the information from the patched kernels FriendlyARM released? (The latest I have is 2.6.38) For the bootloader, have you looked into the opencsbc project? As far as I remember, they have a mini6410-tree in their uboot port, and one of their developers tried to submit the patch to the official uboot git, but it got rejected rather rudely because the code wasn't pretty enough. This touchscreen issue is really giving me grey hair - I spent the entire day trying to get it working... I haven't disected the LCD-Panel yet, so I can't tell you for certain which controller they are using, but it seems it's similar to the Touchcom controller that's shipped with the 7" LCD. (BTW: I'm using a tiny6410 with 4.3") The tslib-tools with the raped input-raw work now (ts_calibrate with TSLIB_TSDEVICE=/dev/touchscreen-1wire), but I can't get it up and running on X
BTW: This is the datasheet for the MLC chips http://www.arm9.net/datasheet/K9GAG08U0E.pdf
deltaT, do they not provide patch stacks? Only the changed source tree? Do you kno where I can get their source code? BTW: It seems the ECC sum the 6410 can generate are very weak to protect this kind of NAND memory. For the 8 kiB page the 6410 can generate only 204 bytes of ECC information. But the NAND provides 436 bytes for the checksums...
oi, nope - no patches, nothing. You can download the 2.6.38 sources (from god knows where...) and that's it. I got an E-Mail today, saying that the Mini and Tiny6410 are built using the same components - but that contradicts the touchscreen-issue, because for you it works apparently...
I searched their website for any kind of kernel sources, but no luck. Does anybody knows a source for their 2.6.38 kernel?
It's well hidden in their images ;) http://arm9download.cncncn.com/mini6410/linux/20110322/linux-2.6.38-2011... How did you get your touchscreen working / what GUI are you using?
Thanks for the link. Touchscreen: I use the generic S3c2410 touchscreen driver and tslib in userland. Works with ts_calibrate and ts_test and also Qt here.
Are you using a mini or a tiny? I figure I will change to a mini, I don't see any point wasting any more time on it. So far, I tried every thinkable combination of X / input-tslib / tslib and kernel-modules - it just won't work. Since I only develop for X / Gtk - would you mind giving the fluxbox in your toolchain a shot? ts_calibrate works fine with the friendlyarm and patched tslib-plugins, for ts_test only the patched tslib works. X reports it successfully included the tslib-module, but it doesn't respond - I searched the whole web and found !!!nothing!!! With the FriendlyARM-Ubuntu image, it worked after some convincing, ptxdist and multistrap images don't
Reading - a lost ability -_- (just saw you already stated that in your first reply...) So even though arm9 tells me they use exactly the same hardware on the tiny and the mini it's connected in a different way or whatever -- at least that explains the 3 defined input methods in their kconfig. Seems like a rather semi-smart move to me. OK - so I guess I'll move to the mini too - I'm in no mood for crazy kernel hacks.
Hi there, I would like to try on the 2.6.39.4 kernel. Would someone send me the .config please? or point me to the website where I can get it. My email is vibnwis@yahoo.com. Thanks in advance. Cheers! vib
vib, try "make ARCH=arm help". This will output a long list which includes the following line: [...] mini2440_defconfig - Build for mini2440 [...] So, the kernel always comes with a predefined config. Just run "make ARCH=arm mini2440_defconfig" and then build the kernel. Same for the more current 3.1 kernel
Thanks Juergen, I actually used config_mini6410_a70 ( using 2.6.38 ) by replacing the .config. As kernel 2.6.39.4 has a lot new features, compiling it causes a long list of questions for filling up the new features. Firstly, I don't quite understand those features and the implications of those features to the final results. So my approach is to use the config_mini6410_a70 as the starting point. Anyone who has the .config would be very helpful for going through all the unnecessary troubles. Cheers! vib