Another interesting K1 kernel comment:
PHP Code:
/* NOTE: the Fiona OneNAND part only has 20 bytes of space, which is four
bytes too small for struct jffs2_raw_ebh. as this is a closed device,
the EBH compatibility flags will not be used */
#ifndef CONFIG_ARCH_FIONA
...
/* Summary node MAGIC marker */
#define JFFS2_SUM_MAGIC 0x02851885
Which could be important for decompressing some of those (many) firmware block devices in the K1.
Interestingly, this jffs2.h file contains some comment differences from mainstream linux 2.26.10 kernel source, obviously NOT from lab126 (including an email address, a file version number and date difference in a comment). Perhaps applying whatever "official linux" patch lab126 used to this mainline 2.6.10 source code would make finding lab126-specific changes easier. More specifically (in this case), this:
PHP Code:
* Created by David Woodhouse <dwmw2@redhat.com>
...
* $Id: jffs2.h,v 1.33 2004/05/25 11:31:55 havasi Exp $
changed to this:
PHP Code:
* Created by David Woodhouse <dwmw2@infradead.org>
...
* $Id: jffs2.h,v 1.40 2005/11/07 11:14:51 gleixner Exp $
...
* Fiona device changes Copyright (C) 2006, Lab126, Inc. All rights reserved.
EDIT: I see that linux kernel 2.6.10 has three "testing" release candidates:
https://www.kernel.org/pub/linux/ker.../testing/incr/
I suppose lab126 started with one of those rather than the "stable" code set I am comparing against. Hmm... not likely -- the timestamps in the 2.6.10 stable and rc downloads are much too old for the source code comment shown above. Even the 2.6.11 release candidate timestamps are too old for that comment. I would think if they borrowed code snippets from later kernels, there would be more differences. Though many of the differences are just stripping trailing spaces off the files in the official stable linux source code... One thing of interest is the the main kernel Makefile forces some env vars for cross-compiling "so they are not needed on the command line", AND adds some extra stuff if the cross host is "APPLE". ... And nope. The release candidates are OLDER than the stable release. I wonder if lab126 did mix in bits of source from later kernel versions? The only kernel version with a compressed download file timestamp new enough for that comment above is 2.6.15, and lab126 still calls theirs 2.6.10 for the K1 kernel. Yhe mmc.c code is certainly a LOT newer than 2.6.10, adding io-completion and SDHC card support, plus a lot of newer enhancements. So despite the version name, I think they mixed and matched code from various versions (perhaps borrowed from newer kindles, when they were building new firmware updates for old kindle models).