<!-- Generator: GNU source-highlight 2.4
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt>#
#
# rename "packages/altboot/altboot_1.1.1+wip-SVNR80.bb"
#     to "packages/altboot/altboot_1.1.1+wip-SVNR81.bb"

# add_dir "packages/u-boot/u-boot-1.1.4/at32stk1000"

# add_file "packages/u-boot/u-boot-1.1.4/at32stk1000/ap7000-add-spi-device-and-lcdc-base-address.patch"
#  content [264148f2ada6a081fe0b2e071b0edc80d5bb26d3]

# add_file "packages/u-boot/u-boot-1.1.4/at32stk1000/at32ap-add-define-for-sdram-test.patch"
#  content [aacb40f62692f7f12d2594259831635533ea5254]

# add_file "packages/u-boot/u-boot-1.1.4/at32stk1000/at32ap-add-framebuffer-address.patch"
#  content [0dc5903c7cb85cbda2a744d9ded9a86258089d87]

# add_file "packages/u-boot/u-boot-1.1.4/at32stk1000/at32ap-add-spi-initcalls.patch"
#  content [758d34baadad1b76b6ed1ef398709646af1defbf]

# add_file "packages/u-boot/u-boot-1.1.4/at32stk1000/at32ap-add-system-manager-header-file.patch"
#  content [0905f155e05eba575a0685462783708b8098af55]

# add_file "packages/u-boot/u-boot-1.1.4/at32stk1000/atstk1000-add-lcd-and-spi-to-config.patch"
#  content [174d54cdd69afafd05d72a0fd0c8751d0976a599]

# add_file "packages/u-boot/u-boot-1.1.4/at32stk1000/atstk1000-ltv350qv-display-support.patch"
#  content [c9bf5bf83f39696ee9f981ed85f847334f28c2b1]

# add_file "packages/u-boot/u-boot-1.1.4/at32stk1000/atstk1000-spi-support.patch"
#  content [a1ebfc54a394239909ae56d84e754d7ec80bbac3]

# add_file "packages/u-boot/u-boot-1.1.4/at32stk1000/avr32-boards-fix-flash-read.patch"
#  content [0687dbba73b78ddd353f834a58a26b02ce8f8ef8]

# add_file "packages/u-boot/u-boot-1.1.4/at32stk1000/cmd-bmp-add-gzip-compressed-bmp.patch"
#  content [80f5abd078487b50df179cad3b3d1a0f382b56ae]

# add_file "packages/u-boot/u-boot-1.1.4/at32stk1000/fix-mmc-data-timeout.patch"
#  content [70b1b5f471490abbf21b2c173a9863794616545c]

# add_file "packages/u-boot/u-boot-1.1.4/at32stk1000/lcd-add-24-bpp-support-and-atmel-lcdc-support.patch"
#  content [055ca79e80417f03df63174afb7a707a2e98e5a6]

# add_file "packages/u-boot/u-boot-1.1.4/at32stk1000/lcdc-driver-for-avr32.patch"
#  content [87dc7c19ee654a3223802b457bb82c44ff3c515e]

# add_file "packages/u-boot/u-boot-1.1.4/at32stk1000/libavr32-add-spi-and-lcd-board-support.patch"
#  content [f9cdf2cc1db97cbdcfbb811df1067fb7baec5542]

# add_file "packages/u-boot/u-boot-1.1.4/at32stk1000/spi-driver-for-avr32.patch"
#  content [aaf3a5bcf5a60041e4da853c72c9417adca86a12]

# add_file "packages/uclibc/uclibc-cvs/errno_values.h.patch"
#  content [449baeeb6e48f88f75f07d09cdee9bd3ffcba48e]

# add_file "packages/uclibc/uclibc-cvs/uclibc-arm-ftruncate64.patch"
#  content [1cb65eede202f24b92dd4cb7724a5bea8785a592]

# patch "packages/altboot/altboot_1.1.1+wip-SVNR81.bb"
#  from [f680e42100ad09229fafcf525dd6cc4715616d19]
#    to [3cb071a1265832774030a51d3885a1105bbc1a1a]

# patch "packages/asterisk/asterisk_1.2.24.bb"
#  from [75b0abfa9a0684f19edd02f4383136655d35b61d]
#    to [fc355188dbdd28065639fdd359c9a29372806bdd]

# patch "packages/binutils/binutils-avr32.inc"
#  from [5bd29b107e09714fb7b1d4bf3f8e6d5196a9ca37]
#    to [a7d324afa09eb724099f42b11b3b68772ef94d3e]

# patch "packages/gpgme/gpgme.inc"
#  from [36ab592ddc0e1147ff7e3515f783b2f135903201]
#    to [03ed85bb76b7f3e2a6baf511ed9e657e18bdf6c4]

# patch "packages/gpgme/gpgme_1.0.0.bb"
#  from [4efb9b2188257cb57c38b41a4054c273d6d32d3c]
#    to [1945518e229ff69cc0f28fb3a1f516569ff9d592]

# patch "packages/gpgme/gpgme_1.0.3.bb"
#  from [4efb9b2188257cb57c38b41a4054c273d6d32d3c]
#    to [1945518e229ff69cc0f28fb3a1f516569ff9d592]

# patch "packages/gpgme/gpgme_1.1.4.bb"
#  from [1945518e229ff69cc0f28fb3a1f516569ff9d592]
#    to [1f23f8d93534d9cbc07caca5c802ff0d984aadbd]

# patch "packages/u-boot/u-boot_1.1.4.bb"
#  from [d038552bd2f9296f6e46ab33c2c4ebb364477fec]
#    to [f33798683ca5789d2b3c96f26805a5f148b78370]

# patch "packages/uclibc/uclibc-0.9.29/avr32/uClibc.machine"
#  from [6eee945f4f60a18b512aca572845079a33e5fc2c]
#    to [982b86121dc5785e0853eea3beeb64e885a28474]

# patch "packages/uclibc/uclibc-initial_svn.bb"
#  from [c4bf20bfed551d292d63e31314bf2c9277f9d30e]
#    to [2715cc791b3fdd1b8e62328291e3ef33973bacc0]

# patch "packages/uclibc/uclibc_0.9.29.bb"
#  from [0eac903c662c67108b358b1ad2c6d1d976cc5419]
#    to [59c9209c18cebba61fe0d3b0d595b2953e6dd351]

