*********************************************************************
Steps to build the kernel:

Download and install the cross toolchain gcc version 4 for Linux 2.6.

$ cd /opt
$ tar xjf mipseltools-gcc412-glibc261.tar.bz2
$ export PATH=/opt/mipseltools-gcc412-glibc261/bin:$PATH

Download the linux kernel tarball linux-2.6.24.3.tar.bz2 and unpack it:

$ tar xjf linux-2.6.24.3.tar.bz2

Download the latest kernel patch and patch it to the kernel tree:

$ cd linux-2.6.24.3
$ gzip -cd ../linux-2.6.24.3-jz-yyyymmdd.patch.gz | patch -p1

Make defconfig of the JZSOC based platform, eg:

$ make apus_defconfig	(JZ4750 based APUS board)
or
$ make pavo_defconfig	(JZ4740 based PAVO board)
or
$ make pmp_defconfig	(JZ4730 based PMP board)

Build the kernel:

$ make xconfig
$ make uImage
or
# make zImage
or
# make modules


*********************************************************************

linux-2.6.24.3-jz-20090226.patch.gz

  * Fixed a bug of YAFFS2 on JZ4750 when using BCH ECC algorithm.
    
linux-2.6.24.3-jz-20090218.patch.gz

  * Support Jz4750
  * Converted MTD from 32bit to 64bit to support the NAND larger than 2GB, and yaffs2 was 
    modified accordingly.
  * Supported multi-plane operation and multiply chip selecting for NAND flash. 
  * Whether NAND multiple planes operation for one partition is used or not could be 
    determined by the value of use_planes in partition_info[] in drivers/mtd/nand/jz47xx_nand.c
  * Modified yaffs2 utils mkyaffs2image to support writting 4KB pagesize NAND and enable 
    writing soft reed-solomn ECC for yaffs2 file system information in oob area of MLC nand

linux-2.6.24.3-jz-20080926.patch.gz:

  * Fixed a fatal bug for mplayer, which may cause some files cannot be played and the system is crashed.
    Updated file: arch/mips/jz4740/proc.c.
  * Modify jzfb_mmap() for cacheable LCD framebuffer access.

linux-2.6.24.3-jz-20080815.patch.gz:

  * Modify ipu interface to toggle PID of MPlayer in TLB.
  * Modify OSS ioctl function to play movie with mono channel better. 
  * Check whether the free block of nand is erased before erasing it, 'unsigned int' instead of
    'unsigned short' was used to store block number, and heap sort for lifetime after 
     erasing a block was replaced by another faster method.
  * Cache read was used in nand_read_page_hwecc_rs() for Jz4740.
  * Faster timing in REG_EMC_SMCR1 whose value is 0x09221200 was used.
  * Supported 4KB page size nand
  * Soft reed solomon ECC was supported for yaffs2 information which is 16 bytes in nand 
    oob, and it should be used for MLC nand.
  * Added support to generate any frequency baud rate of uart for both Jz4740 and Jz4750.
  * Modified Jz4750's INTC, CIM, TSSI, macros.
  * Combined Jz4750 SLCD Controller support into drivers/video/jz4750_lcd.c, which now support
    LCD Controller, Slcd Controller and TVE. And add smart lcd panel TRULY_TFT_GG1P0319LTSW_W support.
  * Add Jz4750 LCDC and TVE driver. 
  * Modified CONFIG_FB_JZXXX macros, rename drivers/video/jzslcd.x to drivers/video/jz4740_slcd.x
  * Add jz_clocksource, upgrade the system time's accuracy from 10ms to about 1(or 2) us.
    but the system timer remained 10ms.
  * Updated UBIFS.

linux-2.6.24.3-jz-20080530.patch.gz:

  * Added JZ4720 virgo board support.
  * Added definition of CONFIG_SOC_JZ4725 and CONFIG_SOC_JZ4720.
  * Added selection of 4-bit/1-bit data bus for MMC/SD card driver.
  * Added dipper_defconfig for JZ4725 DIPPER board.
  * Modified sound/oss/jz_i2s.c to increase the sound buffer.
  * Modified pavo_defconfig to select the oss sound driver by default.
  * Fixed jzlcd.h for jz4730 pmp.
  * Modified jzcs8900a.c to not test the chip ID.

linux-2.6.24.3-jz-20080526.patch.gz:

  * Rewrote all of the UBI and UBIFS codes and their utilities.
  * Modified MMC/SD driver jz_mmc.c to support PM callback.
  * Fixed a bug of mtdblock-jz.uu of using the badblock_table.
  * Patch jz4740_nand.c to optimize the RS correction algorithm.
  * Jzlcd driver added framebuffer rotation support.

linux-2.6.24.3-jz-20080422.patch.gz:

  * Supported multi-framebuffers LCD driver.
  * Modified sound/soc/jz4740/jz4740-i2s.c to support 32KHz PCM sample.
  * Ported new mtd-utils and mkfs.ubifs.
  * Added jzslcd.c for Smart LCD framebuffer driver.
  * Modified rtc_jz.c to use some functions in rtc library instead of our function.
  * Added jz_keypad.c and gpio_keys.c for scan keypad drivers.
  * Added block-jz.c to support block device layer on top of ubi.
  * Modified jz4740_udc.c to enable the suspend irq when host unloads us.
  * pavo_defconfig: select CONFIG_WIRELESS_EXT, CONFIG_PNP and CONFIG_SERIAL_8250_PNP.
  * Modified jz_ts.c jz_ts.h and sadc.c to release CPU by interrupt mode instead of pio mode.
  * Fixed a bug in jz4740_udc.c and jz4730_udc.c during rmmod the driver.
  * Modified jz_i2s.c to fix the jz_audio_release().
  * Fixed udc_hotplug.c to avoid the "unexpected IRQ".
  * Fixed jz4740/cpufreq.c of calculating the new_mclk.
  * Modified drivers/video/console/fbcon.c by adding fb_flashcursor selection.

linux-2.6.24.3-jz-20080304.patch.gz: 

  * First full release, support JZ4740 PAVO and JZ4730 PMP boards.
  * Some important drivers: YAFFS2, UBI & UBIFS, Power management,
    SLC/MLC NAND, MMC/SD, LCD framebuffer, ALSA/OSS audio, UDC,
    USB host, Camera, RTC, WatchDog, udev, hotplug etc.
