[oe-commits] org.oe.dev gesbc-9302, linux-2.6.24: update gesbc-9302 to 2.6.24 released kernel version
cbrake commit
openembedded-commits at lists.openembedded.org
Thu Feb 7 20:06:15 UTC 2008
gesbc-9302, linux-2.6.24: update gesbc-9302 to 2.6.24 released kernel version
Author: cbrake at openembedded.org
Branch: org.openembedded.dev
Revision: 5fa2d6d4dc3460b9e5308630c744b1a3207595bf
ViewMTN: http://monotone.openembedded.org/revision/info/5fa2d6d4dc3460b9e5308630c744b1a3207595bf
Files:
1
packages/linux/linux-2.6.24
packages/linux/linux-2.6.24/gesbc-9302
packages/linux/linux-2.6.24/gesbc-9302/0001-gesbc-nand.patch
packages/linux/linux-2.6.24/gesbc-9302/0002-gesbc-eth-platform.patch
packages/linux/linux-2.6.24/gesbc-9302/0003-gesbc9302-defconfig.patch
packages/linux/linux-2.6.24/gesbc-9302/defconfig
packages/linux/linux_2.6.24.bb
conf/machine/gesbc-9302.conf
Diffs:
#
# mt diff -r865eaa993c9a0c2d7681672b911f0e9077cc4d07 -r5fa2d6d4dc3460b9e5308630c744b1a3207595bf
#
#
#
# add_dir "packages/linux/linux-2.6.24"
#
# add_dir "packages/linux/linux-2.6.24/gesbc-9302"
#
# add_file "packages/linux/linux-2.6.24/gesbc-9302/0001-gesbc-nand.patch"
# content [1242f1ca564ca57ab2c38691084648285b71aa1c]
#
# add_file "packages/linux/linux-2.6.24/gesbc-9302/0002-gesbc-eth-platform.patch"
# content [ce8aa5463ca9479caae1e6e2757edf14695f5573]
#
# add_file "packages/linux/linux-2.6.24/gesbc-9302/0003-gesbc9302-defconfig.patch"
# content [cc54a43f1d464e5059470cabc7741a3e0c64dd78]
#
# add_file "packages/linux/linux-2.6.24/gesbc-9302/defconfig"
# content [245c13cc582809d082a41dda84a13bdad7442216]
#
# add_file "packages/linux/linux_2.6.24.bb"
# content [39938df970f0668ed5d207fa2cf38689be21d2a9]
#
# patch "conf/machine/gesbc-9302.conf"
# from [dc5cebcd4e8515d7e65c4053f016747909663f28]
# to [8aeacd090eb3f72b84ac45925eb0315d117f1c1d]
#
============================================================
--- packages/linux/linux-2.6.24/gesbc-9302/0001-gesbc-nand.patch 1242f1ca564ca57ab2c38691084648285b71aa1c
+++ packages/linux/linux-2.6.24/gesbc-9302/0001-gesbc-nand.patch 1242f1ca564ca57ab2c38691084648285b71aa1c
@@ -0,0 +1,306 @@
+From 30026f5e13ac18daeeea1a3fd4ab06aa2961ef23 Mon Sep 17 00:00:00 2001
+From: Cliff Brake <cbrake at happy.(none)>
+Date: Mon, 17 Dec 2007 16:45:47 -0500
+Subject: [PATCH] gesbc-nand
+
+---
+ drivers/mtd/nand/Kconfig | 7 ++
+ drivers/mtd/nand/Makefile | 1 +
+ drivers/mtd/nand/gesbc.c | 255 +++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 263 insertions(+), 0 deletions(-)
+ create mode 100644 drivers/mtd/nand/gesbc.c
+
+diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig
+index 246d451..cde3146 100644
+--- a/drivers/mtd/nand/Kconfig
++++ b/drivers/mtd/nand/Kconfig
+@@ -51,6 +51,13 @@ config MTD_NAND_EDB7312
+ This enables the driver for the Cirrus Logic EBD7312 evaluation
+ board to access the onboard NAND Flash.
+
++config MTD_NAND_GESBC
++ tristate "Support for Glomation GESBC-93xx board"
++ depends on MTD_NAND && MACH_EDB9302
++ help
++ This enables the driver for the Glomation GESBC-93xx
++ board to access the onboard NAND Flash.
++
+ config MTD_NAND_H1900
+ tristate "iPAQ H1900 flash"
+ depends on ARCH_PXA && MTD_PARTITIONS
+diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile
+index 3ad6c01..58c1961 100644
+--- a/drivers/mtd/nand/Makefile
++++ b/drivers/mtd/nand/Makefile
+@@ -12,6 +12,7 @@ obj-$(CONFIG_MTD_NAND_AMS_DELTA) += ams-delta.o
+ obj-$(CONFIG_MTD_NAND_TOTO) += toto.o
+ obj-$(CONFIG_MTD_NAND_AUTCPU12) += autcpu12.o
+ obj-$(CONFIG_MTD_NAND_EDB7312) += edb7312.o
++obj-$(CONFIG_MTD_NAND_GESBC) += gesbc.o
+ obj-$(CONFIG_MTD_NAND_AU1550) += au1550nd.o
+ obj-$(CONFIG_MTD_NAND_BF5XX) += bf5xx_nand.o
+ obj-$(CONFIG_MTD_NAND_PPCHAMELEONEVB) += ppchameleonevb.o
+diff --git a/drivers/mtd/nand/gesbc.c b/drivers/mtd/nand/gesbc.c
+new file mode 100644
+index 0000000..a5844b1
+--- /dev/null
++++ b/drivers/mtd/nand/gesbc.c
+@@ -0,0 +1,255 @@
++/*
++ * drivers/mtd/nand/gesbc-9302.c
++ *
++ * Copyright (C) 2004 Glomation (support at glomationinc.com)
++ *
++ * Derived from drivers/mtd/nand/edb7312.c
++ * Copyright (C) 2004 Marius Grer (mag at sysgo.de)
++ *
++ * Derived from drivers/mtd/nand/autcpu12.c
++ * Copyright (c) 2001 Thomas Gleixner (gleixner at autronix.de)
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Overview:
++ * This is a device driver for the NAND flash device found on the
++ * GESBC-93xx board with Samsung 128/256/512 Mbyte part.
++ */
++
++#include <linux/slab.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/nand.h>
++#include <linux/mtd/partitions.h>
++#include <asm/io.h>
++#include <asm/arch/hardware.h>
++#include <asm/sizes.h>
++
++#define GESBC_NAND_FLASH_DATA 0x10000000
++
++#define GPIO_PADR EP93XX_GPIO_REG(0x0)
++#define GPIO_PADDR EP93XX_GPIO_REG(0x10)
++#define SMCBCR1 (EP93XX_AHB_VIRT_BASE + 0x00082000 + 0x04)
++
++/*
++ * MTD structure for GESBC-93xx board
++ */
++static struct mtd_info *gesbc_mtd = NULL;
++
++
++/*
++ * Module stuff
++ */
++static unsigned long gesbc_fio_pbase = GESBC_NAND_FLASH_DATA;
++
++#ifdef CONFIG_MTD_PARTITIONS
++/*
++ * Define static partitions for flash device
++ */
++static struct mtd_partition partition_info32[] = {
++ { .name= "GESBC NAND FLASH",
++ .offset= 0,
++ .size= 128*1024*1024 },
++};
++/*
++ * Define static partitions for flash device
++ */
++static struct mtd_partition partition_info128[] = {
++ { .name= "GESBC NAND FLASH",
++ .offset= 0,
++ .size= 128*1024*1024 },
++};
++
++/*
++ * Define static partitions for flash device
++ */
++static struct mtd_partition partition_info256[] = {
++ { .name= "GESBC NAND FLASH",
++ .offset= 0,
++ .size= 256*1024*1024 },
++};
++
++/*
++ * Define static partitions for flash device
++ */
++static struct mtd_partition partition_info512[] = {
++ { .name= "GESBC NAND FLASH",
++ .offset= 0,
++ .size= 512*1024*1024 },
++};
++
++#define NUM_PARTITIONS 1
++#endif
++
++
++/*
++ * hardware specific access to control-lines
++ * NAND_NCE: bit 0 -> bit 3
++ * NAND_CLE: bit 1 -> bit 4
++ * NAND_ALE: bit 2 -> bit 6
++ */
++static void gesbc_hwcontrol(struct mtd_info *mtd, int cmd, int ctrl)
++{
++ unsigned long flags;
++ struct nand_chip *chip = mtd->priv;
++
++ /* Disbale interrupt to avoid race condition */
++ local_irq_save(flags);
++
++ if (ctrl & NAND_CTRL_CHANGE) {
++ unsigned char bits;
++
++ bits = (ctrl & NAND_CLE) << 3;
++ bits |= (ctrl & NAND_ALE) << 4;
++ if (ctrl & NAND_NCE)
++ bits &= ~0x08;
++ else
++ bits |= 0x08;
++
++ __raw_writel( (__raw_readl(GPIO_PADR) & ~0x58 )| bits, GPIO_PADR);
++ }
++ if (cmd != NAND_CMD_NONE)
++ writeb(cmd, chip->IO_ADDR_W);
++ /* Restore interrupt state */
++ local_irq_restore(flags);
++}
++
++/*
++ * read device ready pin
++ */
++static int gesbc_device_ready(struct mtd_info *mtd)
++{
++ return (__raw_readl(GPIO_PADR) & 0x80) >> 7;
++}
++
++#define MTDID "s3c2440-nand"
++
++static const char *probes[] = { "cmdlinepart", NULL };
++
++
++
++/*
++ * Main initialization routine
++ */
++static int __init gesbc_nand_init (void)
++{
++ struct nand_chip *this;
++ const char *part_type = 0;
++ int mtd_parts_nb = 0;
++ struct mtd_partition *mtd_parts = 0;
++ unsigned long flags;
++ void * gesbc_fio_base;
++
++ /* Allocate memory for MTD device structure and private data */
++ gesbc_mtd = kmalloc(sizeof(struct mtd_info) +
++ sizeof(struct nand_chip),
++ GFP_KERNEL);
++ if (!gesbc_mtd) {
++ printk("Unable to allocate GESBC NAND MTD device structure.\n");
++ return -ENOMEM;
++ }
++
++ /* map physical adress */
++ gesbc_fio_base = ioremap(gesbc_fio_pbase, SZ_1K);
++ if(!gesbc_fio_base) {
++ printk("ioremap GESBC-93xx NAND flash failed\n");
++ kfree(gesbc_mtd);
++ return -EIO;
++ }
++
++
++ /* Get pointer to private data */
++ this = (struct nand_chip *) (&gesbc_mtd[1]);
++
++ /* Initialize structures */
++ memset((char *) gesbc_mtd, 0, sizeof(struct mtd_info));
++ memset((char *) this, 0, sizeof(struct nand_chip));
++
++ /* Link the private data with the MTD structure */
++ gesbc_mtd->priv = this;
++
++ /* Disbale interrupt to avoid race condition */
++ local_irq_save(flags);
++
++ /*
++ * Set GPIO Port A control register so that the pins are configured
++ * to be outputs for controlling the NAND flash.
++ */
++ __raw_writel((__raw_readl(GPIO_PADDR) | 0x58) & ~0x80, GPIO_PADDR);
++ /* Clear NCE, clear CLE, clear ALE */
++ __raw_writel( (__raw_readl(GPIO_PADR) | 0x08 ) & ~0x50, GPIO_PADR);
++ /* Set SRAM controller to 32 bit (8 bit just doesn't work, don't know why) bus width and 7 CLK wait state */
++ __raw_writel(0x10003ce0, SMCBCR1);
++ local_irq_restore(flags);
++
++
++ /* insert callbacks */
++ this->IO_ADDR_R = (void *) gesbc_fio_base;
++ this->IO_ADDR_W = (void *) gesbc_fio_base;
++ this->cmd_ctrl = (void *) gesbc_hwcontrol;
++ this->dev_ready = gesbc_device_ready;
++ this->chip_delay = 25;
++ this->ecc.mode = NAND_ECC_SOFT;
++
++ __raw_writel(0xffffffff, gesbc_fio_base);
++ printk("Searching for NAND flash...\n");
++ /* Scan to find existence of the device */
++ if (nand_scan (gesbc_mtd, 1)) {
++ iounmap((void *)gesbc_fio_base);
++ kfree (gesbc_mtd);
++ return -ENXIO;
++ }
++
++#ifdef CONFIG_MTD_CMDLINE_PARTS
++ gesbc_mtd->name="GESBC-NAND";
++ mtd_parts_nb = parse_mtd_partitions(gesbc_mtd, probes, &mtd_parts, 0);
++ if (mtd_parts_nb > 0)
++ part_type = "command line";
++ else
++ mtd_parts_nb = 0;
++#endif
++
++ if (mtd_parts_nb == 0)
++ {
++ mtd_parts_nb = NUM_PARTITIONS;
++ mtd_parts = partition_info32;
++ if (gesbc_mtd->size >= (128 * 0x100000))
++ mtd_parts = partition_info128;
++ if (gesbc_mtd->size >= (256 * 0x100000))
++ mtd_parts = partition_info256;
++ if (gesbc_mtd->size >= (512 * 0x100000))
++ mtd_parts = partition_info512;
++ part_type = "static";
++ }
++
++ /* Register the partitions */
++ printk(KERN_NOTICE "Using %s partition definition\n", part_type);
++ add_mtd_partitions(gesbc_mtd, mtd_parts, mtd_parts_nb);
++
++ /* Return happy */
++ return 0;
++}
++module_init(gesbc_nand_init);
++
++/*
++ * Clean up routine
++ */
++static void __exit gesbc_nand_cleanup (void)
++{
++/* struct nand_chip *this = (struct nand_chip *) &gesbc_mtd[1]; */
++
++ /* Unregister the device */
++ del_mtd_device (gesbc_mtd);
++
++ /* Free the MTD device structure */
++ kfree (gesbc_mtd);
++}
++module_exit(gesbc_nand_cleanup);
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("zql at glomationinc.com");
++MODULE_DESCRIPTION("MTD map driver for Glomation GESBC-93xx board");
++
+--
+1.5.4.rc4
+
============================================================
--- packages/linux/linux-2.6.24/gesbc-9302/0002-gesbc-eth-platform.patch ce8aa5463ca9479caae1e6e2757edf14695f5573
+++ packages/linux/linux-2.6.24/gesbc-9302/0002-gesbc-eth-platform.patch ce8aa5463ca9479caae1e6e2757edf14695f5573
@@ -0,0 +1,54 @@
+From b537e497d5490e7e8d94a49b7fbf2200c13ef200 Mon Sep 17 00:00:00 2001
+From: Cliff Brake <cbrake at bec-systems.com>
+Date: Sat, 19 Jan 2008 17:56:56 -0500
+Subject: [PATCH] gesbc-eth-platform
+
+---
+ arch/arm/mach-ep93xx/edb9302.c | 27 +++++++++++++++++++++++++++
+ 1 files changed, 27 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/mach-ep93xx/edb9302.c b/arch/arm/mach-ep93xx/edb9302.c
+index 0315615..8dbeb7c 100644
+--- a/arch/arm/mach-ep93xx/edb9302.c
++++ b/arch/arm/mach-ep93xx/edb9302.c
+@@ -43,10 +43,37 @@ static struct platform_device edb9302_flash = {
+ .resource = &edb9302_flash_resource,
+ };
+
++static struct ep93xx_eth_data ep93xx_eth_data = {
++ .phy_id = 1,
++};
++
++static struct resource ep93xx_eth_resource[] = {
++ {
++ .start = EP93XX_ETHERNET_PHYS_BASE,
++ .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
++ .flags = IORESOURCE_MEM,
++ }, {
++ .start = IRQ_EP93XX_ETHERNET,
++ .end = IRQ_EP93XX_ETHERNET,
++ .flags = IORESOURCE_IRQ,
++ }
++};
++
++static struct platform_device ep93xx_eth_device = {
++ .name = "ep93xx-eth",
++ .id = -1,
++ .dev = {
++ .platform_data = &ep93xx_eth_data,
++ },
++ .num_resources = 2,
++ .resource = ep93xx_eth_resource,
++};
++
+ static void __init edb9302_init_machine(void)
+ {
+ ep93xx_init_devices();
+ platform_device_register(&edb9302_flash);
++ platform_device_register(&ep93xx_eth_device);
+ }
+
+ MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board")
+--
+1.5.4.rc4
+
============================================================
--- packages/linux/linux-2.6.24/gesbc-9302/0003-gesbc9302-defconfig.patch cc54a43f1d464e5059470cabc7741a3e0c64dd78
+++ packages/linux/linux-2.6.24/gesbc-9302/0003-gesbc9302-defconfig.patch cc54a43f1d464e5059470cabc7741a3e0c64dd78
@@ -0,0 +1,1184 @@
+From d0d110243832e82847ea3e0a806bb6e6edaaf71f Mon Sep 17 00:00:00 2001
+From: Cliff Brake <cbrake at happy.(none)>
+Date: Mon, 17 Dec 2007 16:46:19 -0500
+Subject: [PATCH] gesbc9302-defconfig
+
+---
+ arch/arm/configs/gesbc9302_defconfig | 1165 ++++++++++++++++++++++++++++++++++
+ 1 files changed, 1165 insertions(+), 0 deletions(-)
+ create mode 100644 arch/arm/configs/gesbc9302_defconfig
+
+diff --git a/arch/arm/configs/gesbc9302_defconfig b/arch/arm/configs/gesbc9302_defconfig
+new file mode 100644
+index 0000000..da4fc81
+--- /dev/null
++++ b/arch/arm/configs/gesbc9302_defconfig
+@@ -0,0 +1,1165 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.24
++# Thu Jan 31 23:28:43 2008
++#
++CONFIG_ARM=y
++CONFIG_SYS_SUPPORTS_APM_EMULATION=y
++# CONFIG_GENERIC_GPIO is not set
++# CONFIG_GENERIC_TIME is not set
++# CONFIG_GENERIC_CLOCKEVENTS is not set
++CONFIG_MMU=y
++# CONFIG_NO_IOPORT is not set
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_STACKTRACE_SUPPORT=y
++CONFIG_LOCKDEP_SUPPORT=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++# CONFIG_ARCH_HAS_ILOG2_U32 is not set
++# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_ZONE_DMA=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++CONFIG_LOCALVERSION_AUTO=y
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_PID_NS is not set
++# CONFIG_AUDIT is not set
++CONFIG_IKCONFIG=y
++CONFIG_IKCONFIG_PROC=y
++CONFIG_LOG_BUF_SHIFT=14
++# CONFIG_CGROUPS is not set
++# CONFIG_FAIR_GROUP_SCHED is not set
++# CONFIG_SYSFS_DEPRECATED is not set
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
++CONFIG_EMBEDDED=y
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_SLABINFO=y
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++CONFIG_MODULE_FORCE_UNLOAD=y
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++# CONFIG_LBD is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++# CONFIG_IOSCHED_AS is not set
++CONFIG_IOSCHED_DEADLINE=y
++# CONFIG_IOSCHED_CFQ is not set
++# CONFIG_DEFAULT_AS is not set
++CONFIG_DEFAULT_DEADLINE=y
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="deadline"
++
++#
++# System Type
++#
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++CONFIG_ARCH_EP93XX=y
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP13XX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
++# CONFIG_ARCH_IXP23XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_KS8695 is no%s
>>> DIFF TRUNCATED @ 16K
More information about the Openembedded-commits
mailing list