# patch "packages/uclibc/uclibc_svn.bb"
#  from [224dba45f3c9cfd8430a24a707222605c885e2fb]
#    to [97cfa7f99c8af9580b5f508636f27ddb5d1aa49d]
#
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot-1.1.4/at32stk1000/ap7000-add-spi-device-and-lcdc-base-address.patch        264148f2ada6a081fe0b2e071b0edc80d5bb26d3</font>
<font color="#009900">+++ packages/u-boot/u-boot-1.1.4/at32stk1000/ap7000-add-spi-device-and-lcdc-base-address.patch        264148f2ada6a081fe0b2e071b0edc80d5bb26d3</font>
<font color="#0000FF">@@ -0,0 +1,112 @@</font>
<font color="#009900">+diff -uprN u-boot-orig/cpu/at32ap7xxx/ap7000/devices.c u-boot/cpu/at32ap7xxx/ap7000/devices.c</font>
<font color="#009900">+--- u-boot-orig/cpu/at32ap7xxx/ap7000/devices.c        2007-01-01 19:26:46.000000000 +0100</font>
<font color="#009900">++++ u-boot/cpu/at32ap7xxx/ap7000/devices.c        2006-12-22 14:51:26.000000000 +0100</font>
<font color="#009900">+@@ -223,6 +223,46 @@ static const struct resource macb1_resou</font>
<font color="#009900">+         },</font>
<font color="#009900">+ };</font>
<font color="#009900">+ #endif</font>
<font color="#009900">++#if defined(CFG_SPI0)</font>
<font color="#009900">++static const struct resource spi0_resource[] = {</font>
<font color="#009900">++        {</font>
<font color="#009900">++                .type        = RESOURCE_CLOCK,</font>
<font color="#009900">++                .u        = {</font>
<font color="#009900">++                        .clock        = { CLOCK_APBA, 0 },</font>
<font color="#009900">++                },</font>
<font color="#009900">++        }, {</font>
<font color="#009900">++                .type        = RESOURCE_GPIO,</font>
<font color="#009900">++                .u        = {</font>
<font color="#009900">++                        .gpio        = { 6, DEVICE_PIOA, GPIO_FUNC_A, 0 },</font>
<font color="#009900">++                },</font>
<font color="#009900">++        }, {</font>
<font color="#009900">++                .type        = RESOURCE_GPIO,</font>
<font color="#009900">++                .u        = {</font>
<font color="#009900">++                        .gpio        = { 1, DEVICE_PIOA, GPIO_FUNC_B, 20 },</font>
<font color="#009900">++                },</font>
<font color="#009900">++        },</font>
<font color="#009900">++};</font>
<font color="#009900">++#endif</font>
<font color="#009900">++#if defined(CFG_SPI1)</font>
<font color="#009900">++static const struct resource spi1_resource[] = {</font>
<font color="#009900">++        {</font>
<font color="#009900">++                .type        = RESOURCE_CLOCK,</font>
<font color="#009900">++                .u        = {</font>
<font color="#009900">++                        .clock        = { CLOCK_APBA, 1 },</font>
<font color="#009900">++                },</font>
<font color="#009900">++        }, {</font>
<font color="#009900">++                .type        = RESOURCE_GPIO,</font>
<font color="#009900">++                .u        = {</font>
<font color="#009900">++                        .gpio        = { 6, DEVICE_PIOB, GPIO_FUNC_B, 0 },</font>
<font color="#009900">++                },</font>
<font color="#009900">++        }, {</font>
<font color="#009900">++                .type        = RESOURCE_GPIO,</font>
<font color="#009900">++                .u        = {</font>
<font color="#009900">++                        .gpio        = { 1, DEVICE_PIOA, GPIO_FUNC_A, 27 },</font>
<font color="#009900">++                },</font>
<font color="#009900">++        },</font>
<font color="#009900">++};</font>
<font color="#009900">++#endif</font>
<font color="#009900">+ #if defined(CFG_LCDC)</font>
<font color="#009900">+ static const struct resource lcdc_resource[] = {</font>
<font color="#009900">+         {</font>
<font color="#009900">+@@ -230,6 +270,16 @@ static const struct resource lcdc_resour</font>
<font color="#009900">+                 .u        = {</font>
<font color="#009900">+                         .clock        = { CLOCK_AHB, 7 },</font>
<font color="#009900">+                 },</font>
<font color="#009900">++        }, {</font>
<font color="#009900">++                .type        = RESOURCE_GPIO,</font>
<font color="#009900">++                .u        = {</font>
<font color="#009900">++                        .gpio = { 13, DEVICE_PIOC, GPIO_FUNC_A, 19 },</font>
<font color="#009900">++                },</font>
<font color="#009900">++        }, {</font>
<font color="#009900">++                .type        = RESOURCE_GPIO,</font>
<font color="#009900">++                .u        = {</font>
<font color="#009900">++                        .gpio = { 18, DEVICE_PIOD, GPIO_FUNC_A, 0 },</font>
<font color="#009900">++                },</font>
<font color="#009900">+         },</font>
<font color="#009900">+ };</font>
<font color="#009900">+ #endif</font>
<font color="#009900">+@@ -390,6 +440,20 @@ const struct device chip_device[] = {</font>
<font color="#009900">+                 .resource        = macb0_resource,</font>
<font color="#009900">+         },</font>
<font color="#009900">+ #endif</font>
<font color="#009900">++#if defined(CFG_SPI0)</font>
<font color="#009900">++        [DEVICE_SPI0] = {</font>
<font color="#009900">++                .regs                = (void *)SPI0_BASE,</font>
<font color="#009900">++                .nr_resources        = ARRAY_SIZE(spi0_resource),</font>
<font color="#009900">++                .resource        = spi0_resource,</font>
<font color="#009900">++        },</font>
<font color="#009900">++#endif</font>
<font color="#009900">++#if defined(CFG_SPI1)</font>
<font color="#009900">++        [DEVICE_SPI1] = {</font>
<font color="#009900">++                .regs                = (void *)SPI1_BASE,</font>
<font color="#009900">++                .nr_resources        = ARRAY_SIZE(spi1_resource),</font>
<font color="#009900">++                .resource        = spi1_resource,</font>
<font color="#009900">++        },</font>
<font color="#009900">++#endif</font>
<font color="#009900">+ #if defined(CFG_MACB1)</font>
<font color="#009900">+         [DEVICE_MACB1] = {</font>
<font color="#009900">+                 .regs                = (void *)MACB1_BASE,</font>
<font color="#009900">+@@ -399,6 +463,7 @@ const struct device chip_device[] = {</font>
<font color="#009900">+ #endif</font>
<font color="#009900">+ #if defined(CFG_LCDC)</font>
<font color="#009900">+         [DEVICE_LCDC] = {</font>
<font color="#009900">++                .regs                = (void *)LCDC_BASE,</font>
<font color="#009900">+                 .nr_resources        = ARRAY_SIZE(lcdc_resource),</font>
<font color="#009900">+                 .resource        = lcdc_resource,</font>
<font color="#009900">+         },</font>
<font color="#009900">+diff -uprN u-boot-orig/include/asm-avr32/arch-ap7000/platform.h u-boot/include/asm-avr32/arch-ap7000/platform.h</font>
<font color="#009900">+--- u-boot-orig/include/asm-avr32/arch-ap7000/platform.h        2007-01-01 19:26:46.000000000 +0100</font>
<font color="#009900">++++ u-boot/include/asm-avr32/arch-ap7000/platform.h        2006-12-22 14:20:39.000000000 +0100</font>
<font color="#009900">+@@ -66,6 +66,12 @@ enum device_id {</font>
<font color="#009900">+ #if defined(CFG_MACB1)</font>
<font color="#009900">+         DEVICE_MACB1,</font>
<font color="#009900">+ #endif</font>
<font color="#009900">++#if defined(CFG_SPI0)</font>
<font color="#009900">++        DEVICE_SPI0,</font>
<font color="#009900">++#endif</font>
<font color="#009900">++#if defined(CFG_SPI1)</font>
<font color="#009900">++        DEVICE_SPI1,</font>
<font color="#009900">++#endif</font>
<font color="#009900">+ #if defined(CFG_LCDC)</font>
<font color="#009900">+         DEVICE_LCDC,</font>
<font color="#009900">+ #endif</font>
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot-1.1.4/at32stk1000/at32ap-add-define-for-sdram-test.patch        aacb40f62692f7f12d2594259831635533ea5254</font>
<font color="#009900">+++ packages/u-boot/u-boot-1.1.4/at32stk1000/at32ap-add-define-for-sdram-test.patch        aacb40f62692f7f12d2594259831635533ea5254</font>
<font color="#0000FF">@@ -0,0 +1,117 @@</font>
<font color="#009900">+Index: u-boot-1.1.4/cpu/at32ap7xxx/hsdramc.c</font>
<font color="#009900">+===================================================================</font>
<font color="#009900">+--- u-boot-1.1.4.orig/cpu/at32ap7xxx/hsdramc.c        2007-01-11 15:28:40.000000000 +0100</font>
<font color="#009900">++++ u-boot-1.1.4/cpu/at32ap7xxx/hsdramc.c        2007-01-11 15:29:36.000000000 +0100</font>
<font color="#009900">+@@ -133,6 +133,7 @@</font>
<font color="#009900">+         printf("SDRAM: %u MB at address 0x%08lx\n",</font>
<font color="#009900">+                sdram_size &gt;&gt; 20, info-&gt;phys_addr);</font>
<font color="#009900">+ </font>
<font color="#009900">++#ifdef CONFIG_SDRAM_TEST</font>
<font color="#009900">+         printf("Testing SDRAM...");</font>
<font color="#009900">+         for (i = 0; i &lt; sdram_size / 4; i++)</font>
<font color="#009900">+                 sdram[i] = i;</font>
<font color="#009900">+@@ -148,6 +149,7 @@</font>
<font color="#009900">+         }</font>
<font color="#009900">+ </font>
<font color="#009900">+         puts("OK\n");</font>
<font color="#009900">++#endif</font>
<font color="#009900">+ </font>
<font color="#009900">+         return sdram_size;</font>
<font color="#009900">+ }</font>
<font color="#009900">+Index: u-boot-1.1.4/include/configs/atngw.h</font>
<font color="#009900">+===================================================================</font>
<font color="#009900">+--- u-boot-1.1.4.orig/include/configs/atngw.h        2007-01-11 15:28:40.000000000 +0100</font>
<font color="#009900">++++ u-boot-1.1.4/include/configs/atngw.h        2007-01-30 16:41:23.000000000 +0100</font>
<font color="#009900">+@@ -31,6 +31,10 @@</font>
<font color="#009900">+ </font>
<font color="#009900">+ #define CONFIG_NGW_EXT_FLASH                1</font>
<font color="#009900">+ </font>
<font color="#009900">++/* Handy macros for making strings */</font>
<font color="#009900">++#define xstringify(x) #x</font>
<font color="#009900">++#define stringify(x) xstringify(x)</font>
<font color="#009900">++</font>
<font color="#009900">+ /*</font>
<font color="#009900">+  * Timer clock frequency. We're using the CPU-internal COUNT register</font>
<font color="#009900">+  * for this, so this is equivalent to the CPU core clock frequency</font>
<font color="#009900">+@@ -80,9 +84,9 @@</font>
<font color="#009900">+ </font>
<font color="#009900">+ #define CONFIG_BAUDRATE                        115200</font>
<font color="#009900">+ #define CONFIG_BOOTARGS                                                        \</font>
<font color="#009900">+-        "console=ttyS0 root=/dev/mmcblk0p1"</font>
<font color="#009900">++        "console=ttyS0 root=/dev/mtdblock1 rootfstype=jffs2"</font>
<font color="#009900">+ #define CONFIG_BOOTCOMMAND                                                \</font>
<font color="#009900">+-        "mmcinit; ext2load mmc 0:1 0x90400000 /uImage; bootm 0x90400000"</font>
<font color="#009900">++        "fsload 0x90250000 /uImage; bootm 0x90250000"</font>
<font color="#009900">+ </font>
<font color="#009900">+ #define CONFIG_BOOTDELAY                2</font>
<font color="#009900">+ #define CONFIG_AUTOBOOT                        1</font>
<font color="#009900">+@@ -105,8 +109,8 @@</font>
<font color="#009900">+  * generated and assigned to the environment variables "ethaddr" and</font>
<font color="#009900">+  * "eth1addr".</font>
<font color="#009900">+  */</font>
<font color="#009900">+-#define CONFIG_ETHADDR                        "6a:87:71:14:cd:cb"</font>
<font color="#009900">+-#define CONFIG_ETH1ADDR                        "ca:f8:15:e6:3e:e6"</font>
<font color="#009900">++#define CONFIG_ETHADDR                        "42:b2:13:36:50:94"</font>
<font color="#009900">++#define CONFIG_ETH1ADDR                        "4e:29:49:7e:5c:b9"</font>
<font color="#009900">+ #define CONFIG_OVERWRITE_ETHADDR_ONCE        1</font>
<font color="#009900">+ #define CONFIG_NET_MULTI                1</font>
<font color="#009900">+ </font>
<font color="#009900">+@@ -183,6 +187,7 @@</font>
<font color="#009900">+ </font>
<font color="#009900">+ #define CFG_SDRAM_BASE                        0x10000000</font>
<font color="#009900">+ #define CFG_SDRAM_16BIT                        1</font>
<font color="#009900">++#define CONFIG_SDRAM_TEST                1</font>
<font color="#009900">+ </font>
<font color="#009900">+ #define CFG_ENV_IS_IN_FLASH                1</font>
<font color="#009900">+ #define CFG_ENV_SIZE                        65536</font>
<font color="#009900">+@@ -202,7 +207,7 @@</font>
<font color="#009900">+ #define CFG_DMA_ALLOC_END                (CFG_MALLOC_START)</font>
<font color="#009900">+ #define CFG_DMA_ALLOC_START                (CFG_DMA_ALLOC_END - CFG_DMA_ALLOC_LEN)</font>
<font color="#009900">+ /* Allow 2MB for the kernel run-time image */</font>
<font color="#009900">+-#define CFG_LOAD_ADDR                        (CFG_SDRAM_BASE + 0x00200000)</font>
<font color="#009900">++#define CFG_LOAD_ADDR                        (CFG_SDRAM_BASE + 0x00250000)</font>
<font color="#009900">+ #define CFG_BOOTPARAMS_LEN                (16 * 1024)</font>
<font color="#009900">+ </font>
<font color="#009900">+ /* Other configuration settings that shouldn't have to change all that often */</font>
<font color="#009900">+Index: u-boot-1.1.4/include/configs/atstk1002.h</font>
<font color="#009900">+===================================================================</font>
<font color="#009900">+--- u-boot-1.1.4.orig/include/configs/atstk1002.h        2007-01-11 15:29:36.000000000 +0100</font>
<font color="#009900">++++ u-boot-1.1.4/include/configs/atstk1002.h        2007-01-30 16:41:25.000000000 +0100</font>
<font color="#009900">+@@ -98,7 +98,7 @@</font>
<font color="#009900">+ #define CFG_CONSOLE_UART_DEV                DEVICE_USART1</font>
<font color="#009900">+ </font>
<font color="#009900">+ /* Define to force consol on serial */</font>
<font color="#009900">+-/* #define CFG_CONSOLE_ALLWAYS_UART        1 */</font>
<font color="#009900">++#define CFG_CONSOLE_ALLWAYS_UART        1</font>
<font color="#009900">+ #ifdef CFG_CONSOLE_ALLWAYS_UART</font>
<font color="#009900">+ #define CFG_CONSOLE_IS_IN_ENV                1</font>
<font color="#009900">+ #define CFG_CONSOLE_OVERWRITE_ROUTINE        1</font>
<font color="#009900">+@@ -123,7 +123,7 @@</font>
<font color="#009900">+ #endif</font>
<font color="#009900">+ </font>
<font color="#009900">+ #define CONFIG_BOOTCOMMAND                                                \</font>
<font color="#009900">+-        "mmcinit; ext2load mmc 0:1 /uImage; bootm"</font>
<font color="#009900">++        "mmcinit; ext2load mmc 0:1 0x90250000 /uImage; bootm 0x90250000"</font>
<font color="#009900">+ #define CONFIG_BOOTDELAY                2</font>
<font color="#009900">+ #define CONFIG_AUTOBOOT                        1</font>
<font color="#009900">+ </font>
<font color="#009900">+@@ -145,8 +145,8 @@</font>
<font color="#009900">+  * generated and assigned to the environment variables "ethaddr" and</font>
<font color="#009900">+  * "eth1addr".</font>
<font color="#009900">+  */</font>
<font color="#009900">+-#define CONFIG_ETHADDR                        "6a:87:71:14:cd:cb"</font>
<font color="#009900">+-#define CONFIG_ETH1ADDR                        "ca:f8:15:e6:3e:e6"</font>
<font color="#009900">++#define CONFIG_ETHADDR                        "42:b2:13:36:50:94"</font>
<font color="#009900">++#define CONFIG_ETH1ADDR                        "4e:29:49:7e:5c:b9"</font>
<font color="#009900">+ #define CONFIG_OVERWRITE_ETHADDR_ONCE        1</font>
<font color="#009900">+ #define CONFIG_NET_MULTI                1</font>
<font color="#009900">+ </font>
<font color="#009900">+@@ -233,6 +233,8 @@</font>
<font color="#009900">+ #define CFG_INTRAM_SIZE                        0x8000</font>
<font color="#009900">+ </font>
<font color="#009900">+ #define CFG_SDRAM_BASE                        0x10000000</font>
<font color="#009900">++/* Will do SDRAM test if defined */</font>
<font color="#009900">++#define CONFIG_SDRAM_TEST                1</font>
<font color="#009900">+ </font>
<font color="#009900">+ #define CFG_ENV_IS_IN_FLASH                1</font>
<font color="#009900">+ #define CFG_ENV_SIZE                        65536</font>
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot-1.1.4/at32stk1000/at32ap-add-framebuffer-address.patch        0dc5903c7cb85cbda2a744d9ded9a86258089d87</font>
<font color="#009900">+++ packages/u-boot/u-boot-1.1.4/at32stk1000/at32ap-add-framebuffer-address.patch        0dc5903c7cb85cbda2a744d9ded9a86258089d87</font>
<font color="#0000FF">@@ -0,0 +1,11 @@</font>
<font color="#009900">+diff -uprN u-boot-orig/include/asm-avr32/global_data.h u-boot/include/asm-avr32/global_data.h</font>
<font color="#009900">+--- u-boot-orig/include/asm-avr32/global_data.h        2007-01-01 19:26:46.000000000 +0100</font>
<font color="#009900">++++ u-boot/include/asm-avr32/global_data.h        2006-12-19 11:08:14.000000000 +0100</font>
<font color="#009900">+@@ -44,6 +44,7 @@ typedef        struct        global_data {</font>
<font color="#009900">+         unsigned long        env_addr;        /* Address of env struct */</font>
<font color="#009900">+         unsigned long        env_valid;        /* Checksum of env valid? */</font>
<font color="#009900">+         unsigned long        cpu_hz;                /* TODO: remove */</font>
<font color="#009900">++        unsigned long        fb_base;        /* Address to framebuffer */</font>
<font color="#009900">+         void                **jt;</font>
<font color="#009900">+ } gd_t;</font>
<font color="#009900">+ </font>
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot-1.1.4/at32stk1000/at32ap-add-spi-initcalls.patch        758d34baadad1b76b6ed1ef398709646af1defbf</font>
<font color="#009900">+++ packages/u-boot/u-boot-1.1.4/at32stk1000/at32ap-add-spi-initcalls.patch        758d34baadad1b76b6ed1ef398709646af1defbf</font>
<font color="#0000FF">@@ -0,0 +1,16 @@</font>
<font color="#009900">+diff -uprN u-boot-orig/include/asm-avr32/initcalls.h u-boot/include/asm-avr32/initcalls.h</font>
<font color="#009900">+--- u-boot-orig/include/asm-avr32/initcalls.h        2007-01-01 19:26:46.000000000 +0100</font>
<font color="#009900">++++ u-boot/include/asm-avr32/initcalls.h        2007-01-05 13:29:16.000000000 +0100</font>
<font color="#009900">+@@ -30,6 +30,12 @@ extern void board_init_memories(void);</font>
<font color="#009900">+ extern void board_init_pio(void);</font>
<font color="#009900">+ extern void board_init_info(void);</font>
<font color="#009900">+ </font>
<font color="#009900">++#if CONFIG_SPI</font>
<font color="#009900">++extern void board_init_spi(void);</font>
<font color="#009900">++#else</font>
<font color="#009900">++static inline void board_init_spi(void) { }</font>
<font color="#009900">++#endif</font>
<font color="#009900">++</font>
<font color="#009900">+ #if (CONFIG_COMMANDS &amp; CFG_CMD_NET)</font>
<font color="#009900">+ extern void net_init(void);</font>
<font color="#009900">+ #else</font>
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot-1.1.4/at32stk1000/at32ap-add-system-manager-header-file.patch        0905f155e05eba575a0685462783708b8098af55</font>
<font color="#009900">+++ packages/u-boot/u-boot-1.1.4/at32stk1000/at32ap-add-system-manager-header-file.patch        0905f155e05eba575a0685462783708b8098af55</font>
<font color="#0000FF">@@ -0,0 +1,252 @@</font>
<font color="#009900">+diff -uprN u-boot-orig/include/asm-avr32/arch-ap7000/sm.h u-boot/include/asm-avr32/arch-ap7000/sm.h</font>
<font color="#009900">+--- u-boot-orig/include/asm-avr32/arch-ap7000/sm.h        1970-01-01 01:00:00.000000000 +0100</font>
<font color="#009900">++++ u-boot/include/asm-avr32/arch-ap7000/sm.h        2006-12-21 16:28:04.000000000 +0100</font>
<font color="#009900">+@@ -0,0 +1,248 @@</font>
<font color="#009900">++/*</font>
<font color="#009900">++ * Register definitions for SM</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * System Manager</font>
<font color="#009900">++ */</font>
<font color="#009900">++#ifndef __ASM_AVR32_SM_H__</font>
<font color="#009900">++#define __ASM_AVR32_SM_H__</font>
<font color="#009900">++</font>
<font color="#009900">++/* SM register offsets */</font>
<font color="#009900">++#define SM_PM_MCCTRL                            0x0000</font>
<font color="#009900">++#define SM_PM_CKSEL                             0x0004</font>
<font color="#009900">++#define SM_PM_CPU_MASK                          0x0008</font>
<font color="#009900">++#define SM_PM_AHB_MASK                          0x000c</font>
<font color="#009900">++#define SM_PM_APBA_MASK                         0x0010</font>
<font color="#009900">++#define SM_PM_APBB_MASK                         0x0014</font>
<font color="#009900">++#define SM_PM_PLL0                              0x0020</font>
<font color="#009900">++#define SM_PM_PLL1                              0x0024</font>
<font color="#009900">++#define SM_PM_VCTRL                             0x0030</font>
<font color="#009900">++#define SM_PM_VMREF                             0x0034</font>
<font color="#009900">++#define SM_PM_VMV                               0x0038</font>
<font color="#009900">++#define SM_PM_IER                               0x0040</font>
<font color="#009900">++#define SM_PM_IDR                               0x0044</font>
<font color="#009900">++#define SM_PM_IMR                               0x0048</font>
<font color="#009900">++#define SM_PM_ISR                               0x004c</font>
<font color="#009900">++#define SM_PM_ICR                               0x0050</font>
<font color="#009900">++#define SM_PM_GCCTRL                            0x0060</font>
<font color="#009900">++#define SM_PM_GCCTRL0                           0x0060</font>
<font color="#009900">++#define SM_PM_GCCTRL1                           0x0064</font>
<font color="#009900">++#define SM_PM_GCCTRL2                           0x0068</font>
<font color="#009900">++#define SM_PM_GCCTRL3                           0x006c</font>
<font color="#009900">++#define SM_PM_GCCTRL4                           0x0070</font>
<font color="#009900">++#define SM_PM_GCCTRL5                           0x0074</font>
<font color="#009900">++#define SM_PM_GCCTRL6                           0x0078</font>
<font color="#009900">++#define SM_PM_GCCTRL7                           0x007c</font>
<font color="#009900">++#define SM_RTC_CTRL                             0x0080</font>
<font color="#009900">++#define SM_RTC_VAL                              0x0084</font>
<font color="#009900">++#define SM_RTC_TOP                              0x0088</font>
<font color="#009900">++#define SM_RTC_IER                              0x0090</font>
<font color="#009900">++#define SM_RTC_IDR                              0x0094</font>
<font color="#009900">++#define SM_RTC_IMR                              0x0098</font>
<font color="#009900">++#define SM_RTC_ISR                              0x009c</font>
<font color="#009900">++#define SM_RTC_ICR                              0x00a0</font>
<font color="#009900">++#define SM_WDT_CTRL                             0x00b0</font>
<font color="#009900">++#define SM_WDT_CLR                              0x00b4</font>
<font color="#009900">++#define SM_WDT_EXT                              0x00b8</font>
<font color="#009900">++#define SM_RC_RCAUSE                            0x00c0</font>
<font color="#009900">++#define SM_EIM_IER                              0x0100</font>
<font color="#009900">++#define SM_EIM_IDR                              0x0104</font>
<font color="#009900">++#define SM_EIM_IMR                              0x0108</font>
<font color="#009900">++#define SM_EIM_ISR                              0x010c</font>
<font color="#009900">++#define SM_EIM_ICR                              0x0110</font>
<font color="#009900">++#define SM_EIM_MODE                             0x0114</font>
<font color="#009900">++#define SM_EIM_EDGE                             0x0118</font>
<font color="#009900">++#define SM_EIM_LEVEL                            0x011c</font>
<font color="#009900">++#define SM_EIM_TEST                             0x0120</font>
<font color="#009900">++#define SM_EIM_NMIC                             0x0124</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_MCCTRL */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_CKSEL */</font>
<font color="#009900">++#define SM_CPUSEL_OFFSET                        0</font>
<font color="#009900">++#define SM_CPUSEL_SIZE                          3</font>
<font color="#009900">++#define SM_CPUDIV_OFFSET                        7</font>
<font color="#009900">++#define SM_CPUDIV_SIZE                          1</font>
<font color="#009900">++#define SM_AHBSEL_OFFSET                        8</font>
<font color="#009900">++#define SM_AHBSEL_SIZE                          3</font>
<font color="#009900">++#define SM_AHBDIV_OFFSET                        15</font>
<font color="#009900">++#define SM_AHBDIV_SIZE                          1</font>
<font color="#009900">++#define SM_APBASEL_OFFSET                       16</font>
<font color="#009900">++#define SM_APBASEL_SIZE                         3</font>
<font color="#009900">++#define SM_APBADIV_OFFSET                       23</font>
<font color="#009900">++#define SM_APBADIV_SIZE                         1</font>
<font color="#009900">++#define SM_APBBSEL_OFFSET                       24</font>
<font color="#009900">++#define SM_APBBSEL_SIZE                         3</font>
<font color="#009900">++#define SM_APBBDIV_OFFSET                       31</font>
<font color="#009900">++#define SM_APBBDIV_SIZE                         1</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_CPU_MASK */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_AHB_MASK */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_APBA_MASK */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_APBB_MASK */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_PLL0 */</font>
<font color="#009900">++#define SM_PLLEN_OFFSET                         0</font>
<font color="#009900">++#define SM_PLLEN_SIZE                           1</font>
<font color="#009900">++#define SM_PLLOSC_OFFSET                        1</font>
<font color="#009900">++#define SM_PLLOSC_SIZE                          1</font>
<font color="#009900">++#define SM_PLLOPT_OFFSET                        2</font>
<font color="#009900">++#define SM_PLLOPT_SIZE                          3</font>
<font color="#009900">++#define SM_PLLDIV_OFFSET                        8</font>
<font color="#009900">++#define SM_PLLDIV_SIZE                          8</font>
<font color="#009900">++#define SM_PLLMUL_OFFSET                        16</font>
<font color="#009900">++#define SM_PLLMUL_SIZE                          8</font>
<font color="#009900">++#define SM_PLLCOUNT_OFFSET                      24</font>
<font color="#009900">++#define SM_PLLCOUNT_SIZE                        6</font>
<font color="#009900">++#define SM_PLLTEST_OFFSET                       31</font>
<font color="#009900">++#define SM_PLLTEST_SIZE                         1</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_PLL1 */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_VCTRL */</font>
<font color="#009900">++#define SM_VAUTO_OFFSET                         0</font>
<font color="#009900">++#define SM_VAUTO_SIZE                           1</font>
<font color="#009900">++#define SM_PM_VCTRL_VAL_OFFSET                  8</font>
<font color="#009900">++#define SM_PM_VCTRL_VAL_SIZE                    7</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_VMREF */</font>
<font color="#009900">++#define SM_REFSEL_OFFSET                        0</font>
<font color="#009900">++#define SM_REFSEL_SIZE                          4</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_VMV */</font>
<font color="#009900">++#define SM_PM_VMV_VAL_OFFSET                    0</font>
<font color="#009900">++#define SM_PM_VMV_VAL_SIZE                      8</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_IER */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_IDR */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_IMR */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_ISR */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_ICR */</font>
<font color="#009900">++#define SM_LOCK0_OFFSET                         0</font>
<font color="#009900">++#define SM_LOCK0_SIZE                           1</font>
<font color="#009900">++#define SM_LOCK1_OFFSET                         1</font>
<font color="#009900">++#define SM_LOCK1_SIZE                           1</font>
<font color="#009900">++#define SM_WAKE_OFFSET                          2</font>
<font color="#009900">++#define SM_WAKE_SIZE                            1</font>
<font color="#009900">++#define SM_VOK_OFFSET                           3</font>
<font color="#009900">++#define SM_VOK_SIZE                             1</font>
<font color="#009900">++#define SM_VMRDY_OFFSET                         4</font>
<font color="#009900">++#define SM_VMRDY_SIZE                           1</font>
<font color="#009900">++#define SM_CKRDY_OFFSET                         5</font>
<font color="#009900">++#define SM_CKRDY_SIZE                           1</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in PM_GCCTRL */</font>
<font color="#009900">++#define SM_OSCSEL_OFFSET                        0</font>
<font color="#009900">++#define SM_OSCSEL_SIZE                          1</font>
<font color="#009900">++#define SM_PLLSEL_OFFSET                        1</font>
<font color="#009900">++#define SM_PLLSEL_SIZE                          1</font>
<font color="#009900">++#define SM_CEN_OFFSET                           2</font>
<font color="#009900">++#define SM_CEN_SIZE                             1</font>
<font color="#009900">++#define SM_CPC_OFFSET                           3</font>
<font color="#009900">++#define SM_CPC_SIZE                             1</font>
<font color="#009900">++#define SM_DIVEN_OFFSET                         4</font>
<font color="#009900">++#define SM_DIVEN_SIZE                           1</font>
<font color="#009900">++#define SM_DIV_OFFSET                           8</font>
<font color="#009900">++#define SM_DIV_SIZE                             8</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in RTC_CTRL */</font>
<font color="#009900">++#define SM_PCLR_OFFSET                          1</font>
<font color="#009900">++#define SM_PCLR_SIZE                            1</font>
<font color="#009900">++#define SM_TOPEN_OFFSET                         2</font>
<font color="#009900">++#define SM_TOPEN_SIZE                           1</font>
<font color="#009900">++#define SM_CLKEN_OFFSET                         3</font>
<font color="#009900">++#define SM_CLKEN_SIZE                           1</font>
<font color="#009900">++#define SM_PSEL_OFFSET                          8</font>
<font color="#009900">++#define SM_PSEL_SIZE                            16</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in RTC_VAL */</font>
<font color="#009900">++#define SM_RTC_VAL_VAL_OFFSET                   0</font>
<font color="#009900">++#define SM_RTC_VAL_VAL_SIZE                     31</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in RTC_TOP */</font>
<font color="#009900">++#define SM_RTC_TOP_VAL_OFFSET                   0</font>
<font color="#009900">++#define SM_RTC_TOP_VAL_SIZE                     32</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in RTC_IER */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in RTC_IDR */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in RTC_IMR */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in RTC_ISR */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in RTC_ICR */</font>
<font color="#009900">++#define SM_TOPI_OFFSET                          0</font>
<font color="#009900">++#define SM_TOPI_SIZE                            1</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in WDT_CTRL */</font>
<font color="#009900">++#define SM_KEY_OFFSET                           24</font>
<font color="#009900">++#define SM_KEY_SIZE                             8</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in WDT_CLR */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in WDT_EXT */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in RC_RCAUSE */</font>
<font color="#009900">++#define SM_POR_OFFSET                           0</font>
<font color="#009900">++#define SM_POR_SIZE                             1</font>
<font color="#009900">++#define SM_BOD_OFFSET                           1</font>
<font color="#009900">++#define SM_BOD_SIZE                             1</font>
<font color="#009900">++#define SM_EXT_OFFSET                           2</font>
<font color="#009900">++#define SM_EXT_SIZE                             1</font>
<font color="#009900">++#define SM_WDT_OFFSET                           3</font>
<font color="#009900">++#define SM_WDT_SIZE                             1</font>
<font color="#009900">++#define SM_NTAE_OFFSET                          4</font>
<font color="#009900">++#define SM_NTAE_SIZE                            1</font>
<font color="#009900">++#define SM_SERP_OFFSET                          5</font>
<font color="#009900">++#define SM_SERP_SIZE                            1</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in EIM_IER */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in EIM_IDR */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in EIM_IMR */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in EIM_ISR */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in EIM_ICR */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in EIM_MODE */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in EIM_EDGE */</font>
<font color="#009900">++#define SM_INT0_OFFSET                          0</font>
<font color="#009900">++#define SM_INT0_SIZE                            1</font>
<font color="#009900">++#define SM_INT1_OFFSET                          1</font>
<font color="#009900">++#define SM_INT1_SIZE                            1</font>
<font color="#009900">++#define SM_INT2_OFFSET                          2</font>
<font color="#009900">++#define SM_INT2_SIZE                            1</font>
<font color="#009900">++#define SM_INT3_OFFSET                          3</font>
<font color="#009900">++#define SM_INT3_SIZE                            1</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in EIM_LEVEL */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in EIM_TEST */</font>
<font color="#009900">++#define SM_TESTEN_OFFSET                        31</font>
<font color="#009900">++#define SM_TESTEN_SIZE                          1</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bitfields in EIM_NMIC */</font>
<font color="#009900">++#define SM_EN_OFFSET                            0</font>
<font color="#009900">++#define SM_EN_SIZE                              1</font>
<font color="#009900">++</font>
<font color="#009900">++/* Bit manipulation macros */</font>
<font color="#009900">++#define SM_BIT(name)                            (1 &lt;&lt; SM_##name##_OFFSET)</font>
<font color="#009900">++#define SM_BF(name,value)                       (((value) &amp; ((1 &lt;&lt; SM_##name##_SIZE) - 1)) &lt;&lt; SM_##name##_OFFSET)</font>
<font color="#009900">++#define SM_BFEXT(name,value)                    (((value) &gt;&gt; SM_##name##_OFFSET) &amp; ((1 &lt;&lt; SM_##name##_SIZE) - 1))</font>
<font color="#009900">++#define SM_BFINS(name,value,old)                (((old) &amp; ~(((1 &lt;&lt; SM_##name##_SIZE) - 1) &lt;&lt; SM_##name##_OFFSET)) | SM_BF(name,value))</font>
<font color="#009900">++</font>
<font color="#009900">++/* Register access macros */</font>
<font color="#009900">++#define sm_readl(port,reg)                      readl((port)-&gt;regs + SM_##reg)</font>
<font color="#009900">++#define sm_writel(port,reg,value)               writel((value), (port)-&gt;regs + SM_##reg)</font>
<font color="#009900">++</font>
<font color="#009900">++#endif /* __ASM_AVR32_SM_H__ */</font>
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot-1.1.4/at32stk1000/atstk1000-add-lcd-and-spi-to-config.patch        174d54cdd69afafd05d72a0fd0c8751d0976a599</font>
<font color="#009900">+++ packages/u-boot/u-boot-1.1.4/at32stk1000/atstk1000-add-lcd-and-spi-to-config.patch        174d54cdd69afafd05d72a0fd0c8751d0976a599</font>
<font color="#0000FF">@@ -0,0 +1,124 @@</font>
<font color="#009900">+Index: u-boot-orig/include/configs/atstk1002.h</font>
<font color="#009900">+===================================================================</font>
<font color="#009900">+--- u-boot-orig.orig/include/configs/atstk1002.h        2007-01-05 15:58:53.000000000 +0100</font>
<font color="#009900">++++ u-boot-orig/include/configs/atstk1002.h        2007-01-05 16:04:50.000000000 +0100</font>
<font color="#009900">+@@ -32,6 +32,10 @@</font>
<font color="#009900">+ </font>
<font color="#009900">+ #define CONFIG_ATSTK1000_EXT_FLASH        1</font>
<font color="#009900">+ </font>
<font color="#009900">++/* Handy macros for making strings */</font>
<font color="#009900">++#define xstringify(x) #x</font>
<font color="#009900">++#define stringify(x) xstringify(x)</font>
<font color="#009900">++</font>
<font color="#009900">+ /*</font>
<font color="#009900">+  * Timer clock frequency. We're using the CPU-internal COUNT register</font>
<font color="#009900">+  * for this, so this is equivalent to the CPU core clock frequency</font>
<font color="#009900">+@@ -68,10 +72,39 @@</font>
<font color="#009900">+ #define CFG_USART1                        1</font>
<font color="#009900">+ #define CFG_MMCI                        1</font>
<font color="#009900">+ #define CFG_MACB0                        1</font>
<font color="#009900">+-#define CFG_MACB1                        1</font>
<font color="#009900">++/* #define CFG_MACB1                        1 */</font>
<font color="#009900">++</font>
<font color="#009900">++/* Enable SPI support */</font>
<font color="#009900">++#define CONFIG_SPI                        1</font>
<font color="#009900">++#define CONFIG_ATMEL_SPI                1</font>
<font color="#009900">++#define CFG_SPI0                        1</font>
<font color="#009900">++</font>
<font color="#009900">++/* Enable LCD support */</font>
<font color="#009900">++#define CFG_DMAC                        1</font>
<font color="#009900">++#define CFG_LCDC                        1</font>
<font color="#009900">++#define CONFIG_LCD                        1</font>
<font color="#009900">++#define CONFIG_ATMEL_LCDC                1</font>
<font color="#009900">++#define CONFIG_DISPLAY_LTV350QV                1</font>
<font color="#009900">++</font>
<font color="#009900">++/* Setup LCD */</font>
<font color="#009900">++#define LCD_BPP                                LCD_COLOR24</font>
<font color="#009900">++/* CFG_SDRAM_BASE + 0x00500000 */</font>
<font color="#009900">++#define CFG_LCD_BASE                        0x10500000</font>
<font color="#009900">++#define CFG_WHITE_ON_BLACK                1</font>
<font color="#009900">++#define CONFIG_VIDEO_BMP_GZIP                1</font>
<font color="#009900">++#define CFG_VIDEO_LOGO_MAX_SIZE                262144 /* &gt; 320 * 240 * 3 */</font>
<font color="#009900">++/* #define CONFIG_SPLASH_SCREEN                1 */</font>
<font color="#009900">+ </font>
<font color="#009900">+ #define CFG_CONSOLE_UART_DEV                DEVICE_USART1</font>
<font color="#009900">+ </font>
<font color="#009900">++/* Define to force consol on serial */</font>
<font color="#009900">++/* #define CFG_CONSOLE_ALLWAYS_UART        1 */</font>
<font color="#009900">++#ifdef CFG_CONSOLE_ALLWAYS_UART</font>
<font color="#009900">++#define CFG_CONSOLE_IS_IN_ENV                1</font>
<font color="#009900">++#define CFG_CONSOLE_OVERWRITE_ROUTINE        1</font>
<font color="#009900">++#define CFG_CONSOLE_ENV_OVERWRITE        1</font>
<font color="#009900">++#endif</font>
<font color="#009900">++</font>
<font color="#009900">+ /* User serviceable stuff */</font>
<font color="#009900">+ #define CONFIG_CMDLINE_TAG                1</font>
<font color="#009900">+ #define CONFIG_SETUP_MEMORY_TAGS        1</font>
<font color="#009900">+@@ -80,11 +113,17 @@</font>
<font color="#009900">+ #define CONFIG_STACKSIZE                (2048)</font>
<font color="#009900">+ </font>
<font color="#009900">+ #define CONFIG_BAUDRATE                        115200</font>
<font color="#009900">++</font>
<font color="#009900">++#ifdef CFG_LCD_BASE</font>
<font color="#009900">+ #define CONFIG_BOOTARGS                                                        \</font>
<font color="#009900">+-        "console=ttyUS0 root=/dev/mmcblk0p1 fbmem=600k"</font>
<font color="#009900">+-#define CONFIG_BOOTCOMMAND                                                \</font>
<font color="#009900">+-        "mmcinit; ext2load mmc 0:1 0x90400000 /uImage; bootm 0x90400000"</font>
<font color="#009900">++        "console=ttyS0 root=/dev/mmcblk0p1 fbmem=600k@" stringify(CFG_LCD_BASE)</font>
<font color="#009900">++#else</font>
<font color="#009900">++#define CONFIG_BOOTARGS                                                        \</font>
<font color="#009900">++        "console=ttyS0 root=/dev/mmcblk0p1 fbmem=600k"</font>
<font color="#009900">++#endif</font>
<font color="#009900">+ </font>
<font color="#009900">++#define CONFIG_BOOTCOMMAND                                                \</font>
<font color="#009900">++        "mmcinit; ext2load mmc 0:1 /uImage; bootm"</font>
<font color="#009900">+ #define CONFIG_BOOTDELAY                2</font>
<font color="#009900">+ #define CONFIG_AUTOBOOT                        1</font>
<font color="#009900">+ </font>
<font color="#009900">+@@ -144,7 +183,7 @@</font>
<font color="#009900">+                                          /* | CFG_CMD_DIAG */                \</font>
<font color="#009900">+                                          /* | CFG_CMD_HWFLOW */                \</font>
<font color="#009900">+                                          /* | CFG_CMD_SAVES */                \</font>
<font color="#009900">+-                                         /* | CFG_CMD_SPI */                \</font>
<font color="#009900">++                                         | CFG_CMD_SPI                        \</font>
<font color="#009900">+                                          /* | CFG_CMD_PING */                \</font>
<font color="#009900">+                                          | CFG_CMD_MMC                        \</font>
<font color="#009900">+                                          /* | CFG_CMD_FAT */                \</font>
<font color="#009900">+@@ -152,6 +191,7 @@</font>
<font color="#009900">+                                          /* | CFG_CMD_ITEST */                \</font>
<font color="#009900">+                                          | CFG_CMD_EXT2                        \</font>
<font color="#009900">+                                          | CFG_CMD_JFFS2                \</font>
<font color="#009900">++                                         | CFG_CMD_BMP                        \</font>
<font color="#009900">+                 )</font>
<font color="#009900">+ </font>
<font color="#009900">+ #include &lt;cmd_confdefs.h&gt;</font>
<font color="#009900">+@@ -201,7 +241,7 @@</font>
<font color="#009900">+ #define CFG_INIT_SP_ADDR                (CFG_INTRAM_BASE + CFG_INTRAM_SIZE)</font>
<font color="#009900">+ </font>
<font color="#009900">+ #ifdef CONFIG_ATSTK1000</font>
<font color="#009900">+-# define CFG_MALLOC_LEN                        (256*1024)</font>
<font color="#009900">++# define CFG_MALLOC_LEN                        (512*1024)</font>
<font color="#009900">+ # define CFG_MALLOC_END                                                        \</font>
<font color="#009900">+         ({                                                                \</font>
<font color="#009900">+                 DECLARE_GLOBAL_DATA_PTR;                                \</font>
<font color="#009900">+@@ -213,7 +253,7 @@</font>
<font color="#009900">+ # define CFG_DMA_ALLOC_END                (CFG_MALLOC_START)</font>
<font color="#009900">+ # define CFG_DMA_ALLOC_START                (CFG_DMA_ALLOC_END - CFG_DMA_ALLOC_LEN)</font>
<font color="#009900">+ /* Allow 2MB for the kernel run-time image */</font>
<font color="#009900">+-# define CFG_LOAD_ADDR                        (CFG_SDRAM_BASE + 0x00200000)</font>
<font color="#009900">++# define CFG_LOAD_ADDR                        (CFG_SDRAM_BASE + 0x00250000)</font>
<font color="#009900">+ # define CFG_BOOTPARAMS_LEN                (16 * 1024)</font>
<font color="#009900">+ #else</font>
<font color="#009900">+ # define CFG_MALLOC_LEN                        (8*1024)</font>
<font color="#009900">+Index: u-boot-orig/board/atstk1000/atstk1000.c</font>
<font color="#009900">+===================================================================</font>
<font color="#009900">+--- u-boot-orig.orig/board/atstk1000/atstk1000.c        2007-01-05 16:02:33.000000000 +0100</font>
<font color="#009900">++++ u-boot-orig/board/atstk1000/atstk1000.c        2007-01-05 16:04:00.000000000 +0100</font>
<font color="#009900">+@@ -52,3 +52,7 @@</font>
<font color="#009900">+         gd-&gt;bd-&gt;bi_phy_id[0] = 0x10;</font>
<font color="#009900">+         gd-&gt;bd-&gt;bi_phy_id[1] = 0x11;</font>
<font color="#009900">+ }</font>
<font color="#009900">++</font>
<font color="#009900">++#ifdef CFG_CONSOLE_ALLWAYS_UART</font>
<font color="#009900">++int overwrite_console(void) { return 1; }</font>
<font color="#009900">++#endif</font>
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot-1.1.4/at32stk1000/atstk1000-ltv350qv-display-support.patch        c9bf5bf83f39696ee9f981ed85f847334f28c2b1</font>
<font color="#009900">+++ packages/u-boot/u-boot-1.1.4/at32stk1000/atstk1000-ltv350qv-display-support.patch        c9bf5bf83f39696ee9f981ed85f847334f28c2b1</font>
<font color="#0000FF">@@ -0,0 +1,163 @@</font>
<font color="#009900">+diff -uprN u-boot-orig/board/atstk1000/ltv350qv.c u-boot/board/atstk1000/ltv350qv.c</font>
<font color="#009900">+--- u-boot-orig/board/atstk1000/ltv350qv.c        1970-01-01 01:00:00.000000000 +0100</font>
<font color="#009900">++++ u-boot/board/atstk1000/ltv350qv.c        2007-01-02 15:17:32.000000000 +0100</font>
<font color="#009900">+@@ -0,0 +1,147 @@</font>
<font color="#009900">++/*</font>
<font color="#009900">++ * Copyright (C) 2005-2006 Atmel Corporation</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * See file CREDITS for list of people who contributed to this</font>
<font color="#009900">++ * project.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * This program is free software; you can redistribute it and/or</font>
<font color="#009900">++ * modify it under the terms of the GNU General Public License as</font>
<font color="#009900">++ * published by the Free Software Foundation; either version 2 of</font>
<font color="#009900">++ * the License, or (at your option) any later version.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * This program is distributed in the hope that it will be useful,</font>
<font color="#009900">++ * but WITHOUT ANY WARRANTY; without even the implied warranty of</font>
<font color="#009900">++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</font>
<font color="#009900">++ * GNU General Public License for more details.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * You should have received a copy of the GNU General Public License</font>
<font color="#009900">++ * along with this program; if not, write to the Free Software</font>
<font color="#009900">++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,</font>
<font color="#009900">++ * MA 02111-1307 USA</font>
<font color="#009900">++ */</font>
<font color="#009900">++#include &lt;common.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++#ifdef CONFIG_LCD</font>
<font color="#009900">++#ifndef CONFIG_SPI</font>
<font color="#009900">++#error No SPI controller for LCD setup, enable CFG_SPI</font>
<font color="#009900">++#endif</font>
<font color="#009900">++</font>
<font color="#009900">++#include &lt;spi.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++#ifdef CONFIG_ATMEL_SPI</font>
<font color="#009900">++#include &lt;atmel_spi.h&gt;</font>
<font color="#009900">++#endif</font>
<font color="#009900">++</font>
<font color="#009900">++static int ltv350qv_write_reg(u8 reg, u16 val)</font>
<font color="#009900">++{</font>
<font color="#009900">++        int ret;</font>
<font color="#009900">++        u8 buffer[3];</font>
<font color="#009900">++</font>
<font color="#009900">++        buffer[0] = 0x74;</font>
<font color="#009900">++        buffer[1] = 0x00;</font>
<font color="#009900">++        buffer[2] = reg &amp; 0x7f;</font>
<font color="#009900">++</font>
<font color="#009900">++        ret = spi_write(&amp;buffer[0], 1, &amp;buffer[1], 2);</font>
<font color="#009900">++        if (ret != 3) {</font>
<font color="#009900">++                printf("spi_write returned %d\n", ret);</font>
<font color="#009900">++                return -1;</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        buffer[0] = 0x76;</font>
<font color="#009900">++        buffer[1] = val &gt;&gt; 8;</font>
<font color="#009900">++        buffer[2] = val;</font>
<font color="#009900">++</font>
<font color="#009900">++        ret = spi_write(&amp;buffer[0], 1, &amp;buffer[1], 2);</font>
<font color="#009900">++        if (ret != 3) {</font>
<font color="#009900">++                printf("spi_write returned %d\n", ret);</font>
<font color="#009900">++                return -1;</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        return 0;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++#define write_reg(reg, val)                                \</font>
<font color="#009900">++        do {                                                \</font>
<font color="#009900">++                ret = ltv350qv_write_reg(reg, val);        \</font>
<font color="#009900">++                if (ret)                                \</font>
<font color="#009900">++                        goto out;                        \</font>
<font color="#009900">++        } while (0)</font>
<font color="#009900">++</font>
<font color="#009900">++void ltv350qv_power_on(void)</font>
<font color="#009900">++{</font>
<font color="#009900">++        int ret;</font>
<font color="#009900">++</font>
<font color="#009900">++#ifdef CONFIG_ATMEL_SPI</font>
<font color="#009900">++        spi_select_chip(1);</font>
<font color="#009900">++#endif</font>
<font color="#009900">++</font>
<font color="#009900">++        debug ("ltv350qv: do power on sequence\n");</font>
<font color="#009900">++</font>
<font color="#009900">++        /* write startup procedure */</font>
<font color="#009900">++        write_reg(9, 0x0000);</font>
<font color="#009900">++        udelay(15000);</font>
<font color="#009900">++        write_reg(9, 0x4000);</font>
<font color="#009900">++        write_reg(10, 0x2000);</font>
<font color="#009900">++        write_reg(9, 0x4055);</font>
<font color="#009900">++        udelay(55000);</font>
<font color="#009900">++        write_reg(1, 0x409d);</font>
<font color="#009900">++        write_reg(2, 0x0204);</font>
<font color="#009900">++        write_reg(3, 0x0100);</font>
<font color="#009900">++        write_reg(4, 0x3000);</font>
<font color="#009900">++        write_reg(5, 0x4003);</font>
<font color="#009900">++        write_reg(6, 0x000a);</font>
<font color="#009900">++        write_reg(7, 0x0021);</font>
<font color="#009900">++        write_reg(8, 0x0c00);</font>
<font color="#009900">++        write_reg(10, 0x0103);</font>
<font color="#009900">++        write_reg(11, 0x0301);</font>
<font color="#009900">++        write_reg(12, 0x1f0f);</font>
<font color="#009900">++        write_reg(13, 0x1f0f);</font>
<font color="#009900">++        write_reg(14, 0x0707);</font>
<font color="#009900">++        write_reg(15, 0x0307);</font>
<font color="#009900">++        write_reg(16, 0x0707);</font>
<font color="#009900">++        write_reg(17, 0x0000);</font>
<font color="#009900">++        write_reg(18, 0x0004);</font>
<font color="#009900">++        write_reg(19, 0x0000);</font>
<font color="#009900">++</font>
<font color="#009900">++        udelay(20000);</font>
<font color="#009900">++        write_reg(9, 0x4a55);</font>
<font color="#009900">++        write_reg(5, 0x5003);</font>
<font color="#009900">++</font>
<font color="#009900">++        debug ("ltv350qv: power on sequence done\n");</font>
<font color="#009900">++out:</font>
<font color="#009900">++        return;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void ltv350qv_power_off(void)</font>
<font color="#009900">++{</font>
<font color="#009900">++        int ret;</font>
<font color="#009900">++</font>
<font color="#009900">++#ifdef CONFIG_ATMEL_SPI</font>
<font color="#009900">++        spi_select_chip(1);</font>
<font color="#009900">++#endif</font>
<font color="#009900">++</font>
<font color="#009900">++        debug ("ltv350qv: do power off sequence\n");</font>
<font color="#009900">++        /* GON -&gt; 0, POC -&gt; 0 */</font>
<font color="#009900">++        write_reg(9, 0x4055);</font>
<font color="#009900">++        /* DSC -&gt; 0 */</font>
<font color="#009900">++        write_reg(5, 0x4003);</font>
<font color="#009900">++        /* VCOMG -&gt; 0 */</font>
<font color="#009900">++        write_reg(10, 0x2103);</font>
<font color="#009900">++</font>
<font color="#009900">++        udelay(1000000);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* AP[2:0] -&gt; 000 */</font>
<font color="#009900">++        write_reg(9, 0x4050);</font>
<font color="#009900">++</font>
<font color="#009900">++        debug ("ltv350qv: power off sequence done\n");</font>
<font color="#009900">++out:</font>
<font color="#009900">++        return;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void ltv350qv_init(void)</font>
<font color="#009900">++{</font>
<font color="#009900">++        debug ("ltv350qv: initializing LTV350QV panel\n");</font>
<font color="#009900">++        ltv350qv_power_on();</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++#endif</font>
<font color="#009900">+diff -uprN u-boot-orig/board/atstk1000/Makefile u-boot/board/atstk1000/Makefile</font>
<font color="#009900">+--- u-boot-orig/board/atstk1000/Makefile        2007-01-01 19:26:46.000000000 +0100</font>
<font color="#009900">++++ u-boot/board/atstk1000/Makefile        2007-01-01 16:23:12.000000000 +0100</font>
<font color="#009900">+@@ -30,7 +30,7 @@ endif</font>
<font color="#009900">+ </font>
<font color="#009900">+ LIB                := lib$(BOARD).a</font>
<font color="#009900">+ </font>
<font color="#009900">+-SRC                := $(BOARD).c $(DAUGHTERBOARD).c eth.c flash.c</font>
<font color="#009900">++SRC                := $(BOARD).c $(DAUGHTERBOARD).c eth.c flash.c ltv350qv.c</font>
<font color="#009900">+ SRC                += spi.c</font>
<font color="#009900">+ OBJS                := $(addsuffix .o,$(basename $(SRC)))</font>
<font color="#009900">+ </font>
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot-1.1.4/at32stk1000/atstk1000-spi-support.patch        a1ebfc54a394239909ae56d84e754d7ec80bbac3</font>
<font color="#009900">+++ packages/u-boot/u-boot-1.1.4/at32stk1000/atstk1000-spi-support.patch        a1ebfc54a394239909ae56d84e754d7ec80bbac3</font>
<font color="#0000FF">@@ -0,0 +1,98 @@</font>
<font color="#009900">+diff -uprN u-boot-orig/board/atstk1000/spi.c u-boot/board/atstk1000/spi.c</font>
<font color="#009900">+--- u-boot-orig/board/atstk1000/spi.c        1970-01-01 01:00:00.000000000 +0100</font>
<font color="#009900">++++ u-boot/board/atstk1000/spi.c        2007-01-03 08:46:36.000000000 +0100</font>
<font color="#009900">+@@ -0,0 +1,83 @@</font>
<font color="#009900">++/*</font>
<font color="#009900">++ * Copyright (C) 2006 Atmel Corporation</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * See file CREDITS for list of people who contributed to this</font>
<font color="#009900">++ * project.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * This program is free software; you can redistribute it and/or</font>
<font color="#009900">++ * modify it under the terms of the GNU General Public License as</font>
<font color="#009900">++ * published by the Free Software Foundation; either version 2 of</font>
<font color="#009900">++ * the License, or (at your option) any later version.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * This program is distributed in the hope that it will be useful,</font>
<font color="#009900">++ * but WITHOUT ANY WARRANTY; without even the implied warranty of</font>
<font color="#009900">++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</font>
<font color="#009900">++ * GNU General Public License for more details.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * You should have received a copy of the GNU General Public License</font>
<font color="#009900">++ * along with this program; if not, write to the Free Software</font>
<font color="#009900">++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,</font>
<font color="#009900">++ * MA 02111-1307 USA</font>
<font color="#009900">++ */</font>
<font color="#009900">++#include &lt;common.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++#include &lt;spi.h&gt;</font>
<font color="#009900">++#include &lt;asm/io.h&gt;</font>
<font color="#009900">++#include &lt;atmel_spi.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++extern void ltv350qv_init(void);</font>
<font color="#009900">++</font>
<font color="#009900">++static struct spi_options_t cs0 = {</font>
<font color="#009900">++        .reg                = 0,</font>
<font color="#009900">++        .baudrate        = 200000,</font>
<font color="#009900">++        .bits                = 8,</font>
<font color="#009900">++        .spck_delay        = 0,</font>
<font color="#009900">++        .trans_delay        = 0,</font>
<font color="#009900">++        .stay_act        = 1,</font>
<font color="#009900">++        .spi_mode        = 3,</font>
<font color="#009900">++};</font>
<font color="#009900">++static struct spi_options_t cs1 = {</font>
<font color="#009900">++        .reg                = 1,</font>
<font color="#009900">++        .baudrate        = 1500000,</font>
<font color="#009900">++        .bits                = 8,</font>
<font color="#009900">++        .spck_delay        = 0,</font>
<font color="#009900">++        .trans_delay        = 0,</font>
<font color="#009900">++        .stay_act        = 1,</font>
<font color="#009900">++        .spi_mode        = 3,</font>
<font color="#009900">++};</font>
<font color="#009900">++</font>
<font color="#009900">++void spi_chipsel_dac(int cs)</font>
<font color="#009900">++{</font>
<font color="#009900">++        if (cs) spi_select_chip(0);</font>
<font color="#009900">++        else spi_unselect_chip(0);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void spi_chipsel_lcd(int cs)</font>
<font color="#009900">++{</font>
<font color="#009900">++        if (cs) spi_select_chip(1);</font>
<font color="#009900">++        else spi_unselect_chip(1);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++spi_chipsel_type spi_chipsel[] = {</font>
<font color="#009900">++        spi_chipsel_dac,</font>
<font color="#009900">++        spi_chipsel_lcd,</font>
<font color="#009900">++};</font>
<font color="#009900">++int spi_chipsel_cnt = sizeof(spi_chipsel) / sizeof(spi_chipsel[0]);</font>
<font color="#009900">++</font>
<font color="#009900">++void board_init_spi(void)</font>
<font color="#009900">++{</font>
<font color="#009900">++        int ret;</font>
<font color="#009900">++</font>
<font color="#009900">++        spi_init();</font>
<font color="#009900">++</font>
<font color="#009900">++        ret = spi_setup_chip_reg(&amp;cs0, 45000000); /* TODO: get APBA speed */</font>
<font color="#009900">++        if (ret)</font>
<font color="#009900">++                return;</font>
<font color="#009900">++        ret = spi_setup_chip_reg(&amp;cs1, 45000000); /* TODO: get APBA speed */</font>
<font color="#009900">++        if (ret)</font>
<font color="#009900">++                return;</font>
<font color="#009900">++</font>
<font color="#009900">++        spi_enable();</font>
<font color="#009900">++</font>
<font color="#009900">++        ltv350qv_init();</font>
<font color="#009900">++}</font>
<font color="#009900">+diff -uprN u-boot-orig/board/atstk1000/Makefile u-boot/board/atstk1000/Makefile</font>
<font color="#009900">+--- u-boot-orig/board/atstk1000/Makefile        2007-01-01 19:26:46.000000000 +0100</font>
<font color="#009900">++++ u-boot/board/atstk1000/Makefile        2007-01-01 16:23:12.000000000 +0100</font>
<font color="#009900">+@@ -31,6 +31,7 @@ endif</font>
<font color="#009900">+ LIB                := lib$(BOARD).a</font>
<font color="#009900">+ </font>
<font color="#009900">+ SRC                := $(BOARD).c $(DAUGHTERBOARD).c eth.c flash.c</font>
<font color="#009900">++SRC                += spi.c</font>
<font color="#009900">+ OBJS                := $(addsuffix .o,$(basename $(SRC)))</font>
<font color="#009900">+ </font>
<font color="#009900">+ .PHONY: all</font>
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot-1.1.4/at32stk1000/avr32-boards-fix-flash-read.patch        0687dbba73b78ddd353f834a58a26b02ce8f8ef8</font>
<font color="#009900">+++ packages/u-boot/u-boot-1.1.4/at32stk1000/avr32-boards-fix-flash-read.patch        0687dbba73b78ddd353f834a58a26b02ce8f8ef8</font>
<font color="#0000FF">@@ -0,0 +1,120 @@</font>
<font color="#009900">+Index: u-boot-orig/board/atmel/ngw/flash.c</font>
<font color="#009900">+===================================================================</font>
<font color="#009900">+--- u-boot-orig.orig/board/atmel/ngw/flash.c        2007-01-03 11:31:44.000000000 +0100</font>
<font color="#009900">++++ u-boot-orig/board/atmel/ngw/flash.c        2007-01-03 11:33:13.000000000 +0100</font>
<font color="#009900">+@@ -161,7 +161,7 @@</font>
<font color="#009900">+ {</font>
<font color="#009900">+         unsigned long flags;</font>
<font color="#009900">+         uint16_t *base, *p, *s, *end;</font>
<font color="#009900">+-        uint16_t word, status;</font>
<font color="#009900">++        uint16_t word, status,status1;</font>
<font color="#009900">+         int ret = ERR_OK;</font>
<font color="#009900">+ </font>
<font color="#009900">+         if (addr &lt; info-&gt;start[0]</font>
<font color="#009900">+@@ -196,20 +196,36 @@</font>
<font color="#009900">+                 sync_write_buffer();</font>
<font color="#009900">+ </font>
<font color="#009900">+                 /* Wait for completion */</font>
<font color="#009900">+-                do {</font>
<font color="#009900">++        status1 = readw(p);</font>
<font color="#009900">++        do {</font>
<font color="#009900">+                         /* TODO: Timeout */</font>
<font color="#009900">+-                        status = readw(p);</font>
<font color="#009900">+-                } while ((status != word) &amp;&amp; !(status &amp; 0x28));</font>
<font color="#009900">+-</font>
<font color="#009900">++            status = status1;</font>
<font color="#009900">++            status1=readw(p);</font>
<font color="#009900">++        } while ( ((status ^ status1) &amp; 0x40) &amp;&amp; // toggle bit has toggled</font>
<font color="#009900">++                 !(status1 &amp; 0x28) // status is "working"</font>
<font color="#009900">++                );</font>
<font color="#009900">++</font>
<font color="#009900">++        // We'll need to check once again for toggle bit because the toggle bit</font>
<font color="#009900">++        // may stop toggling as I/O5 changes to "1" (ref at49bv642.pdf p9)</font>
<font color="#009900">++        status1=readw(p);</font>
<font color="#009900">++        status=readw(p);</font>
<font color="#009900">++        if ((status ^ status1) &amp; 0x40)</font>
<font color="#009900">++        {</font>
<font color="#009900">++                        printf("Flash write error at address 0x%p: 0x%02x != 0x%02x\n",</font>
<font color="#009900">++                               p, status,word);</font>
<font color="#009900">++            ret = ERR_PROG_ERROR;</font>
<font color="#009900">++            writew(0xf0, base);</font>
<font color="#009900">++            readw(base);</font>
<font color="#009900">++            break;</font>
<font color="#009900">++        }</font>
<font color="#009900">++        // we can now verify status==word if we want to.</font>
<font color="#009900">++</font>
<font color="#009900">++        // is this Product ID Exit command really required??</font>
<font color="#009900">++        // --If configuration is 00 (the default) the device is allready in read mode,</font>
<font color="#009900">++        // and the instruction is not required!</font>
<font color="#009900">+                 writew(0xf0, base);</font>
<font color="#009900">+                 readw(base);</font>
<font color="#009900">+ </font>
<font color="#009900">+-                if (status != word) {</font>
<font color="#009900">+-                        printf("Flash write error at address 0x%p: 0x%02x\n",</font>
<font color="#009900">+-                               p, status);</font>
<font color="#009900">+-                        ret = ERR_PROG_ERROR;</font>
<font color="#009900">+-                        break;</font>
<font color="#009900">+-                }</font>
<font color="#009900">+         }</font>
<font color="#009900">+ </font>
<font color="#009900">+         local_irq_restore(flags);</font>
<font color="#009900">+Index: u-boot-orig/board/atstk1000/flash.c</font>
<font color="#009900">+===================================================================</font>
<font color="#009900">+--- u-boot-orig.orig/board/atstk1000/flash.c        2007-01-03 11:31:44.000000000 +0100</font>
<font color="#009900">++++ u-boot-orig/board/atstk1000/flash.c        2007-01-03 11:33:13.000000000 +0100</font>
<font color="#009900">+@@ -160,7 +160,7 @@</font>
<font color="#009900">+ {</font>
<font color="#009900">+         unsigned long flags;</font>
<font color="#009900">+         uint16_t *base, *p, *s, *end;</font>
<font color="#009900">+-        uint16_t word, status;</font>
<font color="#009900">++        uint16_t word, status,status1;</font>
<font color="#009900">+         int ret = ERR_OK;</font>
<font color="#009900">+ </font>
<font color="#009900">+         if (addr &lt; info-&gt;start[0]</font>
<font color="#009900">+@@ -195,20 +195,36 @@</font>
<font color="#009900">+                 sync_write_buffer();</font>
<font color="#009900">+ </font>
<font color="#009900">+                 /* Wait for completion */</font>
<font color="#009900">+-                do {</font>
<font color="#009900">++        status1 = readw(p);</font>
<font color="#009900">++        do {</font>
<font color="#009900">+                         /* TODO: Timeout */</font>
<font color="#009900">+-                        status = readw(p);</font>
<font color="#009900">+-                } while ((status != word) &amp;&amp; !(status &amp; 0x28));</font>
<font color="#009900">+-</font>
<font color="#009900">++            status = status1;</font>
<font color="#009900">++            status1=readw(p);</font>
<font color="#009900">++        } while ( ((status ^ status1) &amp; 0x40) &amp;&amp; // toggle bit has toggled</font>
<font color="#009900">++                 !(status1 &amp; 0x28) // status is "working"</font>
<font color="#009900">++                );</font>
<font color="#009900">++</font>
<font color="#009900">++        // We'll need to check once again for toggle bit because the toggle bit</font>
<font color="#009900">++        // may stop toggling as I/O5 changes to "1" (ref at49bv642.pdf p9)</font>
<font color="#009900">++        status1=readw(p);</font>
<font color="#009900">++        status=readw(p);</font>
<font color="#009900">++        if ((status ^ status1) &amp; 0x40)</font>
<font color="#009900">++        {</font>
<font color="#009900">++                        printf("Flash write error at address 0x%p: 0x%02x != 0x%02x\n",</font>
<font color="#009900">++                               p, status,word);</font>
<font color="#009900">++            ret = ERR_PROG_ERROR;</font>
<font color="#009900">++            writew(0xf0, base);</font>
<font color="#009900">++            readw(base);</font>
<font color="#009900">++            break;</font>
<font color="#009900">++        }</font>
<font color="#009900">++        // we can now verify status==word if we want to.</font>
<font color="#009900">++</font>
<font color="#009900">++        // is this Product ID Exit command really required??</font>
<font color="#009900">++        // --If configuration is 00 (the default) the device is allready in read mode,</font>
<font color="#009900">++        // and the instruction is not required!</font>
<font color="#009900">+                 writew(0xf0, base);</font>
<font color="#009900">+                 readw(base);</font>
<font color="#009900">+ </font>
<font color="#009900">+-                if (status != word) {</font>
<font color="#009900">+-                        printf("Flash write error at address 0x%p: 0x%02x\n",</font>
<font color="#009900">+-                               p, status);</font>
<font color="#009900">+-                        ret = ERR_PROG_ERROR;</font>
<font color="#009900">+-                        break;</font>
<font color="#009900">+-                }</font>
<font color="#009900">+         }</font>
<font color="#009900">+ </font>
<font color="#009900">+         local_irq_restore(flags);</font>
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot-1.1.4/at32stk1000/cmd-bmp-add-gzip-compressed-bmp.patch        80f5abd078487b50df179cad3b3d1a0f382b56ae</font>
<font color="#009900">+++ packages/u-boot/u-boot-1.1.4/at32stk1000/cmd-bmp-add-gzip-compressed-bmp.patch        80f5abd078487b50df179cad3b3d1a0f382b56ae</font>
<font color="#0000FF">@@ -0,0 +1,90 @@</font>
<font color="#009900">+Index: u-boot-orig/common/cmd_bmp.c</font>
<font color="#009900">+===================================================================</font>
<font color="#009900">+--- u-boot-orig.orig/common/cmd_bmp.c        2007-01-05 14:50:55.000000000 +0100</font>
<font color="#009900">++++ u-boot-orig/common/cmd_bmp.c        2007-01-05 15:59:21.000000000 +0100</font>
<font color="#009900">+@@ -176,13 +176,83 @@</font>
<font color="#009900">+  */</font>
<font color="#009900">+ static int bmp_display(ulong addr, int x, int y)</font>
<font color="#009900">+ {</font>
<font color="#009900">++        int ret;</font>
<font color="#009900">++#ifdef CONFIG_VIDEO_BMP_GZIP</font>
<font color="#009900">++        bmp_image_t *bmp = (bmp_image_t *)addr;</font>
<font color="#009900">++        unsigned char *dst = NULL;</font>
<font color="#009900">++        ulong len;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (!((bmp-&gt;header.signature[0]=='B') &amp;&amp;</font>
<font color="#009900">++              (bmp-&gt;header.signature[1]=='M'))) {</font>
<font color="#009900">++</font>
<font color="#009900">++                /*</font>
<font color="#009900">++                 * Decompress bmp image</font>
<font color="#009900">++                 */</font>
<font color="#009900">++                len = CFG_VIDEO_LOGO_MAX_SIZE;</font>
<font color="#009900">++                dst = malloc(CFG_VIDEO_LOGO_MAX_SIZE);</font>
<font color="#009900">++                if (dst == NULL) {</font>
<font color="#009900">++                        printf("Error: malloc in gunzip failed!\n");</font>
<font color="#009900">++                        return(1);</font>
<font color="#009900">++                }</font>
<font color="#009900">++                if (gunzip(dst, CFG_VIDEO_LOGO_MAX_SIZE, (uchar *)addr, &amp;len) != 0) {</font>
<font color="#009900">++                        free(dst);</font>
<font color="#009900">++                        printf("There is no valid bmp file at the given address\n");</font>
<font color="#009900">++                        return(1);</font>
<font color="#009900">++                }</font>
<font color="#009900">++                if (len == CFG_VIDEO_LOGO_MAX_SIZE) {</font>
<font color="#009900">++                        printf("Image could be truncated "</font>
<font color="#009900">++                                        "(increase CFG_VIDEO_LOGO_MAX_SIZE)!\n");</font>
<font color="#009900">++                }</font>
<font color="#009900">++</font>
<font color="#009900">++                /*</font>
<font color="#009900">++                 * Set addr to decompressed image</font>
<font color="#009900">++                 */</font>
<font color="#009900">++                bmp = (bmp_image_t *)dst;</font>
<font color="#009900">++</font>
<font color="#009900">++                /*</font>
<font color="#009900">++                 * Check for bmp mark 'BM'</font>
<font color="#009900">++                 */</font>
<font color="#009900">++                if (!((bmp-&gt;header.signature[0] == 'B') &amp;&amp;</font>
<font color="#009900">++                      (bmp-&gt;header.signature[1] == 'M'))) {</font>
<font color="#009900">++                        printf("There is no valid bmp file at the given address\n");</font>
<font color="#009900">++                        free(dst);</font>
<font color="#009900">++                        return(1);</font>
<font color="#009900">++                }</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dst) {</font>
<font color="#009900">++                addr = (ulong)dst;</font>
<font color="#009900">++        }</font>
<font color="#009900">++#endif /* CONFIG_VIDEO_BMP_GZIP */</font>
<font color="#009900">++</font>
<font color="#009900">+ #if defined(CONFIG_LCD)</font>
<font color="#009900">+         extern int lcd_display_bitmap (ulong, int, int);</font>
<font color="#009900">+ </font>
<font color="#009900">+-        return (lcd_display_bitmap (addr, x, y));</font>
<font color="#009900">++        ret = lcd_display_bitmap (addr, x, y);</font>
<font color="#009900">++        if (ret) {</font>
<font color="#009900">++#ifdef CONFIG_VIDEO_BMP_GZIP</font>
<font color="#009900">++                free(dst);</font>
<font color="#009900">++#endif</font>
<font color="#009900">++                return ret;</font>
<font color="#009900">++        }</font>
<font color="#009900">++#ifdef CONFIG_VIDEO_BMP_GZIP</font>
<font color="#009900">++                free(dst);</font>
<font color="#009900">++#endif</font>
<font color="#009900">++        return 0;</font>
<font color="#009900">++</font>
<font color="#009900">+ #elif defined(CONFIG_VIDEO)</font>
<font color="#009900">+         extern int video_display_bitmap (ulong, int, int);</font>
<font color="#009900">+-        return (video_display_bitmap (addr, x, y));</font>
<font color="#009900">++        ret = video_display_bitmap (addr, x, y);</font>
<font color="#009900">++        if (ret) {</font>
<font color="#009900">++#ifdef CONFIG_VIDEO_BMP_GZIP</font>
<font color="#009900">++                free(dst);</font>
<font color="#009900">++#endif</font>
<font color="#009900">++                return ret;</font>
<font color="#009900">++        }</font>
<font color="#009900">++#ifdef CONFIG_VIDEO_BMP_GZIP</font>
<font color="#009900">++                free(dst);</font>
<font color="#009900">++#endif</font>
<font color="#009900">++        return 0;</font>
<font color="#009900">+ #else</font>
<font color="#009900">+ # error bmp_display() requires CONFIG_LCD or CONFIG_VIDEO</font>
<font color="#009900">+ #endif</font>
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot-1.1.4/at32stk1000/fix-mmc-data-timeout.patch        70b1b5f471490abbf21b2c173a9863794616545c</font>
<font color="#009900">+++ packages/u-boot/u-boot-1.1.4/at32stk1000/fix-mmc-data-timeout.patch        70b1b5f471490abbf21b2c173a9863794616545c</font>
<font color="#0000FF">@@ -0,0 +1,101 @@</font>
<font color="#009900">+---</font>
<font color="#009900">+ cpu/at32ap7xxx/mmc.c |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++</font>
<font color="#009900">+ 1 file changed, 58 insertions(+)</font>
<font color="#009900">+</font>
<font color="#009900">+Index: u-boot-1.1.4-avr32/cpu/at32ap7xxx/mmc.c</font>
<font color="#009900">+===================================================================</font>
<font color="#009900">+--- u-boot-1.1.4-avr32.orig/cpu/at32ap7xxx/mmc.c        2007-01-30 14:53:33.000000000 +0100</font>
<font color="#009900">++++ u-boot-1.1.4-avr32/cpu/at32ap7xxx/mmc.c        2007-01-30 15:45:37.000000000 +0100</font>
<font color="#009900">+@@ -67,6 +67,7 @@ struct mmci {</font>
<font color="#009900">+         unsigned int rca;</font>
<font color="#009900">+         block_dev_desc_t blkdev;</font>
<font color="#009900">+         const struct device *dev;</font>
<font color="#009900">++        int card_is_sd;</font>
<font color="#009900">+ };</font>
<font color="#009900">+ </font>
<font color="#009900">+ struct mmci mmci = {</font>
<font color="#009900">+@@ -391,6 +392,8 @@ static int sd_init_card(struct mmci *mmc</font>
<font color="#009900">+         mmc-&gt;rca = resp[0] &gt;&gt; 16;</font>
<font color="#009900">+         if (verbose)</font>
<font color="#009900">+                 printf("SD Card detected (RCA %u)\n", mmc-&gt;rca);</font>
<font color="#009900">++        mmc-&gt;card_is_sd = 1;</font>
<font color="#009900">++</font>
<font color="#009900">+         return 0;</font>
<font color="#009900">+ }</font>
<font color="#009900">+ </font>
<font color="#009900">+@@ -425,6 +428,57 @@ static int mmc_init_card(struct mmci *mm</font>
<font color="#009900">+         return ret;</font>
<font color="#009900">+ }</font>
<font color="#009900">+ </font>
<font color="#009900">++static void mci_set_data_timeout(struct mmci *mmc, struct mmc_csd *csd)</font>
<font color="#009900">++{</font>
<font color="#009900">++        static const unsigned int dtomul_to_shift[] = {</font>
<font color="#009900">++                0, 4, 7, 8, 10, 12, 16, 20,</font>
<font color="#009900">++        };</font>
<font color="#009900">++        static const unsigned int taac_exp[] = {</font>
<font color="#009900">++                1, 10, 100, 1000, 10000, 100000, 1000000, 10000000,</font>
<font color="#009900">++        };</font>
<font color="#009900">++        static const unsigned int taac_mant[] = {</font>
<font color="#009900">++                0,  10, 12, 13, 15, 60, 25, 30,</font>
<font color="#009900">++                35, 40, 45, 50, 55, 60, 70, 80,</font>
<font color="#009900">++        };</font>
<font color="#009900">++        unsigned int timeout_ns, timeout_clks;</font>
<font color="#009900">++        unsigned int e, m;</font>
<font color="#009900">++        unsigned int dtocyc, dtomul;</font>
<font color="#009900">++        u32 dtor;</font>
<font color="#009900">++</font>
<font color="#009900">++        e = csd-&gt;taac &amp; 0x07;</font>
<font color="#009900">++        m = (csd-&gt;taac &gt;&gt; 3) &amp; 0x0f;</font>
<font color="#009900">++</font>
<font color="#009900">++        timeout_ns = (taac_exp[e] * taac_mant[m] + 9) / 10;</font>
<font color="#009900">++        timeout_clks = csd-&gt;nsac * 100;</font>
<font color="#009900">++</font>
<font color="#009900">++        timeout_clks += (((timeout_ns + 9) / 10)</font>
<font color="#009900">++                         * ((CFG_MMC_CLK_PP + 99999) / 100000) + 9999) / 10000;</font>
<font color="#009900">++        if (!mmc-&gt;card_is_sd)</font>
<font color="#009900">++                timeout_clks *= 10;</font>
<font color="#009900">++        else</font>
<font color="#009900">++                timeout_clks *= 100;</font>
<font color="#009900">++</font>
<font color="#009900">++        dtocyc = timeout_clks;</font>
<font color="#009900">++        dtomul = 0;</font>
<font color="#009900">++        while (dtocyc &gt; 15 &amp;&amp; dtomul &lt; 8) {</font>
<font color="#009900">++                dtomul++;</font>
<font color="#009900">++                dtocyc = timeout_clks &gt;&gt; dtomul_to_shift[dtomul];</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        if (dtomul &gt;= 8) {</font>
<font color="#009900">++                dtomul = 7;</font>
<font color="#009900">++                dtocyc = 15;</font>
<font color="#009900">++                puts("Warning: Using maximum data timeout\n");</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        dtor = (MMCI_MKBF(MCI_DTOR_DTOMUL, dtomul)</font>
<font color="#009900">++                | MMCI_MKBF(MCI_DTOR_DTOCYC, dtocyc));</font>
<font color="#009900">++        mmci_writel(&amp;mmci, MCI_DTOR, dtor);</font>
<font color="#009900">++</font>
<font color="#009900">++        printf("mmc: Using %u cycles data timeout (DTOR=0x%x)\n",</font>
<font color="#009900">++               dtocyc &lt;&lt; dtomul_to_shift[dtomul], dtor);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">+ int mmc_init(int verbose)</font>
<font color="#009900">+ {</font>
<font color="#009900">+         struct mmc_cid cid;</font>
<font color="#009900">+@@ -443,6 +497,8 @@ int mmc_init(int verbose)</font>
<font color="#009900">+         mmci_writel(&amp;mmci, MCI_IDR, ~0UL);</font>
<font color="#009900">+         mci_set_mode(CFG_MMC_CLK_OD, CFG_MMC_BLKLEN);</font>
<font color="#009900">+ </font>
<font color="#009900">++        mmci.card_is_sd = 0;</font>
<font color="#009900">++</font>
<font color="#009900">+         ret = sd_init_card(&amp;mmci, &amp;cid, verbose);</font>
<font color="#009900">+         if (ret) {</font>
<font color="#009900">+                 mmci.rca = MMC_DEFAULT_RCA;</font>
<font color="#009900">+@@ -458,6 +514,8 @@ int mmc_init(int verbose)</font>
<font color="#009900">+         if (verbose)</font>
<font color="#009900">+                 mmc_dump_csd(&amp;csd);</font>
<font color="#009900">+ </font>
<font color="#009900">++        mci_set_data_timeout(&amp;mmci, &amp;csd);</font>
<font color="#009900">++</font>
<font color="#009900">+         /* Initialize the blockdev structure */</font>
<font color="#009900">+         sprintf(mmci.blkdev.vendor,</font>
<font color="#009900">+                  "Man %02x%04x Snr %08x",</font>
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot-1.1.4/at32stk1000/lcd-add-24-bpp-support-and-atmel-lcdc-support.patch        055ca79e80417f03df63174afb7a707a2e98e5a6</font>
<font color="#009900">+++ packages/u-boot/u-boot-1.1.4/at32stk1000/lcd-add-24-bpp-support-and-atmel-lcdc-support.patch        055ca79e80417f03df63174afb7a707a2e98e5a6</font>
<font color="#0000FF">@@ -0,0 +1,670 @@</font>
<font color="#009900">+Index: u-boot-1.1.4/common/lcd.c</font>
<font color="#009900">+===================================================================</font>
<font color="#009900">+--- u-boot-1.1.4.orig/common/lcd.c        2007-01-11 15:25:03.000000000 +0100</font>
<font color="#009900">++++ u-boot-1.1.4/common/lcd.c        2007-01-11 15:28:54.000000000 +0100</font>
<font color="#009900">+@@ -34,6 +34,7 @@</font>
<font color="#009900">+ #include &lt;command.h&gt;</font>
<font color="#009900">+ #include &lt;version.h&gt;</font>
<font color="#009900">+ #include &lt;stdarg.h&gt;</font>
<font color="#009900">++#include &lt;malloc.h&gt;</font>
<font color="#009900">+ #include &lt;linux/types.h&gt;</font>
<font color="#009900">+ #include &lt;devices.h&gt;</font>
<font color="#009900">+ #if defined(CONFIG_POST)</font>
<font color="#009900">+@@ -81,6 +82,9 @@</font>
<font color="#009900">+ extern void lcd_enable (void);</font>
<font color="#009900">+ static void *lcd_logo (void);</font>
<font color="#009900">+ </font>
<font color="#009900">++#ifdef CONFIG_VIDEO_BMP_GZIP</font>
<font color="#009900">++extern int gunzip(void *, int, unsigned char *, unsigned long *);</font>
<font color="#009900">++#endif</font>
<font color="#009900">+ </font>
<font color="#009900">+ #if LCD_BPP == LCD_COLOR8</font>
<font color="#009900">+ extern void lcd_setcolreg (ushort regno,</font>
<font color="#009900">+@@ -112,9 +116,12 @@</font>
<font color="#009900">+ #if 1</font>
<font color="#009900">+         /* Copy up rows ignoring the first one */</font>
<font color="#009900">+         memcpy (CONSOLE_ROW_FIRST, CONSOLE_ROW_SECOND, CONSOLE_SCROLL_SIZE);</font>
<font color="#009900">+-</font>
<font color="#009900">+         /* Clear the last one */</font>
<font color="#009900">+         memset (CONSOLE_ROW_LAST, COLOR_MASK(lcd_color_bg), CONSOLE_ROW_SIZE);</font>
<font color="#009900">++#ifdef CONFIG_AVR32</font>
<font color="#009900">++        /* flush cache */</font>
<font color="#009900">++        dcache_clean_range(CONSOLE_ROW_FIRST, CONSOLE_SIZE);</font>
<font color="#009900">++#endif</font>
<font color="#009900">+ #else</font>
<font color="#009900">+         /*</font>
<font color="#009900">+          * Poor attempt to optimize speed by moving "long"s.</font>
<font color="#009900">+@@ -228,10 +235,23 @@</font>
<font color="#009900">+ static void lcd_drawchars (ushort x, ushort y, uchar *str, int count)</font>
<font color="#009900">+ {</font>
<font color="#009900">+         uchar *dest;</font>
<font color="#009900">+-        ushort off, row;</font>
<font color="#009900">++        ushort off, row, bpp, bytespp;</font>
<font color="#009900">++#ifdef CONFIG_AVR32</font>
<font color="#009900">++        uchar *dest_start;</font>
<font color="#009900">++#endif</font>
<font color="#009900">+ </font>
<font color="#009900">+-        dest = (uchar *)(lcd_base + y * lcd_line_length + x * (1 &lt;&lt; LCD_BPP) / 8);</font>
<font color="#009900">+-        off  = x * (1 &lt;&lt; LCD_BPP) % 8;</font>
<font color="#009900">++#if (LCD_BPP &gt; LCD_COLOR32)</font>
<font color="#009900">++        bpp = LCD_BPP;</font>
<font color="#009900">++#else</font>
<font color="#009900">++        bpp = 1&lt;&lt;LCD_BPP;</font>
<font color="#009900">++#endif</font>
<font color="#009900">++        bytespp = (bpp + 7) / 8;</font>
<font color="#009900">++</font>
<font color="#009900">++        dest = (uchar *)(lcd_base + y * lcd_line_length + x * bytespp);</font>
<font color="#009900">++        off  = x * bytespp * 8 % 8;</font>
<font color="#009900">++#ifdef CONFIG_AVR32</font>
<font color="#009900">++        dest_start = dest;</font>
<font color="#009900">++#endif</font>
<font color="#009900">+ </font>
<font color="#009900">+         for (row=0;  row &lt; VIDEO_FONT_HEIGHT;  ++row, dest += lcd_line_length)  {</font>
<font color="#009900">+                 uchar *s = str;</font>
<font color="#009900">+@@ -261,7 +281,17 @@</font>
<font color="#009900">+                                 bits &lt;&lt;= 1;</font>
<font color="#009900">+                         }</font>
<font color="#009900">+ #elif LCD_BPP == LCD_COLOR16</font>
<font color="#009900">+-                        for (c=0; c&lt;16; ++c) {</font>
<font color="#009900">++                        for (c=0; c&lt;8; ++c) {</font>
<font color="#009900">++                                *d++ = (bits &amp; 0x80) ?</font>
<font color="#009900">++                                                lcd_color_fg : lcd_color_bg;</font>
<font color="#009900">++                                bits &lt;&lt;= 1;</font>
<font color="#009900">++                        }</font>
<font color="#009900">++#elif LCD_BPP == LCD_COLOR24</font>
<font color="#009900">++                        for (c=0; c&lt;8; ++c) {</font>
<font color="#009900">++                                *d++ = (bits &amp; 0x80) ?</font>
<font color="#009900">++                                                lcd_color_fg : lcd_color_bg;</font>
<font color="#009900">++                                *d++ = (bits &amp; 0x80) ?</font>
<font color="#009900">++                                                lcd_color_fg : lcd_color_bg;</font>
<font color="#009900">+                                 *d++ = (bits &amp; 0x80) ?</font>
<font color="#009900">+                                                 lcd_color_fg : lcd_color_bg;</font>
<font color="#009900">+                                 bits &lt;&lt;= 1;</font>
<font color="#009900">+@@ -271,6 +301,10 @@</font>
<font color="#009900">+ #if LCD_BPP == LCD_MONOCHROME</font>
<font color="#009900">+                 *d  = rest | (*d &amp; ((1 &lt;&lt; (8-off)) - 1));</font>
<font color="#009900">+ #endif</font>
<font color="#009900">++#ifdef CONFIG_AVR32</font>
<font color="#009900">++                /* flush cache */</font>
<font color="#009900">++                dcache_clean_range(dest_start, (int)(d - dest_start));</font>
<font color="#009900">++#endif</font>
<font color="#009900">+         }</font>
<font color="#009900">+ }</font>
<font color="#009900">+ </font>
<font color="#009900">+@@ -346,7 +380,11 @@</font>
<font color="#009900">+ </font>
<font color="#009900">+         lcd_base = (void *)(gd-&gt;fb_base);</font>
<font color="#009900">+ </font>
<font color="#009900">+-        lcd_line_length = (panel_info.vl_col * NBITS (panel_info.vl_bpix)) / 8;</font>
<font color="#009900">++        if (panel_info.vl_bpix &gt; LCD_COLOR32)</font>
<font color="#009900">++                lcd_line_length = (panel_info.vl_col * panel_info.vl_bpix) / 8;</font>
<font color="#009900">++        else</font>
<font color="#009900">++                lcd_line_length = (panel_info.vl_col</font>
<font color="#009900">++                                * NBITS (panel_info.vl_bpix)) / 8;</font>
<font color="#009900">+ </font>
<font color="#009900">+         lcd_init (lcd_base);                /* LCD initialization */</font>
<font color="#009900">+ </font>
<font color="#009900">+@@ -407,6 +445,11 @@</font>
<font color="#009900">+         console_col = 0;</font>
<font color="#009900">+         console_row = 0;</font>
<font color="#009900">+ </font>
<font color="#009900">++#ifdef CONFIG_AVR32</font>
<font color="#009900">++        /* flush cache */</font>
<font color="#009900">++        dcache_clean_range(CONSOLE_ROW_FIRST, CONSOLE_SIZE);</font>
<font color="#009900">++#endif</font>
<font color="#009900">++</font>
<font color="#009900">+         return (0);</font>
<font color="#009900">+ }</font>
<font color="#009900">+ </font>
<font color="#009900">+@@ -453,10 +496,17 @@</font>
<font color="#009900">+ ulong lcd_setmem (ulong addr)</font>
<font color="#009900">+ {</font>
<font color="#009900">+         ulong size;</font>
<font color="#009900">+-        int line_length = (panel_info.vl_col * NBITS (panel_info.vl_bpix)) / 8;</font>
<font color="#009900">++        int bpp;</font>
<font color="#009900">++        int line_length;</font>
<font color="#009900">++        if (panel_info.vl_bpix &gt; LCD_COLOR32)</font>
<font color="#009900">++                bpp = panel_info.vl_bpix;</font>
<font color="#009900">++        else</font>
<font color="#009900">++                bpp = NBITS (panel_info.vl_bpix);</font>
<font color="#009900">++</font>
<font color="#009900">++        line_length = (panel_info.vl_col * bpp) / 8;</font>
<font color="#009900">+ </font>
<font color="#009900">+         debug ("LCD panel info: %d x %d, %d bit/pix\n",</font>
<font color="#009900">+-                panel_info.vl_col, panel_info.vl_row, NBITS (panel_info.vl_bpix) );</font>
<font color="#009900">++                panel_info.vl_col, panel_info.vl_row, bpp);</font>
<font color="#009900">+ </font>
<font color="#009900">+         size = line_length * panel_info.vl_row;</font>
<font color="#009900">+ </font>
<font color="#009900">+@@ -475,14 +525,22 @@</font>
<font color="#009900">+ </font>
<font color="#009900">+ static void lcd_setfgcolor (int color)</font>
<font color="#009900">+ {</font>
<font color="#009900">++#if LCD_BPP &lt;= LCD_COLOR8</font>
<font color="#009900">+         lcd_color_fg = color &amp; 0x0F;</font>
<font color="#009900">++#else</font>
<font color="#009900">++        lcd_color_fg = color;</font>
<font color="#009900">++#endif</font>
<font color="#009900">+ }</font>
<font color="#009900">+ </font>
<font color="#009900">+ /*----------------------------------------------------------------------*/</font>
<font color="#009900">+ </font>
<font color="#009900">+ static void lcd_setbgcolor (int color)</font>
<font color="#009900">+ {</font>
<font color="#009900">++#if LCD_BPP &lt;= LCD_COLOR8</font>
<font color="#009900">+         lcd_color_bg = color &amp; 0x0F;</font>
<font color="#009900">++#else</font>
<font color="#009900">++        lcd_color_bg = color;</font>
<font color="#009900">++#endif</font>
<font color="#009900">+ }</font>
<font color="#009900">+ </font>
<font color="#009900">+ /*----------------------------------------------------------------------*/</font>
<font color="#009900">+@@ -509,7 +567,11 @@</font>
<font color="#009900">+ #ifdef CONFIG_LCD_LOGO</font>
<font color="#009900">+ void bitmap_plot (int x, int y)</font>
<font color="#009900">+ {</font>
<font color="#009900">++#if !defined(CONFIG_ATMEL_LCDC)</font>
<font color="#009900">+         ushort *cmap;</font>
<font color="#009900">++#else</font>
<font color="#009900">++        ulong *cmap;</font>
<font color="#009900">++#endif</font>
<font color="#009900">+         ushort i, j;</font>
<font color="#009900">+         uchar *bmap;</font>
<font color="#009900">+         uchar *fb;</font>
<font color="#009900">+@@ -519,6 +581,8 @@</font>
<font color="#009900">+ #elif defined(CONFIG_MPC823)</font>
<font color="#009900">+         volatile immap_t *immr = (immap_t *) CFG_IMMR;</font>
<font color="#009900">+         volatile cpm8xx_t *cp = &amp;(immr-&gt;im_cpm);</font>
<font color="#009900">++#elif defined(CONFIG_ATMEL_LCDC)</font>
<font color="#009900">++        struct lcdc_info *cinfo = panel_info.lcdc;</font>
<font color="#009900">+ #endif</font>
<font color="#009900">+ </font>
<font color="#009900">+         debug ("Logo: width %d  height %d  colors %d  cmap %d\n",</font>
<font color="#009900">+@@ -534,6 +598,8 @@</font>
<font color="#009900">+                 cmap = (ushort *)fbi-&gt;palette;</font>
<font color="#009900">+ #elif defined(CONFIG_MPC823)</font>
<font color="#009900">+                 cmap = (ushort *)&amp;(cp-&gt;lcd_cmap[BMP_LOGO_OFFSET*sizeof(ushort)]);</font>
<font color="#009900">++#elif defined(CONFIG_ATMEL_LCDC)</font>
<font color="#009900">++                cmap = (ulong *)(cinfo-&gt;palette) + BMP_LOGO_OFFSET;</font>
<font color="#009900">+ #endif</font>
<font color="#009900">+ </font>
<font color="#009900">+                 WATCHDOG_RESET();</font>
<font color="#009900">+@@ -541,10 +607,19 @@</font>
<font color="#009900">+                 /* Set color map */</font>
<font color="#009900">+                 for (i=0; i&lt;(sizeof(bmp_logo_palette)/(sizeof(ushort))); ++i) {</font>
<font color="#009900">+                         ushort colreg = bmp_logo_palette[i];</font>
<font color="#009900">++#if defined(CONFIG_ATMEL_LCDC)</font>
<font color="#009900">++                        /* convert to match palette registers */</font>
<font color="#009900">++                        uchar red   = (colreg &gt;&gt; 8) &amp; 0x0f;</font>
<font color="#009900">++                        uchar green = (colreg &gt;&gt; 4) &amp; 0x0f;</font>
<font color="#009900">++                        uchar blue  = (colreg &gt;&gt; 0) &amp; 0x0f;</font>
<font color="#009900">++                        colreg  = (blue  &lt;&lt; 11);</font>
<font color="#009900">++                        colreg |= (green &lt;&lt; 6);</font>
<font color="#009900">++                        colreg |= (red   &lt;&lt; 1);</font>
<font color="#009900">++#endif</font>
<font color="#009900">+ #ifdef  CFG_INVERT_COLORS</font>
<font color="#009900">+-                        *cmap++ = 0xffff - colreg;</font>
<font color="#009900">++                        *(cmap++) = 0xffff - colreg;</font>
<font color="#009900">+ #else</font>
<font color="#009900">+-                        *cmap++ = colreg;</font>
<font color="#009900">++                        *(cmap++) = colreg;</font>
<font color="#009900">+ #endif</font>
<font color="#009900">+                 }</font>
<font color="#009900">+ </font>
<font color="#009900">+@@ -579,14 +654,16 @@</font>
<font color="#009900">+  */</font>
<font color="#009900">+ int lcd_display_bitmap(ulong bmp_image, int x, int y)</font>
<font color="#009900">+ {</font>
<font color="#009900">++#if !defined(CONFIG_ATMEL_LCDC)</font>
<font color="#009900">+         ushort *cmap;</font>
<font color="#009900">++#endif</font>
<font color="#009900">+         ushort i, j;</font>
<font color="#009900">+         uchar *fb;</font>
<font color="#009900">+         bmp_image_t *bmp=(bmp_image_t *)bmp_image;</font>
<font color="#009900">+         uchar *bmap;</font>
<font color="#009900">+         ushort padded_line;</font>
<font color="#009900">+         unsigned long width, height;</font>
<font color="#009900">+-        unsigned colors,bpix;</font>
<font color="#009900">++        unsigned colors,bpix,bpp,bytespp;</font>
<font color="#009900">+         unsigned long compression;</font>
<font color="#009900">+ #if defined(CONFIG_PXA250)</font>
<font color="#009900">+         struct pxafb_info *fbi = &amp;panel_info.pxa;</font>
<font color="#009900">+@@ -597,82 +674,126 @@</font>
<font color="#009900">+ </font>
<font color="#009900">+         if (!((bmp-&gt;header.signature[0]=='B') &amp;&amp;</font>
<font color="#009900">+                 (bmp-&gt;header.signature[1]=='M'))) {</font>
<font color="#009900">+-                printf ("Error: no valid bmp image at %lx\n", bmp_image);</font>
<font color="#009900">++                printf ("[LCD] No valid BMP image at 0x%08lx\n", bmp_image);</font>
<font color="#009900">+                 return 1;</font>
<font color="#009900">+-}</font>
<font color="#009900">++        }</font>
<font color="#009900">+ </font>
<font color="#009900">+         width = le32_to_cpu (bmp-&gt;header.width);</font>
<font color="#009900">+         height = le32_to_cpu (bmp-&gt;header.height);</font>
<font color="#009900">++        bpp = le16_to_cpu (bmp-&gt;header.bit_count);</font>
<font color="#009900">+         colors = 1&lt;&lt;le16_to_cpu (bmp-&gt;header.bit_count);</font>
<font color="#009900">+         compression = le32_to_cpu (bmp-&gt;header.compression);</font>
<font color="#009900">++        bytespp = (panel_info.vl_bpix + 7) / 8;</font>
<font color="#009900">+ </font>
<font color="#009900">+-        bpix = NBITS(panel_info.vl_bpix);</font>
<font color="#009900">++        if (panel_info.vl_bpix &gt; LCD_COLOR32)</font>
<font color="#009900">++                bpix = panel_info.vl_bpix;</font>
<font color="#009900">++        else</font>
<font color="#009900">++                bpix = NBITS(panel_info.vl_bpix);</font>
<font color="#009900">+ </font>
<font color="#009900">+-        if ((bpix != 1) &amp;&amp; (bpix != 8)) {</font>
<font color="#009900">++        if ((bpix != 1) &amp;&amp; (bpix != 8) &amp;&amp; (bpix != 24)) {</font>
<font color="#009900">+                 printf ("Error: %d bit/pixel mode not supported by U-Boot\n",</font>
<font color="#009900">+                         bpix);</font>
<font color="#009900">+                 return 1;</font>
<font color="#009900">+         }</font>
<font color="#009900">+ </font>
<font color="#009900">+-        if (bpix != le16_to_cpu(bmp-&gt;header.bit_count)) {</font>
<font color="#009900">++        if (bpix != bpp) {</font>
<font color="#009900">+                 printf ("Error: %d bit/pixel mode, but BMP has %d bit/pixel\n",</font>
<font color="#009900">+-                        bpix,</font>
<font color="#009900">+-                        le16_to_cpu(bmp-&gt;header.bit_count));</font>
<font color="#009900">++                        bpix, bpp);</font>
<font color="#009900">+                 return 1;</font>
<font color="#009900">+         }</font>
<font color="#009900">+ </font>
<font color="#009900">+-        debug ("Display-bmp: %d x %d  with %d colors\n",</font>
<font color="#009900">+-                (int)width, (int)height, (int)colors);</font>
<font color="#009900">++        debug ("Display-bmp: %d x %d with %d colors (%d bpp)\n",</font>
<font color="#009900">++                (int)width, (int)height, (int)colors, (int)bpp);</font>
<font color="#009900">+ </font>
<font color="#009900">+-        if (bpix==8) {</font>
<font color="#009900">++        if (bpix == 8) {</font>
<font color="#009900">+ #if defined(CONFIG_PXA250)</font>
<font color="#009900">+                 cmap = (ushort *)fbi-&gt;palette;</font>
<font color="#009900">+ #elif defined(CONFIG_MPC823)</font>
<font color="#009900">+                 cmap = (ushort *)&amp;(cp-&gt;lcd_cmap[255*sizeof(ushort)]);</font>
<font color="#009900">++#elif defined(CONFIG_ATMEL_LCDC)</font>
<font color="#009900">++                /* no need to have a palette link, we use lcd_setcolreg */</font>
<font color="#009900">+ #else</font>
<font color="#009900">+ # error "Don't know location of color map"</font>
<font color="#009900">+ #endif</font>
<font color="#009900">+ </font>
<font color="#009900">+                 /* Set color map */</font>
<font color="#009900">+                 for (i=0; i&lt;colors; ++i) {</font>
<font color="#009900">++#if LCP_BPP &lt;= LCD_COLOR8 /* palette only for 8 bpp and less */</font>
<font color="#009900">+                         bmp_color_table_entry_t cte = bmp-&gt;color_table[i];</font>
<font color="#009900">++#endif</font>
<font color="#009900">++#if !defined(CONFIG_ATMEL_LCDC)</font>
<font color="#009900">+                         ushort colreg =</font>
<font color="#009900">+                                 ( ((cte.red)   &lt;&lt; 8) &amp; 0xf800) |</font>
<font color="#009900">+                                 ( ((cte.green) &lt;&lt; 3) &amp; 0x07e0) |</font>
<font color="#009900">+                                 ( ((cte.blue)  &gt;&gt; 3) &amp; 0x001f) ;</font>
<font color="#009900">+ #ifdef CFG_INVERT_COLORS</font>
<font color="#009900">+-                        *cmap = 0xffff - colreg;</font>
<font color="#009900">+-#else</font>
<font color="#009900">+-                        *cmap = colreg;</font>
<font color="#009900">++                        colreg = 0xffff - colreg;</font>
<font color="#009900">+ #endif</font>
<font color="#009900">+ #if defined(CONFIG_PXA250)</font>
<font color="#009900">+-                        cmap++;</font>
<font color="#009900">++                        cmap[i] = colreg;</font>
<font color="#009900">+ #elif defined(CONFIG_MPC823)</font>
<font color="#009900">+-                        cmap--;</font>
<font color="#009900">++                        cmap[colors-i] = colreg;</font>
<font color="#009900">++#endif</font>
<font color="#009900">++#else /* CONFIG_ATMEL_LCDC */</font>
<font color="#009900">++#if LCD_BPP &lt;= LCD_COLOR8</font>
<font color="#009900">++                        lcd_setcolreg(i, cte.red, cte.green, cte.blue);</font>
<font color="#009900">++#endif</font>
<font color="#009900">+ #endif</font>
<font color="#009900">+                 }</font>
<font color="#009900">+         }</font>
<font color="#009900">+ </font>
<font color="#009900">+-        padded_line = (width&amp;0x3) ? ((width&amp;~0x3)+4) : (width);</font>
<font color="#009900">+-        if ((x + width)&gt;panel_info.vl_col)</font>
<font color="#009900">++        padded_line = (((width * bpp + 7) / 8) + 3) &amp; ~0x3;</font>
<font color="#009900">++        if ((x + width) &gt; panel_info.vl_col)</font>
<font color="#009900">+                 width = panel_info.vl_col - x;</font>
<font color="#009900">+-        if ((y + height)&gt;panel_info.vl_row)</font>
<font color="#009900">++        if ((y + height) &gt; panel_info.vl_row)</font>
<font color="#009900">+                 height = panel_info.vl_row - y;</font>
<font color="#009900">+ </font>
<font color="#009900">+         bmap = (uchar *)bmp + le32_to_cpu (bmp-&gt;header.data_offset);</font>
<font color="#009900">+-        fb   = (uchar *) (lcd_base +</font>
<font color="#009900">+-                (y + height - 1) * lcd_line_length + x);</font>
<font color="#009900">+-        for (i = 0; i &lt; height; ++i) {</font>
<font color="#009900">+-                WATCHDOG_RESET();</font>
<font color="#009900">+-                for (j = 0; j &lt; width ; j++)</font>
<font color="#009900">++        fb   = (uchar *) (lcd_base + (y + height - 1) * lcd_line_length + x);</font>
<font color="#009900">++</font>
<font color="#009900">++        switch (bpp) {</font>
<font color="#009900">++        case 24:</font>
<font color="#009900">++                for (i = 0; i &lt; height; ++i) {</font>
<font color="#009900">++                        WATCHDOG_RESET();</font>
<font color="#009900">++                        for (j = 0; j &lt; width; j++) {</font>
<font color="#009900">+ #if defined(CONFIG_PXA250)</font>
<font color="#009900">+-                        *(fb++)=*(bmap++);</font>
<font color="#009900">++#error 24 bpp support not added for PXA250</font>
<font color="#009900">++#elif defined(CONFIG_ATMEL_LCDC)</font>
<font color="#009900">++                                fb[0] = bmap[0];</font>
<font color="#009900">++                                fb[1] = bmap[1];</font>
<font color="#009900">++                                fb[2] = bmap[2];</font>
<font color="#009900">++                                fb += 3;</font>
<font color="#009900">++                                bmap += 3;</font>
<font color="#009900">+ #elif defined(CONFIG_MPC823)</font>
<font color="#009900">+-                        *(fb++)=255-*(bmap++);</font>
<font color="#009900">++#error 24 bpp support not added for MPC823</font>
<font color="#009900">+ #endif</font>
<font color="#009900">+-                bmap += (width - padded_line);</font>
<font color="#009900">+-                fb   -= (width + lcd_line_length);</font>
<font color="#009900">+-        }</font>
<font color="#009900">++                        }</font>
<font color="#009900">++                        bmap += (width * bytespp - padded_line);</font>
<font color="#009900">++                        fb   -= (width * bytespp + lcd_line_length);</font>
<font color="#009900">++                }</font>
<font color="#009900">++                break;</font>
<font color="#009900">++        case 1: /* pass through */</font>
<font color="#009900">++        case 8:</font>
<font color="#009900">++                for (i = 0; i &lt; height; ++i) {</font>
<font color="#009900">++                        WATCHDOG_RESET();</font>
<font color="#009900">++                        for (j = 0; j &lt; width; j++) {</font>
<font color="#009900">++#if defined(CONFIG_PXA250)</font>
<font color="#009900">++                                *(fb++)=*(bmap++);</font>
<font color="#009900">++#elif defined(CONFIG_ATMEL_LCDC)</font>
<font color="#009900">++                                *(fb++)=*(bmap++);</font>
<font color="#009900">++#elif defined(CONFIG_MPC823)</font>
<font color="#009900">++                                *(fb++)=255-*(bmap++);</font>
<font color="#009900">++#endif</font>
<font color="#009900">++                        }</font>
<font color="#009900">++                        bmap += (width * bytespp - padded_line);</font>
<font color="#009900">++                        fb   -= (width * bytespp + lcd_line_length);</font>
<font color="#009900">++                }</font>
<font color="#009900">++                break;</font>
<font color="#009900">++        default:</font>
<font color="#009900">++                break;</font>
<font color="#009900">++        };</font>
<font color="#009900">++</font>
<font color="#009900">++        /* TODO: flush fb */</font>
<font color="#009900">+ </font>
<font color="#009900">+         return (0);</font>
<font color="#009900">+ }</font>
<font color="#009900">+@@ -694,12 +815,68 @@</font>
<font color="#009900">+         static int do_splash = 1;</font>
<font color="#009900">+ </font>
<font color="#009900">+         if (do_splash &amp;&amp; (s = getenv("splashimage")) != NULL) {</font>
<font color="#009900">++#ifdef CONFIG_VIDEO_BMP_GZIP</font>
<font color="#009900">++                bmp_image_t *bmp;</font>
<font color="#009900">++                unsigned char *dst = NULL;</font>
<font color="#009900">++                ulong len;</font>
<font color="#009900">++#endif</font>
<font color="#009900">+                 addr = simple_strtoul(s, NULL, 16);</font>
<font color="#009900">+                 do_splash = 0;</font>
<font color="#009900">+ </font>
<font color="#009900">++#ifdef CONFIG_VIDEO_BMP_GZIP</font>
<font color="#009900">++                bmp = (bmp_image_t *)addr;</font>
<font color="#009900">++</font>
<font color="#009900">++                if (!((bmp-&gt;header.signature[0]=='B') &amp;&amp;</font>
<font color="#009900">++                      (bmp-&gt;header.signature[1]=='M'))) {</font>
<font color="#009900">++                        len = CFG_VIDEO_LOGO_MAX_SIZE;</font>
<font color="#009900">++                        dst = malloc(CFG_VIDEO_LOGO_MAX_SIZE);</font>
<font color="#009900">++                        if (dst == NULL) {</font>
<font color="#009900">++                                printf("[LCD] Malloc for gunzip failed!\n");</font>
<font color="#009900">++                                return ((void *)lcd_base);</font>
<font color="#009900">++                        }</font>
<font color="#009900">++                        if (gunzip(dst, CFG_VIDEO_LOGO_MAX_SIZE,</font>
<font color="#009900">++                                                (uchar *)addr, &amp;len) != 0) {</font>
<font color="#009900">++                                free(dst);</font>
<font color="#009900">++                                printf("[LCD] No valid BMP image at 0x%08lx\n",</font>
<font color="#009900">++                                                addr);</font>
<font color="#009900">++                                return ((void *)lcd_base);</font>
<font color="#009900">++                        }</font>
<font color="#009900">++                        if (len == CFG_VIDEO_LOGO_MAX_SIZE) {</font>
<font color="#009900">++                                printf("[LCD] Image could be truncated (increase "</font>
<font color="#009900">++                                                "CFG_VIDEO_LOGO_MAX_SIZE)!\n");</font>
<font color="#009900">++                        }</font>
<font color="#009900">++</font>
<font color="#009900">++                        /*</font>
<font color="#009900">++                         * Set addr to decompressed image</font>
<font color="#009900">++                         */</font>
<font color="#009900">++                        bmp = (bmp_image_t *)dst;</font>
<font color="#009900">++</font>
<font color="#009900">++                        /*</font>
<font color="#009900">++                         * Check for bmp mark 'BM'</font>
<font color="#009900">++                         */</font>
<font color="#009900">++                        if (!((bmp-&gt;header.signature[0] == 'B') &amp;&amp;</font>
<font color="#009900">++                              (bmp-&gt;header.signature[1] == 'M'))) {</font>
<font color="#009900">++                                printf("[LCD] No valid BMP image at 0x%08lx\n",</font>
<font color="#009900">++                                                addr);</font>
<font color="#009900">++                                free(dst);</font>
<font color="#009900">++                                return ((void *)lcd_base);</font>
<font color="#009900">++                        }</font>
<font color="#009900">++</font>
<font color="#009900">++                        addr = (ulong)dst;</font>
<font color="#009900">++                }</font>
<font color="#009900">++#endif</font>
<font color="#009900">+                 if (lcd_display_bitmap (addr, 0, 0) == 0) {</font>
<font color="#009900">++#ifdef CONFIG_VIDEO_BMP_GZIP</font>
<font color="#009900">++                        if (dst)</font>
<font color="#009900">++                                free(dst);</font>
<font color="#009900">++#endif</font>
<font color="#009900">+                         return ((void *)lcd_base);</font>
<font color="#009900">+                 }</font>
<font color="#009900">++</font>
<font color="#009900">++#ifdef CONFIG_VIDEO_BMP_GZIP</font>
<font color="#009900">++                if (dst)</font>
<font color="#009900">++                        free(dst);</font>
<font color="#009900">++#endif</font>
<font color="#009900">+         }</font>
<font color="#009900">+ #endif /* CONFIG_SPLASH_SCREEN */</font>
<font color="#009900">+ </font>
<font color="#009900">+Index: u-boot-1.1.4/include/lcd.h</font>
<font color="#009900">+===================================================================</font>
<font color="#009900">+--- u-boot-1.1.4.orig/include/lcd.h        2007-01-11 15:25:03.000000000 +0100</font>
<font color="#009900">++++ u-boot-1.1.4/include/lcd.h        2007-01-11 15:25:38.000000000 +0100</font>
<font color="#009900">+@@ -148,7 +148,159 @@</font>
<font color="#009900">+ </font>
<font color="#009900">+ extern vidinfo_t panel_info;</font>
<font color="#009900">+ </font>
<font color="#009900">+-#endif /* CONFIG_MPC823 or CONFIG_PXA250 */</font>
<font color="#009900">++#elif defined CONFIG_ATMEL_LCDC</font>
<font color="#009900">++struct lcdc_bitfield {</font>
<font color="#009900">++        u32 offset;        /* beginning of bitfield */</font>
<font color="#009900">++        u32 length;        /* length of bitfield */</font>
<font color="#009900">++        u32 msb_right;        /* != 0 : Most significant bit is right */</font>
<font color="#009900">++};</font>
<font color="#009900">++</font>
<font color="#009900">++struct lcdc_var_screeninfo {</font>
<font color="#009900">++        u32 xres;                        /* visible resolution                */</font>
<font color="#009900">++        u32 yres;</font>
<font color="#009900">++        u32 xres_virtual;                /* virtual resolution                */</font>
<font color="#009900">++        u32 yres_virtual;</font>
<font color="#009900">++        u32 xoffset;                        /* offset from virtual to visible */</font>
<font color="#009900">++        u32 yoffset;                        /* resolution                        */</font>
<font color="#009900">++</font>
<font color="#009900">++        u32 bits_per_pixel;                /* guess what                        */</font>
<font color="#009900">++        u32 grayscale;                        /* != 0 Graylevels instead of colors */</font>
<font color="#009900">++</font>
<font color="#009900">++        struct lcdc_bitfield red;        /* bitfield in fb mem if true color, */</font>
<font color="#009900">++        struct lcdc_bitfield green;        /* else only length is significant */</font>
<font color="#009900">++        struct lcdc_bitfield blue;</font>
<font color="#009900">++        struct lcdc_bitfield transp;        /* transparency                        */</font>
<font color="#009900">++</font>
<font color="#009900">++        u32 nonstd;                        /* != 0 Non standard pixel format */</font>
<font color="#009900">++</font>
<font color="#009900">++        u32 activate;                        /* see FB_ACTIVATE_*                */</font>
<font color="#009900">++</font>
<font color="#009900">++        u32 height;                        /* height of picture in mm    */</font>
<font color="#009900">++        u32 width;                        /* width of picture in mm     */</font>
<font color="#009900">++</font>
<font color="#009900">++        u32 accel_flags;                /* (OBSOLETE) see fb_info.flags */</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Timing: All values in pixclocks, except pixclock (of course) */</font>
<font color="#009900">++        u32 pixclock;                        /* pixel clock in ps (pico seconds) */</font>
<font color="#009900">++        u32 left_margin;                /* time from sync to picture        */</font>
<font color="#009900">++        u32 right_margin;                /* time from picture to sync        */</font>
<font color="#009900">++        u32 upper_margin;                /* time from sync to picture        */</font>
<font color="#009900">++        u32 lower_margin;</font>
<font color="#009900">++        u32 hsync_len;                /* length of horizontal sync        */</font>
<font color="#009900">++        u32 vsync_len;                /* length of vertical sync        */</font>
<font color="#009900">++        u32 sync;                        /* see FB_SYNC_*                */</font>
<font color="#009900">++        u32 vmode;                        /* see FB_VMODE_*                */</font>
<font color="#009900">++        u32 rotate;                        /* angle we rotate counter clockwise */</font>
<font color="#009900">++        u32 reserved[5];                /* Reserved for future compatibility */</font>
<font color="#009900">++};</font>
<font color="#009900">++</font>
<font color="#009900">++/*</font>
<font color="#009900">++ * Atmel LCDC DMA descriptor</font>
<font color="#009900">++ */</font>
<font color="#009900">++struct lcdc_dma_descriptor {</font>
<font color="#009900">++        u_long        fdadr;                /* Frame descriptor address register */</font>
<font color="#009900">++        u_long        fsadr;                /* Frame source address register */</font>
<font color="#009900">++        u_long        fidr;                /* Frame ID register */</font>
<font color="#009900">++        u_long        ldcmd;                /* Command register */</font>
<font color="#009900">++};</font>
<font color="#009900">++</font>
<font color="#009900">++/*</font>
<font color="#009900">++ * Atmel LCDC info</font>
<font color="#009900">++ */</font>
<font color="#009900">++struct lcdc_info {</font>
<font color="#009900">++        u_long        reg_lccr3;</font>
<font color="#009900">++        u_long        reg_lccr2;</font>
<font color="#009900">++        u_long        reg_lccr1;</font>
<font color="#009900">++        u_long        reg_lccr0;</font>
<font color="#009900">++        u_long        fdadr0;</font>
<font color="#009900">++        u_long        fdadr1;</font>
<font color="#009900">++</font>
<font color="#009900">++        void        *regs;</font>
<font color="#009900">++</font>
<font color="#009900">++        u_long        guard_time;</font>
<font color="#009900">++        u_long        xres;</font>
<font color="#009900">++        u_long        yres;</font>
<font color="#009900">++        u_long        xres_virtual;</font>
<font color="#009900">++        u_long        yres_virtual;</font>
<font color="#009900">++        u_long        bits_per_pixel;</font>
<font color="#009900">++        u_long        smem_start;</font>
<font color="#009900">++        u_long        line_length;</font>
<font color="#009900">++        u_long        visual;</font>
<font color="#009900">++</font>
<font color="#009900">++        u_long        pixclock;</font>
<font color="#009900">++        u_long        left_margin;</font>
<font color="#009900">++        u_long        right_margin;</font>
<font color="#009900">++        u_long        upper_margin;</font>
<font color="#009900">++        u_long        lower_margin;</font>
<font color="#009900">++        u_long        hsync_len;</font>
<font color="#009900">++        u_long        vsync_len;</font>
<font color="#009900">++        u_long        sync;</font>
<font color="#009900">++        u_long        yoffset;</font>
<font color="#009900">++        u_long        xoffset;</font>
<font color="#009900">++</font>
<font color="#009900">++        struct  lcdc_var_screeninfo var;</font>
<font color="#009900">++</font>
<font color="#009900">++        /* DMA descriptors */</font>
<font color="#009900">++        struct        lcdc_dma_descriptor        *dmadesc_fblow;</font>
<font color="#009900">++        struct        lcdc_dma_descriptor        *dmadesc_fbhigh;</font>
<font color="#009900">++        struct        lcdc_dma_descriptor        *dmadesc_palette;</font>
<font color="#009900">++</font>
<font color="#009900">++        u_long        screen;                /* physical address of frame buffer */</font>
<font color="#009900">++        u_long        palette;        /* physical address of palette memory */</font>
<font color="#009900">++        u_int        palette_size;</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Device resource */</font>
<font color="#009900">++        const struct device *dev;</font>
<font color="#009900">++};</font>
<font color="#009900">++</font>
<font color="#009900">++/*</font>
<font color="#009900">++ * LCD controller stucture for AVR32 CPU</font>
<font color="#009900">++ */</font>
<font color="#009900">++typedef struct vidinfo {</font>
<font color="#009900">++        ushort        vl_col;                /* Number of columns (i.e. 640) */</font>
<font color="#009900">++        ushort        vl_row;                /* Number of rows (i.e. 480) */</font>
<font color="#009900">++        ushort        vl_width;        /* Width of display area in millimeters */</font>
<font color="#009900">++        ushort        vl_height;        /* Height of display area in millimeters */</font>
<font color="#009900">++</font>
<font color="#009900">++        /* LCD configuration register */</font>
<font color="#009900">++        u_char        vl_clkp;        /* Clock polarity */</font>
<font color="#009900">++        u_char        vl_oep;                /* Output Enable polarity */</font>
<font color="#009900">++        u_char        vl_hsp;                /* Horizontal Sync polarity */</font>
<font color="#009900">++        u_char        vl_vsp;                /* Vertical Sync polarity */</font>
<font color="#009900">++        u_char        vl_dp;                /* Data polarity */</font>
<font color="#009900">++        u_char        vl_bpix;        /* Bits per pixel, 0 = 1, 1 = 2, 2 = 4, 3 = 8, 4 = 16 */</font>
<font color="#009900">++        u_char        vl_lbw;                /* LCD Bus width, 0 = 4, 1 = 8 */</font>
<font color="#009900">++        u_char        vl_splt;        /* Split display, 0 = single-scan, 1 = dual-scan */</font>
<font color="#009900">++        u_char        vl_clor;        /* Color, 0 = mono, 1 = color */</font>
<font color="#009900">++        u_char        vl_tft;                /* 0 = passive, 1 = TFT */</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Horizontal control register. Timing from data sheet */</font>
<font color="#009900">++        ushort        vl_hpw;                /* Horz sync pulse width */</font>
<font color="#009900">++        u_char        vl_blw;                /* Wait before of line */</font>
<font color="#009900">++        u_char        vl_elw;                /* Wait end of line */</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Vertical control register. */</font>
<font color="#009900">++        u_char        vl_vpw;                /* Vertical sync pulse width */</font>
<font color="#009900">++        u_char        vl_bfw;                /* Wait before of frame */</font>
<font color="#009900">++        u_char        vl_efw;                /* Wait end of frame */</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Atmel LCDC controller params */</font>
<font color="#009900">++        struct        lcdc_info *lcdc;</font>
<font color="#009900">++        u_long        pixclock;</font>
<font color="#009900">++        u_long        left_margin;</font>
<font color="#009900">++        u_long        right_margin;</font>
<font color="#009900">++        u_long        upper_margin;</font>
<font color="#009900">++        u_long        lower_margin;</font>
<font color="#009900">++        u_long        hsync_len;</font>
<font color="#009900">++        u_long        vsync_len;</font>
<font color="#009900">++        u_long        sync;</font>
<font color="#009900">++        u_long        yoffset;</font>
<font color="#009900">++        u_long        xoffset;</font>
<font color="#009900">++} vidinfo_t;</font>
<font color="#009900">++</font>
<font color="#009900">++extern vidinfo_t panel_info;</font>
<font color="#009900">++</font>
<font color="#009900">++#endif /* CONFIG_MPC823 or CONFIG_PXA250 or CONFIG_ATMEL_LCDC */</font>
<font color="#009900">+ </font>
<font color="#009900">+ /* Video functions */</font>
<font color="#009900">+ </font>
<font color="#009900">+@@ -184,6 +336,16 @@</font>
<font color="#009900">+ #define LCD_COLOR4        2</font>
<font color="#009900">+ #define LCD_COLOR8        3</font>
<font color="#009900">+ #define LCD_COLOR16        4</font>
<font color="#009900">++#define LCD_COLOR32        5</font>
<font color="#009900">++#define LCD_COLOR15        15</font>
<font color="#009900">++#define LCD_COLOR24        24</font>
<font color="#009900">++</font>
<font color="#009900">++#define FB_VISUAL_MONO01                0        /* Monochr. 1=Black 0=White */</font>
<font color="#009900">++#define FB_VISUAL_MONO10                1        /* Monochr. 1=White 0=Black */</font>
<font color="#009900">++#define FB_VISUAL_TRUECOLOR                2        /* True color        */</font>
<font color="#009900">++#define FB_VISUAL_PSEUDOCOLOR                3        /* Pseudo color (like atari) */</font>
<font color="#009900">++#define FB_VISUAL_DIRECTCOLOR                4        /* Direct color */</font>
<font color="#009900">++#define FB_VISUAL_STATIC_PSEUDOCOLOR        5        /* Pseudo color readonly */</font>
<font color="#009900">+ </font>
<font color="#009900">+ /*----------------------------------------------------------------------*/</font>
<font color="#009900">+ #if defined(CONFIG_LCD_INFO_BELOW_LOGO)</font>
<font color="#009900">+@@ -235,7 +397,7 @@</font>
<font color="#009900">+ # define CONSOLE_COLOR_GREY        14</font>
<font color="#009900">+ # define CONSOLE_COLOR_WHITE        15        /* Must remain last / highest        */</font>
<font color="#009900">+ </font>
<font color="#009900">+-#else</font>
<font color="#009900">++#elif LCD_BPP == LCD_COLOR16</font>
<font color="#009900">+ </font>
<font color="#009900">+ /*</font>
<font color="#009900">+  * 16bpp color definitions</font>
<font color="#009900">+@@ -243,6 +405,14 @@</font>
<font color="#009900">+ # define CONSOLE_COLOR_BLACK        0x0000</font>
<font color="#009900">+ # define CONSOLE_COLOR_WHITE        0xffff        /* Must remain last / highest        */</font>
<font color="#009900">+ </font>
<font color="#009900">++#else</font>
<font color="#009900">++</font>
<font color="#009900">++/*</font>
<font color="#009900">++ * 24bpp color definitions</font>
<font color="#009900">++ */</font>
<font color="#009900">++# define CONSOLE_COLOR_BLACK        0x000000</font>
<font color="#009900">++# define CONSOLE_COLOR_WHITE        0xffffff /* Must remain last / highest */</font>
<font color="#009900">++</font>
<font color="#009900">+ #endif /* color definitions */</font>
<font color="#009900">+ </font>
<font color="#009900">+ /************************************************************************/</font>
<font color="#009900">+@@ -274,6 +444,8 @@</font>
<font color="#009900">+                                  (c) &lt;&lt; 4 | (c) &lt;&lt; 5 | (c) &lt;&lt; 6 | (c) &lt;&lt; 7)</font>
<font color="#009900">+ #elif LCD_BPP == LCD_COLOR8</font>
<font color="#009900">+ # define COLOR_MASK(c)                (c)</font>
<font color="#009900">++#elif LCD_BPP == LCD_COLOR24</font>
<font color="#009900">++# define COLOR_MASK(c)                (c)</font>
<font color="#009900">+ #else</font>
<font color="#009900">+ # error Unsupported LCD BPP.</font>
<font color="#009900">+ #endif</font>
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot-1.1.4/at32stk1000/lcdc-driver-for-avr32.patch        87dc7c19ee654a3223802b457bb82c44ff3c515e</font>
<font color="#009900">+++ packages/u-boot/u-boot-1.1.4/at32stk1000/lcdc-driver-for-avr32.patch        87dc7c19ee654a3223802b457bb82c44ff3c515e</font>
<font color="#0000FF">@@ -0,0 +1,755 @@</font>
<font color="#009900">+diff -uprN u-boot-orig/include/atmel_lcdc.h u-boot/include/atmel_lcdc.h</font>
<font color="#009900">+--- u-boot-orig/include/atmel_lcdc.h        1970-01-01 01:00:00.000000000 +0100</font>
<font color="#009900">++++ u-boot/include/atmel_lcdc.h        2006-12-21 16:26:10.000000000 +0100</font>
<font color="#009900">+@@ -0,0 +1,269 @@</font>
<font color="#009900">++/*</font>
<font color="#009900">++ * Register definitions for Atmel/SIDSA LCD Controller</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * Copyright (C) 2004-2006 Atmel Corporation</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * This program is free software; you can redistribute it and/or modify</font>
<font color="#009900">++ * it under the terms of the GNU General Public License version 2 as</font>
<font color="#009900">++ * published by the Free Software Foundation.</font>
<font color="#009900">++ */</font>
<font color="#009900">++#ifndef __ATMEL_LCDC_H__</font>
<font color="#009900">++#define __ATMEL_LCDC_H__</font>
<font color="#009900">++</font>
<font color="#009900">++#define LCDC_CONTRAST_CTR                       0x00000840</font>
<font color="#009900">++# define LCDC_CONTRAST_CTR_ENA_OFFSET           3</font>
<font color="#009900">++# define LCDC_CONTRAST_CTR_ENA_SIZE             1</font>
<font color="#009900">++# define LCDC_CONTRAST_CTR_POL_OFFSET           2</font>
<font color="#009900">++# define LCDC_CONTRAST_CTR_POL_SIZE             1</font>
<font color="#009900">++# define LCDC_CONTRAST_CTR_PS_OFFSET            0</font>
<font color="#009900">++# define LCDC_CONTRAST_CTR_PS_SIZE              2</font>
<font color="#009900">++#define LCDC_CONTRAST_VAL                       0x00000844</font>
<font color="#009900">++# define LCDC_CONTRAST_VAL_CVAL_OFFSET          0</font>
<font color="#009900">++# define LCDC_CONTRAST_VAL_CVAL_SIZE            8</font>
<font color="#009900">++#define LCDC_DMABADDR1                          0x00000000</font>
<font color="#009900">++# define LCDC_DMABADDR1_BADDR_U_OFFSET          0</font>
<font color="#009900">++# define LCDC_DMABADDR1_BADDR_U_SIZE            32</font>
<font color="#009900">++#define LCDC_DMABADDR2                          0x00000004</font>
<font color="#009900">++# define LCDC_DMABADDR2_BADDR_L_OFFSET          0</font>
<font color="#009900">++# define LCDC_DMABADDR2_BADDR_L_SIZE            32</font>
<font color="#009900">++#define LCDC_DMACON                             0x0000001C</font>
<font color="#009900">++# define LCDC_DMACON_DMABUSY_OFFSET             2</font>
<font color="#009900">++# define LCDC_DMACON_DMABUSY_SIZE               1</font>
<font color="#009900">++# define LCDC_DMACON_DMAEN_OFFSET               0</font>
<font color="#009900">++# define LCDC_DMACON_DMAEN_SIZE                 1</font>
<font color="#009900">++# define LCDC_DMACON_DMARST_OFFSET              1</font>
<font color="#009900">++# define LCDC_DMACON_DMARST_SIZE                1</font>
<font color="#009900">++# define LCDC_DMACON_DMAUPDT_OFFSET             3</font>
<font color="#009900">++# define LCDC_DMACON_DMAUPDT_SIZE               1</font>
<font color="#009900">++# define LCDC_DMACON_DMA2DEN_OFFSET             4</font>
<font color="#009900">++# define LCDC_DMACON_DMA2DEN_SIZE               1</font>
<font color="#009900">++#define LCDC_DMAFRMADD1                         0x00000010</font>
<font color="#009900">++# define LCDC_DMAFRMADD1_FRMADD_U_OFFSET        0</font>
<font color="#009900">++# define LCDC_DMAFRMADD1_FRMADD_U_SIZE          32</font>
<font color="#009900">++#define LCDC_DMAFRMADD2                         0x00000014</font>
<font color="#009900">++# define LCDC_DMAFRMADD2_FRMADD_L_OFFSET        0</font>
<font color="#009900">++# define LCDC_DMAFRMADD2_FRMADD_L_SIZE          32</font>
<font color="#009900">++#define LCDC_DMAFRMCFG                          0x00000018</font>
<font color="#009900">++# define LCDC_DMAFRMCFG_BRSTLEN_OFFSET          24</font>
<font color="#009900">++# define LCDC_DMAFRMCFG_BRSTLEN_SIZE            7</font>
<font color="#009900">++# define LCDC_DMAFRMCFG_FRMSIZE_OFFSET          0</font>
<font color="#009900">++# define LCDC_DMAFRMCFG_FRMSIZE_SIZE            23</font>
<font color="#009900">++#define LCDC_DMAFRMPT1                          0x00000008</font>
<font color="#009900">++# define LCDC_DMAFRMPT1_FRMPT_U_OFFSET          0</font>
<font color="#009900">++# define LCDC_DMAFRMPT1_FRMPT_U_SIZE            23</font>
<font color="#009900">++#define LCDC_DMAFRMPT2                          0x0000000C</font>
<font color="#009900">++# define LCDC_DMAFRMPT2_FRMPT_L_OFFSET          0</font>
<font color="#009900">++# define LCDC_DMAFRMPT2_FRMPT_L_SIZE            23</font>
<font color="#009900">++#define LCDC_DMA2DCFG                           0x00000020</font>
<font color="#009900">++# define LCDC_DMA2DCFG_ADDRINC_OFFSET           0</font>
<font color="#009900">++# define LCDC_DMA2DCFG_ADDRINC_SIZE             16</font>
<font color="#009900">++# define LCDC_DMA2DCFG_PIXELOFF_OFFSET          24</font>
<font color="#009900">++# define LCDC_DMA2DCFG_PIXELOFF_SIZE            5</font>
<font color="#009900">++#define LCDC_DP1_2                              0x0000081C</font>
<font color="#009900">++# define LCDC_DP1_2_DP1_2_OFFSET                0</font>
<font color="#009900">++# define LCDC_DP1_2_DP1_2_SIZE                  8</font>
<font color="#009900">++#define LCDC_DP2_3                              0x00000828</font>
<font color="#009900">++# define LCDC_DP2_3_DP2_3_OFFSET                0</font>
<font color="#009900">++# define LCDC_DP2_3_DP2_3_SIZE                  12</font>
<font color="#009900">++#define LCDC_DP3_4                              0x00000830</font>
<font color="#009900">++# define LCDC_DP3_4_DP3_4_OFFSET                0</font>
<font color="#009900">++# define LCDC_DP3_4_DP3_4_SIZE                  16</font>
<font color="#009900">++#define LCDC_DP3_5                              0x00000824</font>
<font color="#009900">++# define LCDC_DP3_5_DP3_5_OFFSET                0</font>
<font color="#009900">++# define LCDC_DP3_5_DP3_5_SIZE                  20</font>
<font color="#009900">++#define LCDC_DP4_5                              0x00000834</font>
<font color="#009900">++# define LCDC_DP4_5_DP4_5_OFFSET                0</font>
<font color="#009900">++# define LCDC_DP4_5_DP4_5_SIZE                  20</font>
<font color="#009900">++#define LCDC_DP4_7                              0x00000820</font>
<font color="#009900">++# define LCDC_DP4_7_DP4_7_OFFSET                0</font>
<font color="#009900">++# define LCDC_DP4_7_DP4_7_SIZE                  28</font>
<font color="#009900">++#define LCDC_DP5_7                              0x0000082C</font>
<font color="#009900">++# define LCDC_DP5_7_DP5_7_OFFSET                0</font>
<font color="#009900">++# define LCDC_DP5_7_DP5_7_SIZE                  28</font>
<font color="#009900">++#define LCDC_DP6_7                              0x00000838</font>
<font color="#009900">++# define LCDC_DP6_7_DP6_7_OFFSET                0</font>
<font color="#009900">++# define LCDC_DP6_7_DP6_7_SIZE                  28</font>
<font color="#009900">++#define LCDC_LCDCON1                            0x00000800</font>
<font color="#009900">++# define LCDC_LCDCON1_BYPASS_OFFSET             0</font>
<font color="#009900">++# define LCDC_LCDCON1_BYPASS_SIZE               1</font>
<font color="#009900">++# define LCDC_LCDCON1_CLKVAL_OFFSET             12</font>
<font color="#009900">++# define LCDC_LCDCON1_CLKVAL_SIZE               9</font>
<font color="#009900">++# define LCDC_LCDCON1_LINECNT_OFFSET            21</font>
<font color="#009900">++# define LCDC_LCDCON1_LINECNT_SIZE              11</font>
<font color="#009900">++#define LCDC_LCDCON2                            0x00000804</font>
<font color="#009900">++# define LCDC_LCDCON2_CLKMOD_OFFSET             15</font>
<font color="#009900">++# define LCDC_LCDCON2_CLKMOD_SIZE               1</font>
<font color="#009900">++# define LCDC_LCDCON2_DISTYPE_OFFSET            0</font>
<font color="#009900">++# define LCDC_LCDCON2_DISTYPE_SIZE              2</font>
<font color="#009900">++# define LCDC_LCDCON2_IFWIDTH_OFFSET            3</font>
<font color="#009900">++# define LCDC_LCDCON2_IFWIDTH_SIZE              2</font>
<font color="#009900">++# define LCDC_LCDCON2_INVCLK_OFFSET             11</font>
<font color="#009900">++# define LCDC_LCDCON2_INVCLK_SIZE               1</font>
<font color="#009900">++# define LCDC_LCDCON2_INVDVAL_OFFSET            12</font>
<font color="#009900">++# define LCDC_LCDCON2_INVDVAL_SIZE              1</font>
<font color="#009900">++# define LCDC_LCDCON2_INVFRAME_OFFSET           9</font>
<font color="#009900">++# define LCDC_LCDCON2_INVFRAME_SIZE             1</font>
<font color="#009900">++# define LCDC_LCDCON2_INVLINE_OFFSET            10</font>
<font color="#009900">++# define LCDC_LCDCON2_INVLINE_SIZE              1</font>
<font color="#009900">++# define LCDC_LCDCON2_INVVD_OFFSET              8</font>
<font color="#009900">++# define LCDC_LCDCON2_INVVD_SIZE                1</font>
<font color="#009900">++# define LCDC_LCDCON2_MEMOR_OFFSET              30</font>
<font color="#009900">++# define LCDC_LCDCON2_MEMOR_SIZE                2</font>
<font color="#009900">++# define LCDC_LCDCON2_PIXELSIZE_OFFSET          5</font>
<font color="#009900">++# define LCDC_LCDCON2_PIXELSIZE_SIZE            3</font>
<font color="#009900">++# define LCDC_LCDCON2_SCANMOD_OFFSET            2</font>
<font color="#009900">++# define LCDC_LCDCON2_SCANMOD_SIZE              1</font>
<font color="#009900">++#define LCDC_LCDFIFO                            0x00000814</font>
<font color="#009900">++# define LCDC_LCDFIFO_FIFOTH_OFFSET             0</font>
<font color="#009900">++# define LCDC_LCDFIFO_FIFOTH_SIZE               16</font>
<font color="#009900">++#define LCDC_LCDFRMCFG                          0x00000810</font>
<font color="#009900">++# define LCDC_LCDFRMCFG_LINESIZE_OFFSET         21</font>
<font color="#009900">++# define LCDC_LCDFRMCFG_LINESIZE_SIZE           11</font>
<font color="#009900">++# define LCDC_LCDFRMCFG_LINEVAL_OFFSET          0</font>
<font color="#009900">++# define LCDC_LCDFRMCFG_LINEVAL_SIZE            11</font>
<font color="#009900">++#define LCDC_LCDMVAL                            0x00000818</font>
<font color="#009900">++# define LCDC_LCDMVAL_MMODE_OFFSET              31</font>
<font color="#009900">++# define LCDC_LCDMVAL_MMODE_SIZE                1</font>
<font color="#009900">++# define LCDC_LCDMVAL_MVAL_OFFSET               0</font>
<font color="#009900">++# define LCDC_LCDMVAL_MVAL_SIZE                 8</font>
<font color="#009900">++#define LCDC_LCDTIM1                            0x00000808</font>
<font color="#009900">++# define LCDC_LCDTIM1_VBP_OFFSET                8</font>
<font color="#009900">++# define LCDC_LCDTIM1_VBP_SIZE                  8</font>
<font color="#009900">++# define LCDC_LCDTIM1_VFP_OFFSET                0</font>
<font color="#009900">++# define LCDC_LCDTIM1_VFP_SIZE                  8</font>
<font color="#009900">++# define LCDC_LCDTIM1_VHDLY_OFFSET              24</font>
<font color="#009900">++# define LCDC_LCDTIM1_VHDLY_SIZE                4</font>
<font color="#009900">++# define LCDC_LCDTIM1_VPW_OFFSET                16</font>
<font color="#009900">++# define LCDC_LCDTIM1_VPW_SIZE                  6</font>
<font color="#009900">++#define LCDC_LCDTIM2                            0x0000080C</font>
<font color="#009900">++# define LCDC_LCDTIM2_HBP_OFFSET                0</font>
<font color="#009900">++# define LCDC_LCDTIM2_HBP_SIZE                  8</font>
<font color="#009900">++# define LCDC_LCDTIM2_HFP_OFFSET                21</font>
<font color="#009900">++# define LCDC_LCDTIM2_HFP_SIZE                  11</font>
<font color="#009900">++# define LCDC_LCDTIM2_HPW_OFFSET                8</font>
<font color="#009900">++# define LCDC_LCDTIM2_HPW_SIZE                  6</font>
<font color="#009900">++#define LCDC_LCD_GPR                            0x0000085C</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB0_OFFSET              0</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB0_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB1_OFFSET              1</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB1_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB2_OFFSET              2</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB2_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB3_OFFSET              3</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB3_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB4_OFFSET              4</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB4_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB5_OFFSET              5</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB5_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB6_OFFSET              6</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB6_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB7_OFFSET              7</font>
<font color="#009900">++# define LCDC_LCD_GPR_GPRB7_SIZE                1</font>
<font color="#009900">++#define LCDC_LCD_ICR                            0x00000858</font>
<font color="#009900">++# define LCDC_LCD_ICR_EOFIC_OFFSET              2</font>
<font color="#009900">++# define LCDC_LCD_ICR_EOFIC_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_ICR_LNIC_OFFSET               0</font>
<font color="#009900">++# define LCDC_LCD_ICR_LNIC_SIZE                 1</font>
<font color="#009900">++# define LCDC_LCD_ICR_LSTLNIC_OFFSET            1</font>
<font color="#009900">++# define LCDC_LCD_ICR_LSTLNIC_SIZE              1</font>
<font color="#009900">++# define LCDC_LCD_ICR_MERIC_OFFSET              6</font>
<font color="#009900">++# define LCDC_LCD_ICR_MERIC_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_ICR_OWRIC_OFFSET              5</font>
<font color="#009900">++# define LCDC_LCD_ICR_OWRIC_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_ICR_UFLWIC_OFFSET             4</font>
<font color="#009900">++# define LCDC_LCD_ICR_UFLWIC_SIZE               1</font>
<font color="#009900">++#define LCDC_LCD_IDR                            0x0000084C</font>
<font color="#009900">++# define LCDC_LCD_IDR_EOFID_OFFSET              2</font>
<font color="#009900">++# define LCDC_LCD_IDR_EOFID_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_IDR_LNID_OFFSET               0</font>
<font color="#009900">++# define LCDC_LCD_IDR_LNID_SIZE                 1</font>
<font color="#009900">++# define LCDC_LCD_IDR_LSTLNID_OFFSET            1</font>
<font color="#009900">++# define LCDC_LCD_IDR_LSTLNID_SIZE              1</font>
<font color="#009900">++# define LCDC_LCD_IDR_MERID_OFFSET              6</font>
<font color="#009900">++# define LCDC_LCD_IDR_MERID_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_IDR_OWRID_OFFSET              5</font>
<font color="#009900">++# define LCDC_LCD_IDR_OWRID_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_IDR_UFLWID_OFFSET             4</font>
<font color="#009900">++# define LCDC_LCD_IDR_UFLWID_SIZE               1</font>
<font color="#009900">++#define LCDC_LCD_IER                            0x00000848</font>
<font color="#009900">++# define LCDC_LCD_IER_EOFIE_OFFSET              2</font>
<font color="#009900">++# define LCDC_LCD_IER_EOFIE_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_IER_LNIE_OFFSET               0</font>
<font color="#009900">++# define LCDC_LCD_IER_LNIE_SIZE                 1</font>
<font color="#009900">++# define LCDC_LCD_IER_LSTLNIE_OFFSET            1</font>
<font color="#009900">++# define LCDC_LCD_IER_LSTLNIE_SIZE              1</font>
<font color="#009900">++# define LCDC_LCD_IER_MERIE_OFFSET              6</font>
<font color="#009900">++# define LCDC_LCD_IER_MERIE_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_IER_OWRIE_OFFSET              5</font>
<font color="#009900">++# define LCDC_LCD_IER_OWRIE_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_IER_UFLWIE_OFFSET             4</font>
<font color="#009900">++# define LCDC_LCD_IER_UFLWIE_SIZE               1</font>
<font color="#009900">++#define LCDC_LCD_IMR                            0x00000850</font>
<font color="#009900">++# define LCDC_LCD_IMR_EOFIM_OFFSET              2</font>
<font color="#009900">++# define LCDC_LCD_IMR_EOFIM_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_IMR_LNIM_OFFSET               0</font>
<font color="#009900">++# define LCDC_LCD_IMR_LNIM_SIZE                 1</font>
<font color="#009900">++# define LCDC_LCD_IMR_LSTLNIM_OFFSET            1</font>
<font color="#009900">++# define LCDC_LCD_IMR_LSTLNIM_SIZE              1</font>
<font color="#009900">++# define LCDC_LCD_IMR_MERIM_OFFSET              6</font>
<font color="#009900">++# define LCDC_LCD_IMR_MERIM_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_IMR_OWRIM_OFFSET              5</font>
<font color="#009900">++# define LCDC_LCD_IMR_OWRIM_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_IMR_UFLWIM_OFFSET             4</font>
<font color="#009900">++# define LCDC_LCD_IMR_UFLWIM_SIZE               1</font>
<font color="#009900">++#define LCDC_LCD_IRR                            0x00000864</font>
<font color="#009900">++# define LCDC_LCD_IRR_EOFIR_OFFSET              2</font>
<font color="#009900">++# define LCDC_LCD_IRR_EOFIR_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_IRR_LNIR_OFFSET               0</font>
<font color="#009900">++# define LCDC_LCD_IRR_LNIR_SIZE                 1</font>
<font color="#009900">++# define LCDC_LCD_IRR_LSTLNIR_OFFSET            1</font>
<font color="#009900">++# define LCDC_LCD_IRR_LSTLNIR_SIZE              1</font>
<font color="#009900">++# define LCDC_LCD_IRR_MERIR_OFFSET              6</font>
<font color="#009900">++# define LCDC_LCD_IRR_MERIR_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_IRR_OWRIR_OFFSET              5</font>
<font color="#009900">++# define LCDC_LCD_IRR_OWRIR_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_IRR_UFLWIR_OFFSET             4</font>
<font color="#009900">++# define LCDC_LCD_IRR_UFLWIR_SIZE               1</font>
<font color="#009900">++#define LCDC_LCD_ISR                            0x00000854</font>
<font color="#009900">++# define LCDC_LCD_ISR_EOFIS_OFFSET              2</font>
<font color="#009900">++# define LCDC_LCD_ISR_EOFIS_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_ISR_LNIS_OFFSET               0</font>
<font color="#009900">++# define LCDC_LCD_ISR_LNIS_SIZE                 1</font>
<font color="#009900">++# define LCDC_LCD_ISR_LSTLNIS_OFFSET            1</font>
<font color="#009900">++# define LCDC_LCD_ISR_LSTLNIS_SIZE              1</font>
<font color="#009900">++# define LCDC_LCD_ISR_MERIS_OFFSET              6</font>
<font color="#009900">++# define LCDC_LCD_ISR_MERIS_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_ISR_OWRIS_OFFSET              5</font>
<font color="#009900">++# define LCDC_LCD_ISR_OWRIS_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_ISR_UFLWIS_OFFSET             4</font>
<font color="#009900">++# define LCDC_LCD_ISR_UFLWIS_SIZE               1</font>
<font color="#009900">++#define LCDC_LCD_ITR                            0x00000860</font>
<font color="#009900">++# define LCDC_LCD_ITR_EOFIT_OFFSET              2</font>
<font color="#009900">++# define LCDC_LCD_ITR_EOFIT_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_ITR_LNIT_OFFSET               0</font>
<font color="#009900">++# define LCDC_LCD_ITR_LNIT_SIZE                 1</font>
<font color="#009900">++# define LCDC_LCD_ITR_LSTLNIT_OFFSET            1</font>
<font color="#009900">++# define LCDC_LCD_ITR_LSTLNIT_SIZE              1</font>
<font color="#009900">++# define LCDC_LCD_ITR_MERIT_OFFSET              6</font>
<font color="#009900">++# define LCDC_LCD_ITR_MERIT_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_ITR_OWRIT_OFFSET              5</font>
<font color="#009900">++# define LCDC_LCD_ITR_OWRIT_SIZE                1</font>
<font color="#009900">++# define LCDC_LCD_ITR_UFLWIT_OFFSET             4</font>
<font color="#009900">++# define LCDC_LCD_ITR_UFLWIT_SIZE               1</font>
<font color="#009900">++#define LCDC_PWRCON                             0x0000083C</font>
<font color="#009900">++# define LCDC_PWRCON_GUARD_TIME_OFFSET          1</font>
<font color="#009900">++# define LCDC_PWRCON_GUARD_TIME_SIZE            7</font>
<font color="#009900">++# define LCDC_PWRCON_LCD_BUSY_OFFSET            31</font>
<font color="#009900">++# define LCDC_PWRCON_LCD_BUSY_SIZE              1</font>
<font color="#009900">++# define LCDC_PWRCON_LCD_PWR_OFFSET             0</font>
<font color="#009900">++# define LCDC_PWRCON_LCD_PWR_SIZE               1</font>
<font color="#009900">++</font>
<font color="#009900">++#define LCDC_BIT(name)                          (1 &lt;&lt; LCDC_##name##_OFFSET)</font>
<font color="#009900">++#define LCDC_MKBF(name,value)                   (((value) &amp; ((1 &lt;&lt; LCDC_##name##_SIZE) - 1)) &lt;&lt; LCDC_##name##_OFFSET)</font>
<font color="#009900">++#define LCDC_GETBF(name,value)                  (((value) &gt;&gt; LCDC_##name##_OFFSET) &amp; ((1 &lt;&lt; LCDC_##name##_SIZE) - 1))</font>
<font color="#009900">++#define LCDC_INSBF(name,value,old)              (((old) &amp; ~(((1 &lt;&lt; LCDC_##name##_SIZE) - 1) &lt;&lt; LCDC_##name##_OFFSET)) | LCDC_MKBF(name, value))</font>
<font color="#009900">++</font>
<font color="#009900">++#define lcdc_readl(port,reg)                readl((port)-&gt;regs + LCDC_##reg)</font>
<font color="#009900">++#define lcdc_writel(port,reg,value)        writel((value), (port)-&gt;regs + LCDC_##reg)</font>
<font color="#009900">++</font>
<font color="#009900">++#endif /* __ASM_AVR32_PERIPH_LCDC_H__ */</font>
<font color="#009900">+diff -uprN u-boot-orig/drivers/atmel_lcdc.c u-boot/drivers/atmel_lcdc.c</font>
<font color="#009900">+--- u-boot-orig/drivers/atmel_lcdc.c        1970-01-01 01:00:00.000000000 +0100</font>
<font color="#009900">++++ u-boot/drivers/atmel_lcdc.c        2007-01-05 12:29:24.000000000 +0100</font>
<font color="#009900">+@@ -0,0 +1,465 @@</font>
<font color="#009900">++/*</font>
<font color="#009900">++ * Framebuffer Driver for Atmel/SIDSA LCD Controller</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * Copyright (C) 2006 Atmel Corporation</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * This program is free software; you can redistribute it and/or modify</font>
<font color="#009900">++ * it under the terms of the GNU General Public License version 2 as</font>
<font color="#009900">++ * published by the Free Software Foundation.</font>
<font color="#009900">++ */</font>
<font color="#009900">++</font>
<font color="#009900">++#include &lt;common.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++#if defined(CONFIG_ATMEL_LCDC)</font>
<font color="#009900">++</font>
<font color="#009900">++#ifndef LCD_BPP</font>
<font color="#009900">++# define LCD_BPP        LCD_COLOR24</font>
<font color="#009900">++#endif</font>
<font color="#009900">++</font>
<font color="#009900">++#include &lt;lcd.h&gt;</font>
<font color="#009900">++#include &lt;malloc.h&gt;</font>
<font color="#009900">++#include &lt;video_fb.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++#include &lt;atmel_lcdc.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++#include &lt;asm/io.h&gt;</font>
<font color="#009900">++#include &lt;asm/arch/sm.h&gt;</font>
<font color="#009900">++#include &lt;asm/arch/platform.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++/* Sync defines */</font>
<font color="#009900">++#define FB_SYNC_HOR_HIGH_ACT        1        /* horizontal sync high active        */</font>
<font color="#009900">++#define FB_SYNC_VERT_HIGH_ACT        2        /* vertical sync high active        */</font>
<font color="#009900">++#define FB_SYNC_EXT                4        /* external sync                */</font>
<font color="#009900">++#define FB_SYNC_COMP_HIGH_ACT        8        /* composite sync high active   */</font>
<font color="#009900">++#define FB_SYNC_BROADCAST        16        /* broadcast video timings      */</font>
<font color="#009900">++/* vtotal = 144d/288n/576i =&gt; PAL  */</font>
<font color="#009900">++/* vtotal = 121d/242n/484i =&gt; NTSC */</font>
<font color="#009900">++#define FB_SYNC_ON_GREEN        32        /* sync on green */</font>
<font color="#009900">++#define FB_SYNC_PCLK_RISING        64        /* pixel data sampled on rising pclk */</font>
<font color="#009900">++</font>
<font color="#009900">++/* More or less configurable parameters */</font>
<font color="#009900">++#define LCDC_FIFO_SIZE                512</font>
<font color="#009900">++#define LCDC_DMA_BURST_LEN        8</font>
<font color="#009900">++</font>
<font color="#009900">++/* TODO: These should be autogenerated from part description file */</font>
<font color="#009900">++#define LCDC_DISTYPE_STN_MONO        0</font>
<font color="#009900">++#define LCDC_DISTYPE_STN_COLOR        1</font>
<font color="#009900">++#define LCDC_DISTYPE_TFT        2</font>
<font color="#009900">++#define LCDC_LUT                0xc00</font>
<font color="#009900">++</font>
<font color="#009900">++#ifdef CONFIG_DISPLAY_LTV350QV</font>
<font color="#009900">++/* 320x240x24 @ 75 Hz */</font>
<font color="#009900">++vidinfo_t panel_info = {</font>
<font color="#009900">++                vl_col:                320,                /* Number of columns */</font>
<font color="#009900">++                vl_row:                240,                /* Number of rows */</font>
<font color="#009900">++                vl_width:        320,                /* Width in mm */</font>
<font color="#009900">++                vl_height:        240,                /* Height in mm */</font>
<font color="#009900">++                vl_clkp:        CFG_HIGH,        /* Clock polarity */</font>
<font color="#009900">++                vl_oep:                CFG_HIGH,        /* Output enable polarity */</font>
<font color="#009900">++                vl_hsp:                CFG_HIGH,        /* Horizontal sync polarity */</font>
<font color="#009900">++                vl_vsp:                CFG_HIGH,        /* Vertical sync polarity */</font>
<font color="#009900">++                vl_dp:                CFG_HIGH,        /* Data polarity */</font>
<font color="#009900">++                vl_bpix:        LCD_BPP,        /* Bits per pixel */</font>
<font color="#009900">++                vl_lbw:                1,                /* LCD bus width */</font>
<font color="#009900">++                vl_splt:        0,                /* Split display? 0=single, 1=dual */</font>
<font color="#009900">++                vl_clor:        1,                /* Color? 0 = mono, 1 = color */</font>
<font color="#009900">++                vl_tft:                1,                /* TFT? 0 = passive, 1 = TFT */</font>
<font color="#009900">++                vl_hpw:                16,                /* Horizontal sync pulse width */</font>
<font color="#009900">++                vl_blw:                17,                /* Wait before of line */</font>
<font color="#009900">++                vl_elw:                33,                /* Wait end of line */</font>
<font color="#009900">++                vl_vpw:                1,                /* Vertical sync pulse width */</font>
<font color="#009900">++                vl_bfw:                10,                /* Wait before of frame */</font>
<font color="#009900">++                vl_efw:                10,                /* Wait end of frame */</font>
<font color="#009900">++</font>
<font color="#009900">++                pixclock:        145111,</font>
<font color="#009900">++                left_margin:        17,</font>
<font color="#009900">++                right_margin:        33,</font>
<font color="#009900">++                upper_margin:        10,</font>
<font color="#009900">++                lower_margin:        10,</font>
<font color="#009900">++                hsync_len:        16,</font>
<font color="#009900">++                vsync_len:        1,</font>
<font color="#009900">++                sync:                FB_SYNC_PCLK_RISING,</font>
<font color="#009900">++                yoffset:        0,</font>
<font color="#009900">++                xoffset:        0,</font>
<font color="#009900">++};</font>
<font color="#009900">++#else</font>
<font color="#009900">++#error A display must be defined for the LCD controller</font>
<font color="#009900">++#endif</font>
<font color="#009900">++</font>
<font color="#009900">++void lcd_ctrl_init        (void *lcdbase);</font>
<font color="#009900">++void lcd_enable        (void);</font>
<font color="#009900">++</font>
<font color="#009900">++int lcd_line_length;</font>
<font color="#009900">++int lcd_color_fg;</font>
<font color="#009900">++int lcd_color_bg;</font>
<font color="#009900">++</font>
<font color="#009900">++void *lcd_base;                        /* Start of framebuffer memory        */</font>
<font color="#009900">++void *lcd_console_address;        /* Start of console buffer        */</font>
<font color="#009900">++</font>
<font color="#009900">++short console_col;</font>
<font color="#009900">++short console_row;</font>
<font color="#009900">++</font>
<font color="#009900">++static int lcdc_init_mem(void *lcdbase);</font>
<font color="#009900">++void lcdc_init(void *lcdbase);</font>
<font color="#009900">++</font>
<font color="#009900">++static inline u_int chan_to_field(u_int chan, const struct lcdc_bitfield *bf)</font>
<font color="#009900">++{</font>
<font color="#009900">++        chan &amp;= 0xffff;</font>
<font color="#009900">++        chan &gt;&gt;= 16 - bf-&gt;length;</font>
<font color="#009900">++        return chan &lt;&lt; bf-&gt;offset;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++/*</font>
<font color="#009900">++ * ************************************************************************* *</font>
<font color="#009900">++ *                        Das U-Boot LCD functions                           *</font>
<font color="#009900">++ * ************************************************************************* *</font>
<font color="#009900">++ */</font>
<font color="#009900">++void lcd_setcolreg (ushort regno, ushort red, ushort green, ushort blue)</font>
<font color="#009900">++{</font>
<font color="#009900">++        struct lcdc_info *cinfo = panel_info.lcdc;</font>
<font color="#009900">++        u_int *palette = (u_int *)cinfo-&gt;palette;</font>
<font color="#009900">++        u_int val;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (cinfo-&gt;var.grayscale)</font>
<font color="#009900">++                red = green = blue = (19595 * red + 38470 * green</font>
<font color="#009900">++                                + 7471 * blue) &gt;&gt; 16;</font>
<font color="#009900">++</font>
<font color="#009900">++        switch (cinfo-&gt;visual) {</font>
<font color="#009900">++        case FB_VISUAL_TRUECOLOR:</font>
<font color="#009900">++                if (regno &lt; 16) {</font>
<font color="#009900">++                        /* TODO: I do not get why we need a palette here</font>
<font color="#009900">++                        palette = cinfo-&gt;pseudo_palette;</font>
<font color="#009900">++                        */</font>
<font color="#009900">++</font>
<font color="#009900">++                        val  = chan_to_field(red, &amp;cinfo-&gt;var.red);</font>
<font color="#009900">++                        val |= chan_to_field(green, &amp;cinfo-&gt;var.green);</font>
<font color="#009900">++                        val |= chan_to_field(blue, &amp;cinfo-&gt;var.blue);</font>
<font color="#009900">++</font>
<font color="#009900">++                        palette[regno] = val;</font>
<font color="#009900">++                }</font>
<font color="#009900">++                break;</font>
<font color="#009900">++</font>
<font color="#009900">++        case FB_VISUAL_PSEUDOCOLOR:</font>
<font color="#009900">++                if (regno &lt; 256) {</font>
<font color="#009900">++                        val =  ((blue  &lt;&lt; 7) &amp; 0x7c00);</font>
<font color="#009900">++                        val |= ((green &lt;&lt; 2) &amp; 0x03e0);</font>
<font color="#009900">++                        val |= ((red   &gt;&gt; 3) &amp; 0x001f);</font>
<font color="#009900">++</font>
<font color="#009900">++                        /*</font>
<font color="#009900">++                         * TODO: intensity bit. Maybe something like</font>
<font color="#009900">++                         *   ~(red[10] ^ green[10] ^ blue[10]) &amp; 1</font>
<font color="#009900">++                         */</font>
<font color="#009900">++                        palette[regno] = val;</font>
<font color="#009900">++                }</font>
<font color="#009900">++                break;</font>
<font color="#009900">++        }</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void lcd_ctrl_init (void *lcdbase)</font>
<font color="#009900">++{</font>
<font color="#009900">++        lcdc_init_mem(lcdbase);</font>
<font color="#009900">++        lcdc_init(lcdbase);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++void lcd_enable (void)</font>
<font color="#009900">++{</font>
<font color="#009900">++        return;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++ulong calc_fbsize (void)</font>
<font color="#009900">++{</font>
<font color="#009900">++        ulong size;</font>
<font color="#009900">++        int line_length;</font>
<font color="#009900">++        if (panel_info.vl_bpix &gt; LCD_COLOR32)</font>
<font color="#009900">++                line_length = panel_info.vl_col * panel_info.vl_bpix / 8;</font>
<font color="#009900">++        else</font>
<font color="#009900">++                line_length = panel_info.vl_col * NBITS(panel_info.vl_bpix) / 8;</font>
<font color="#009900">++</font>
<font color="#009900">++        size = line_length * panel_info.vl_row;</font>
<font color="#009900">++        size += PAGE_SIZE;</font>
<font color="#009900">++</font>
<font color="#009900">++        return size;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++/* ************************************************************************* *</font>
<font color="#009900">++ *                    Architecture specific functions                        *</font>
<font color="#009900">++ * ************************************************************************* *</font>
<font color="#009900">++ */</font>
<font color="#009900">++static int lcdc_init_mem(void *lcdbase)</font>
<font color="#009900">++{</font>
<font color="#009900">++        struct lcdc_info *cinfo;</font>
<font color="#009900">++        const struct device *dev;</font>
<font color="#009900">++</font>
<font color="#009900">++        cinfo = malloc(sizeof(struct lcdc_info));</font>
<font color="#009900">++        if (!cinfo) {</font>
<font color="#009900">++                printf("lcdc: could not allocate RAM for lcdc_info\n");</font>
<font color="#009900">++                return -1;</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        dev = get_device(DEVICE_LCDC);</font>
<font color="#009900">++        if (!dev)</font>
<font color="#009900">++                printf("lcdc: could not get LCDC\n");</font>
<font color="#009900">++</font>
<font color="#009900">++        cinfo-&gt;dev = dev;</font>
<font color="#009900">++        cinfo-&gt;regs = dev-&gt;regs;</font>
<font color="#009900">++</font>
<font color="#009900">++        cinfo-&gt;screen = (u_long)lcdbase;</font>
<font color="#009900">++        cinfo-&gt;palette_size = NBITS(panel_info.vl_bpix) == 8 ? 256 : 16;</font>
<font color="#009900">++        /* palette is stored in LCD controller IO memory */</font>
<font color="#009900">++        cinfo-&gt;palette = (u_long)cinfo-&gt;regs + LCDC_LUT;</font>
<font color="#009900">++</font>
<font color="#009900">++        panel_info.lcdc = cinfo;</font>
<font color="#009900">++</font>
<font color="#009900">++        return 0;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++static void lcdc_update_dma()</font>
<font color="#009900">++{</font>
<font color="#009900">++        unsigned long dma_addr;</font>
<font color="#009900">++        unsigned long pixeloff;</font>
<font color="#009900">++        unsigned long dma2dcfg;</font>
<font color="#009900">++        struct lcdc_info *cinfo = panel_info.lcdc;</font>
<font color="#009900">++</font>
<font color="#009900">++        dma_addr = (cinfo-&gt;smem_start + cinfo-&gt;yoffset * cinfo-&gt;line_length</font>
<font color="#009900">++                        + cinfo-&gt;xoffset * cinfo-&gt;bits_per_pixel / 8);</font>
<font color="#009900">++</font>
<font color="#009900">++        dma_addr &amp;= ~3UL;</font>
<font color="#009900">++        pixeloff = LCDC_MKBF(DMA2DCFG_PIXELOFF, cinfo-&gt;xoffset * cinfo-&gt;bits_per_pixel);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Set framebuffer DMA base address and pixel offset */</font>
<font color="#009900">++        lcdc_writel(cinfo, DMABADDR1, dma_addr);</font>
<font color="#009900">++        dma2dcfg = lcdc_readl(cinfo, DMA2DCFG);</font>
<font color="#009900">++        dma2dcfg = LCDC_INSBF(DMA2DCFG_PIXELOFF, pixeloff, dma2dcfg);</font>
<font color="#009900">++        lcdc_writel(cinfo, DMA2DCFG, dma2dcfg);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Update configuration */</font>
<font color="#009900">++        lcdc_writel(cinfo, DMACON, (lcdc_readl(cinfo, DMACON)</font>
<font color="#009900">++                                | LCDC_BIT(DMACON_DMAUPDT)));</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++static int lcdc_set_var(struct lcdc_info *info)</font>
<font color="#009900">++{</font>
<font color="#009900">++        info-&gt;var.red.msb_right = info-&gt;var.green.msb_right</font>
<font color="#009900">++                = info-&gt;var.blue.msb_right = 0;</font>
<font color="#009900">++        info-&gt;var.transp.offset = info-&gt;var.transp.length = 0;</font>
<font color="#009900">++</font>
<font color="#009900">++        switch (info-&gt;bits_per_pixel) {</font>
<font color="#009900">++        case 2:</font>
<font color="#009900">++        case 4:</font>
<font color="#009900">++        case 8:</font>
<font color="#009900">++                info-&gt;var.red.offset = info-&gt;var.green.offset</font>
<font color="#009900">++                        = info-&gt;var.blue.offset = 0;</font>
<font color="#009900">++                info-&gt;var.red.length = info-&gt;var.green.length</font>
<font color="#009900">++                        = info-&gt;var.blue.length = info-&gt;var.bits_per_pixel;</font>
<font color="#009900">++                break;</font>
<font color="#009900">++        case 15:</font>
<font color="#009900">++        case 16:</font>
<font color="#009900">++                /*</font>
<font color="#009900">++                 * Bit 16 is the "intensity" bit, I think. Not sure</font>
<font color="#009900">++                 * what we're going to use that for...</font>
<font color="#009900">++                 */</font>
<font color="#009900">++                info-&gt;var.red.offset = 0;</font>
<font color="#009900">++                info-&gt;var.green.offset = 5;</font>
<font color="#009900">++                info-&gt;var.blue.offset = 10;</font>
<font color="#009900">++                info-&gt;var.red.length = 5;</font>
<font color="#009900">++                info-&gt;var.green.length = 5;</font>
<font color="#009900">++                info-&gt;var.blue.length = 5;</font>
<font color="#009900">++                break;</font>
<font color="#009900">++        case 32:</font>
<font color="#009900">++                info-&gt;var.transp.offset = 24;</font>
<font color="#009900">++                info-&gt;var.transp.length = 8;</font>
<font color="#009900">++                /* fall through */</font>
<font color="#009900">++        case 24:</font>
<font color="#009900">++                info-&gt;var.red.offset = 16;</font>
<font color="#009900">++                info-&gt;var.green.offset = 8;</font>
<font color="#009900">++                info-&gt;var.blue.offset = 0;</font>
<font color="#009900">++                info-&gt;var.red.length = info-&gt;var.green.length</font>
<font color="#009900">++                        = info-&gt;var.blue.length = 8;</font>
<font color="#009900">++                break;</font>
<font color="#009900">++        default:</font>
<font color="#009900">++                printf("lcdc: color depth %d not supported\n",</font>
<font color="#009900">++                       info-&gt;var.bits_per_pixel);</font>
<font color="#009900">++                return -1;</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        info-&gt;var.xoffset = info-&gt;var.yoffset = 0;</font>
<font color="#009900">++        info-&gt;var.red.msb_right = info-&gt;var.green.msb_right</font>
<font color="#009900">++                = info-&gt;var.blue.msb_right = info-&gt;var.transp.msb_right = 0;</font>
<font color="#009900">++</font>
<font color="#009900">++        return 0;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void lcdc_init(void *lcdbase)</font>
<font color="#009900">++{</font>
<font color="#009900">++        unsigned int value;</font>
<font color="#009900">++        const struct device *sm;</font>
<font color="#009900">++        struct lcdc_info *cinfo = panel_info.lcdc;</font>
<font color="#009900">++</font>
<font color="#009900">++        sm = get_device(DEVICE_SM);</font>
<font color="#009900">++        if (!sm)</font>
<font color="#009900">++                printf("lcdc: could not get SM\n");</font>
<font color="#009900">++</font>
<font color="#009900">++        cinfo-&gt;xres = panel_info.vl_col;</font>
<font color="#009900">++        cinfo-&gt;yres = panel_info.vl_row;</font>
<font color="#009900">++        cinfo-&gt;xres_virtual = panel_info.vl_col;</font>
<font color="#009900">++        cinfo-&gt;yres_virtual = panel_info.vl_row;</font>
<font color="#009900">++        if (panel_info.vl_bpix &gt; LCD_COLOR32) {</font>
<font color="#009900">++                cinfo-&gt;bits_per_pixel = panel_info.vl_bpix;</font>
<font color="#009900">++        } else {</font>
<font color="#009900">++                cinfo-&gt;bits_per_pixel = (1&lt;&lt;panel_info.vl_bpix);</font>
<font color="#009900">++        }</font>
<font color="#009900">++        /* INFO: if you see weird offset errors when displaying data</font>
<font color="#009900">++         * increase the guard_time */</font>
<font color="#009900">++        cinfo-&gt;guard_time = 2;</font>
<font color="#009900">++</font>
<font color="#009900">++        cinfo-&gt;pixclock = panel_info.pixclock;</font>
<font color="#009900">++</font>
<font color="#009900">++        cinfo-&gt;left_margin = panel_info.left_margin;</font>
<font color="#009900">++        cinfo-&gt;right_margin = panel_info.right_margin;</font>
<font color="#009900">++        cinfo-&gt;upper_margin = panel_info.upper_margin;</font>
<font color="#009900">++        cinfo-&gt;lower_margin = panel_info.lower_margin;</font>
<font color="#009900">++</font>
<font color="#009900">++        cinfo-&gt;hsync_len = panel_info.hsync_len;</font>
<font color="#009900">++        cinfo-&gt;vsync_len = panel_info.vsync_len;</font>
<font color="#009900">++</font>
<font color="#009900">++        cinfo-&gt;sync = panel_info.sync;</font>
<font color="#009900">++</font>
<font color="#009900">++        cinfo-&gt;smem_start = (u_long)lcdbase;</font>
<font color="#009900">++        cinfo-&gt;yoffset = panel_info.yoffset;</font>
<font color="#009900">++        cinfo-&gt;xoffset = panel_info.xoffset;</font>
<font color="#009900">++        cinfo-&gt;line_length = cinfo-&gt;xres;</font>
<font color="#009900">++</font>
<font color="#009900">++        panel_info.lcdc = cinfo;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (cinfo-&gt;bits_per_pixel &lt;= 8) {</font>
<font color="#009900">++                cinfo-&gt;visual = FB_VISUAL_PSEUDOCOLOR;</font>
<font color="#009900">++        } else {</font>
<font color="#009900">++                cinfo-&gt;visual = FB_VISUAL_TRUECOLOR;</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        /* setup var information */</font>
<font color="#009900">++        if (lcdc_set_var(cinfo) != 0) {</font>
<font color="#009900">++                printf("lcdc: could not set var information\n");</font>
<font color="#009900">++                return;</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        sm_writel(sm, PM_GCCTRL7, SM_BIT(PLLSEL)|SM_BIT(CEN));</font>
<font color="#009900">++</font>
<font color="#009900">++        debug("lcdc: resolution: %ux%u %dbpp (%ux%u virtual)\n",</font>
<font color="#009900">++                        cinfo-&gt;xres, cinfo-&gt;yres, cinfo-&gt;bits_per_pixel,</font>
<font color="#009900">++                        cinfo-&gt;xres_virtual, cinfo-&gt;yres_virtual);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Turn off the LCD controller and the DMA controller */</font>
<font color="#009900">++        lcdc_writel(cinfo, PWRCON,</font>
<font color="#009900">++                        LCDC_MKBF(PWRCON_GUARD_TIME, cinfo-&gt;guard_time));</font>
<font color="#009900">++        lcdc_writel(cinfo, DMACON, 0);</font>
<font color="#009900">++</font>
<font color="#009900">++        cinfo-&gt;line_length = (cinfo-&gt;xres_virtual</font>
<font color="#009900">++                        * (cinfo-&gt;bits_per_pixel / 8));</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Re-initialize the DMA engine... */</font>
<font color="#009900">++        lcdc_update_dma();</font>
<font color="#009900">++</font>
<font color="#009900">++        /* ...set frame size and burst length = 8 words (?) */</font>
<font color="#009900">++        value = LCDC_MKBF(DMAFRMCFG_FRMSIZE,</font>
<font color="#009900">++                        (cinfo-&gt;yres * cinfo-&gt;line_length + 3) / 4);</font>
<font color="#009900">++        value |= LCDC_MKBF(DMAFRMCFG_BRSTLEN, (LCDC_DMA_BURST_LEN - 1));</font>
<font color="#009900">++        lcdc_writel(cinfo, DMAFRMCFG, value);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* ...set 2D configuration (necessary for xres_virtual != xres) */</font>
<font color="#009900">++        value = LCDC_MKBF(DMA2DCFG_ADDRINC,</font>
<font color="#009900">++                        cinfo-&gt;xres_virtual - cinfo-&gt;xres);</font>
<font color="#009900">++        lcdc_writel(cinfo, DMA2DCFG, value);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* ...wait for DMA engine to become idle... */</font>
<font color="#009900">++        while (lcdc_readl(cinfo, DMACON) &amp; LCDC_BIT(DMACON_DMABUSY));</font>
<font color="#009900">++</font>
<font color="#009900">++        /* ...and enable it with updated configuration */</font>
<font color="#009900">++        lcdc_writel(cinfo, DMACON, (LCDC_BIT(DMACON_DMAEN)</font>
<font color="#009900">++                                | LCDC_BIT(DMACON_DMAUPDT)</font>
<font color="#009900">++                                | LCDC_BIT(DMACON_DMA2DEN)));</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Now, the LCD core... */</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Set pixel clock. */</font>
<font color="#009900">++        value = 140000000 / 100000 * cinfo-&gt;pixclock;</font>
<font color="#009900">++        value /= 10000000;</font>
<font color="#009900">++        value = (value + 1) / 2;</font>
<font color="#009900">++        if (value == 0) {</font>
<font color="#009900">++                lcdc_writel(cinfo, LCDCON1, LCDC_BIT(LCDCON1_BYPASS));</font>
<font color="#009900">++        } else {</font>
<font color="#009900">++                lcdc_writel(cinfo, LCDCON1, LCDC_MKBF(LCDCON1_CLKVAL, value - 1));</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Initialize control register 2 */</font>
<font color="#009900">++        value = (LCDC_BIT(LCDCON2_CLKMOD)</font>
<font color="#009900">++                        | LCDC_MKBF(LCDCON2_DISTYPE, LCDC_DISTYPE_TFT));</font>
<font color="#009900">++        if (!(cinfo-&gt;sync &amp; FB_SYNC_HOR_HIGH_ACT))</font>
<font color="#009900">++                value |= LCDC_BIT(LCDCON2_INVLINE);</font>
<font color="#009900">++        if (!(cinfo-&gt;sync &amp; FB_SYNC_VERT_HIGH_ACT))</font>
<font color="#009900">++                value |= LCDC_BIT(LCDCON2_INVFRAME);</font>
<font color="#009900">++        if (cinfo-&gt;sync &amp; FB_SYNC_PCLK_RISING)</font>
<font color="#009900">++                value |= LCDC_BIT(LCDCON2_INVCLK);</font>
<font color="#009900">++</font>
<font color="#009900">++        switch (cinfo-&gt;bits_per_pixel) {</font>
<font color="#009900">++                case 1:        value |= LCDC_MKBF(LCDCON2_PIXELSIZE, 0); break;</font>
<font color="#009900">++                case 2: value |= LCDC_MKBF(LCDCON2_PIXELSIZE, 1); break;</font>
<font color="#009900">++                case 4: value |= LCDC_MKBF(LCDCON2_PIXELSIZE, 2); break;</font>
<font color="#009900">++                case 8: value |= LCDC_MKBF(LCDCON2_PIXELSIZE, 3); break;</font>
<font color="#009900">++                case 15: /* fall through */</font>
<font color="#009900">++                case 16: value |= LCDC_MKBF(LCDCON2_PIXELSIZE, 4); break;</font>
<font color="#009900">++                case 24: value |= LCDC_MKBF(LCDCON2_PIXELSIZE, 5); break;</font>
<font color="#009900">++                case 32: value |= LCDC_MKBF(LCDCON2_PIXELSIZE, 6); break;</font>
<font color="#009900">++                default:</font>
<font color="#009900">++                         printf("lcdc: %d bits per pixel not supported\n",</font>
<font color="#009900">++                                         cinfo-&gt;bits_per_pixel);</font>
<font color="#009900">++                         return;</font>
<font color="#009900">++                         break;</font>
<font color="#009900">++        }</font>
<font color="#009900">++        lcdc_writel(cinfo, LCDCON2, value);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Vertical timing */</font>
<font color="#009900">++        value = LCDC_MKBF(LCDTIM1_VPW, cinfo-&gt;vsync_len - 1);</font>
<font color="#009900">++        value |= LCDC_MKBF(LCDTIM1_VBP, cinfo-&gt;upper_margin);</font>
<font color="#009900">++        value |= LCDC_MKBF(LCDTIM1_VFP, cinfo-&gt;lower_margin);</font>
<font color="#009900">++        lcdc_writel(cinfo, LCDTIM1, value);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Horizontal timing */</font>
<font color="#009900">++        value = LCDC_MKBF(LCDTIM2_HFP, cinfo-&gt;right_margin - 1);</font>
<font color="#009900">++        value |= LCDC_MKBF(LCDTIM2_HPW, cinfo-&gt;hsync_len - 1);</font>
<font color="#009900">++        value |= LCDC_MKBF(LCDTIM2_HBP, cinfo-&gt;left_margin - 1);</font>
<font color="#009900">++        lcdc_writel(cinfo, LCDTIM2, value);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Display size */</font>
<font color="#009900">++        value = LCDC_MKBF(LCDFRMCFG_LINESIZE, cinfo-&gt;xres - 1);</font>
<font color="#009900">++        value |= LCDC_MKBF(LCDFRMCFG_LINEVAL, cinfo-&gt;yres - 1);</font>
<font color="#009900">++        lcdc_writel(cinfo, LCDFRMCFG, value);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* FIFO Threshold: Use formula from data sheet */</font>
<font color="#009900">++        value = LCDC_FIFO_SIZE - (2 * LCDC_DMA_BURST_LEN + 3);</font>
<font color="#009900">++        lcdc_writel(cinfo, LCDFIFO, value);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Toggle LCD_MODE every frame */</font>
<font color="#009900">++        lcdc_writel(cinfo, LCDMVAL, 0);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Disable all interrupts */</font>
<font color="#009900">++        lcdc_writel(cinfo, LCD_IDR, ~0UL);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Wait for the LCDC core to become idle and enable it */</font>
<font color="#009900">++        while (lcdc_readl(cinfo, PWRCON) &amp; LCDC_BIT(PWRCON_LCD_BUSY));</font>
<font color="#009900">++</font>
<font color="#009900">++        lcdc_writel(cinfo, PWRCON,</font>
<font color="#009900">++                        LCDC_MKBF(PWRCON_GUARD_TIME, cinfo-&gt;guard_time)</font>
<font color="#009900">++                        | LCDC_BIT(PWRCON_LCD_PWR));</font>
<font color="#009900">++</font>
<font color="#009900">++        debug("lcdc: controller at 0x%08x, framebuffer at 0x%08x\n",</font>
<font color="#009900">++                        cinfo-&gt;regs, cinfo-&gt;smem_start);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* clear 320 x 240 x 24bpp area in framebuffer */</font>
<font color="#009900">++        memset((void *)cinfo-&gt;smem_start, 0, cinfo-&gt;xres * cinfo-&gt;yres * 3);</font>
<font color="#009900">++</font>
<font color="#009900">++        return;</font>
<font color="#009900">++}</font>
<font color="#009900">++#endif</font>
<font color="#009900">+diff -uprN u-boot-orig/drivers/Makefile u-boot/drivers/Makefile</font>
<font color="#009900">+--- u-boot-orig/drivers/Makefile        2007-01-01 19:26:46.000000000 +0100</font>
<font color="#009900">++++ u-boot/drivers/Makefile        2007-01-01 16:10:49.000000000 +0100</font>
<font color="#009900">+@@ -27,7 +27,8 @@ include $(TOPDIR)/config.mk</font>
<font color="#009900">+ </font>
<font color="#009900">+ LIB        = libdrivers.a</font>
<font color="#009900">+ </font>
<font color="#009900">+-OBJS        = 3c589.o 5701rls.o ali512x.o atmel_usart.o \</font>
<font color="#009900">++OBJS        = 3c589.o 5701rls.o ali512x.o \</font>
<font color="#009900">++          atmel_usart.o atmel_lcdc.o \</font>
<font color="#009900">+           bcm570x.o bcm570x_autoneg.o cfb_console.o cfi_flash.o \</font>
<font color="#009900">+           cs8900.o ct69000.o dataflash.o dc2114x.o dm9000x.o \</font>
<font color="#009900">+           e1000.o eepro100.o \</font>
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot-1.1.4/at32stk1000/libavr32-add-spi-and-lcd-board-support.patch        f9cdf2cc1db97cbdcfbb811df1067fb7baec5542</font>
<font color="#009900">+++ packages/u-boot/u-boot-1.1.4/at32stk1000/libavr32-add-spi-and-lcd-board-support.patch        f9cdf2cc1db97cbdcfbb811df1067fb7baec5542</font>
<font color="#0000FF">@@ -0,0 +1,61 @@</font>
<font color="#009900">+diff -uprN u-boot-orig/lib_avr32/board.c u-boot/lib_avr32/board.c</font>
<font color="#009900">+--- u-boot-orig/lib_avr32/board.c        2007-01-01 19:26:46.000000000 +0100</font>
<font color="#009900">++++ u-boot/lib_avr32/board.c        2007-01-05 13:29:34.000000000 +0100</font>
<font color="#009900">+@@ -28,6 +28,7 @@</font>
<font color="#009900">+ </font>
<font color="#009900">+ #include &lt;asm/initcalls.h&gt;</font>
<font color="#009900">+ #include &lt;asm/sections.h&gt;</font>
<font color="#009900">++#include &lt;asm/page.h&gt;</font>
<font color="#009900">+ </font>
<font color="#009900">+ #ifndef CONFIG_IDENT_STRING</font>
<font color="#009900">+ #define CONFIG_IDENT_STRING ""</font>
<font color="#009900">+@@ -128,6 +129,10 @@ void start_u_boot (void)</font>
<font color="#009900">+ {</font>
<font color="#009900">+         DECLARE_GLOBAL_DATA_PTR;</font>
<font color="#009900">+         gd_t gd_data;</font>
<font color="#009900">++#if defined(CONFIG_VFD) || defined(CONFIG_LCD)</font>
<font color="#009900">++        unsigned long size;</font>
<font color="#009900">++        unsigned long addr;</font>
<font color="#009900">++#endif</font>
<font color="#009900">+ </font>
<font color="#009900">+         /* Initialize the global data pointer */</font>
<font color="#009900">+         memset(&amp;gd_data, 0, sizeof(gd_data));</font>
<font color="#009900">+@@ -172,9 +177,38 @@ void start_u_boot (void)</font>
<font color="#009900">+         if (!gd-&gt;bd-&gt;bi_boot_params)</font>
<font color="#009900">+                 puts("WARNING: Cannot allocate space for boot parameters\n");</font>
<font color="#009900">+ </font>
<font color="#009900">++#if CONFIG_SPI</font>
<font color="#009900">++        board_init_spi();</font>
<font color="#009900">++#endif</font>
<font color="#009900">++</font>
<font color="#009900">++#ifdef CONFIG_VFD</font>
<font color="#009900">++        /*</font>
<font color="#009900">++         * reserve memory for VFD display (always full pages)</font>
<font color="#009900">++         */</font>
<font color="#009900">++        /* bss_end is defined in the board-specific linker script */</font>
<font color="#009900">++        addr = CFG_LCD_BASE;</font>
<font color="#009900">++        size = vfd_setmem(addr);</font>
<font color="#009900">++        gd-&gt;fb_base = addr;</font>
<font color="#009900">++#endif /* CONFIG_VFD */</font>
<font color="#009900">++</font>
<font color="#009900">++#ifdef CONFIG_LCD</font>
<font color="#009900">++        /*</font>
<font color="#009900">++         * reserve memory for LCD display (always full pages)</font>
<font color="#009900">++         */</font>
<font color="#009900">++        /* bss_end is defined in the board-specific linker script */</font>
<font color="#009900">++        addr = CFG_LCD_BASE;</font>
<font color="#009900">++        size = lcd_setmem(addr);</font>
<font color="#009900">++        gd-&gt;fb_base = addr;</font>
<font color="#009900">++#endif /* CONFIG_LCD */</font>
<font color="#009900">++</font>
<font color="#009900">+         /* initialize environment */</font>
<font color="#009900">+         env_relocate();</font>
<font color="#009900">+ </font>
<font color="#009900">++#ifdef CONFIG_VFD</font>
<font color="#009900">++        /* must do this after the framebuffer is allocated */</font>
<font color="#009900">++        drv_vfd_init();</font>
<font color="#009900">++#endif /* CONFIG_VFD */</font>
<font color="#009900">++</font>
<font color="#009900">+         devices_init();</font>
<font color="#009900">+         jumptable_init();</font>
<font color="#009900">+         console_init_r();</font>
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot-1.1.4/at32stk1000/spi-driver-for-avr32.patch        aaf3a5bcf5a60041e4da853c72c9417adca86a12</font>
<font color="#009900">+++ packages/u-boot/u-boot-1.1.4/at32stk1000/spi-driver-for-avr32.patch        aaf3a5bcf5a60041e4da853c72c9417adca86a12</font>
<font color="#0000FF">@@ -0,0 +1,1026 @@</font>
<font color="#009900">+diff -uprN u-boot-orig/include/atmel_spi.h u-boot/include/atmel_spi.h</font>
<font color="#009900">+--- u-boot-orig/include/atmel_spi.h        1970-01-01 01:00:00.000000000 +0100</font>
<font color="#009900">++++ u-boot/include/atmel_spi.h        2007-01-01 18:45:27.000000000 +0100</font>
<font color="#009900">+@@ -0,0 +1,676 @@</font>
<font color="#009900">++#ifndef __SPI_H_</font>
<font color="#009900">++#define __SPI_H_</font>
<font color="#009900">++</font>
<font color="#009900">++/*! \brief Timeout for spi read and write blocking functions */</font>
<font color="#009900">++#define SPI_TIMEOUT                10000</font>
<font color="#009900">++/*! \brief Enable PDC functions for SPI */</font>
<font color="#009900">++#define SPI_ENABLE_PDC</font>
<font color="#009900">++</font>
<font color="#009900">++#define SPI_10_BPT                                   0x00000002</font>
<font color="#009900">++#define SPI_11_BPT                                   0x00000003</font>
<font color="#009900">++#define SPI_12_BPT                                   0x00000004</font>
<font color="#009900">++#define SPI_13_BPT                                   0x00000005</font>
<font color="#009900">++#define SPI_14_BPT                                   0x00000006</font>
<font color="#009900">++#define SPI_15_BPT                                   0x00000007</font>
<font color="#009900">++#define SPI_16_BPT                                   0x00000008</font>
<font color="#009900">++#define SPI_8_BPT                                    0x00000000</font>
<font color="#009900">++#define SPI_9_BPT                                    0x00000001</font>
<font color="#009900">++#define SPI_BITS                                              4</font>
<font color="#009900">++#define SPI_BITS_10_BPT                              0x00000002</font>
<font color="#009900">++#define SPI_BITS_11_BPT                              0x00000003</font>
<font color="#009900">++#define SPI_BITS_12_BPT                              0x00000004</font>
<font color="#009900">++#define SPI_BITS_13_BPT                              0x00000005</font>
<font color="#009900">++#define SPI_BITS_14_BPT                              0x00000006</font>
<font color="#009900">++#define SPI_BITS_15_BPT                              0x00000007</font>
<font color="#009900">++#define SPI_BITS_16_BPT                              0x00000008</font>
<font color="#009900">++#define SPI_BITS_8_BPT                               0x00000000</font>
<font color="#009900">++#define SPI_BITS_9_BPT                               0x00000001</font>
<font color="#009900">++#define SPI_BITS_MASK                                0x000000f0</font>
<font color="#009900">++#define SPI_BITS_OFFSET                                       4</font>
<font color="#009900">++#define SPI_BITS_SIZE                                         4</font>
<font color="#009900">++#define SPI_CPOL                                              0</font>
<font color="#009900">++#define SPI_CPOL_MASK                                0x00000001</font>
<font color="#009900">++#define SPI_CPOL_OFFSET                                       0</font>
<font color="#009900">++#define SPI_CPOL_SIZE                                         1</font>
<font color="#009900">++#define SPI_CR                                       0x00000000</font>
<font color="#009900">++#define SPI_CR_LASTXFER                                      24</font>
<font color="#009900">++#define SPI_CR_LASTXFER_MASK                         0x01000000</font>
<font color="#009900">++#define SPI_CR_LASTXFER_OFFSET                               24</font>
<font color="#009900">++#define SPI_CR_LASTXFER_SIZE                                  1</font>
<font color="#009900">++#define SPI_CR_SPIDIS                                         1</font>
<font color="#009900">++#define SPI_CR_SPIDIS_MASK                           0x00000002</font>
<font color="#009900">++#define SPI_CR_SPIDIS_OFFSET                                  1</font>
<font color="#009900">++#define SPI_CR_SPIDIS_SIZE                                    1</font>
<font color="#009900">++#define SPI_CR_SPIEN                                          0</font>
<font color="#009900">++#define SPI_CR_SPIEN_MASK                            0x00000001</font>
<font color="#009900">++#define SPI_CR_SPIEN_OFFSET                                   0</font>
<font color="#009900">++#define SPI_CR_SPIEN_SIZE                                     1</font>
<font color="#009900">++#define SPI_CR_SWRST                                          7</font>
<font color="#009900">++#define SPI_CR_SWRST_MASK                            0x00000080</font>
<font color="#009900">++#define SPI_CR_SWRST_OFFSET                                   7</font>
<font color="#009900">++#define SPI_CR_SWRST_SIZE                                     1</font>
<font color="#009900">++#define SPI_CSAAT                                             3</font>
<font color="#009900">++#define SPI_CSAAT_MASK                               0x00000008</font>
<font color="#009900">++#define SPI_CSAAT_OFFSET                                      3</font>
<font color="#009900">++#define SPI_CSAAT_SIZE                                        1</font>
<font color="#009900">++#define SPI_CSR0                                     0x00000030</font>
<font color="#009900">++#define SPI_CSR0_BITS                                         4</font>
<font color="#009900">++#define SPI_CSR0_BITS_10_BPT                         0x00000002</font>
<font color="#009900">++#define SPI_CSR0_BITS_11_BPT                         0x00000003</font>
<font color="#009900">++#define SPI_CSR0_BITS_12_BPT                         0x00000004</font>
<font color="#009900">++#define SPI_CSR0_BITS_13_BPT                         0x00000005</font>
<font color="#009900">++#define SPI_CSR0_BITS_14_BPT                         0x00000006</font>
<font color="#009900">++#define SPI_CSR0_BITS_15_BPT                         0x00000007</font>
<font color="#009900">++#define SPI_CSR0_BITS_16_BPT                         0x00000008</font>
<font color="#009900">++#define SPI_CSR0_BITS_8_BPT                          0x00000000</font>
<font color="#009900">++#define SPI_CSR0_BITS_9_BPT                          0x00000001</font>
<font color="#009900">++#define SPI_CSR0_BITS_MASK                           0x000000f0</font>
<font color="#009900">++#define SPI_CSR0_BITS_OFFSET                                  4</font>
<font color="#009900">++#define SPI_CSR0_BITS_SIZE                                    4</font>
<font color="#009900">++#define SPI_CSR0_CPOL                                         0</font>
<font color="#009900">++#define SPI_CSR0_CPOL_MASK                           0x00000001</font>
<font color="#009900">++#define SPI_CSR0_CPOL_OFFSET                                  0</font>
<font color="#009900">++#define SPI_CSR0_CPOL_SIZE                                    1</font>
<font color="#009900">++#define SPI_CSR0_CSAAT                                        3</font>
<font color="#009900">++#define SPI_CSR0_CSAAT_MASK                          0x00000008</font>
<font color="#009900">++#define SPI_CSR0_CSAAT_OFFSET                                 3</font>
<font color="#009900">++#define SPI_CSR0_CSAAT_SIZE                                   1</font>
<font color="#009900">++#define SPI_CSR0_DLYBCT                                      24</font>
<font color="#009900">++#define SPI_CSR0_DLYBCT_MASK                         0xff000000</font>
<font color="#009900">++#define SPI_CSR0_DLYBCT_OFFSET                               24</font>
<font color="#009900">++#define SPI_CSR0_DLYBCT_SIZE                                  8</font>
<font color="#009900">++#define SPI_CSR0_DLYBS                                       16</font>
<font color="#009900">++#define SPI_CSR0_DLYBS_MASK                          0x00ff0000</font>
<font color="#009900">++#define SPI_CSR0_DLYBS_OFFSET                                16</font>
<font color="#009900">++#define SPI_CSR0_DLYBS_SIZE                                   8</font>
<font color="#009900">++#define SPI_CSR0_NCPHA                                        1</font>
<font color="#009900">++#define SPI_CSR0_NCPHA_MASK                          0x00000002</font>
<font color="#009900">++#define SPI_CSR0_NCPHA_OFFSET                                 1</font>
<font color="#009900">++#define SPI_CSR0_NCPHA_SIZE                                   1</font>
<font color="#009900">++#define SPI_CSR0_SCBR                                         8</font>
<font color="#009900">++#define SPI_CSR0_SCBR_MASK                           0x0000ff00</font>
<font color="#009900">++#define SPI_CSR0_SCBR_OFFSET                                  8</font>
<font color="#009900">++#define SPI_CSR0_SCBR_SIZE                                    8</font>
<font color="#009900">++#define SPI_CSR1                                     0x00000034</font>
<font color="#009900">++#define SPI_CSR1_BITS                                         4</font>
<font color="#009900">++#define SPI_CSR1_BITS_10_BPT                         0x00000002</font>
<font color="#009900">++#define SPI_CSR1_BITS_11_BPT                         0x00000003</font>
<font color="#009900">++#define SPI_CSR1_BITS_12_BPT                         0x00000004</font>
<font color="#009900">++#define SPI_CSR1_BITS_13_BPT                         0x00000005</font>
<font color="#009900">++#define SPI_CSR1_BITS_14_BPT                         0x00000006</font>
<font color="#009900">++#define SPI_CSR1_BITS_15_BPT                         0x00000007</font>
<font color="#009900">++#define SPI_CSR1_BITS_16_BPT                         0x00000008</font>
<font color="#009900">++#define SPI_CSR1_BITS_8_BPT                          0x00000000</font>
<font color="#009900">++#define SPI_CSR1_BITS_9_BPT                          0x00000001</font>
<font color="#009900">++#define SPI_CSR1_BITS_MASK                           0x000000f0</font>
<font color="#009900">++#define SPI_CSR1_BITS_OFFSET                                  4</font>
<font color="#009900">++#define SPI_CSR1_BITS_SIZE                                    4</font>
<font color="#009900">++#define SPI_CSR1_CPOL                                         0</font>
<font color="#009900">++#define SPI_CSR1_CPOL_MASK                           0x00000001</font>
<font color="#009900">++#define SPI_CSR1_CPOL_OFFSET                                  0</font>
<font color="#009900">++#define SPI_CSR1_CPOL_SIZE                                    1</font>
<font color="#009900">++#define SPI_CSR1_CSAAT                                        3</font>
<font color="#009900">++#define SPI_CSR1_CSAAT_MASK                          0x00000008</font>
<font color="#009900">++#define SPI_CSR1_CSAAT_OFFSET                                 3</font>
<font color="#009900">++#define SPI_CSR1_CSAAT_SIZE                                   1</font>
<font color="#009900">++#define SPI_CSR1_DLYBCT                                      24</font>
<font color="#009900">++#define SPI_CSR1_DLYBCT_MASK                         0xff000000</font>
<font color="#009900">++#define SPI_CSR1_DLYBCT_OFFSET                               24</font>
<font color="#009900">++#define SPI_CSR1_DLYBCT_SIZE                                  8</font>
<font color="#009900">++#define SPI_CSR1_DLYBS                                       16</font>
<font color="#009900">++#define SPI_CSR1_DLYBS_MASK                          0x00ff0000</font>
<font color="#009900">++#define SPI_CSR1_DLYBS_OFFSET                                16</font>
<font color="#009900">++#define SPI_CSR1_DLYBS_SIZE                                   8</font>
<font color="#009900">++#define SPI_CSR1_NCPHA                                        1</font>
<font color="#009900">++#define SPI_CSR1_NCPHA_MASK                          0x00000002</font>
<font color="#009900">++#define SPI_CSR1_NCPHA_OFFSET                                 1</font>
<font color="#009900">++#define SPI_CSR1_NCPHA_SIZE                                   1</font>
<font color="#009900">++#define SPI_CSR1_SCBR                                         8</font>
<font color="#009900">++#define SPI_CSR1_SCBR_MASK                           0x0000ff00</font>
<font color="#009900">++#define SPI_CSR1_SCBR_OFFSET                                  8</font>
<font color="#009900">++#define SPI_CSR1_SCBR_SIZE                                    8</font>
<font color="#009900">++#define SPI_CSR2                                     0x00000038</font>
<font color="#009900">++#define SPI_CSR2_BITS                                         4</font>
<font color="#009900">++#define SPI_CSR2_BITS_10_BPT                         0x00000002</font>
<font color="#009900">++#define SPI_CSR2_BITS_11_BPT                         0x00000003</font>
<font color="#009900">++#define SPI_CSR2_BITS_12_BPT                         0x00000004</font>
<font color="#009900">++#define SPI_CSR2_BITS_13_BPT                         0x00000005</font>
<font color="#009900">++#define SPI_CSR2_BITS_14_BPT                         0x00000006</font>
<font color="#009900">++#define SPI_CSR2_BITS_15_BPT                         0x00000007</font>
<font color="#009900">++#define SPI_CSR2_BITS_16_BPT                         0x00000008</font>
<font color="#009900">++#define SPI_CSR2_BITS_8_BPT                          0x00000000</font>
<font color="#009900">++#define SPI_CSR2_BITS_9_BPT                          0x00000001</font>
<font color="#009900">++#define SPI_CSR2_BITS_MASK                           0x000000f0</font>
<font color="#009900">++#define SPI_CSR2_BITS_OFFSET                                  4</font>
<font color="#009900">++#define SPI_CSR2_BITS_SIZE                                    4</font>
<font color="#009900">++#define SPI_CSR2_CPOL                                         0</font>
<font color="#009900">++#define SPI_CSR2_CPOL_MASK                           0x00000001</font>
<font color="#009900">++#define SPI_CSR2_CPOL_OFFSET                                  0</font>
<font color="#009900">++#define SPI_CSR2_CPOL_SIZE                                    1</font>
<font color="#009900">++#define SPI_CSR2_CSAAT                                        3</font>
<font color="#009900">++#define SPI_CSR2_CSAAT_MASK                          0x00000008</font>
<font color="#009900">++#define SPI_CSR2_CSAAT_OFFSET                                 3</font>
<font color="#009900">++#define SPI_CSR2_CSAAT_SIZE                                   1</font>
<font color="#009900">++#define SPI_CSR2_DLYBCT                                      24</font>
<font color="#009900">++#define SPI_CSR2_DLYBCT_MASK                         0xff000000</font>
<font color="#009900">++#define SPI_CSR2_DLYBCT_OFFSET                               24</font>
<font color="#009900">++#define SPI_CSR2_DLYBCT_SIZE                                  8</font>
<font color="#009900">++#define SPI_CSR2_DLYBS                                       16</font>
<font color="#009900">++#define SPI_CSR2_DLYBS_MASK                          0x00ff0000</font>
<font color="#009900">++#define SPI_CSR2_DLYBS_OFFSET                                16</font>
<font color="#009900">++#define SPI_CSR2_DLYBS_SIZE                                   8</font>
<font color="#009900">++#define SPI_CSR2_NCPHA                                        1</font>
<font color="#009900">++#define SPI_CSR2_NCPHA_MASK                          0x00000002</font>
<font color="#009900">++#define SPI_CSR2_NCPHA_OFFSET                                 1</font>
<font color="#009900">++#define SPI_CSR2_NCPHA_SIZE                                   1</font>
<font color="#009900">++#define SPI_CSR2_SCBR                                         8</font>
<font color="#009900">++#define SPI_CSR2_SCBR_MASK                           0x0000ff00</font>
<font color="#009900">++#define SPI_CSR2_SCBR_OFFSET                                  8</font>
<font color="#009900">++#define SPI_CSR2_SCBR_SIZE                                    8</font>
<font color="#009900">++#define SPI_CSR3                                     0x0000003c</font>
<font color="#009900">++#define SPI_CSR3_BITS                                         4</font>
<font color="#009900">++#define SPI_CSR3_BITS_10_BPT                         0x00000002</font>
<font color="#009900">++#define SPI_CSR3_BITS_11_BPT                         0x00000003</font>
<font color="#009900">++#define SPI_CSR3_BITS_12_BPT                         0x00000004</font>
<font color="#009900">++#define SPI_CSR3_BITS_13_BPT                         0x00000005</font>
<font color="#009900">++#define SPI_CSR3_BITS_14_BPT                         0x00000006</font>
<font color="#009900">++#define SPI_CSR3_BITS_15_BPT                         0x00000007</font>
<font color="#009900">++#define SPI_CSR3_BITS_16_BPT                         0x00000008</font>
<font color="#009900">++#define SPI_CSR3_BITS_8_BPT                          0x00000000</font>
<font color="#009900">++#define SPI_CSR3_BITS_9_BPT                          0x00000001</font>
<font color="#009900">++#define SPI_CSR3_BITS_MASK                           0x000000f0</font>
<font color="#009900">++#define SPI_CSR3_BITS_OFFSET                                  4</font>
<font color="#009900">++#define SPI_CSR3_BITS_SIZE                                    4</font>
<font color="#009900">++#define SPI_CSR3_CPOL                                         0</font>
<font color="#009900">++#define SPI_CSR3_CPOL_MASK                           0x00000001</font>
<font color="#009900">++#define SPI_CSR3_CPOL_OFFSET                                  0</font>
<font color="#009900">++#define SPI_CSR3_CPOL_SIZE                                    1</font>
<font color="#009900">++#define SPI_CSR3_CSAAT                                        3</font>
<font color="#009900">++#define SPI_CSR3_CSAAT_MASK                          0x00000008</font>
<font color="#009900">++#define SPI_CSR3_CSAAT_OFFSET                                 3</font>
<font color="#009900">++#define SPI_CSR3_CSAAT_SIZE                                   1</font>
<font color="#009900">++#define SPI_CSR3_DLYBCT                                      24</font>
<font color="#009900">++#define SPI_CSR3_DLYBCT_MASK                         0xff000000</font>
<font color="#009900">++#define SPI_CSR3_DLYBCT_OFFSET                               24</font>
<font color="#009900">++#define SPI_CSR3_DLYBCT_SIZE                                  8</font>
<font color="#009900">++#define SPI_CSR3_DLYBS                                       16</font>
<font color="#009900">++#define SPI_CSR3_DLYBS_MASK                          0x00ff0000</font>
<font color="#009900">++#define SPI_CSR3_DLYBS_OFFSET                                16</font>
<font color="#009900">++#define SPI_CSR3_DLYBS_SIZE                                   8</font>
<font color="#009900">++#define SPI_CSR3_NCPHA                                        1</font>
<font color="#009900">++#define SPI_CSR3_NCPHA_MASK                          0x00000002</font>
<font color="#009900">++#define SPI_CSR3_NCPHA_OFFSET                                 1</font>
<font color="#009900">++#define SPI_CSR3_NCPHA_SIZE                                   1</font>
<font color="#009900">++#define SPI_CSR3_SCBR                                         8</font>
<font color="#009900">++#define SPI_CSR3_SCBR_MASK                           0x0000ff00</font>
<font color="#009900">++#define SPI_CSR3_SCBR_OFFSET                                  8</font>
<font color="#009900">++#define SPI_CSR3_SCBR_SIZE                                    8</font>
<font color="#009900">++#define SPI_DLYBCS                                           24</font>
<font color="#009900">++#define SPI_DLYBCS_MASK                              0xff000000</font>
<font color="#009900">++#define SPI_DLYBCS_OFFSET                                    24</font>
<font color="#009900">++#define SPI_DLYBCS_SIZE                                       8</font>
<font color="#009900">++#define SPI_DLYBCT                                           24</font>
<font color="#009900">++#define SPI_DLYBCT_MASK                              0xff000000</font>
<font color="#009900">++#define SPI_DLYBCT_OFFSET                                    24</font>
<font color="#009900">++#define SPI_DLYBCT_SIZE                                       8</font>
<font color="#009900">++#define SPI_DLYBS                                            16</font>
<font color="#009900">++#define SPI_DLYBS_MASK                               0x00ff0000</font>
<font color="#009900">++#define SPI_DLYBS_OFFSET                                     16</font>
<font color="#009900">++#define SPI_DLYBS_SIZE                                        8</font>
<font color="#009900">++#define SPI_ENDRX                                             4</font>
<font color="#009900">++#define SPI_ENDRX_MASK                               0x00000010</font>
<font color="#009900">++#define SPI_ENDRX_OFFSET                                      4</font>
<font color="#009900">++#define SPI_ENDRX_SIZE                                        1</font>
<font color="#009900">++#define SPI_ENDTX                                             5</font>
<font color="#009900">++#define SPI_ENDTX_MASK                               0x00000020</font>
<font color="#009900">++#define SPI_ENDTX_OFFSET                                      5</font>
<font color="#009900">++#define SPI_ENDTX_SIZE                                        1</font>
<font color="#009900">++#define SPI_FDIV                                              3</font>
<font color="#009900">++#define SPI_FDIV_MASK                                0x00000008</font>
<font color="#009900">++#define SPI_FDIV_OFFSET                                       3</font>
<font color="#009900">++#define SPI_FDIV_SIZE                                         1</font>
<font color="#009900">++#define SPI_IDR                                      0x00000018</font>
<font color="#009900">++#define SPI_IDR_ENDRX                                         4</font>
<font color="#009900">++#define SPI_IDR_ENDRX_MASK                           0x00000010</font>
<font color="#009900">++#define SPI_IDR_ENDRX_OFFSET                                  4</font>
<font color="#009900">++#define SPI_IDR_ENDRX_SIZE                                    1</font>
<font color="#009900">++#define SPI_IDR_ENDTX                                         5</font>
<font color="#009900">++#define SPI_IDR_ENDTX_MASK                           0x00000020</font>
<font color="#009900">++#define SPI_IDR_ENDTX_OFFSET                                  5</font>
<font color="#009900">++#define SPI_IDR_ENDTX_SIZE                                    1</font>
<font color="#009900">++#define SPI_IDR_MODF                                          2</font>
<font color="#009900">++#define SPI_IDR_MODF_MASK                            0x00000004</font>
<font color="#009900">++#define SPI_IDR_MODF_OFFSET                                   2</font>
<font color="#009900">++#define SPI_IDR_MODF_SIZE                                     1</font>
<font color="#009900">++#define SPI_IDR_NSSR                                          8</font>
<font color="#009900">++#define SPI_IDR_NSSR_MASK                            0x00000100</font>
<font color="#009900">++#define SPI_IDR_NSSR_OFFSET                                   8</font>
<font color="#009900">++#define SPI_IDR_NSSR_SIZE                                     1</font>
<font color="#009900">++#define SPI_IDR_OVRES                                         3</font>
<font color="#009900">++#define SPI_IDR_OVRES_MASK                           0x00000008</font>
<font color="#009900">++#define SPI_IDR_OVRES_OFFSET                                  3</font>
<font color="#009900">++#define SPI_IDR_OVRES_SIZE                                    1</font>
<font color="#009900">++#define SPI_IDR_RDRF                                          0</font>
<font color="#009900">++#define SPI_IDR_RDRF_MASK                            0x00000001</font>
<font color="#009900">++#define SPI_IDR_RDRF_OFFSET                                   0</font>
<font color="#009900">++#define SPI_IDR_RDRF_SIZE                                     1</font>
<font color="#009900">++#define SPI_IDR_RXBUFF                                        6</font>
<font color="#009900">++#define SPI_IDR_RXBUFF_MASK                          0x00000040</font>
<font color="#009900">++#define SPI_IDR_RXBUFF_OFFSET                                 6</font>
<font color="#009900">++#define SPI_IDR_RXBUFF_SIZE                                   1</font>
<font color="#009900">++#define SPI_IDR_TDRE                                          1</font>
<font color="#009900">++#define SPI_IDR_TDRE_MASK                            0x00000002</font>
<font color="#009900">++#define SPI_IDR_TDRE_OFFSET                                   1</font>
<font color="#009900">++#define SPI_IDR_TDRE_SIZE                                     1</font>
<font color="#009900">++#define SPI_IDR_TXBUFE                                        7</font>
<font color="#009900">++#define SPI_IDR_TXBUFE_MASK                          0x00000080</font>
<font color="#009900">++#define SPI_IDR_TXBUFE_OFFSET                                 7</font>
<font color="#009900">++#define SPI_IDR_TXBUFE_SIZE                                   1</font>
<font color="#009900">++#define SPI_IDR_TXEMPTY                                       9</font>
<font color="#009900">++#define SPI_IDR_TXEMPTY_MASK                         0x00000200</font>
<font color="#009900">++#define SPI_IDR_TXEMPTY_OFFSET                                9</font>
<font color="#009900">++#define SPI_IDR_TXEMPTY_SIZE                                  1</font>
<font color="#009900">++#define SPI_IER                                      0x00000014</font>
<font color="#009900">++#define SPI_IER_ENDRX                                         4</font>
<font color="#009900">++#define SPI_IER_ENDRX_MASK                           0x00000010</font>
<font color="#009900">++#define SPI_IER_ENDRX_OFFSET                                  4</font>
<font color="#009900">++#define SPI_IER_ENDRX_SIZE                                    1</font>
<font color="#009900">++#define SPI_IER_ENDTX                                         5</font>
<font color="#009900">++#define SPI_IER_ENDTX_MASK                           0x00000020</font>
<font color="#009900">++#define SPI_IER_ENDTX_OFFSET                                  5</font>
<font color="#009900">++#define SPI_IER_ENDTX_SIZE                                    1</font>
<font color="#009900">++#define SPI_IER_MODF                                          2</font>
<font color="#009900">++#define SPI_IER_MODF_MASK                            0x00000004</font>
<font color="#009900">++#define SPI_IER_MODF_OFFSET                                   2</font>
<font color="#009900">++#define SPI_IER_MODF_SIZE                                     1</font>
<font color="#009900">++#define SPI_IER_NSSR                                          8</font>
<font color="#009900">++#define SPI_IER_NSSR_MASK                            0x00000100</font>
<font color="#009900">++#define SPI_IER_NSSR_OFFSET                                   8</font>
<font color="#009900">++#define SPI_IER_NSSR_SIZE                                     1</font>
<font color="#009900">++#define SPI_IER_OVRES                                         3</font>
<font color="#009900">++#define SPI_IER_OVRES_MASK                           0x00000008</font>
<font color="#009900">++#define SPI_IER_OVRES_OFFSET                                  3</font>
<font color="#009900">++#define SPI_IER_OVRES_SIZE                                    1</font>
<font color="#009900">++#define SPI_IER_RDRF                                          0</font>
<font color="#009900">++#define SPI_IER_RDRF_MASK                            0x00000001</font>
<font color="#009900">++#define SPI_IER_RDRF_OFFSET                                   0</font>
<font color="#009900">++#define SPI_IER_RDRF_SIZE                                     1</font>
<font color="#009900">++#define SPI_IER_RXBUFF                                        6</font>
<font color="#009900">++#define SPI_IER_RXBUFF_MASK                          0x00000040</font>
<font color="#009900">++#define SPI_IER_RXBUFF_OFFSET                                 6</font>
<font color="#009900">++#define SPI_IER_RXBUFF_SIZE                                   1</font>
<font color="#009900">++#define SPI_IER_TDRE                                          1</font>
<font color="#009900">++#define SPI_IER_TDRE_MASK                            0x00000002</font>
<font color="#009900">++#define SPI_IER_TDRE_OFFSET                                   1</font>
<font color="#009900">++#define SPI_IER_TDRE_SIZE                                     1</font>
<font color="#009900">++#define SPI_IER_TXBUFE                                        7</font>
<font color="#009900">++#define SPI_IER_TXBUFE_MASK                          0x00000080</font>
<font color="#009900">++#define SPI_IER_TXBUFE_OFFSET                                 7</font>
<font color="#009900">++#define SPI_IER_TXBUFE_SIZE                                   1</font>
<font color="#009900">++#define SPI_IER_TXEMPTY                                       9</font>
<font color="#009900">++#define SPI_IER_TXEMPTY_MASK                         0x00000200</font>
<font color="#009900">++#define SPI_IER_TXEMPTY_OFFSET                                9</font>
<font color="#009900">++#define SPI_IER_TXEMPTY_SIZE                                  1</font>
<font color="#009900">++#define SPI_IMR                                      0x0000001c</font>
<font color="#009900">++#define SPI_IMR_ENDRX                                         4</font>
<font color="#009900">++#define SPI_IMR_ENDRX_MASK                           0x00000010</font>
<font color="#009900">++#define SPI_IMR_ENDRX_OFFSET                                  4</font>
<font color="#009900">++#define SPI_IMR_ENDRX_SIZE                                    1</font>
<font color="#009900">++#define SPI_IMR_ENDTX                                         5</font>
<font color="#009900">++#define SPI_IMR_ENDTX_MASK                           0x00000020</font>
<font color="#009900">++#define SPI_IMR_ENDTX_OFFSET                                  5</font>
<font color="#009900">++#define SPI_IMR_ENDTX_SIZE                                    1</font>
<font color="#009900">++#define SPI_IMR_MODF                                          2</font>
<font color="#009900">++#define SPI_IMR_MODF_MASK                            0x00000004</font>
<font color="#009900">++#define SPI_IMR_MODF_OFFSET                                   2</font>
<font color="#009900">++#define SPI_IMR_MODF_SIZE                                     1</font>
<font color="#009900">++#define SPI_IMR_NSSR                                          8</font>
<font color="#009900">++#define SPI_IMR_NSSR_MASK                            0x00000100</font>
<font color="#009900">++#define SPI_IMR_NSSR_OFFSET                                   8</font>
<font color="#009900">++#define SPI_IMR_NSSR_SIZE                                     1</font>
<font color="#009900">++#define SPI_IMR_OVRES                                         3</font>
<font color="#009900">++#define SPI_IMR_OVRES_MASK                           0x00000008</font>
<font color="#009900">++#define SPI_IMR_OVRES_OFFSET                                  3</font>
<font color="#009900">++#define SPI_IMR_OVRES_SIZE                                    1</font>
<font color="#009900">++#define SPI_IMR_RDRF                                          0</font>
<font color="#009900">++#define SPI_IMR_RDRF_MASK                            0x00000001</font>
<font color="#009900">++#define SPI_IMR_RDRF_OFFSET                                   0</font>
<font color="#009900">++#define SPI_IMR_RDRF_SIZE                                     1</font>
<font color="#009900">++#define SPI_IMR_RXBUFF                                        6</font>
<font color="#009900">++#define SPI_IMR_RXBUFF_MASK                          0x00000040</font>
<font color="#009900">++#define SPI_IMR_RXBUFF_OFFSET                                 6</font>
<font color="#009900">++#define SPI_IMR_RXBUFF_SIZE                                   1</font>
<font color="#009900">++#define SPI_IMR_TDRE                                          1</font>
<font color="#009900">++#define SPI_IMR_TDRE_MASK                            0x00000002</font>
<font color="#009900">++#define SPI_IMR_TDRE_OFFSET                                   1</font>
<font color="#009900">++#define SPI_IMR_TDRE_SIZE                                     1</font>
<font color="#009900">++#define SPI_IMR_TXBUFE                                        7</font>
<font color="#009900">++#define SPI_IMR_TXBUFE_MASK                          0x00000080</font>
<font color="#009900">++#define SPI_IMR_TXBUFE_OFFSET                                 7</font>
<font color="#009900">++#define SPI_IMR_TXBUFE_SIZE                                   1</font>
<font color="#009900">++#define SPI_IMR_TXEMPTY                                       9</font>
<font color="#009900">++#define SPI_IMR_TXEMPTY_MASK                         0x00000200</font>
<font color="#009900">++#define SPI_IMR_TXEMPTY_OFFSET                                9</font>
<font color="#009900">++#define SPI_IMR_TXEMPTY_SIZE                                  1</font>
<font color="#009900">++#define SPI_LASTXFER                                         24</font>
<font color="#009900">++#define SPI_LASTXFER_MASK                            0x01000000</font>
<font color="#009900">++#define SPI_LASTXFER_OFFSET                                  24</font>
<font color="#009900">++#define SPI_LASTXFER_SIZE                                     1</font>
<font color="#009900">++#define SPI_LLB                                               7</font>
<font color="#009900">++#define SPI_LLB_MASK                                 0x00000080</font>
<font color="#009900">++#define SPI_LLB_OFFSET                                        7</font>
<font color="#009900">++#define SPI_LLB_SIZE                                          1</font>
<font color="#009900">++#define SPI_MODF                                              2</font>
<font color="#009900">++#define SPI_MODFDIS                                           4</font>
<font color="#009900">++#define SPI_MODFDIS_MASK                             0x00000010</font>
<font color="#009900">++#define SPI_MODFDIS_OFFSET                                    4</font>
<font color="#009900">++#define SPI_MODFDIS_SIZE                                      1</font>
<font color="#009900">++#define SPI_MODF_MASK                                0x00000004</font>
<font color="#009900">++#define SPI_MODF_OFFSET                                       2</font>
<font color="#009900">++#define SPI_MODF_SIZE                                         1</font>
<font color="#009900">++#define SPI_MR                                       0x00000004</font>
<font color="#009900">++#define SPI_MR_DLYBCS                                        24</font>
<font color="#009900">++#define SPI_MR_DLYBCS_MASK                           0xff000000</font>
<font color="#009900">++#define SPI_MR_DLYBCS_OFFSET                                 24</font>
<font color="#009900">++#define SPI_MR_DLYBCS_SIZE                                    8</font>
<font color="#009900">++#define SPI_MR_FDIV                                           3</font>
<font color="#009900">++#define SPI_MR_FDIV_MASK                             0x00000008</font>
<font color="#009900">++#define SPI_MR_FDIV_OFFSET                                    3</font>
<font color="#009900">++#define SPI_MR_FDIV_SIZE                                      1</font>
<font color="#009900">++#define SPI_MR_LLB                                            7</font>
<font color="#009900">++#define SPI_MR_LLB_MASK                              0x00000080</font>
<font color="#009900">++#define SPI_MR_LLB_OFFSET                                     7</font>
<font color="#009900">++#define SPI_MR_LLB_SIZE                                       1</font>
<font color="#009900">++#define SPI_MR_MODFDIS                                        4</font>
<font color="#009900">++#define SPI_MR_MODFDIS_MASK                          0x00000010</font>
<font color="#009900">++#define SPI_MR_MODFDIS_OFFSET                                 4</font>
<font color="#009900">++#define SPI_MR_MODFDIS_SIZE                                   1</font>
<font color="#009900">++#define SPI_MR_MSTR                                           0</font>
<font color="#009900">++#define SPI_MR_MSTR_MASK                             0x00000001</font>
<font color="#009900">++#define SPI_MR_MSTR_OFFSET                                    0</font>
<font color="#009900">++#define SPI_MR_MSTR_SIZE                                      1</font>
<font color="#009900">++#define SPI_MR_PCS                                           16</font>
<font color="#009900">++#define SPI_MR_PCSDEC                                         2</font>
<font color="#009900">++#define SPI_MR_PCSDEC_MASK                           0x00000004</font>
<font color="#009900">++#define SPI_MR_PCSDEC_OFFSET                                  2</font>
<font color="#009900">++#define SPI_MR_PCSDEC_SIZE                                    1</font>
<font color="#009900">++#define SPI_MR_PCS_MASK                              0x000f0000</font>
<font color="#009900">++#define SPI_MR_PCS_OFFSET                                    16</font>
<font color="#009900">++#define SPI_MR_PCS_SIZE                                       4</font>
<font color="#009900">++#define SPI_MR_PS                                             1</font>
<font color="#009900">++#define SPI_MR_PS_MASK                               0x00000002</font>
<font color="#009900">++#define SPI_MR_PS_OFFSET                                      1</font>
<font color="#009900">++#define SPI_MR_PS_SIZE                                        1</font>
<font color="#009900">++#define SPI_MSTR                                              0</font>
<font color="#009900">++#define SPI_MSTR_MASK                                0x00000001</font>
<font color="#009900">++#define SPI_MSTR_OFFSET                                       0</font>
<font color="#009900">++#define SPI_MSTR_SIZE                                         1</font>
<font color="#009900">++#define SPI_NCPHA                                             1</font>
<font color="#009900">++#define SPI_NCPHA_MASK                               0x00000002</font>
<font color="#009900">++#define SPI_NCPHA_OFFSET                                      1</font>
<font color="#009900">++#define SPI_NCPHA_SIZE                                        1</font>
<font color="#009900">++#define SPI_NSSR                                              8</font>
<font color="#009900">++#define SPI_NSSR_MASK                                0x00000100</font>
<font color="#009900">++#define SPI_NSSR_OFFSET                                       8</font>
<font color="#009900">++#define SPI_NSSR_SIZE                                         1</font>
<font color="#009900">++#define SPI_OVRES                                             3</font>
<font color="#009900">++#define SPI_OVRES_MASK                               0x00000008</font>
<font color="#009900">++#define SPI_OVRES_OFFSET                                      3</font>
<font color="#009900">++#define SPI_OVRES_SIZE                                        1</font>
<font color="#009900">++#define SPI_PCS                                              16</font>
<font color="#009900">++#define SPI_PCSDEC                                            2</font>
<font color="#009900">++#define SPI_PCSDEC_MASK                              0x00000004</font>
<font color="#009900">++#define SPI_PCSDEC_OFFSET                                     2</font>
<font color="#009900">++#define SPI_PCSDEC_SIZE                                       1</font>
<font color="#009900">++#define SPI_PCS_MASK                                 0x000f0000</font>
<font color="#009900">++#define SPI_PCS_OFFSET                                       16</font>
<font color="#009900">++#define SPI_PCS_SIZE                                          4</font>
<font color="#009900">++#define SPI_PS                                                1</font>
<font color="#009900">++#define SPI_PS_MASK                                  0x00000002</font>
<font color="#009900">++#define SPI_PS_OFFSET                                         1</font>
<font color="#009900">++#define SPI_PS_SIZE                                           1</font>
<font color="#009900">++#define SPI_PTCR                                     0x00000120</font>
<font color="#009900">++#define SPI_PTCR_RXTDIS                                       1</font>
<font color="#009900">++#define SPI_PTCR_RXTDIS_MASK                         0x00000002</font>
<font color="#009900">++#define SPI_PTCR_RXTDIS_OFFSET                                1</font>
<font color="#009900">++#define SPI_PTCR_RXTDIS_SIZE                                  1</font>
<font color="#009900">++#define SPI_PTCR_RXTEN                                        0</font>
<font color="#009900">++#define SPI_PTCR_RXTEN_MASK                          0x00000001</font>
<font color="#009900">++#define SPI_PTCR_RXTEN_OFFSET                                 0</font>
<font color="#009900">++#define SPI_PTCR_RXTEN_SIZE                                   1</font>
<font color="#009900">++#define SPI_PTCR_TXTDIS                                       9</font>
<font color="#009900">++#define SPI_PTCR_TXTDIS_MASK                         0x00000200</font>
<font color="#009900">++#define SPI_PTCR_TXTDIS_OFFSET                                9</font>
<font color="#009900">++#define SPI_PTCR_TXTDIS_SIZE                                  1</font>
<font color="#009900">++#define SPI_PTCR_TXTEN                                        8</font>
<font color="#009900">++#define SPI_PTCR_TXTEN_MASK                          0x00000100</font>
<font color="#009900">++#define SPI_PTCR_TXTEN_OFFSET                                 8</font>
<font color="#009900">++#define SPI_PTCR_TXTEN_SIZE                                   1</font>
<font color="#009900">++#define SPI_PTSR                                     0x00000124</font>
<font color="#009900">++#define SPI_PTSR_RXTEN                                        0</font>
<font color="#009900">++#define SPI_PTSR_RXTEN_MASK                          0x00000001</font>
<font color="#009900">++#define SPI_PTSR_RXTEN_OFFSET                                 0</font>
<font color="#009900">++#define SPI_PTSR_RXTEN_SIZE                                   1</font>
<font color="#009900">++#define SPI_PTSR_TXTEN                                        8</font>
<font color="#009900">++#define SPI_PTSR_TXTEN_MASK                          0x00000100</font>
<font color="#009900">++#define SPI_PTSR_TXTEN_OFFSET                                 8</font>
<font color="#009900">++#define SPI_PTSR_TXTEN_SIZE                                   1</font>
<font color="#009900">++#define SPI_RCR                                      0x00000104</font>
<font color="#009900">++#define SPI_RCR_RXCTR                                         0</font>
<font color="#009900">++#define SPI_RCR_RXCTR_MASK                           0x0000ffff</font>
<font color="#009900">++#define SPI_RCR_RXCTR_OFFSET                                  0</font>
<font color="#009900">++#define SPI_RCR_RXCTR_SIZE                                   16</font>
<font color="#009900">++#define SPI_RD                                                0</font>
<font color="#009900">++#define SPI_RDR                                      0x00000008</font>
<font color="#009900">++#define SPI_RDRF                                              0</font>
<font color="#009900">++#define SPI_RDRF_MASK                                0x00000001</font>
<font color="#009900">++#define SPI_RDRF_OFFSET                                       0</font>
<font color="#009900">++#define SPI_RDRF_SIZE                                         1</font>
<font color="#009900">++#define SPI_RDR_PCS                                          16</font>
<font color="#009900">++#define SPI_RDR_PCS_MASK                             0x000f0000</font>
<font color="#009900">++#define SPI_RDR_PCS_OFFSET                                   16</font>
<font color="#009900">++#define SPI_RDR_PCS_SIZE                                      4</font>
<font color="#009900">++#define SPI_RDR_RD                                            0</font>
<font color="#009900">++#define SPI_RDR_RD_MASK                              0x0000ffff</font>
<font color="#009900">++#define SPI_RDR_RD_OFFSET                                     0</font>
<font color="#009900">++#define SPI_RDR_RD_SIZE                                      16</font>
<font color="#009900">++#define SPI_RD_MASK                                  0x0000ffff</font>
<font color="#009900">++#define SPI_RD_OFFSET                                         0</font>
<font color="#009900">++#define SPI_RD_SIZE                                          16</font>
<font color="#009900">++#define SPI_RNCR                                     0x00000114</font>
<font color="#009900">++#define SPI_RNCR_RXNCR                                        0</font>
<font color="#009900">++#define SPI_RNCR_RXNCR_MASK                          0x0000ffff</font>
<font color="#009900">++#define SPI_RNCR_RXNCR_OFFSET                                 0</font>
<font color="#009900">++#define SPI_RNCR_RXNCR_SIZE                                  16</font>
<font color="#009900">++#define SPI_RNPR                                     0x00000110</font>
<font color="#009900">++#define SPI_RPR                                      0x00000100</font>
<font color="#009900">++#define SPI_RXBUFF                                            6</font>
<font color="#009900">++#define SPI_RXBUFF_MASK                              0x00000040</font>
<font color="#009900">++#define SPI_RXBUFF_OFFSET                                     6</font>
<font color="#009900">++#define SPI_RXBUFF_SIZE                                       1</font>
<font color="#009900">++#define SPI_RXCTR                                             0</font>
<font color="#009900">++#define SPI_RXCTR_MASK                               0x0000ffff</font>
<font color="#009900">++#define SPI_RXCTR_OFFSET                                      0</font>
<font color="#009900">++#define SPI_RXCTR_SIZE                                       16</font>
<font color="#009900">++#define SPI_RXNCR                                             0</font>
<font color="#009900">++#define SPI_RXNCR_MASK                               0x0000ffff</font>
<font color="#009900">++#define SPI_RXNCR_OFFSET                                      0</font>
<font color="#009900">++#define SPI_RXNCR_SIZE                                       16</font>
<font color="#009900">++#define SPI_RXTDIS                                            1</font>
<font color="#009900">++#define SPI_RXTDIS_MASK                              0x00000002</font>
<font color="#009900">++#define SPI_RXTDIS_OFFSET                                     1</font>
<font color="#009900">++#define SPI_RXTDIS_SIZE                                       1</font>
<font color="#009900">++#define SPI_RXTEN                                             0</font>
<font color="#009900">++#define SPI_RXTEN_MASK                               0x00000001</font>
<font color="#009900">++#define SPI_RXTEN_OFFSET                                      0</font>
<font color="#009900">++#define SPI_RXTEN_SIZE                                        1</font>
<font color="#009900">++#define SPI_SCBR                                              8</font>
<font color="#009900">++#define SPI_SCBR_MASK                                0x0000ff00</font>
<font color="#009900">++#define SPI_SCBR_OFFSET                                       8</font>
<font color="#009900">++#define SPI_SCBR_SIZE                                         8</font>
<font color="#009900">++#define SPI_SPIDIS                                            1</font>
<font color="#009900">++#define SPI_SPIDIS_MASK                              0x00000002</font>
<font color="#009900">++#define SPI_SPIDIS_OFFSET                                     1</font>
<font color="#009900">++#define SPI_SPIDIS_SIZE                                       1</font>
<font color="#009900">++#define SPI_SPIEN                                             0</font>
<font color="#009900">++#define SPI_SPIENS                                           16</font>
<font color="#009900">++#define SPI_SPIENS_MASK                              0x00010000</font>
<font color="#009900">++#define SPI_SPIENS_OFFSET                                    16</font>
<font color="#009900">++#define SPI_SPIENS_SIZE                                       1</font>
<font color="#009900">++#define SPI_SPIEN_MASK                               0x00000001</font>
<font color="#009900">++#define SPI_SPIEN_OFFSET                                      0</font>
<font color="#009900">++#define SPI_SPIEN_SIZE                                        1</font>
<font color="#009900">++#define SPI_SR                                       0x00000010</font>
<font color="#009900">++#define SPI_SR_ENDRX                                          4</font>
<font color="#009900">++#define SPI_SR_ENDRX_MASK                            0x00000010</font>
<font color="#009900">++#define SPI_SR_ENDRX_OFFSET                                   4</font>
<font color="#009900">++#define SPI_SR_ENDRX_SIZE                                     1</font>
<font color="#009900">++#define SPI_SR_ENDTX                                          5</font>
<font color="#009900">++#define SPI_SR_ENDTX_MASK                            0x00000020</font>
<font color="#009900">++#define SPI_SR_ENDTX_OFFSET                                   5</font>
<font color="#009900">++#define SPI_SR_ENDTX_SIZE                                     1</font>
<font color="#009900">++#define SPI_SR_MODF                                           2</font>
<font color="#009900">++#define SPI_SR_MODF_MASK                             0x00000004</font>
<font color="#009900">++#define SPI_SR_MODF_OFFSET                                    2</font>
<font color="#009900">++#define SPI_SR_MODF_SIZE                                      1</font>
<font color="#009900">++#define SPI_SR_NSSR                                           8</font>
<font color="#009900">++#define SPI_SR_NSSR_MASK                             0x00000100</font>
<font color="#009900">++#define SPI_SR_NSSR_OFFSET                                    8</font>
<font color="#009900">++#define SPI_SR_NSSR_SIZE                                      1</font>
<font color="#009900">++#define SPI_SR_OVRES                                          3</font>
<font color="#009900">++#define SPI_SR_OVRES_MASK                            0x00000008</font>
<font color="#009900">++#define SPI_SR_OVRES_OFFSET                                   3</font>
<font color="#009900">++#define SPI_SR_OVRES_SIZE                                     1</font>
<font color="#009900">++#define SPI_SR_RDRF                                           0</font>
<font color="#009900">++#define SPI_SR_RDRF_MASK                             0x00000001</font>
<font color="#009900">++#define SPI_SR_RDRF_OFFSET                                    0</font>
<font color="#009900">++#define SPI_SR_RDRF_SIZE                                      1</font>
<font color="#009900">++#define SPI_SR_RXBUFF                                         6</font>
<font color="#009900">++#define SPI_SR_RXBUFF_MASK                           0x00000040</font>
<font color="#009900">++#define SPI_SR_RXBUFF_OFFSET                                  6</font>
<font color="#009900">++#define SPI_SR_RXBUFF_SIZE                                    1</font>
<font color="#009900">++#define SPI_SR_SPIENS                                        16</font>
<font color="#009900">++#define SPI_SR_SPIENS_MASK                           0x00010000</font>
<font color="#009900">++#define SPI_SR_SPIENS_OFFSET                                 16</font>
<font color="#009900">++#define SPI_SR_SPIENS_SIZE                                    1</font>
<font color="#009900">++#define SPI_SR_TDRE                                           1</font>
<font color="#009900">++#define SPI_SR_TDRE_MASK                             0x00000002</font>
<font color="#009900">++#define SPI_SR_TDRE_OFFSET                                    1</font>
<font color="#009900">++#define SPI_SR_TDRE_SIZE                                      1</font>
<font color="#009900">++#define SPI_SR_TXBUFE                                         7</font>
<font color="#009900">++#define SPI_SR_TXBUFE_MASK                           0x00000080</font>
<font color="#009900">++#define SPI_SR_TXBUFE_OFFSET                                  7</font>
<font color="#009900">++#define SPI_SR_TXBUFE_SIZE                                    1</font>
<font color="#009900">++#define SPI_SR_TXEMPTY                                        9</font>
<font color="#009900">++#define SPI_SR_TXEMPTY_MASK                          0x00000200</font>
<font color="#009900">++#define SPI_SR_TXEMPTY_OFFSET                                 9</font>
<font color="#009900">++#define SPI_SR_TXEMPTY_SIZE                                   1</font>
<font color="#009900">++#define SPI_SWRST                                             7</font>
<font color="#009900">++#define SPI_SWRST_MASK                               0x00000080</font>
<font color="#009900">++#define SPI_SWRST_OFFSET                                      7</font>
<font color="#009900">++#define SPI_SWRST_SIZE                                        1</font>
<font color="#009900">++#define SPI_TCR                                      0x0000010c</font>
<font color="#009900">++#define SPI_TCR_TXCTR                                         0</font>
<font color="#009900">++#define SPI_TCR_TXCTR_MASK                           0x0000ffff</font>
<font color="#009900">++#define SPI_TCR_TXCTR_OFFSET                                  0</font>
<font color="#009900">++#define SPI_TCR_TXCTR_SIZE                                   16</font>
<font color="#009900">++#define SPI_TD                                                0</font>
<font color="#009900">++#define SPI_TDR                                      0x0000000c</font>
<font color="#009900">++#define SPI_TDRE                                              1</font>
<font color="#009900">++#define SPI_TDRE_MASK                                0x00000002</font>
<font color="#009900">++#define SPI_TDRE_OFFSET                                       1</font>
<font color="#009900">++#define SPI_TDRE_SIZE                                         1</font>
<font color="#009900">++#define SPI_TDR_LASTXFER                                     24</font>
<font color="#009900">++#define SPI_TDR_LASTXFER_MASK                        0x01000000</font>
<font color="#009900">++#define SPI_TDR_LASTXFER_OFFSET                              24</font>
<font color="#009900">++#define SPI_TDR_LASTXFER_SIZE                                 1</font>
<font color="#009900">++#define SPI_TDR_PCS                                          16</font>
<font color="#009900">++#define SPI_TDR_PCS_MASK                             0x000f0000</font>
<font color="#009900">++#define SPI_TDR_PCS_OFFSET                                   16</font>
<font color="#009900">++#define SPI_TDR_PCS_SIZE                                      4</font>
<font color="#009900">++#define SPI_TDR_TD                                            0</font>
<font color="#009900">++#define SPI_TDR_TD_MASK                              0x0000ffff</font>
<font color="#009900">++#define SPI_TDR_TD_OFFSET                                     0</font>
<font color="#009900">++#define SPI_TDR_TD_SIZE                                      16</font>
<font color="#009900">++#define SPI_TD_MASK                                  0x0000ffff</font>
<font color="#009900">++#define SPI_TD_OFFSET                                         0</font>
<font color="#009900">++#define SPI_TD_SIZE                                          16</font>
<font color="#009900">++#define SPI_TNCR                                     0x0000011c</font>
<font color="#009900">++#define SPI_TNCR_TXNCR                                        0</font>
<font color="#009900">++#define SPI_TNCR_TXNCR_MASK                          0x0000ffff</font>
<font color="#009900">++#define SPI_TNCR_TXNCR_OFFSET                                 0</font>
<font color="#009900">++#define SPI_TNCR_TXNCR_SIZE                                  16</font>
<font color="#009900">++#define SPI_TNPR                                     0x00000118</font>
<font color="#009900">++#define SPI_TPR                                      0x00000108</font>
<font color="#009900">++#define SPI_TXBUFE                                            7</font>
<font color="#009900">++#define SPI_TXBUFE_MASK                              0x00000080</font>
<font color="#009900">++#define SPI_TXBUFE_OFFSET                                     7</font>
<font color="#009900">++#define SPI_TXBUFE_SIZE                                       1</font>
<font color="#009900">++#define SPI_TXCTR                                             0</font>
<font color="#009900">++#define SPI_TXCTR_MASK                               0x0000ffff</font>
<font color="#009900">++#define SPI_TXCTR_OFFSET                                      0</font>
<font color="#009900">++#define SPI_TXCTR_SIZE                                       16</font>
<font color="#009900">++#define SPI_TXEMPTY                                           9</font>
<font color="#009900">++#define SPI_TXEMPTY_MASK                             0x00000200</font>
<font color="#009900">++#define SPI_TXEMPTY_OFFSET                                    9</font>
<font color="#009900">++#define SPI_TXEMPTY_SIZE                                      1</font>
<font color="#009900">++#define SPI_TXNCR                                             0</font>
<font color="#009900">++#define SPI_TXNCR_MASK                               0x0000ffff</font>
<font color="#009900">++#define SPI_TXNCR_OFFSET                                      0</font>
<font color="#009900">++#define SPI_TXNCR_SIZE                                       16</font>
<font color="#009900">++#define SPI_TXTDIS                                            9</font>
<font color="#009900">++#define SPI_TXTDIS_MASK                              0x00000200</font>
<font color="#009900">++#define SPI_TXTDIS_OFFSET                                     9</font>
<font color="#009900">++#define SPI_TXTDIS_SIZE                                       1</font>
<font color="#009900">++#define SPI_TXTEN                                             8</font>
<font color="#009900">++#define SPI_TXTEN_MASK                               0x00000100</font>
<font color="#009900">++#define SPI_TXTEN_OFFSET                                      8</font>
<font color="#009900">++#define SPI_TXTEN_SIZE                                        1</font>
<font color="#009900">++</font>
<font color="#009900">++enum {</font>
<font color="#009900">++        SPI_ERROR = -1,</font>
<font color="#009900">++        SPI_OK = 0,</font>
<font color="#009900">++        SPI_ERROR_TIMEOUT = 1,</font>
<font color="#009900">++        SPI_ERROR_ARGUMENT,</font>
<font color="#009900">++        SPI_ERROR_OVERRUN,</font>
<font color="#009900">++        SPI_ERROR_MODE_FAULT,</font>
<font color="#009900">++        SPI_ERROR_OVERRUN_AND_MODE_FAULT</font>
<font color="#009900">++};</font>
<font color="#009900">++</font>
<font color="#009900">++struct spi_options_t {</font>
<font color="#009900">++        unsigned char reg;</font>
<font color="#009900">++        unsigned int baudrate;</font>
<font color="#009900">++        unsigned char bits;</font>
<font color="#009900">++        unsigned char spck_delay;</font>
<font color="#009900">++        unsigned char trans_delay;</font>
<font color="#009900">++        unsigned char stay_act;</font>
<font color="#009900">++        unsigned char spi_mode;</font>
<font color="#009900">++};</font>
<font color="#009900">++</font>
<font color="#009900">++struct spi_info {</font>
<font color="#009900">++        void                        *regs;</font>
<font color="#009900">++};</font>
<font color="#009900">++</font>
<font color="#009900">++int spi_select_chip(unsigned char chip);</font>
<font color="#009900">++</font>
<font color="#009900">++int spi_unselect_chip(unsigned char chip);</font>
<font color="#009900">++</font>
<font color="#009900">++int spi_setup_chip_reg(struct spi_options_t *options, unsigned int cpuHz);</font>
<font color="#009900">++</font>
<font color="#009900">++void spi_enable(void);</font>
<font color="#009900">++</font>
<font color="#009900">++void spi_disable(void);</font>
<font color="#009900">++</font>
<font color="#009900">++int spi_write(uchar *addr, int alen, uchar *buffer, int len);</font>
<font color="#009900">++</font>
<font color="#009900">++int spi_read(uchar *addr, int alen, uchar *buffer, int len);</font>
<font color="#009900">++</font>
<font color="#009900">++#define SPI_BIT(name)                          (1 &lt;&lt; SPI_##name##_OFFSET)</font>
<font color="#009900">++#define SPI_MKBF(name,value)                   (((value) &amp; ((1 &lt;&lt; SPI_##name##_SIZE) - 1)) &lt;&lt; SPI_##name##_OFFSET)</font>
<font color="#009900">++#define SPI_GETBF(name,value)                  (((value) &gt;&gt; SPI_##name##_OFFSET) &amp; ((1 &lt;&lt; SPI_##name##_SIZE) - 1))</font>
<font color="#009900">++#define SPI_INSBF(name,value,old)              (((old) &amp; ~(((1 &lt;&lt; SPI_##name##_SIZE) - 1) &lt;&lt; SPI_##name##_OFFSET)) | SPI_MKBF(name, value))</font>
<font color="#009900">++</font>
<font color="#009900">++#define spi_readl(port,reg)                readl((port)-&gt;regs + SPI_##reg)</font>
<font color="#009900">++#define spi_writel(port,reg,value)        writel((value), (port)-&gt;regs + SPI_##reg)</font>
<font color="#009900">++</font>
<font color="#009900">++#endif /* #ifndef __SPI_H_ */</font>
<font color="#009900">+diff -uprN u-boot-orig/drivers/atmel_spi.c u-boot/drivers/atmel_spi.c</font>
<font color="#009900">+--- u-boot-orig/drivers/atmel_spi.c        1970-01-01 01:00:00.000000000 +0100</font>
<font color="#009900">++++ u-boot/drivers/atmel_spi.c        2007-01-03 10:01:26.000000000 +0100</font>
<font color="#009900">+@@ -0,0 +1,330 @@</font>
<font color="#009900">++/*</font>
<font color="#009900">++ * Copyright (C) 2004-2006 Atmel Corporation</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * See file CREDITS for list of people who contributed to this</font>
<font color="#009900">++ * project.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * This program is free software; you can redistribute it and/or</font>
<font color="#009900">++ * modify it under the terms of the GNU General Public License as</font>
<font color="#009900">++ * published by the Free Software Foundation; either version 2 of</font>
<font color="#009900">++ * the License, or (at your option) any later version.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * This program is distributed in the hope that it will be useful,</font>
<font color="#009900">++ * but WITHOUT ANY WARRANTY; without even the implied warranty of</font>
<font color="#009900">++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</font>
<font color="#009900">++ * GNU General Public License for more details.</font>
<font color="#009900">++ *</font>
<font color="#009900">++ * You should have received a copy of the GNU General Public License</font>
<font color="#009900">++ * along with this program; if not, write to the Free Software</font>
<font color="#009900">++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,</font>
<font color="#009900">++ * MA 02111-1307 USA</font>
<font color="#009900">++ */</font>
<font color="#009900">++#include &lt;common.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++#ifdef CONFIG_ATMEL_SPI</font>
<font color="#009900">++</font>
<font color="#009900">++#include &lt;part.h&gt;</font>
<font color="#009900">++#include &lt;malloc.h&gt;</font>
<font color="#009900">++#include &lt;spi.h&gt;</font>
<font color="#009900">++#include &lt;atmel_spi.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++#include &lt;asm/io.h&gt;</font>
<font color="#009900">++#include &lt;asm/errno.h&gt;</font>
<font color="#009900">++#include &lt;asm/byteorder.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++#include &lt;asm/arch/memory-map.h&gt;</font>
<font color="#009900">++#include &lt;asm/arch/platform.h&gt;</font>
<font color="#009900">++</font>
<font color="#009900">++</font>
<font color="#009900">++struct spi_info *spi;</font>
<font color="#009900">++</font>
<font color="#009900">++void spi_reset(struct spi_info *spi);</font>
<font color="#009900">++</font>
<font color="#009900">++int get_baud_div(struct spi_options_t * options, int busHz);</font>
<font color="#009900">++</font>
<font color="#009900">++int spi_selection_mode(unsigned char variable_ps,</font>
<font color="#009900">++                unsigned char pcs_decode,</font>
<font color="#009900">++                unsigned char delay);</font>
<font color="#009900">++</font>
<font color="#009900">++void spi_reset(struct spi_info *spi)</font>
<font color="#009900">++{</font>
<font color="#009900">++        spi_writel(spi, CR, SPI_BIT(CR_SWRST));</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void spi_init()</font>
<font color="#009900">++{</font>
<font color="#009900">++        const struct device *dev;</font>
<font color="#009900">++</font>
<font color="#009900">++#ifdef CFG_SPI0</font>
<font color="#009900">++        dev = get_device(DEVICE_SPI0);</font>
<font color="#009900">++#elif CFG_SPI1</font>
<font color="#009900">++        dev = get_device(DEVICE_SPI1);</font>
<font color="#009900">++#else</font>
<font color="#009900">++#error No SPI device available</font>
<font color="#009900">++#endif</font>
<font color="#009900">++        if (!dev)</font>
<font color="#009900">++                return;</font>
<font color="#009900">++</font>
<font color="#009900">++        spi = malloc(sizeof(struct spi_info));</font>
<font color="#009900">++        if (!spi)</font>
<font color="#009900">++                return;</font>
<font color="#009900">++</font>
<font color="#009900">++        spi-&gt;regs = dev-&gt;regs;</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Reset */</font>
<font color="#009900">++        spi_reset(spi);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Master Mode */</font>
<font color="#009900">++        spi_writel(spi, MR, SPI_BIT(MR_MSTR)</font>
<font color="#009900">++                        |SPI_MR_PCS_MASK</font>
<font color="#009900">++                        |(0&lt;&lt;SPI_MR_FDIV_OFFSET)</font>
<font color="#009900">++                        |(0&lt;&lt;SPI_MR_MODFDIS_OFFSET));</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Selection mode:</font>
<font color="#009900">++         * no variable peripheral select</font>
<font color="#009900">++         * no peripheral chip select decode</font>
<font color="#009900">++         * 0 delay cycles after a chip select</font>
<font color="#009900">++         */</font>
<font color="#009900">++        if (!spi_selection_mode(0, 0, 0))</font>
<font color="#009900">++                return;</font>
<font color="#009900">++</font>
<font color="#009900">++        debug("spi: controller at 0x%08x\n", spi-&gt;regs);</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++int spi_selection_mode(unsigned char variable_ps,</font>
<font color="#009900">++                unsigned char pcs_decode,</font>
<font color="#009900">++                unsigned char delay)</font>
<font color="#009900">++{</font>
<font color="#009900">++        if (variable_ps &gt; 1 || pcs_decode &gt; 1) {</font>
<font color="#009900">++                return SPI_ERROR_ARGUMENT;</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Unset bitfields */</font>
<font color="#009900">++        spi_writel(spi, MR, spi_readl(spi, MR) &amp;</font>
<font color="#009900">++                        ~(SPI_MR_PS_MASK|SPI_MR_PCSDEC_MASK</font>
<font color="#009900">++                                |SPI_MR_DLYBCS_MASK));</font>
<font color="#009900">++        /* Set selction bits */</font>
<font color="#009900">++        spi_writel(spi, MR, spi_readl(spi, MR)</font>
<font color="#009900">++                        |SPI_MKBF(MR_PS, variable_ps)</font>
<font color="#009900">++                        |SPI_MKBF(MR_PCSDEC, pcs_decode)</font>
<font color="#009900">++                        |SPI_MKBF(MR_DLYBCS, delay));</font>
<font color="#009900">++</font>
<font color="#009900">++        return SPI_OK;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++int spi_select_chip(unsigned char chip)</font>
<font color="#009900">++{</font>
<font color="#009900">++        /* Assert all lines; no peripheral is selected */</font>
<font color="#009900">++        spi_writel(spi, MR_PCS, spi_readl(spi, MR)|SPI_MR_PCS_MASK);</font>
<font color="#009900">++</font>
<font color="#009900">++        if (spi_readl(spi, MR) &amp; SPI_MR_PCSDEC_MASK) {</font>
<font color="#009900">++                ulong status;</font>
<font color="#009900">++</font>
<font color="#009900">++                /* The signal is decoded; allow up to 15 chips */</font>
<font color="#009900">++                if (chip &gt; 14) {</font>
<font color="#009900">++                        return SPI_ERROR_ARGUMENT;</font>
<font color="#009900">++                }</font>
<font color="#009900">++</font>
<font color="#009900">++                status = spi_readl(spi, MR);</font>
<font color="#009900">++                status &amp;= ~SPI_MR_PCS_MASK;</font>
<font color="#009900">++                status |= SPI_MKBF(MR_PCS, chip);</font>
<font color="#009900">++                spi_writel(spi, MR, status);</font>
<font color="#009900">++        } else {</font>
<font color="#009900">++                if (chip &gt; 3) {</font>
<font color="#009900">++                        return SPI_ERROR_ARGUMENT;</font>
<font color="#009900">++                }</font>
<font color="#009900">++</font>
<font color="#009900">++                spi_writel(spi, MR, spi_readl(spi, MR) &amp;</font>
<font color="#009900">++                                ~(1&lt;&lt;(SPI_MR_PCS_OFFSET + chip)));</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        debug("spi: chip select %d activated\n", chip);</font>
<font color="#009900">++</font>
<font color="#009900">++        return SPI_OK;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++int spi_unselect_chip(unsigned char chip)</font>
<font color="#009900">++{</font>
<font color="#009900">++        /* Assert all lines; no peripheral is selected */</font>
<font color="#009900">++        spi_writel(spi, MR, spi_readl(spi, MR)|SPI_MR_PCS_MASK);</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Last transfer, so deassert the current NPCS if CSAAT is set */</font>
<font color="#009900">++        spi_writel(spi, CR, spi_readl(spi, MR)|SPI_CR_LASTXFER_MASK);</font>
<font color="#009900">++</font>
<font color="#009900">++        debug("spi: chip select %d deactivated\n", chip);</font>
<font color="#009900">++</font>
<font color="#009900">++        return SPI_OK;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++int spi_setup_chip_reg(struct spi_options_t *options,</font>
<font color="#009900">++                unsigned int busHz)</font>
<font color="#009900">++{</font>
<font color="#009900">++        int baudDiv = -1;</font>
<font color="#009900">++        unsigned long csr = 0;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (options-&gt;bits &gt; 16 || options-&gt;bits &lt; 8 || options-&gt;stay_act &gt; 1) {</font>
<font color="#009900">++                return SPI_ERROR_ARGUMENT;</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        baudDiv = get_baud_div(options, busHz);</font>
<font color="#009900">++</font>
<font color="#009900">++        if (baudDiv &lt; 0) {</font>
<font color="#009900">++                return -baudDiv;</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        /* Will use CSR0 offsets; these are the same for CSR0 - CSR3 */</font>
<font color="#009900">++        csr = ((options-&gt;bits - 8)&lt;&lt;SPI_CSR0_BITS_OFFSET)|</font>
<font color="#009900">++                (baudDiv&lt;&lt;SPI_CSR0_SCBR_OFFSET)|</font>
<font color="#009900">++                (options-&gt;spck_delay&lt;&lt;SPI_CSR0_DLYBS_OFFSET)|</font>
<font color="#009900">++                (options-&gt;trans_delay&lt;&lt;SPI_CSR0_DLYBCT_OFFSET)|</font>
<font color="#009900">++                (options-&gt;stay_act&lt;&lt;SPI_CSR0_CSAAT_OFFSET);</font>
<font color="#009900">++</font>
<font color="#009900">++        switch (options-&gt;spi_mode) {</font>
<font color="#009900">++                case 0:</font>
<font color="#009900">++                        csr |= (1&lt;&lt;SPI_CSR0_NCPHA_OFFSET); /* pass through */</font>
<font color="#009900">++                case 1:</font>
<font color="#009900">++                        break;</font>
<font color="#009900">++                case 2:</font>
<font color="#009900">++                        csr |= (1&lt;&lt;SPI_CSR0_NCPHA_OFFSET); /* pass through */</font>
<font color="#009900">++                case 3:</font>
<font color="#009900">++                        csr |= (1&lt;&lt;SPI_CSR0_CPOL_OFFSET);</font>
<font color="#009900">++                        break;</font>
<font color="#009900">++                default: /* Not in legal range */</font>
<font color="#009900">++                        return SPI_ERROR_ARGUMENT;</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        switch (options-&gt;reg) {</font>
<font color="#009900">++                case 0:</font>
<font color="#009900">++                        spi_writel(spi, CSR0, csr);</font>
<font color="#009900">++                        break;</font>
<font color="#009900">++                case 1:</font>
<font color="#009900">++                        spi_writel(spi, CSR1, csr);</font>
<font color="#009900">++                        break;</font>
<font color="#009900">++                case 2:</font>
<font color="#009900">++                        spi_writel(spi, CSR2, csr);</font>
<font color="#009900">++                        break;</font>
<font color="#009900">++                case 3:</font>
<font color="#009900">++                        spi_writel(spi, CSR3, csr);</font>
<font color="#009900">++                        break;</font>
<font color="#009900">++                default:</font>
<font color="#009900">++                        return SPI_ERROR_ARGUMENT;</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        debug("spi: chip select %d registered\n", options-&gt;reg);</font>
<font color="#009900">++</font>
<font color="#009900">++        return SPI_OK;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void spi_enable()</font>
<font color="#009900">++{</font>
<font color="#009900">++        spi_writel(spi, CR, SPI_BIT(CR_SPIEN));</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++void spi_disable()</font>
<font color="#009900">++{</font>
<font color="#009900">++        spi_writel(spi, CR, SPI_BIT(CR_SPIDIS));</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++int spi_write(uchar *addr, int alen, uchar *buffer, int len)</font>
<font color="#009900">++{</font>
<font color="#009900">++        int sent = 0;</font>
<font color="#009900">++        uchar *addr_p = addr;</font>
<font color="#009900">++        uchar *buffer_p = buffer;</font>
<font color="#009900">++        unsigned int timeout = SPI_TIMEOUT;</font>
<font color="#009900">++</font>
<font color="#009900">++        if ((alen + len) &lt;= 0)</font>
<font color="#009900">++                return -SPI_ERROR_ARGUMENT;</font>
<font color="#009900">++</font>
<font color="#009900">++        do {</font>
<font color="#009900">++                while (!(spi_readl(spi, SR) &amp; SPI_BIT(SR_TXEMPTY)) &amp;&amp; --timeout);</font>
<font color="#009900">++                if (!timeout)</font>
<font color="#009900">++                        return -SPI_ERROR_TIMEOUT;</font>
<font color="#009900">++                if (len &gt; 0 || alen &gt; 1)</font>
<font color="#009900">++                        spi_writel(spi, TDR, *addr_p++ &amp; 0x0000FFFF);</font>
<font color="#009900">++                else</font>
<font color="#009900">++                        spi_writel(spi, TDR, (*addr_p++ &amp; 0x0000FFFF)</font>
<font color="#009900">++                                        | SPI_BIT(TDR_LASTXFER));</font>
<font color="#009900">++                sent++;</font>
<font color="#009900">++        } while (--alen &gt; 0);</font>
<font color="#009900">++</font>
<font color="#009900">++        timeout = SPI_TIMEOUT;</font>
<font color="#009900">++</font>
<font color="#009900">++        do {</font>
<font color="#009900">++                while (!(spi_readl(spi, SR) &amp; SPI_BIT(SR_TXEMPTY)) &amp;&amp; --timeout);</font>
<font color="#009900">++                if (!timeout)</font>
<font color="#009900">++                        return -SPI_ERROR_TIMEOUT;</font>
<font color="#009900">++                if (len &gt; 1)</font>
<font color="#009900">++                        spi_writel(spi, TDR, *buffer_p++ &amp; 0x0000FFFF);</font>
<font color="#009900">++                else</font>
<font color="#009900">++                        spi_writel(spi, TDR, (*buffer_p++ &amp; 0x0000FFFF)</font>
<font color="#009900">++                                        | SPI_BIT(TDR_LASTXFER));</font>
<font color="#009900">++                sent++;</font>
<font color="#009900">++        } while (--len &gt; 0);</font>
<font color="#009900">++</font>
<font color="#009900">++        return sent;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++int spi_read(uchar *addr, int alen, uchar *buffer, int len)</font>
<font color="#009900">++{</font>
<font color="#009900">++        int received = 0;</font>
<font color="#009900">++        uchar *addr_p = addr;</font>
<font color="#009900">++        uchar *buffer_p = buffer;</font>
<font color="#009900">++        unsigned int timeout = SPI_TIMEOUT;</font>
<font color="#009900">++</font>
<font color="#009900">++        if ((alen + len) &lt;= 0)</font>
<font color="#009900">++                return SPI_ERROR_ARGUMENT;</font>
<font color="#009900">++</font>
<font color="#009900">++        do {</font>
<font color="#009900">++                while (!(spi_readl(spi, SR) &amp; SPI_BIT(SR_RDRF)) &amp;&amp; --timeout);</font>
<font color="#009900">++                if (!timeout)</font>
<font color="#009900">++                        return -SPI_ERROR_TIMEOUT;</font>
<font color="#009900">++                *addr_p++ = spi_readl(spi, RDR) &amp; 0x000000FF;</font>
<font color="#009900">++                --alen;</font>
<font color="#009900">++                received++;</font>
<font color="#009900">++        } while (alen &gt; 0);</font>
<font color="#009900">++</font>
<font color="#009900">++        timeout = SPI_TIMEOUT;</font>
<font color="#009900">++</font>
<font color="#009900">++        do {</font>
<font color="#009900">++                while (!(spi_readl(spi, SR) &amp; SPI_BIT(SR_RDRF)) &amp;&amp; --timeout);</font>
<font color="#009900">++                if (!timeout)</font>
<font color="#009900">++                        return -SPI_ERROR_TIMEOUT;</font>
<font color="#009900">++                *buffer_p++ = spi_readl(spi, RDR) &amp; 0x000000FF;</font>
<font color="#009900">++                --len;</font>
<font color="#009900">++                received++;</font>
<font color="#009900">++        } while (len &gt; 0);</font>
<font color="#009900">++</font>
<font color="#009900">++        return received;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++int spi_xfer(spi_chipsel_type chipsel, int bitlen, uchar *dout, uchar *din)</font>
<font color="#009900">++{</font>
<font color="#009900">++        int len = 0;</font>
<font color="#009900">++        uchar *dout_p = dout;</font>
<font color="#009900">++        uchar *din_p = din;</font>
<font color="#009900">++</font>
<font color="#009900">++        while (--bitlen) {</font>
<font color="#009900">++                if (spi_write(dout_p++, 1, 0, 0) != 1)</font>
<font color="#009900">++                        break;</font>
<font color="#009900">++                if (spi_read(din_p++, 1, 0, 0) != 1)</font>
<font color="#009900">++                        break;</font>
<font color="#009900">++                len++;</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        return len;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++int get_baud_div(struct spi_options_t *options, int busHz) {</font>
<font color="#009900">++        int baudDiv = 0;</font>
<font color="#009900">++</font>
<font color="#009900">++        baudDiv = busHz / options-&gt;baudrate;</font>
<font color="#009900">++</font>
<font color="#009900">++        if (baudDiv &gt; (SPI_CSR0_SCBR_MASK&lt;&lt;SPI_CSR0_SCBR_OFFSET)</font>
<font color="#009900">++                        || baudDiv &lt;= 0) {</font>
<font color="#009900">++                return -SPI_ERROR_ARGUMENT;</font>
<font color="#009900">++        }</font>
<font color="#009900">++</font>
<font color="#009900">++        return baudDiv;</font>
<font color="#009900">++}</font>
<font color="#009900">++</font>
<font color="#009900">++#endif /* CONFIG_ATMEL_SPI */</font>
<font color="#009900">+diff -uprN u-boot-orig/drivers/Makefile u-boot/drivers/Makefile</font>
<font color="#009900">+--- u-boot-orig/drivers/Makefile        2007-01-01 19:26:46.000000000 +0100</font>
<font color="#009900">++++ u-boot/drivers/Makefile        2007-01-01 16:10:49.000000000 +0100</font>
<font color="#009900">+@@ -28,7 +28,7 @@ include $(TOPDIR)/config.mk</font>
<font color="#009900">+ LIB        = libdrivers.a</font>
<font color="#009900">+ </font>
<font color="#009900">+ OBJS        = 3c589.o 5701rls.o ali512x.o \</font>
<font color="#009900">+-          atmel_usart.o atmel_lcdc.o \</font>
<font color="#009900">++          atmel_usart.o atmel_lcdc.o atmel_spi.o \</font>
<font color="#009900">+           bcm570x.o bcm570x_autoneg.o cfb_console.o cfi_flash.o \</font>
<font color="#009900">+           cs8900.o ct69000.o dataflash.o dc2114x.o dm9000x.o \</font>
<font color="#009900">+           e1000.o eepro100.o \</font>
============================================================
<font color="#FF6600">--- packages/uclibc/uclibc-cvs/errno_values.h.patch        449baeeb6e48f88f75f07d09cdee9bd3ffcba48e</font>
<font color="#009900">+++ packages/uclibc/uclibc-cvs/errno_values.h.patch        449baeeb6e48f88f75f07d09cdee9bd3ffcba48e</font>
<font color="#0000FF">@@ -0,0 +1,21 @@</font>
<font color="#009900">+Index: uClibc-0.9.29/libc/sysdeps/linux/common/bits/errno_values.h</font>
<font color="#009900">+===================================================================</font>
<font color="#009900">+--- uClibc-0.9.29/libc/sysdeps/linux/common/bits/errno_values.h        2002-08-23 20:48:19.000000000 +0200</font>
<font color="#009900">++++ uClibc-0.9.29/libc/sysdeps/linux/common/bits/errno_values.h        2007-07-01 22:11:53.000000000 +0200</font>
<font color="#009900">+@@ -134,4 +134,16 @@</font>
<font color="#009900">+ #define        ENOMEDIUM        123        /* No medium found */</font>
<font color="#009900">+ #define        EMEDIUMTYPE        124        /* Wrong medium type */</font>
<font color="#009900">+ </font>
<font color="#009900">++/* the following errornumbers are only in 2.6 */</font>
<font color="#009900">++</font>
<font color="#009900">++#define ECANCELED       125     /* Operation Canceled */</font>
<font color="#009900">++#define ENOKEY          126     /* Required key not available */</font>
<font color="#009900">++#define EKEYEXPIRED     127     /* Key has expired */</font>
<font color="#009900">++#define EKEYREVOKED     128     /* Key has been revoked */</font>
<font color="#009900">++#define EKEYREJECTED    129     /* Key was rejected by service */</font>
<font color="#009900">++</font>
<font color="#009900">++/* for robust mutexes */</font>
<font color="#009900">++#define EOWNERDEAD      130     /* Owner died */</font>
<font color="#009900">++#define ENOTRECOVERABLE 131     /* State not recoverable */</font>
<font color="#009900">++</font>
<font color="#009900">+ #endif /* _BITS_ERRNO_VALUES_H */</font>
============================================================
<font color="#FF6600">--- packages/uclibc/uclibc-cvs/uclibc-arm-ftruncate64.patch        1cb65eede202f24b92dd4cb7724a5bea8785a592</font>
<font color="#009900">+++ packages/uclibc/uclibc-cvs/uclibc-arm-ftruncate64.patch        1cb65eede202f24b92dd4cb7724a5bea8785a592</font>
<font color="#0000FF">@@ -0,0 +1,13 @@</font>
<font color="#009900">+Index: uclibc-0.9.29/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h</font>
<font color="#009900">+===================================================================</font>
<font color="#009900">+--- uclibc-0.9.29.orig/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h</font>
<font color="#009900">++++ uclibc-0.9.29/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h</font>
<font color="#009900">+@@ -38,4 +38,8 @@</font>
<font color="#009900">+ /* define if target supports IEEE signed zero floats */</font>
<font color="#009900">+ #define __UCLIBC_HAVE_SIGNED_ZERO__</font>
<font color="#009900">+ </font>
<font color="#009900">++#ifdef __ARM_EABI__</font>
<font color="#009900">++# define __UCLIBC_TRUNCATE64_HAS_4_ARGS__</font>
<font color="#009900">++#endif</font>
<font color="#009900">++</font>
<font color="#009900">+ #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */</font>
============================================================
<font color="#FF6600">--- packages/altboot/altboot_1.1.1+wip-SVNR80.bb        f680e42100ad09229fafcf525dd6cc4715616d19</font>
<font color="#009900">+++ packages/altboot/altboot_1.1.1+wip-SVNR81.bb        3cb071a1265832774030a51d3885a1105bbc1a1a</font>
<font color="#0000FF">@@ -2,7 +2,7 @@ PR = "r0"</font>
 
 PR = "r0"
 
<font color="#FF6600">-SVN_REV = "80"</font>
<font color="#009900">+SVN_REV = "81"</font>
 SRC_URI = "svn://hentges.net/public/altboot;module=trunk;rev=${SVN_REV} \
           "
 
============================================================
<font color="#FF6600">--- packages/asterisk/asterisk_1.2.24.bb        75b0abfa9a0684f19edd02f4383136655d35b61d</font>
<font color="#009900">+++ packages/asterisk/asterisk_1.2.24.bb        fc355188dbdd28065639fdd359c9a29372806bdd</font>
<font color="#0000FF">@@ -10,6 +10,7 @@ SRC_URI="http://ftp.digium.com/pub/aster</font>
 SRC_URI="http://ftp.digium.com/pub/asterisk/releases/asterisk-${PV}.tar.gz \
          file://uclibc-compat-getloadavg.patch;patch=1 \
          file://uclibc-dns.patch;patch=1 \
<font color="#009900">+#         file://uclibc-define-glob.patch;patch=1 \</font>
          file://asterisk.patch;patch=1 \
          file://enable-speex.patch;patch=1"
 
============================================================
<font color="#FF6600">--- packages/binutils/binutils-avr32.inc        5bd29b107e09714fb7b1d4bf3f8e6d5196a9ca37</font>
<font color="#009900">+++ packages/binutils/binutils-avr32.inc        a7d324afa09eb724099f42b11b3b68772ef94d3e</font>
<font color="#0000FF">@@ -5,7 +5,7 @@ do_avr32_reconf () {</font>
 
 do_avr32_reconf () {
         if test ${TARGET_ARCH} == avr32; then
<font color="#FF6600">-            (cd ${S} &amp;&amp; autoconf-2.13) || die "Error running autoconf"</font>
<font color="#009900">+            (cd ${S} &amp;&amp; autoconf2.13) || die "Error running autoconf"</font>
             for dir in bfd opcodes binutils ld; do
                 (cd "${S}/$dir" &amp;&amp;
                  aclocal-1.9 &amp;&amp;
============================================================
<font color="#FF6600">--- packages/gpgme/gpgme.inc        36ab592ddc0e1147ff7e3515f783b2f135903201</font>
<font color="#009900">+++ packages/gpgme/gpgme.inc        03ed85bb76b7f3e2a6baf511ed9e657e18bdf6c4</font>
<font color="#0000FF">@@ -2,6 +2,7 @@ DEPENDS = "libgpg-error pth libassuan"</font>
 HOMEPAGE = "http://www.gnupg.org/gpgme.html"
 LICENSE = "GPL"
 DEPENDS = "libgpg-error pth libassuan"
<font color="#009900">+RRECOMMENDS_${PN} = "gnupg"</font>
 
 SRC_URI = "ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-${PV}.tar.gz"
 
============================================================
<font color="#FF6600">--- packages/gpgme/gpgme_1.0.0.bb        4efb9b2188257cb57c38b41a4054c273d6d32d3c</font>
<font color="#009900">+++ packages/gpgme/gpgme_1.0.0.bb        1945518e229ff69cc0f28fb3a1f516569ff9d592</font>
<font color="#0000FF">@@ -1,3 +1,3 @@ require gpgme.inc</font>
 require gpgme.inc
 
<font color="#009900">+PR = "r3"</font>
<font color="#FF6600">-PR = "r2"</font>
============================================================
<font color="#FF6600">--- packages/gpgme/gpgme_1.0.3.bb        4efb9b2188257cb57c38b41a4054c273d6d32d3c</font>
<font color="#009900">+++ packages/gpgme/gpgme_1.0.3.bb        1945518e229ff69cc0f28fb3a1f516569ff9d592</font>
<font color="#0000FF">@@ -1,3 +1,3 @@ require gpgme.inc</font>
 require gpgme.inc
 
<font color="#009900">+PR = "r3"</font>
<font color="#FF6600">-PR = "r2"</font>
============================================================
<font color="#FF6600">--- packages/gpgme/gpgme_1.1.4.bb        1945518e229ff69cc0f28fb3a1f516569ff9d592</font>
<font color="#009900">+++ packages/gpgme/gpgme_1.1.4.bb        1f23f8d93534d9cbc07caca5c802ff0d984aadbd</font>
<font color="#0000FF">@@ -1,3 +1,3 @@ require gpgme.inc</font>
 require gpgme.inc
 
<font color="#009900">+PR = "r4"</font>
<font color="#FF6600">-PR = "r3"</font>
============================================================
<font color="#FF6600">--- packages/u-boot/u-boot_1.1.4.bb        d038552bd2f9296f6e46ab33c2c4ebb364477fec</font>
<font color="#009900">+++ packages/u-boot/u-boot_1.1.4.bb        f33798683ca5789d2b3c96f26805a5f148b78370</font>
<font color="#0000FF">@@ -1,24 +1,27 @@ require u-boot.inc</font>
 require u-boot.inc
 
<font color="#009900">+PR = "r1"</font>
<font color="#009900">+</font>
 DEFAULT_PREFERENCE = "-1"
 
 SRC_URI = "ftp://ftp.denx.de/pub/u-boot/u-boot-${PV}.tar.bz2 \
           file://u-boot-make381-fix.patch;patch=1"
 
 SRC_URI_append_gumstix = "\
<font color="#FF6600">-                                                  file://u-boot-autoscript.patch;patch=1 \</font>
<font color="#FF6600">-                                                  file://u-boot-base.patch;patch=1 \</font>
<font color="#FF6600">-                                                  file://u-boot-crc-warning-not-so-scary.patch;patch=1 \</font>
<font color="#FF6600">-                                                  file://u-boot-flash-protect-fixup.patch;patch=1 \</font>
<font color="#FF6600">-                                                  file://u-boot-fw_printenv.patch;patch=1 \</font>
<font color="#FF6600">-                                                  file://u-boot-install.patch;patch=1 \</font>
<font color="#FF6600">-                                                  file://u-boot-jerase-cmd.patch;patch=1 \</font>
<font color="#FF6600">-                                                  file://u-boot-jffs2-new-nodetypes.patch;patch=1 \</font>
<font color="#FF6600">-                                                  file://u-boot-loadb-safe.patch;patch=1 \</font>
<font color="#FF6600">-                                                  file://u-boot-mmc-init.patch;patch=1 \</font>
<font color="#FF6600">-                                                  file://u-boot-mmcclk-alternate.patch;patch=1 \</font>
<font color="#FF6600">-                                                  file://u-boot-smc91x-multi.patch;patch=1 \</font>
<font color="#FF6600">-                                                  file://u-boot-zzz-osx.patch;patch=1"</font>
<font color="#009900">+        file://u-boot-autoscript.patch;patch=1 \</font>
<font color="#009900">+        file://u-boot-base.patch;patch=1 \</font>
<font color="#009900">+        file://u-boot-crc-warning-not-so-scary.patch;patch=1 \</font>
<font color="#009900">+        file://u-boot-flash-protect-fixup.patch;patch=1 \</font>
<font color="#009900">+        file://u-boot-fw_printenv.patch;patch=1 \</font>
<font color="#009900">+        file://u-boot-install.patch;patch=1 \</font>
<font color="#009900">+        file://u-boot-jerase-cmd.patch;patch=1 \</font>
<font color="#009900">+        file://u-boot-jffs2-new-nodetypes.patch;patch=1 \</font>
<font color="#009900">+        file://u-boot-loadb-safe.patch;patch=1 \</font>
<font color="#009900">+        file://u-boot-mmc-init.patch;patch=1 \</font>
<font color="#009900">+        file://u-boot-mmcclk-alternate.patch;patch=1 \</font>
<font color="#009900">+        file://u-boot-smc91x-multi.patch;patch=1 \</font>
<font color="#009900">+        file://u-boot-zzz-osx.patch;patch=1"</font>
<font color="#009900">+</font>
 SRC_URI_append_amsdelta = "\
         http://the.earth.li/pub/e3/u-boot-amsdelta-20060519.diff;patch=1"
 
<font color="#0000FF">@@ -26,9 +29,24 @@ SRC_URI_append_avr32= "\</font>
         file://u-boot-dht-walnut-df2.patch;patch=1"
 
 SRC_URI_append_avr32= "\
<font color="#FF6600">-             http://avr32linux.org/twiki/pub/Main/UbootPatches/u-boot-1.1.4-avr1.patch.bz2;patch=1"</font>
<font color="#009900">+        http://avr32linux.org/twiki/pub/Main/UbootPatches/u-boot-1.1.4-avr1.patch.bz2;patch=1 \</font>
<font color="#009900">+        file://avr32-boards-fix-flash-read.patch;patch=1 \</font>
<font color="#009900">+        file://lcdc-driver-for-avr32.patch;patch=1 \</font>
<font color="#009900">+        file://spi-driver-for-avr32.patch;patch=1 \</font>
<font color="#009900">+        file://at32ap-add-framebuffer-address.patch;patch=1 \</font>
<font color="#009900">+        file://at32ap-add-spi-initcalls.patch;patch=1 \</font>
<font color="#009900">+        file://at32ap-add-system-manager-header-file.patch;patch=1 \</font>
<font color="#009900">+        file://ap7000-add-spi-device-and-lcdc-base-address.patch;patch=1 \</font>
<font color="#009900">+        file://libavr32-add-spi-and-lcd-board-support.patch;patch=1 \</font>
<font color="#009900">+        file://cmd-bmp-add-gzip-compressed-bmp.patch;patch=1 \</font>
<font color="#009900">+        file://lcd-add-24-bpp-support-and-atmel-lcdc-support.patch;patch=1 \</font>
<font color="#009900">+        file://atstk1000-spi-support.patch;patch=1 \</font>
<font color="#009900">+        file://atstk1000-ltv350qv-display-support.patch;patch=1 \</font>
<font color="#009900">+        file://atstk1000-add-lcd-and-spi-to-config.patch;patch=1 \</font>
<font color="#009900">+        file://at32ap-add-define-for-sdram-test.patch;patch=1 \</font>
<font color="#009900">+        file://fix-mmc-data-timeout.patch;patch=1 \</font>
<font color="#009900">+"</font>
 
<font color="#FF6600">-</font>
 EXTRA_OEMAKE_gumstix = "CROSS_COMPILE=${TARGET_PREFIX} GUMSTIX_400MHZ=${GUMSTIX_400MHZ}"
 TARGET_LDFLAGS = ""
 
============================================================
<font color="#FF6600">--- packages/uclibc/uclibc-0.9.29/avr32/uClibc.machine        6eee945f4f60a18b512aca572845079a33e5fc2c</font>
<font color="#009900">+++ packages/uclibc/uclibc-0.9.29/avr32/uClibc.machine        982b86121dc5785e0853eea3beeb64e885a28474</font>
<font color="#0000FF">@@ -1,5 +1,6 @@</font>
 #
 # Automatically generated make config: don't edit
<font color="#009900">+# Thu May  1 16:06:57 2008</font>
 #
 # TARGET_alpha is not set
 # TARGET_arm is not set
<font color="#0000FF">@@ -9,8 +10,10 @@ TARGET_avr32=y</font>
 # TARGET_e1 is not set
 # TARGET_frv is not set
 # TARGET_h8300 is not set
<font color="#009900">+# TARGET_hppa is not set</font>
 # TARGET_i386 is not set
 # TARGET_i960 is not set
<font color="#009900">+# TARGET_ia64 is not set</font>
 # TARGET_m68k is not set
 # TARGET_microblaze is not set
 # TARGET_mips is not set
<font color="#0000FF">@@ -21,30 +24,174 @@ TARGET_avr32=y</font>
 # TARGET_sh64 is not set
 # TARGET_sparc is not set
 # TARGET_v850 is not set
<font color="#009900">+# TARGET_vax is not set</font>
 # TARGET_x86_64 is not set
 
 #
 # Target Architecture Features and Options
 #
<font color="#FF6600">-HAVE_ELF=y</font>
 TARGET_ARCH="avr32"
<font color="#FF6600">-ARCH_SUPPORTS_BIG_ENDIAN=y</font>
<font color="#FF6600">-UCLIBC_COMPLETELY_PIC=y</font>
<font color="#FF6600">-CONFIG_AP7000=y</font>
<font color="#009900">+FORCE_OPTIONS_FOR_ARCH=y</font>
<font color="#009900">+CONFIG_AVR32_AP7=y</font>
 LINKRELAX=y
<font color="#FF6600">-# ARCH_LITTLE_ENDIAN is not set</font>
<font color="#009900">+TARGET_SUBARCH=""</font>
<font color="#009900">+</font>
<font color="#009900">+#</font>
<font color="#009900">+# Using ELF file format</font>
<font color="#009900">+#</font>
 ARCH_BIG_ENDIAN=y
<font color="#FF6600">-# ARCH_HAS_NO_MMU is not set</font>
<font color="#009900">+</font>
<font color="#009900">+#</font>
<font color="#009900">+# Using Big Endian</font>
<font color="#009900">+#</font>
 ARCH_HAS_MMU=y
<font color="#009900">+ARCH_USE_MMU=y</font>
 UCLIBC_HAS_FLOATS=y
<font color="#FF6600">-UCLIBC_HAS_FPU=n</font>
<font color="#009900">+# UCLIBC_HAS_FPU is not set</font>
 UCLIBC_HAS_SOFT_FLOAT=y
 DO_C99_MATH=y
<font color="#FF6600">-C_SYMBOL_PREFIX=""</font>
<font color="#FF6600">-KERNEL_HEADERS="Dummy value, correct value substituted by uclibc.inc"</font>
<font color="#009900">+KERNEL_HEADERS="/home/stelios/proj/OE/tmp/uclibc/staging/avr32-angstrom-linux-uclibc/usr/include"</font>
 HAVE_DOT_CONFIG=y
 
<font color="#009900">+#</font>
<font color="#009900">+# General Library Settings</font>
<font color="#009900">+#</font>
<font color="#009900">+# HAVE_NO_PIC is not set</font>
<font color="#009900">+# DOPIC is not set</font>
<font color="#009900">+# HAVE_NO_SHARED is not set</font>
<font color="#009900">+# ARCH_HAS_NO_LDSO is not set</font>
<font color="#009900">+HAVE_SHARED=y</font>
<font color="#009900">+FORCE_SHAREABLE_TEXT_SEGMENTS=y</font>
<font color="#009900">+LDSO_LDD_SUPPORT=y</font>
<font color="#009900">+LDSO_CACHE_SUPPORT=y</font>
<font color="#009900">+# LDSO_PRELOAD_FILE_SUPPORT is not set</font>
<font color="#009900">+LDSO_BASE_FILENAME="ld.so"</font>
<font color="#009900">+# UCLIBC_STATIC_LDCONFIG is not set</font>
<font color="#009900">+LDSO_RUNPATH=y</font>
<font color="#009900">+UCLIBC_CTOR_DTOR=y</font>
<font color="#009900">+# HAS_NO_THREADS is not set</font>
<font color="#009900">+UCLIBC_HAS_THREADS=y</font>
<font color="#009900">+PTHREADS_DEBUG_SUPPORT=y</font>
<font color="#009900">+LINUXTHREADS_OLD=y</font>
<font color="#009900">+UCLIBC_HAS_LFS=y</font>
<font color="#009900">+# MALLOC is not set</font>
<font color="#009900">+# MALLOC_SIMPLE is not set</font>
<font color="#009900">+MALLOC_STANDARD=y</font>
<font color="#009900">+MALLOC_GLIBC_COMPAT=y</font>
<font color="#009900">+UCLIBC_DYNAMIC_ATEXIT=y</font>
<font color="#009900">+COMPAT_ATEXIT=y</font>
<font color="#009900">+UCLIBC_SUSV3_LEGACY=y</font>
<font color="#009900">+UCLIBC_SUSV3_LEGACY_MACROS=y</font>
<font color="#009900">+UCLIBC_HAS_SHADOW=y</font>
<font color="#009900">+# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set</font>
<font color="#009900">+UCLIBC_HAS___PROGNAME=y</font>
<font color="#009900">+UNIX98PTY_ONLY=y</font>
<font color="#009900">+ASSUME_DEVPTS=y</font>
<font color="#009900">+UCLIBC_HAS_TM_EXTENSIONS=y</font>
<font color="#009900">+UCLIBC_HAS_TZ_CACHING=y</font>
<font color="#009900">+UCLIBC_HAS_TZ_FILE=y</font>
<font color="#009900">+UCLIBC_HAS_TZ_FILE_READ_MANY=y</font>
<font color="#009900">+UCLIBC_TZ_FILE_PATH="/etc/TZ"</font>
 
<font color="#009900">+#</font>
<font color="#009900">+# Advanced Library Settings</font>
<font color="#009900">+#</font>
<font color="#009900">+UCLIBC_PWD_BUFFER_SIZE=256</font>
<font color="#009900">+UCLIBC_GRP_BUFFER_SIZE=256</font>
 
<font color="#009900">+#</font>
<font color="#009900">+# Networking Support</font>
<font color="#009900">+#</font>
<font color="#009900">+UCLIBC_HAS_IPV6=y</font>
<font color="#009900">+UCLIBC_HAS_RPC=y</font>
<font color="#009900">+UCLIBC_HAS_FULL_RPC=y</font>
<font color="#009900">+# UCLIBC_HAS_REENTRANT_RPC is not set</font>
<font color="#009900">+# UCLIBC_USE_NETLINK is not set</font>
<font color="#009900">+# UCLIBC_HAS_BSD_RES_CLOSE is not set</font>
 
<font color="#009900">+#</font>
<font color="#009900">+# String and Stdio Support</font>
<font color="#009900">+#</font>
<font color="#009900">+UCLIBC_HAS_STRING_GENERIC_OPT=y</font>
<font color="#009900">+UCLIBC_HAS_STRING_ARCH_OPT=y</font>
<font color="#009900">+UCLIBC_HAS_CTYPE_TABLES=y</font>
<font color="#009900">+UCLIBC_HAS_CTYPE_SIGNED=y</font>
<font color="#009900">+# UCLIBC_HAS_CTYPE_UNSAFE is not set</font>
<font color="#009900">+UCLIBC_HAS_CTYPE_CHECKED=y</font>
<font color="#009900">+# UCLIBC_HAS_CTYPE_ENFORCED is not set</font>
<font color="#009900">+UCLIBC_HAS_WCHAR=y</font>
<font color="#009900">+# UCLIBC_HAS_LOCALE is not set</font>
<font color="#009900">+UCLIBC_HAS_HEXADECIMAL_FLOATS=y</font>
<font color="#009900">+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y</font>
<font color="#009900">+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9</font>
<font color="#009900">+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y</font>
<font color="#009900">+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set</font>
<font color="#009900">+UCLIBC_HAS_STDIO_BUFSIZ_256=y</font>
<font color="#009900">+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set</font>
<font color="#009900">+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set</font>
<font color="#009900">+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set</font>
<font color="#009900">+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set</font>
<font color="#009900">+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set</font>
<font color="#009900">+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y</font>
<font color="#009900">+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set</font>
<font color="#009900">+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set</font>
<font color="#009900">+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set</font>
<font color="#009900">+UCLIBC_HAS_STDIO_GETC_MACRO=y</font>
<font color="#009900">+UCLIBC_HAS_STDIO_PUTC_MACRO=y</font>
<font color="#009900">+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y</font>
<font color="#009900">+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set</font>
<font color="#009900">+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y</font>
<font color="#009900">+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y</font>
<font color="#009900">+UCLIBC_HAS_PRINTF_M_SPEC=y</font>
<font color="#009900">+UCLIBC_HAS_ERRNO_MESSAGES=y</font>
<font color="#009900">+# UCLIBC_HAS_SYS_ERRLIST is not set</font>
<font color="#009900">+UCLIBC_HAS_SIGNUM_MESSAGES=y</font>
<font color="#009900">+# UCLIBC_HAS_SYS_SIGLIST is not set</font>
<font color="#009900">+UCLIBC_HAS_GNU_GETOPT=y</font>
<font color="#009900">+UCLIBC_HAS_GNU_GETSUBOPT=y</font>
 
<font color="#009900">+#</font>
<font color="#009900">+# Big and Tall</font>
<font color="#009900">+#</font>
<font color="#009900">+UCLIBC_HAS_REGEX=y</font>
<font color="#009900">+# UCLIBC_HAS_REGEX_OLD is not set</font>
<font color="#009900">+UCLIBC_HAS_FNMATCH=y</font>
<font color="#009900">+# UCLIBC_HAS_FNMATCH_OLD is not set</font>
<font color="#009900">+UCLIBC_HAS_WORDEXP=y</font>
<font color="#009900">+UCLIBC_HAS_FTW=y</font>
<font color="#009900">+UCLIBC_HAS_GLOB=y</font>
<font color="#009900">+UCLIBC_HAS_GNU_GLOB=y</font>
<font color="#009900">+</font>
<font color="#009900">+#</font>
<font color="#009900">+# Library Installation Options</font>
<font color="#009900">+#</font>
<font color="#009900">+SHARED_LIB_LOADER_PREFIX="/lib"</font>
<font color="#009900">+RUNTIME_PREFIX="/"</font>
<font color="#009900">+DEVEL_PREFIX="//usr"</font>
<font color="#009900">+</font>
<font color="#009900">+#</font>
<font color="#009900">+# Security options</font>
<font color="#009900">+#</font>
<font color="#009900">+# UCLIBC_HAS_ARC4RANDOM is not set</font>
<font color="#009900">+# HAVE_NO_SSP is not set</font>
<font color="#009900">+# UCLIBC_HAS_SSP is not set</font>
<font color="#009900">+UCLIBC_BUILD_RELRO=y</font>
<font color="#009900">+UCLIBC_BUILD_NOW=y</font>
<font color="#009900">+UCLIBC_BUILD_NOEXECSTACK=y</font>
<font color="#009900">+</font>
<font color="#009900">+#</font>
<font color="#009900">+# uClibc development/debugging options</font>
<font color="#009900">+#</font>
<font color="#009900">+CROSS_COMPILER_PREFIX=""</font>
<font color="#009900">+UCLIBC_EXTRA_CFLAGS=""</font>
<font color="#009900">+# DODEBUG is not set</font>
<font color="#009900">+# DODEBUG_PT is not set</font>
<font color="#009900">+DOSTRIP=y</font>
<font color="#009900">+# DOASSERTS is not set</font>
<font color="#009900">+# SUPPORT_LD_DEBUG is not set</font>
<font color="#009900">+# SUPPORT_LD_DEBUG_EARLY is not set</font>
<font color="#009900">+# UCLIBC_MALLOC_DEBUGGING is not set</font>
<font color="#009900">+WARNINGS="-Wall"</font>
<font color="#009900">+# EXTRA_WARNINGS is not set</font>
<font color="#009900">+# DOMULTI is not set</font>
<font color="#009900">+# UCLIBC_MJN3_ONLY is not set</font>
============================================================
<font color="#FF6600">--- packages/uclibc/uclibc-initial_svn.bb        c4bf20bfed551d292d63e31314bf2c9277f9d30e</font>
<font color="#009900">+++ packages/uclibc/uclibc-initial_svn.bb        2715cc791b3fdd1b8e62328291e3ef33973bacc0</font>
<font color="#0000FF">@@ -3,20 +3,20 @@ FILESPATH = "${@base_set_filespath([ '${</font>
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-cvs', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
<font color="#FF6600">-DEPENDS = "linux-libc-headers"</font>
<font color="#009900">+DEPENDS = "linux-libc-headers ncurses-native"</font>
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
 do_stage() {
         # Install initial headers into the cross dir
<font color="#FF6600">-        make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \</font>
<font color="#FF6600">-                RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \</font>
<font color="#009900">+        make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \</font>
<font color="#009900">+                RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \</font>
                 pregen install_dev
 
         ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
         # This conflicts with the c++ version of this header
<font color="#FF6600">-        rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h</font>
<font color="#009900">+        rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h</font>
 }
 
 do_install() {
============================================================
<font color="#FF6600">--- packages/uclibc/uclibc_0.9.29.bb        0eac903c662c67108b358b1ad2c6d1d976cc5419</font>
<font color="#009900">+++ packages/uclibc/uclibc_0.9.29.bb        59c9209c18cebba61fe0d3b0d595b2953e6dd351</font>
<font color="#0000FF">@@ -7,7 +7,7 @@ UCLIBC_BASE ?= "0.9.29"</font>
 # on whether the base patches apply to the selected (SRCDATE) svn release.
 #
 UCLIBC_BASE ?= "0.9.29"
<font color="#FF6600">-PR = "r14"</font>
<font color="#009900">+PR = "r15"</font>
 
 require uclibc.inc
 
============================================================
<font color="#FF6600">--- packages/uclibc/uclibc_svn.bb        224dba45f3c9cfd8430a24a707222605c885e2fb</font>
<font color="#009900">+++ packages/uclibc/uclibc_svn.bb        97cfa7f99c8af9580b5f508636f27ddb5d1aa49d</font>
<font color="#0000FF">@@ -8,8 +8,8 @@ PV = "${UCLIBC_BASE}+svnr${SRCREV}"</font>
 #
 UCLIBC_BASE ?= "0.9.29"
 PV = "${UCLIBC_BASE}+svnr${SRCREV}"
<font color="#FF6600">-PR = "r5"</font>
<font color="#FF6600">-</font>
<font color="#009900">+PR = "r6"</font>
<font color="#009900">+DEFAULT_PREFERENCE  = "2"</font>
 #DEFAULT_PREFERENCE is 0 (empty), releases have a preference of 1 so take
 # precedence.
 
<font color="#0000FF">@@ -28,10 +28,8 @@ SRC_URI += "svn://uclibc.org/trunk;modul</font>
 SRC_URI += "svn://uclibc.org/trunk;module=uClibc \
             file://uClibc.machine \
             file://uClibc.distro \
<font color="#FF6600">-            file://error_print_progname.patch;patch=1 \</font>
<font color="#FF6600">-            file://select.diff;patch=1 \</font>
<font color="#009900">+            file://uclibc-arm-ftruncate64.patch;patch=1 \</font>
<font color="#009900">+            file://errno_values.h.patch;patch=1 \</font>
             "
 
 S = "${WORKDIR}/uClibc"
<font color="#FF6600">-</font>
<font color="#FF6600">-</font>
</tt></pre>