armadeus-commitlog Mailing List for armadeus (Page 87)
Brought to you by:
sszy
You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(43) |
Feb
(8) |
Mar
(7) |
Apr
(8) |
May
(14) |
Jun
(6) |
Jul
(4) |
Aug
(17) |
Sep
(18) |
Oct
(19) |
Nov
(52) |
Dec
(30) |
| 2008 |
Jan
(6) |
Feb
(6) |
Mar
(15) |
Apr
(22) |
May
(13) |
Jun
(11) |
Jul
(41) |
Aug
(10) |
Sep
(14) |
Oct
(21) |
Nov
(4) |
Dec
(66) |
| 2009 |
Jan
(67) |
Feb
(57) |
Mar
(90) |
Apr
(54) |
May
(64) |
Jun
(76) |
Jul
(14) |
Aug
(18) |
Sep
(18) |
Oct
(20) |
Nov
(15) |
Dec
(36) |
| 2010 |
Jan
(28) |
Feb
(25) |
Mar
(32) |
Apr
(23) |
May
(22) |
Jun
(62) |
Jul
(36) |
Aug
(16) |
Sep
(12) |
Oct
(20) |
Nov
(44) |
Dec
(25) |
| 2011 |
Jan
(36) |
Feb
(49) |
Mar
(28) |
Apr
(38) |
May
(26) |
Jun
(52) |
Jul
(33) |
Aug
(32) |
Sep
(19) |
Oct
(26) |
Nov
(13) |
Dec
(32) |
| 2012 |
Jan
(38) |
Feb
(34) |
Mar
(91) |
Apr
(35) |
May
(31) |
Jun
(72) |
Jul
(23) |
Aug
(13) |
Sep
(33) |
Oct
(47) |
Nov
(18) |
Dec
(22) |
| 2013 |
Jan
(31) |
Feb
(22) |
Mar
(26) |
Apr
(11) |
May
(38) |
Jun
(15) |
Jul
(37) |
Aug
(68) |
Sep
(34) |
Oct
(11) |
Nov
(26) |
Dec
(31) |
| 2014 |
Jan
(60) |
Feb
(55) |
Mar
(21) |
Apr
(31) |
May
(17) |
Jun
(35) |
Jul
(24) |
Aug
(17) |
Sep
(11) |
Oct
(23) |
Nov
(10) |
Dec
(23) |
| 2015 |
Jan
(15) |
Feb
(34) |
Mar
(46) |
Apr
(23) |
May
(12) |
Jun
(14) |
Jul
(18) |
Aug
(22) |
Sep
(6) |
Oct
(2) |
Nov
(1) |
Dec
(6) |
| 2016 |
Jan
(5) |
Feb
(7) |
Mar
(10) |
Apr
(10) |
May
(17) |
Jun
(6) |
Jul
(4) |
Aug
(6) |
Sep
(22) |
Oct
(8) |
Nov
(9) |
Dec
(5) |
| 2017 |
Jan
(11) |
Feb
(12) |
Mar
(27) |
Apr
(9) |
May
(1) |
Jun
(5) |
Jul
(11) |
Aug
(10) |
Sep
(6) |
Oct
(10) |
Nov
(4) |
Dec
(6) |
| 2018 |
Jan
(6) |
Feb
(13) |
Mar
(9) |
Apr
(7) |
May
(10) |
Jun
(9) |
Jul
(21) |
Aug
(13) |
Sep
(10) |
Oct
(4) |
Nov
(6) |
Dec
(1) |
| 2019 |
Jan
(6) |
Feb
(2) |
Mar
(5) |
Apr
(6) |
May
(19) |
Jun
(14) |
Jul
(18) |
Aug
(3) |
Sep
(5) |
Oct
(7) |
Nov
(8) |
Dec
(4) |
| 2020 |
Jan
(10) |
Feb
(3) |
Mar
(9) |
Apr
(7) |
May
(2) |
Jun
(18) |
Jul
(3) |
Aug
|
Sep
|
Oct
(7) |
Nov
|
Dec
(1) |
| 2021 |
Jan
(9) |
Feb
(6) |
Mar
(4) |
Apr
(11) |
May
(7) |
Jun
(5) |
Jul
(2) |
Aug
(4) |
Sep
(10) |
Oct
(9) |
Nov
(5) |
Dec
|
| 2022 |
Jan
(2) |
Feb
(12) |
Mar
(3) |
Apr
(5) |
May
(1) |
Jun
(3) |
Jul
(2) |
Aug
(1) |
Sep
(4) |
Oct
(4) |
Nov
(1) |
Dec
(3) |
| 2023 |
Jan
(5) |
Feb
(3) |
Mar
(3) |
Apr
(2) |
May
(1) |
Jun
(3) |
Jul
(3) |
Aug
(2) |
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(4) |
| 2024 |
Jan
(2) |
Feb
(3) |
Mar
(8) |
Apr
(4) |
May
(1) |
Jun
(13) |
Jul
(7) |
Aug
(1) |
Sep
(6) |
Oct
(5) |
Nov
(11) |
Dec
(7) |
| 2025 |
Jan
(3) |
Feb
(1) |
Mar
(6) |
Apr
(4) |
May
(4) |
Jun
(1) |
Jul
(1) |
Aug
(7) |
Sep
(4) |
Oct
(4) |
Nov
(4) |
Dec
(1) |
| 2026 |
Jan
(3) |
Feb
(7) |
Mar
(3) |
Apr
(1) |
May
(6) |
Jun
(3) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Julien B a. A. <ar...@us...> - 2011-10-20 14:53:04
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 7516ca9db192bc835e6fffb8d8b8ce3b927aeb51 (commit)
from 0cd171766a17ed7a8e11083223414d57225084d6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 7516ca9db192bc835e6fffb8d8b8ce3b927aeb51
Author: Julien Boibessot <jul...@ar...>
Date: Thu Oct 20 16:52:06 2011 +0200
[LINUX] Add IIM and DCP drivers
-----------------------------------------------------------------------
Summary of changes:
...escale-0034-ENGR00126692-3-add_iim_driver.patch | 523 ++
...26692-3-add_mx23_mx25_mx28_security_stuff.patch | 5592 ++++++++++++++++++++
2 files changed, 6115 insertions(+), 0 deletions(-)
create mode 100644 patches/linux/2.6.38/442-freescale-0034-ENGR00126692-3-add_iim_driver.patch
create mode 100644 patches/linux/2.6.38/442-freescale-0034-ENGR00126692-3-add_mx23_mx25_mx28_security_stuff.patch
diff --git a/patches/linux/2.6.38/442-freescale-0034-ENGR00126692-3-add_iim_driver.patch b/patches/linux/2.6.38/442-freescale-0034-ENGR00126692-3-add_iim_driver.patch
new file mode 100644
index 0000000..0d66022
--- /dev/null
+++ b/patches/linux/2.6.38/442-freescale-0034-ENGR00126692-3-add_iim_driver.patch
@@ -0,0 +1,523 @@
+From 3eb9039c5392abaabd96d08c0006ea4066346a60 Mon Sep 17 00:00:00 2001
+From: Dinh Nguyen <Din...@fr...>
+Date: Tue, 17 Aug 2010 16:46:40 -0500
+Subject: [PATCH] ENGR00126692-3: Upgrade kernel to 2.6.35
+
+This patch contains changes to /drivers files
+Contains all checkpatch and copyright fixes.
+
+Acked-by: Rob Herring <r.h...@fr...>
+Signed-off-by: Dinh Nguyen <Din...@fr...>
+---
+ Changes by Armadeus systems:
+ - extract IIM stuff from original patch
+ - correctly register IIM resources
+
+ drivers/char/Kconfig | 23 +
+ drivers/char/Makefile | 5 +
+ drivers/char/mxc_iim.c | 161 +
+ drivers/char/mxs_viim.c | 175 +
+
+Index: linux-2.6.38.8/drivers/char/Kconfig
+===================================================================
+--- linux-2.6.38.8.orig/drivers/char/Kconfig 2011-06-03 03:35:11.000000000 +0200
++++ linux-2.6.38.8/drivers/char/Kconfig 2011-08-26 19:03:11.000000000 +0200
+@@ -426,6 +426,18 @@
+ If you have an SGI Altix with an attached SABrick
+ say Y or M here, otherwise say N.
+
++config MXC_IIM
++ tristate "MXC IIM device driver"
++ depends on ARCH_MXC
++ help
++ Support for access to MXC IIM device, most people should say N here.
++
++config MXS_VIIM
++ tristate "MXS Virtual IIM device driver"
++ depends on (ARCH_STMP3XXX || ARCH_MXS || ARCH_MX5)
++ help
++ Support for access to MXS Virtual IIM device, most people should say N here.
++
+ source "drivers/tty/serial/Kconfig"
+
+ config UNIX98_PTYS
+Index: linux-2.6.38.8/drivers/char/Makefile
+===================================================================
+--- linux-2.6.38.8.orig/drivers/char/Makefile 2011-06-03 03:35:11.000000000 +0200
++++ linux-2.6.38.8/drivers/char/Makefile 2011-08-26 19:03:11.000000000 +0200
+@@ -73,6 +73,9 @@
+ obj-$(CONFIG_GPIO_TB0219) += tb0219.o
+ obj-$(CONFIG_TELCLOCK) += tlclk.o
+
++obj-$(CONFIG_MXC_IIM) += mxc_iim.o
++obj-$(CONFIG_MXS_VIIM) += mxs_viim.o
++
+ obj-$(CONFIG_MWAVE) += mwave/
+ obj-$(CONFIG_AGP) += agp/
+ obj-$(CONFIG_PCMCIA) += pcmcia/
+Index: linux-2.6.38.8/drivers/char/mxc_iim.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.38.8/drivers/char/mxc_iim.c 2011-08-26 19:03:11.000000000 +0200
+@@ -0,0 +1,161 @@
++/*
++ * Copyright 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
++ */
++
++/*
++ * The code contained herein is licensed under the GNU General Public
++ * License. You may obtain a copy of the GNU General Public License
++ * Version 2 or later at the following locations:
++ *
++ * http://www.opensource.org/licenses/gpl-license.html
++ * http://www.gnu.org/copyleft/gpl.html
++ */
++
++#include <linux/fs.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/err.h>
++#include <linux/mm.h>
++#include <linux/clk.h>
++#include <linux/miscdevice.h>
++
++static unsigned long iim_reg_base, iim_reg_end, iim_reg_size;
++static struct clk *iim_clk;
++static struct device *iim_dev;
++
++/*!
++ * MXC IIM interface - memory map function
++ * This function maps 4KB IIM registers from IIM base address.
++ *
++ * @param file struct file *
++ * @param vma structure vm_area_struct *
++ *
++ * @return Return 0 on success or negative error code on error
++ */
++static int mxc_iim_mmap(struct file *file, struct vm_area_struct *vma)
++{
++ vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
++
++ /* Remap-pfn-range will mark the range VM_IO and VM_RESERVED */
++ if (remap_pfn_range(vma,
++ vma->vm_start,
++ iim_reg_base >> PAGE_SHIFT,
++ iim_reg_size,
++ vma->vm_page_prot))
++ return -EAGAIN;
++
++ return 0;
++}
++
++/*!
++ * MXC IIM interface - open function
++ *
++ * @param inode struct inode *
++ * @param filp struct file *
++ *
++ * @return Return 0 on success or negative error code on error
++ */
++static int mxc_iim_open(struct inode *inode, struct file *filp)
++{
++ iim_clk = clk_get(NULL, "iim_clk");
++ if (IS_ERR(iim_clk)) {
++ dev_err(iim_dev, "No IIM clock defined\n");
++ return -ENODEV;
++ }
++ clk_enable(iim_clk);
++
++ return 0;
++}
++
++/*!
++ * MXC IIM interface - release function
++ *
++ * @param inode struct inode *
++ * @param filp struct file *
++ *
++ * @return Return 0 on success or negative error code on error
++ */
++static int mxc_iim_release(struct inode *inode, struct file *filp)
++{
++ clk_disable(iim_clk);
++ clk_put(iim_clk);
++ return 0;
++}
++
++static const struct file_operations mxc_iim_fops = {
++ .mmap = mxc_iim_mmap,
++ .open = mxc_iim_open,
++ .release = mxc_iim_release,
++};
++
++static struct miscdevice mxc_iim_miscdev = {
++ .minor = MISC_DYNAMIC_MINOR,
++ .name = "mxc_iim",
++ .fops = &mxc_iim_fops,
++};
++
++/*!
++ * This function is called by the driver framework to get iim base/end address
++ * and register iim misc device.
++ *
++ * @param dev The device structure for IIM passed in by the driver
++ * framework.
++ *
++ * @return Returns 0 on success or negative error code on error
++ */
++static int mxc_iim_probe(struct platform_device *pdev)
++{
++ struct resource *res;
++ int ret;
++
++ iim_dev = &pdev->dev;
++
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if (IS_ERR(res)) {
++ dev_err(iim_dev, "Unable to get IIM resource\n");
++ return -ENODEV;
++ }
++
++ iim_reg_base = res->start;
++ iim_reg_end = res->end;
++ iim_reg_size = iim_reg_end - iim_reg_base + 1;
++
++ ret = misc_register(&mxc_iim_miscdev);
++ if (ret)
++ return ret;
++
++ return 0;
++}
++
++static int mxc_iim_remove(struct platform_device *pdev)
++{
++ misc_deregister(&mxc_iim_miscdev);
++ return 0;
++}
++
++static struct platform_driver mxc_iim_driver = {
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "mxc_iim",
++ },
++ .probe = mxc_iim_probe,
++ .remove = mxc_iim_remove,
++};
++
++static int __init mxc_iim_dev_init(void)
++{
++ return platform_driver_register(&mxc_iim_driver);
++}
++
++static void __exit mxc_iim_dev_cleanup(void)
++{
++ platform_driver_unregister(&mxc_iim_driver);
++}
++
++module_init(mxc_iim_dev_init);
++module_exit(mxc_iim_dev_cleanup);
++
++MODULE_AUTHOR("Freescale Semiconductor, Inc.");
++MODULE_DESCRIPTION("MXC IIM driver");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS_MISCDEV(MISC_DYNAMIC_MINOR);
+Index: linux-2.6.38.8/drivers/char/mxs_viim.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.38.8/drivers/char/mxs_viim.c 2011-08-26 19:03:11.000000000 +0200
+@@ -0,0 +1,175 @@
++/*
++ * Copyright 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
++ */
++
++/*
++ * The code contained herein is licensed under the GNU General Public
++ * License. You may obtain a copy of the GNU General Public License
++ * Version 2 or later at the following locations:
++ *
++ * http://www.opensource.org/licenses/gpl-license.html
++ * http://www.gnu.org/copyleft/gpl.html
++ */
++
++#include <linux/fs.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/err.h>
++#include <linux/mm.h>
++#include <linux/miscdevice.h>
++
++static unsigned long iim_reg_base0, iim_reg_end0, iim_reg_size0;
++static unsigned long iim_reg_base1, iim_reg_end1, iim_reg_size1;
++static struct device *iim_dev;
++
++/*!
++ * MXS Virtual IIM interface - memory map function
++ * This function maps one page size VIIM registers from VIIM base address0
++ * if the size of the required virtual memory space is less than or equal to
++ * one page size, otherwise this function will also map one page size VIIM
++ * registers from VIIM base address1.
++ *
++ * @param file struct file *
++ * @param vma structure vm_area_struct *
++ *
++ * @return Return 0 on success or negative error code on error
++ */
++static int mxs_viim_mmap(struct file *file, struct vm_area_struct *vma)
++{
++ size_t size = vma->vm_end - vma->vm_start;
++
++ vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
++
++ /* Remap-pfn-range will mark the range VM_IO and VM_RESERVED */
++ if (remap_pfn_range(vma,
++ vma->vm_start,
++ iim_reg_base0 >> PAGE_SHIFT,
++ iim_reg_size0,
++ vma->vm_page_prot))
++ return -EAGAIN;
++
++ if (size > iim_reg_size0) {
++ if (remap_pfn_range(vma,
++ vma->vm_start + iim_reg_size0,
++ iim_reg_base1 >> PAGE_SHIFT,
++ iim_reg_size1,
++ vma->vm_page_prot))
++ return -EAGAIN;
++ }
++
++ return 0;
++}
++
++/*!
++ * MXS Virtual IIM interface - open function
++ *
++ * @param inode struct inode *
++ * @param filp struct file *
++ *
++ * @return Return 0 on success or negative error code on error
++ */
++static int mxs_viim_open(struct inode *inode, struct file *filp)
++{
++ return 0;
++}
++
++/*!
++ * MXS Virtual IIM interface - release function
++ *
++ * @param inode struct inode *
++ * @param filp struct file *
++ *
++ * @return Return 0 on success or negative error code on error
++ */
++static int mxs_viim_release(struct inode *inode, struct file *filp)
++{
++ return 0;
++}
++
++static const struct file_operations mxs_viim_fops = {
++ .mmap = mxs_viim_mmap,
++ .open = mxs_viim_open,
++ .release = mxs_viim_release,
++};
++
++static struct miscdevice mxs_viim_miscdev = {
++ .minor = MISC_DYNAMIC_MINOR,
++ .name = "mxs_viim",
++ .fops = &mxs_viim_fops,
++};
++
++/*!
++ * This function is called by the driver framework to get virtual iim base/end
++ * address and register iim misc device.
++ *
++ * @param dev The device structure for Virtual IIM passed in by the
++ * driver framework.
++ *
++ * @return Returns 0 on success or negative error code on error
++ */
++static int mxs_viim_probe(struct platform_device *pdev)
++{
++ struct resource *res;
++ int ret;
++
++ iim_dev = &pdev->dev;
++
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if (IS_ERR(res)) {
++ dev_err(iim_dev, "Unable to get Virtual IIM resource 0\n");
++ return -ENODEV;
++ }
++
++ iim_reg_base0 = res->start;
++ iim_reg_end0 = res->end;
++ iim_reg_size0 = iim_reg_end0 - iim_reg_base0 + 1;
++
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
++ if (IS_ERR(res)) {
++ dev_err(iim_dev, "Unable to get Virtual IIM resource 1\n");
++ return -ENODEV;
++ }
++
++ iim_reg_base1 = res->start;
++ iim_reg_end1 = res->end;
++ iim_reg_size1 = iim_reg_end1 - iim_reg_base1 + 1;
++
++ ret = misc_register(&mxs_viim_miscdev);
++ if (ret)
++ return ret;
++
++ return 0;
++}
++
++static int mxs_viim_remove(struct platform_device *pdev)
++{
++ misc_deregister(&mxs_viim_miscdev);
++ return 0;
++}
++
++static struct platform_driver mxs_viim_driver = {
++ .driver = {
++ .owner = THIS_MODULE,
++ .name = "mxs_viim",
++ },
++ .probe = mxs_viim_probe,
++ .remove = mxs_viim_remove,
++};
++
++static int __init mxs_viim_dev_init(void)
++{
++ return platform_driver_register(&mxs_viim_driver);
++}
++
++static void __exit mxs_viim_dev_cleanup(void)
++{
++ platform_driver_unregister(&mxs_viim_driver);
++}
++
++module_init(mxs_viim_dev_init);
++module_exit(mxs_viim_dev_cleanup);
++
++MODULE_AUTHOR("Freescale Semiconductor, Inc.");
++MODULE_DESCRIPTION("MXS Virtual IIM driver");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS_MISCDEV(MISC_DYNAMIC_MINOR);
+Index: linux-2.6.38.8/arch/arm/plat-mxc/devices/Makefile
+===================================================================
+--- linux-2.6.38.8.orig/arch/arm/plat-mxc/devices/Makefile 2011-08-27 14:39:36.000000000 +0200
++++ linux-2.6.38.8/arch/arm/plat-mxc/devices/Makefile 2011-10-20 16:04:33.000000000 +0200
+@@ -23,3 +23,4 @@
+ obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o
+ obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) += platform-spi_imx.o
+ obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_IPUV3) += platform-imx_ipuv3.o
++obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_IIM) += platform-mxc-iim.o
+Index: linux-2.6.38.8/arch/arm/plat-mxc/devices/Kconfig
+===================================================================
+--- linux-2.6.38.8.orig/arch/arm/plat-mxc/devices/Kconfig 2011-08-27 14:44:08.000000000 +0200
++++ linux-2.6.38.8/arch/arm/plat-mxc/devices/Kconfig 2011-10-20 16:03:48.000000000 +0200
+@@ -75,3 +75,6 @@
+ config IMX_HAVE_PLATFORM_IMX_IPUV3
+ bool
+
++config IMX_HAVE_PLATFORM_MXC_IIM
++ bool
++
+Index: linux-2.6.38.8/arch/arm/plat-mxc/devices/platform-mxc-iim.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.38.8/arch/arm/plat-mxc/devices/platform-mxc-iim.c 2011-08-30 11:20:50.000000000 +0200
+@@ -0,0 +1,66 @@
++/*
++ * Copyright (C) 2011 ARMadeus Systems
++ * Julien Boibessot <jul...@ar...>
++ *
++ * Based on code which is:
++ * Copyright (C) 2010 Pengutronix
++ * Uwe Kleine-Koenig <u.k...@pe...>
++ *
++ * 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.
++ */
++#include <asm/sizes.h>
++#include <mach/hardware.h>
++#include <mach/devices-common.h>
++
++#define imx_iim_data_entry(soc, _id, _hwid, _size) \
++ { \
++ .id = _id, \
++ .iobase = soc ## _IIM ## _BASE_ADDR, \
++ .iosize = _size, \
++ }
++
++#ifdef CONFIG_SOC_IMX21
++const struct imx_iim_data imx21_iim_data __initconst =
++ imx_iim_data_entry(MX21, 0, , SZ_4K);
++#endif /* ifdef CONFIG_SOC_IMX21 */
++
++#ifdef CONFIG_SOC_IMX25
++const struct imx_iim_data imx25_iim_data __initconst =
++ imx_iim_data_entry(MX25, 0, , SZ_16K);
++#endif /* ifdef CONFIG_SOC_IMX25 */
++
++#ifdef CONFIG_SOC_IMX27
++const struct imx_iim_data imx27_iim_data __initconst =
++ imx_iim_data_entry(MX27, 0, , SZ_4K);
++#endif /* ifdef CONFIG_SOC_IMX27 */
++
++#ifdef CONFIG_SOC_IMX31
++const struct imx_iim_data imx31_iim_data __initconst =
++ imx_iim_data_entry(MX31, 0, , SZ_16K);
++#endif /* ifdef CONFIG_SOC_IMX31 */
++
++#ifdef CONFIG_SOC_IMX35
++const struct imx_iim_data imx35_iim_data __initconst =
++ imx_iim_data_entry(MX35, 0, , SZ_16K);
++#endif /* ifdef CONFIG_SOC_IMX35 */
++
++#ifdef CONFIG_SOC_IMX51
++const struct imx_iim_data imx51_iim_data[] __initconst = {
++ imx_iim_data_entry(MX51, 0, , SZ_4K)
++};
++#endif /* ifdef CONFIG_SOC_IMX51 */
++
++struct platform_device *__init imx_add_iim(const struct imx_iim_data *data)
++{
++ struct resource res[] = {
++ {
++ .start = data->iobase,
++ .end = data->iobase + data->iosize - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ };
++ return imx_add_platform_device("mxc-iim", data->id,
++ res, ARRAY_SIZE(res), NULL, 0);
++}
+Index: linux-2.6.38.8/arch/arm/plat-mxc/include/mach/devices-common.h
+===================================================================
+--- linux-2.6.38.8.orig/arch/arm/plat-mxc/include/mach/devices-common.h 2011-08-30 11:45:23.000000000 +0200
++++ linux-2.6.38.8/arch/arm/plat-mxc/include/mach/devices-common.h 2011-08-30 11:47:10.000000000 +0200
+@@ -274,3 +274,12 @@
+ struct platform_device *__init imx_add_ipuv3(
+ const struct imx_ipuv3_data *data,
+ const struct imx_ipuv3_platform_data *pdata);
++
++struct imx_iim_data {
++ int id;
++ resource_size_t iobase;
++ resource_size_t iosize;
++};
++struct platform_device *__init imx_add_iim(
++ const struct imx_iim_data *data);
++
+Index: linux-2.6.38.8/arch/arm/mach-mx5/devices-imx51.h
+===================================================================
+--- linux-2.6.38.8.orig/arch/arm/mach-mx5/devices-imx51.h 2011-08-30 11:55:51.000000000 +0200
++++ linux-2.6.38.8/arch/arm/mach-mx5/devices-imx51.h 2011-08-30 11:58:09.000000000 +0200
+@@ -59,3 +59,7 @@
+ extern const struct imx_ipuv3_data imx51_ipuv3_data __initconst;
+ #define imx51_add_ipuv3(pdata) \
+ imx_add_ipuv3(&imx51_ipuv3_data, pdata)
++
++extern const struct imx_iim_data imx51_iim_data __initconst;
++#define imx51_add_iim(pdata) \
++ imx_add_iim(&imx51_iim_data)
diff --git a/patches/linux/2.6.38/442-freescale-0034-ENGR00126692-3-add_mx23_mx25_mx28_security_stuff.patch b/patches/linux/2.6.38/442-freescale-0034-ENGR00126692-3-add_mx23_mx25_mx28_security_stuff.patch
new file mode 100644
index 0000000..0aa3551
--- /dev/null
+++ b/patches/linux/2.6.38/442-freescale-0034-ENGR00126692-3-add_mx23_mx25_mx28_security_stuff.patch
@@ -0,0 +1,5592 @@
+From 3eb9039c5392abaabd96d08c0006ea4066346a60 Mon Sep 17 00:00:00 2001
+From: Dinh Nguyen <Din...@fr...>
+Date: Tue, 17 Aug 2010 16:46:40 -0500
+Subject: [PATCH] ENGR00126692-3: Upgrade kernel to 2.6.35
+
+This patch contains changes to /drivers files
+Contains all checkpatch and copyright fixes.
+
+Acked-by: Rob Herring <r.h...@fr...>
+Signed-off-by: Dinh Nguyen <Din...@fr...>
+---
+ Changes from Armadeus systems:
+ - extracted DCP stuff from original patch
+
+diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
+--- a/drivers/crypto/Kconfig
++++ b/drivers/crypto/Kconfig
+@@ -243,4 +243,16 @@ config CRYPTO_DEV_OMAP_SHAM
+ OMAP processors have SHA1/MD5 hw accelerator. Select this if you
+ want to use the OMAP module for SHA1/MD5 algorithms.
+
++config CRYPTO_DEV_DCP
++ tristate "Support for the DCP engine"
++ depends on ARCH_MX28 || ARCH_MX23
++ select CRYPTO_ALGAPI
++ select CRYPTO_BLKCIPHER
++ help
++ Say 'Y' here to use the DCP AES and SHA
++ engine for the CryptoAPI algorithms.
++
++ To compile this driver as a module, choose M here: the module
++ will be called geode-aes.
++
+ endif # CRYPTO_HW
+diff --git a/drivers/crypto/Makefile b/drivers/crypto/Makefile
+index 6dbbe00..c375d19 100644
+--- a/drivers/crypto/Makefile
++++ b/drivers/crypto/Makefile
+@@ -9,4 +9,5 @@ obj-$(CONFIG_CRYPTO_DEV_TALITOS) += talitos.o
+ obj-$(CONFIG_CRYPTO_DEV_IXP4XX) += ixp4xx_crypto.o
+ obj-$(CONFIG_CRYPTO_DEV_PPC4XX) += amcc/
+ obj-$(CONFIG_CRYPTO_DEV_OMAP_SHAM) += omap-sham.o
++obj-$(CONFIG_CRYPTO_DEV_DCP) += dcp.o
+
+diff --git a/drivers/crypto/dcp.c b/drivers/crypto/dcp.c
+new file mode 100644
+index 0000000..9589a19
+--- /dev/null
++++ b/drivers/crypto/dcp.c
+@@ -0,0 +1,1697 @@
++/*
++ * Copyright (C) 2008-2010 Freescale Semiconductor, Inc.
++ */
++
++/*
++ * The code contained herein is licensed under the GNU General Public
++ * License. You may obtain a copy of the GNU General Public License
++ * Version 2 or later at the following locations:
++ *
++ * http://www.opensource.org/licenses/gpl-license.html
++ * http://www.gnu.org/copyleft/gpl.html
++ */
++/*
++ * Based on geode-aes.c
++ * Copyright (C) 2004-2006, Advanced Micro Devices, Inc.
++ */
++
++#include <linux/slab.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/errno.h>
++#include <linux/sysdev.h>
++#include <linux/bitops.h>
++#include <linux/crypto.h>
++#include <linux/spinlock.h>
++#include <linux/miscdevice.h>
++#include <linux/platform_device.h>
++#include <linux/err.h>
++#include <linux/sysfs.h>
++#include <linux/fs.h>
++#include <crypto/algapi.h>
++#include <crypto/aes.h>
++#include <crypto/sha.h>
++#include <crypto/hash.h>
++#include <crypto/internal/hash.h>
++#include <linux/dma-mapping.h>
++#include <linux/interrupt.h>
++#include <linux/delay.h>
++#include <linux/uaccess.h>
++
++#include <linux/io.h>
++#include <linux/delay.h>
++
++#include <asm/cacheflush.h>
++#include <mach/hardware.h>
++#include "dcp.h"
++#include "dcp_bootstream_ioctl.h"
++
++/* Following data only used by DCP bootstream interface */
++struct dcpboot_dma_area {
++ struct dcp_hw_packet hw_packet;
++ uint16_t block[16];
++};
++
++struct dcp {
++ struct device *dev;
++ spinlock_t lock;
++ struct mutex op_mutex[DCP_NUM_CHANNELS];
++ struct completion op_wait[DCP_NUM_CHANNELS];
++ int wait[DCP_NUM_CHANNELS];
++ int dcp_vmi_irq;
++ int dcp_irq;
++ u32 dcp_regs_base;
++
++ /* Following buffers used in hashing to meet 64-byte len alignment */
++ char *buf1;
++ char *buf2;
++ dma_addr_t buf1_phys;
++ dma_addr_t buf2_phys;
++ struct dcp_hash_coherent_block *buf1_desc;
++ struct dcp_hash_coherent_block *buf2_desc;
++ struct dcp_hash_coherent_block *user_buf_desc;
++
++ /* Following data only used by DCP bootstream interface */
++ struct dcpboot_dma_area *dcpboot_dma_area;
++ dma_addr_t dcpboot_dma_area_phys;
++};
++
++/* cipher flags */
++#define DCP_ENC 0x0001
++#define DCP_DEC 0x0002
++#define DCP_ECB 0x0004
++#define DCP_CBC 0x0008
++#define DCP_CBC_INIT 0x0010
++#define DCP_OTPKEY 0x0020
++
++/* hash flags */
++#define DCP_INIT 0x0001
++#define DCP_UPDATE 0x0002
++#define DCP_FINAL 0x0004
++
++#define DCP_AES 0x1000
++#define DCP_SHA1 0x2000
++#define DCP_CRC32 0x3000
++#define DCP_COPY 0x4000
++#define DCP_FILL 0x5000
++#define DCP_MODE_MASK 0xf000
++
++struct dcp_op {
++
++ unsigned int flags;
++
++ void *src;
++ dma_addr_t src_phys;
++
++ void *dst;
++ dma_addr_t dst_phys;
++
++ int len;
++
++ /* the key contains the IV for block modes */
++ union {
++ struct {
++ u8 key[2 * AES_KEYSIZE_128]
++ __attribute__ ((__aligned__(32)));
++ dma_addr_t key_phys;
++ int keylen;
++ } cipher;
++ struct {
++ u8 digest[SHA256_DIGEST_SIZE]
++ __attribute__ ((__aligned__(32)));
++ dma_addr_t digest_phys;
++ int digestlen;
++ int init;
++ } hash;
++ };
++
++ union {
++ struct crypto_blkcipher *blk;
++ struct crypto_cipher *cip;
++ struct crypto_hash *hash;
++ } fallback;
++
++ struct dcp_hw_packet pkt
++ __attribute__ ((__aligned__(32)));
++};
++
++struct dcp_hash_coherent_block {
++ struct dcp_hw_packet pkt[1]
++ __attribute__ ((__aligned__(32)));
++ u8 digest[SHA256_DIGEST_SIZE]
++ __attribute__ ((__aligned__(32)));
++ unsigned int len;
++ dma_addr_t src_phys;
++ void *src;
++ void *dst;
++ dma_addr_t my_phys;
++ u32 hash_sel;
++ struct dcp_hash_coherent_block *next;
++};
++
++struct dcp_hash_op {
++
++ unsigned int flags;
++
++ /* the key contains the IV for block modes */
++ union {
++ struct {
++ u8 key[2 * AES_KEYSIZE_128]
++ __attribute__ ((__aligned__(32)));
++ dma_addr_t key_phys;
++ int keylen;
++ } cipher;
++ struct {
++ u8 digest[SHA256_DIGEST_SIZE]
++ __attribute__ ((__aligned__(32)));
++ dma_addr_t digest_phys;
++ int digestlen;
++ int init;
++ } hash;
++ };
++
++ u32 length;
++ struct dcp_hash_coherent_block *head_desc;
++ struct dcp_hash_coherent_block *tail_desc;
++};
++
++/* only one */
++static struct dcp *global_sdcp;
++
++static void dcp_perform_op(struct dcp_op *op)
++{
++ struct dcp *sdcp = global_sdcp;
++ struct mutex *mutex;
++ struct dcp_hw_packet *pkt;
++ int chan;
++ u32 pkt1, pkt2;
++ unsigned long timeout;
++ dma_addr_t pkt_phys;
++ u32 stat;
++
++ pkt1 = BM_DCP_PACKET1_DECR_SEMAPHORE | BM_DCP_PACKET1_INTERRUPT;
++
++ switch (op->flags & DCP_MODE_MASK) {
++
++ case DCP_AES:
++
++ chan = CIPHER_CHAN;
++
++ /* key is at the payload */
++ pkt1 |= BM_DCP_PACKET1_ENABLE_CIPHER;
++ if ((op->flags & DCP_OTPKEY) == 0)
++ pkt1 |= BM_DCP_PACKET1_PAYLOAD_KEY;
++ if (op->flags & DCP_ENC)
++ pkt1 |= BM_DCP_PACKET1_CIPHER_ENCRYPT;
++ if (op->flags & DCP_CBC_INIT)
++ pkt1 |= BM_DCP_PACKET1_CIPHER_INIT;
++
++ pkt2 = BF(0, DCP_PACKET2_CIPHER_CFG) |
++ BF(0, DCP_PACKET2_KEY_SELECT) |
++ BF(BV_DCP_PACKET2_CIPHER_SELECT__AES128,
++ DCP_PACKET2_CIPHER_SELECT);
++
++ if (op->flags & DCP_ECB)
++ pkt2 |= BF(BV_DCP_PACKET2_CIPHER_MODE__ECB,
++ DCP_PACKET2_CIPHER_MODE);
++ else if (op->flags & DCP_CBC)
++ pkt2 |= BF(BV_DCP_PACKET2_CIPHER_MODE__CBC,
++ DCP_PACKET2_CIPHER_MODE);
++
++ break;
++
++ case DCP_SHA1:
++
++ chan = HASH_CHAN;
++
++ pkt1 |= BM_DCP_PACKET1_ENABLE_HASH;
++ if (op->flags & DCP_INIT)
++ pkt1 |= BM_DCP_PACKET1_HASH_INIT;
++ if (op->flags & DCP_FINAL) {
++ pkt1 |= BM_DCP_PACKET1_HASH_TERM;
++ BUG_ON(op->hash.digest == NULL);
++ }
++
++ pkt2 = BF(BV_DCP_PACKET2_HASH_SELECT__SHA1,
++ DCP_PACKET2_HASH_SELECT);
++ break;
++
++ default:
++ dev_err(sdcp->dev, "Unsupported mode\n");
++ return;
++ }
++
++ mutex = &sdcp->op_mutex[chan];
++ pkt = &op->pkt;
++
++ pkt->pNext = 0;
++ pkt->pkt1 = pkt1;
++ pkt->pkt2 = pkt2;
++ pkt->pSrc = (u32)op->src_phys;
++ pkt->pDst = (u32)op->dst_phys;
++ pkt->size = op->len;
++ pkt->pPayload = chan == CIPHER_CHAN ?
++ (u32)op->cipher.key_phys : (u32)op->hash.digest_phys;
++ pkt->stat = 0;
++
++ pkt_phys = dma_map_single(sdcp->dev, pkt, sizeof(*pkt),
++ DMA_BIDIRECTIONAL);
++ if (dma_mapping_error(sdcp->dev, pkt_phys)) {
++ dev_err(sdcp->dev, "Unable to map packet descriptor\n");
++ return;
++ }
++
++ /* submit the work */
++ mutex_lock(mutex);
++
++ __raw_writel(-1, sdcp->dcp_regs_base + HW_DCP_CHnSTAT_CLR(chan));
++
++ /* Load the work packet pointer and bump the channel semaphore */
++ __raw_writel((u32)pkt_phys, sdcp->dcp_regs_base +
++ HW_DCP_CHnCMDPTR(chan));
++
++ /* XXX wake from interrupt instead of looping */
++ timeout = jiffies + msecs_to_jiffies(1000);
++
++ sdcp->wait[chan] = 0;
++ __raw_writel(BF(1, DCP_CHnSEMA_INCREMENT), sdcp->dcp_regs_base
++ + HW_DCP_CHnSEMA(chan));
++ while (time_before(jiffies, timeout) && sdcp->wait[chan] == 0)
++ cpu_relax();
++
++ if (!time_before(jiffies, timeout)) {
++ dev_err(sdcp->dev, "Timeout while waiting STAT 0x%08x\n",
++ __raw_readl(sdcp->dcp_regs_base + HW_DCP_STAT));
++ goto out;
++ }
++
++ stat = __raw_readl(sdcp->dcp_regs_base + HW_DCP_CHnSTAT(chan));
++ if ((stat & 0xff) != 0)
++ dev_err(sdcp->dev, "Channel stat error 0x%02x\n",
++ __raw_readl(sdcp->dcp_regs_base +
++ HW_DCP_CHnSTAT(chan)) & 0xff);
++out:
++ mutex_unlock(mutex);
++
++ dma_unmap_single(sdcp->dev, pkt_phys, sizeof(*pkt), DMA_TO_DEVICE);
++}
++
++static int dcp_aes_setkey_cip(struct crypto_tfm *tfm, const u8 *key,
++ unsigned int len)
++{
++ struct dcp_op *op = crypto_tfm_ctx(tfm);
++ unsigned int ret;
++
++ op->cipher.keylen = len;
++
++ if (len == AES_KEYSIZE_128) {
++ memcpy(op->cipher.key, key, len);
++ return 0;
++ }
++
++ if (len != AES_KEYSIZE_192 && len != AES_KEYSIZE_256) {
++ /* not supported at all */
++ tfm->crt_flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
++ return -EINVAL;
++ }
++
++ /*
++ * The requested key size is not supported by HW, do a fallback
++ */
++ op->fallback.blk->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
++ op->fallback.blk->base.crt_flags |= (tfm->crt_flags &
++ CRYPTO_TFM_REQ_MASK);
++
++ ret = crypto_cipher_setkey(op->fallback.cip, key, len);
++ if (ret) {
++ tfm->crt_flags &= ~CRYPTO_TFM_RES_MASK;
++ tfm->crt_flags |= (op->fallback.blk->base.crt_flags &
++ CRYPTO_TFM_RES_MASK);
++ }
++ return ret;
++}
++
++static void dcp_aes_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in)
++{
++ struct dcp *sdcp = global_sdcp;
++ struct dcp_op *op = crypto_tfm_ctx(tfm);
++
++ if (unlikely(op->cipher.keylen != AES_KEYSIZE_128)) {
++ crypto_cipher_encrypt_one(op->fallback.cip, out, in);
++ return;
++ }
++
++ op->src = (void *) in;
++ op->dst = (void *) out;
++ op->flags = DCP_AES | DCP_ENC | DCP_ECB;
++ op->len = AES_KEYSIZE_128;
++
++ /* map the data */
++ op->src_phys = dma_map_single(sdcp->dev, (void *)in, AES_KEYSIZE_128,
++ DMA_TO_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->src_phys)) {
++ dev_err(sdcp->dev, "Unable to map source\n");
++ return;
++ }
++
++ op->dst_phys = dma_map_single(sdcp->dev, out, AES_KEYSIZE_128,
++ DMA_FROM_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->dst_phys)) {
++ dev_err(sdcp->dev, "Unable to map dest\n");
++ goto err_unmap_src;
++ }
++
++ op->cipher.key_phys = dma_map_single(sdcp->dev, op->cipher.key,
++ AES_KEYSIZE_128, DMA_TO_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->cipher.key_phys)) {
++ dev_err(sdcp->dev, "Unable to map key\n");
++ goto err_unmap_dst;
++ }
++
++ /* perform the operation */
++ dcp_perform_op(op);
++
++ dma_unmap_single(sdcp->dev, op->cipher.key_phys, AES_KEYSIZE_128,
++ DMA_TO_DEVICE);
++err_unmap_dst:
++ dma_unmap_single(sdcp->dev, op->dst_phys, op->len, DMA_FROM_DEVICE);
++err_unmap_src:
++ dma_unmap_single(sdcp->dev, op->src_phys, op->len, DMA_TO_DEVICE);
++}
++
++static void dcp_aes_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in)
++{
++ struct dcp *sdcp = global_sdcp;
++ struct dcp_op *op = crypto_tfm_ctx(tfm);
++
++ if (unlikely(op->cipher.keylen != AES_KEYSIZE_128)) {
++ crypto_cipher_decrypt_one(op->fallback.cip, out, in);
++ return;
++ }
++
++ op->src = (void *) in;
++ op->dst = (void *) out;
++ op->flags = DCP_AES | DCP_DEC | DCP_ECB;
++ op->len = AES_KEYSIZE_128;
++
++ /* map the data */
++ op->src_phys = dma_map_single(sdcp->dev, (void *)in, AES_KEYSIZE_128,
++ DMA_TO_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->src_phys)) {
++ dev_err(sdcp->dev, "Unable to map source\n");
++ return;
++ }
++
++ op->dst_phys = dma_map_single(sdcp->dev, out, AES_KEYSIZE_128,
++ DMA_FROM_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->dst_phys)) {
++ dev_err(sdcp->dev, "Unable to map dest\n");
++ goto err_unmap_src;
++ }
++
++ op->cipher.key_phys = dma_map_single(sdcp->dev, op->cipher.key,
++ AES_KEYSIZE_128, DMA_TO_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->cipher.key_phys)) {
++ dev_err(sdcp->dev, "Unable to map key\n");
++ goto err_unmap_dst;
++ }
++
++ /* perform the operation */
++ dcp_perform_op(op);
++
++ dma_unmap_single(sdcp->dev, op->cipher.key_phys, AES_KEYSIZE_128,
++ DMA_TO_DEVICE);
++err_unmap_dst:
++ dma_unmap_single(sdcp->dev, op->dst_phys, op->len, DMA_FROM_DEVICE);
++err_unmap_src:
++ dma_unmap_single(sdcp->dev, op->src_phys, op->len, DMA_TO_DEVICE);
++}
++
++static int fallback_init_cip(struct crypto_tfm *tfm)
++{
++ const char *name = tfm->__crt_alg->cra_name;
++ struct dcp_op *op = crypto_tfm_ctx(tfm);
++
++ op->fallback.cip = crypto_alloc_cipher(name, 0,
++ CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK);
++
++ if (IS_ERR(op->fallback.cip)) {
++ printk(KERN_ERR "Error allocating fallback algo %s\n", name);
++ return PTR_ERR(op->fallback.cip);
++ }
++
++ return 0;
++}
++
++static void fallback_exit_cip(struct crypto_tfm *tfm)
++{
++ struct dcp_op *op = crypto_tfm_ctx(tfm);
++
++ crypto_free_cipher(op->fallback.cip);
++ op->fallback.cip = NULL;
++}
++
++static struct crypto_alg dcp_aes_alg = {
++ .cra_name = "aes",
++ .cra_driver_name = "dcp-aes",
++ .cra_priority = 300,
++ .cra_alignmask = 15,
++ .cra_flags = CRYPTO_ALG_TYPE_CIPHER |
++ CRYPTO_ALG_NEED_FALLBACK,
++ .cra_init = fallback_init_cip,
++ .cra_exit = fallback_exit_cip,
++ .cra_blocksize = AES_KEYSIZE_128,
++ .cra_ctxsize = sizeof(struct dcp_op),
++ .cra_module = THIS_MODULE,
++ .cra_list = LIST_HEAD_INIT(dcp_aes_alg.cra_list),
++ .cra_u = {
++ .cipher = {
++ .cia_min_keysize = AES_MIN_KEY_SIZE,
++ .cia_max_keysize = AES_MAX_KEY_SIZE,
++ .cia_setkey = dcp_aes_setkey_cip,
++ .cia_encrypt = dcp_aes_encrypt,
++ .cia_decrypt = dcp_aes_decrypt
++ }
++ }
++};
++
++static int dcp_aes_setkey_blk(struct crypto_tfm *tfm, const u8 *key,
++ unsigned int len)
++{
++ struct dcp_op *op = crypto_tfm_ctx(tfm);
++ unsigned int ret;
++
++ op->cipher.keylen = len;
++
++ if (len == AES_KEYSIZE_128) {
++ memcpy(op->cipher.key, key, len);
++ return 0;
++ }
++
++ if (len != AES_KEYSIZE_192 && len != AES_KEYSIZE_256) {
++ /* not supported at all */
++ tfm->crt_flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
++ return -EINVAL;
++ }
++
++ /*
++ * The requested key size is not supported by HW, do a fallback
++ */
++ op->fallback.blk->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
++ op->fallback.blk->base.crt_flags |= (tfm->crt_flags &
++ CRYPTO_TFM_REQ_MASK);
++
++ ret = crypto_blkcipher_setkey(op->fallback.blk, key, len);
++ if (ret) {
++ tfm->crt_flags &= ~CRYPTO_TFM_RES_MASK;
++ tfm->crt_flags |= (op->fallback.blk->base.crt_flags &
++ CRYPTO_TFM_RES_MASK);
++ }
++ return ret;
++}
++
++static int fallback_blk_dec(struct blkcipher_desc *desc,
++ struct scatterlist *dst, struct scatterlist *src,
++ unsigned int nbytes)
++{
++ unsigned int ret;
++ struct crypto_blkcipher *tfm;
++ struct dcp_op *op = crypto_blkcipher_ctx(desc->tfm);
++
++ tfm = desc->tfm;
++ desc->tfm = op->fallback.blk;
++
++ ret = crypto_blkcipher_decrypt_iv(desc, dst, src, nbytes);
++
++ desc->tfm = tfm;
++ return ret;
++}
++
++static int fallback_blk_enc(struct blkcipher_desc *desc,
++ struct scatterlist *dst, struct scatterlist *src,
++ unsigned int nbytes)
++{
++ unsigned int ret;
++ struct crypto_blkcipher *tfm;
++ struct dcp_op *op = crypto_blkcipher_ctx(desc->tfm);
++
++ tfm = desc->tfm;
++ desc->tfm = op->fallback.blk;
++
++ ret = crypto_blkcipher_encrypt_iv(desc, dst, src, nbytes);
++
++ desc->tfm = tfm;
++ return ret;
++}
++
++static int fallback_init_blk(struct crypto_tfm *tfm)
++{
++ const char *name = tfm->__crt_alg->cra_name;
++ struct dcp_op *op = crypto_tfm_ctx(tfm);
++
++ op->fallback.blk = crypto_alloc_blkcipher(name, 0,
++ CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK);
++
++ if (IS_ERR(op->fallback.blk)) {
++ printk(KERN_ERR "Error allocating fallback algo %s\n", name);
++ return PTR_ERR(op->fallback.blk);
++ }
++
++ return 0;
++}
++
++static void fallback_exit_blk(struct crypto_tfm *tfm)
++{
++ struct dcp_op *op = crypto_tfm_ctx(tfm);
++
++ crypto_free_blkcipher(op->fallback.blk);
++ op->fallback.blk = NULL;
++}
++
++static int
++dcp_aes_ecb_decrypt(struct blkcipher_desc *desc,
++ struct scatterlist *dst, struct scatterlist *src,
++ unsigned int nbytes)
++{
++ struct dcp *sdcp = global_sdcp;
++ struct dcp_op *op = crypto_blkcipher_ctx(desc->tfm);
++ struct blkcipher_walk walk;
++ int err;
++
++ if (unlikely(op->cipher.keylen != AES_KEYSIZE_128))
++ return fallback_blk_dec(desc, dst, src, nbytes);
++
++ blkcipher_walk_init(&walk, dst, src, nbytes);
++
++ /* key needs to be mapped only once */
++ op->cipher.key_phys = dma_map_single(sdcp->dev, op->cipher.key,
++ AES_KEYSIZE_128, DMA_TO_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->cipher.key_phys)) {
++ dev_err(sdcp->dev, "Unable to map key\n");
++ return -ENOMEM;
++ }
++
++ err = blkcipher_walk_virt(desc, &walk);
++ while (err == 0 && (nbytes = walk.nbytes) > 0) {
++ op->src = walk.src.virt.addr,
++ op->dst = walk.dst.virt.addr;
++ op->flags = DCP_AES | DCP_DEC |
++ DCP_ECB;
++ op->len = nbytes - (nbytes % AES_KEYSIZE_128);
++
++ /* map the data */
++ op->src_phys = dma_map_single(sdcp->dev, op->src, op->len,
++ DMA_TO_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->src_phys)) {
++ dev_err(sdcp->dev, "Unable to map source\n");
++ err = -ENOMEM;
++ break;
++ }
++
++ op->dst_phys = dma_map_single(sdcp->dev, op->dst, op->len,
++ DMA_FROM_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->dst_phys)) {
++ dma_unmap_single(sdcp->dev, op->src_phys, op->len,
++ DMA_TO_DEVICE);
++ dev_err(sdcp->dev, "Unable to map dest\n");
++ err = -ENOMEM;
++ break;
++ }
++
++ /* perform! */
++ dcp_perform_op(op);
++
++ dma_unmap_single(sdcp->dev, op->dst_phys, op->len,
++ DMA_FROM_DEVICE);
++ dma_unmap_single(sdcp->dev, op->src_phys, op->len,
++ DMA_TO_DEVICE);
++
++ nbytes -= op->len;
++ err = blkcipher_walk_done(desc, &walk, nbytes);
++ }
++
++ dma_unmap_single(sdcp->dev, op->cipher.key_phys, AES_KEYSIZE_128,
++ DMA_TO_DEVICE);
++
++ return err;
++}
++
++static int
++dcp_aes_ecb_encrypt(struct blkcipher_desc *desc,
++ struct scatterlist *dst, struct scatterlist *src,
++ unsigned int nbytes)
++{
++ struct dcp *sdcp = global_sdcp;
++ struct dcp_op *op = crypto_blkcipher_ctx(desc->tfm);
++ struct blkcipher_walk walk;
++ int err, ret;
++
++ if (unlikely(op->cipher.keylen != AES_KEYSIZE_128))
++ return fallback_blk_enc(desc, dst, src, nbytes);
++
++ blkcipher_walk_init(&walk, dst, src, nbytes);
++
++ /* key needs to be mapped only once */
++ op->cipher.key_phys = dma_map_single(sdcp->dev, op->cipher.key,
++ AES_KEYSIZE_128, DMA_TO_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->cipher.key_phys)) {
++ dev_err(sdcp->dev, "Unable to map key\n");
++ return -ENOMEM;
++ }
++
++ err = blkcipher_walk_virt(desc, &walk);
++
++ err = 0;
++ while (err == 0 && (nbytes = walk.nbytes) > 0) {
++ op->src = walk.src.virt.addr,
++ op->dst = walk.dst.virt.addr;
++ op->flags = DCP_AES | DCP_ENC |
++ DCP_ECB;
++ op->len = nbytes - (nbytes % AES_KEYSIZE_128);
++
++ /* map the data */
++ op->src_phys = dma_map_single(sdcp->dev, op->src, op->len,
++ DMA_TO_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->src_phys)) {
++ dev_err(sdcp->dev, "Unable to map source\n");
++ err = -ENOMEM;
++ break;
++ }
++
++ op->dst_phys = dma_map_single(sdcp->dev, op->dst, op->len,
++ DMA_FROM_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->dst_phys)) {
++ dma_unmap_single(sdcp->dev, op->src_phys, op->len,
++ DMA_TO_DEVICE);
++ dev_err(sdcp->dev, "Unable to map dest\n");
++ err = -ENOMEM;
++ break;
++ }
++
++ /* perform! */
++ dcp_perform_op(op);
++
++ dma_unmap_single(sdcp->dev, op->dst_phys, op->len,
++ DMA_FROM_DEVICE);
++ dma_unmap_single(sdcp->dev, op->src_phys, op->len,
++ DMA_TO_DEVICE);
++
++ nbytes -= op->len;
++ ret = blkcipher_walk_done(desc, &walk, nbytes);
++ }
++
++ dma_unmap_single(sdcp->dev, op->cipher.key_phys, AES_KEYSIZE_128,
++ DMA_TO_DEVICE);
++
++ return err;
++}
++
++
++static struct crypto_alg dcp_aes_ecb_alg = {
++ .cra_name = "ecb(aes)",
++ .cra_driver_name = "dcp-ecb-aes",
++ .cra_priority = 400,
++ .cra_alignmask = 15,
++ .cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER |
++ CRYPTO_ALG_NEED_FALLBACK,
++ .cra_init = fallback_init_blk,
++ .cra_exit = fallback_exit_blk,
++ .cra_blocksize = AES_KEYSIZE_128,
++ .cra_ctxsize = sizeof(struct dcp_op),
++ .cra_type = &crypto_blkcipher_type,
++ .cra_module = THIS_MODULE,
++ .cra_list = LIST_HEAD_INIT(dcp_aes_ecb_alg.cra_list),
++ .cra_u = {
++ .blkcipher = {
++ .min_keysize = AES_MIN_KEY_SIZE,
++ .max_keysize = AES_MAX_KEY_SIZE,
++ .setkey = dcp_aes_setkey_blk,
++ .encrypt = dcp_aes_ecb_encrypt,
++ .decrypt = dcp_aes_ecb_decrypt
++ }
++ }
++};
++
++static int
++dcp_aes_cbc_decrypt(struct blkcipher_desc *desc,
++ struct scatterlist *dst, struct scatterlist *src,
++ unsigned int nbytes)
++{
++ struct dcp *sdcp = global_sdcp;
++ struct dcp_op *op = crypto_blkcipher_ctx(desc->tfm);
++ struct blkcipher_walk walk;
++ int err, blockno;
++
++ if (unlikely(op->cipher.keylen != AES_KEYSIZE_128))
++ return fallback_blk_dec(desc, dst, src, nbytes);
++
++ blkcipher_walk_init(&walk, dst, src, nbytes);
++
++ blockno = 0;
++ err = blkcipher_walk_virt(desc, &walk);
++ while (err == 0 && (nbytes = walk.nbytes) > 0) {
++ op->src = walk.src.virt.addr,
++ op->dst = walk.dst.virt.addr;
++ op->flags = DCP_AES | DCP_DEC |
++ DCP_CBC;
++ if (blockno == 0) {
++ op->flags |= DCP_CBC_INIT;
++ memcpy(op->cipher.key + AES_KEYSIZE_128, walk.iv,
++ AES_KEYSIZE_128);
++ }
++ op->len = nbytes - (nbytes % AES_KEYSIZE_128);
++
++ /* key (+iv) needs to be mapped only once */
++ op->cipher.key_phys = dma_map_single(sdcp->dev, op->cipher.key,
++ AES_KEYSIZE_128 * 2, DMA_BIDIRECTIONAL);
++ if (dma_mapping_error(sdcp->dev, op->cipher.key_phys)) {
++ dev_err(sdcp->dev, "Unable to map key\n");
++ err = -ENOMEM;
++ break;
++ }
++
++ /* map the data */
++ op->src_phys = dma_map_single(sdcp->dev, op->src, op->len,
++ DMA_TO_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->src_phys)) {
++ dma_unmap_single(sdcp->dev, op->cipher.key_phys,
++ AES_KEYSIZE_128 * 2, DMA_BIDIRECTIONAL);
++ dev_err(sdcp->dev, "Unable to map source\n");
++ err = -ENOMEM;
++ break;
++ }
++
++ op->dst_phys = dma_map_single(sdcp->dev, op->dst, op->len,
++ DMA_FROM_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->dst_phys)) {
++ dma_unmap_single(sdcp->dev, op->cipher.key_phys,
++ AES_KEYSIZE_128 * 2, DMA_BIDIRECTIONAL);
++ dma_unmap_single(sdcp->dev, op->src_phys, op->len,
++ DMA_TO_DEVICE);
++ dev_err(sdcp->dev, "Unable to map dest\n");
++ err = -ENOMEM;
++ break;
++ }
++
++ /* perform! */
++ dcp_perform_op(op);
++
++ dma_unmap_single(sdcp->dev, op->cipher.key_phys,
++ AES_KEYSIZE_128 * 2, DMA_BIDIRECTIONAL);
++ dma_unmap_single(sdcp->dev, op->dst_phys, op->len,
++ DMA_FROM_DEVICE);
++ dma_unmap_single(sdcp->dev, op->src_phys, op->len,
++ DMA_TO_DEVICE);
++
++ nbytes -= op->len;
++ err = blkcipher_walk_done(desc, &walk, nbytes);
++
++ blockno++;
++ }
++
++ return err;
++}
++
++static int
++dcp_aes_cbc_encrypt(struct blkcipher_desc *desc,
++ struct scatterlist *dst, struct scatterlist *src,
++ unsigned int nbytes)
++{
++ struct dcp *sdcp = global_sdcp;
++ struct dcp_op *op = crypto_blkcipher_ctx(desc->tfm);
++ struct blkcipher_walk walk;
++ int err, ret, blockno;
++
++ if (unlikely(op->cipher.keylen != AES_KEYSIZE_128))
++ return fallback_blk_enc(desc, dst, src, nbytes);
++
++ blkcipher_walk_init(&walk, dst, src, nbytes);
++
++ blockno = 0;
++
++ err = blkcipher_walk_virt(desc, &walk);
++ while (err == 0 && (nbytes = walk.nbytes) > 0) {
++ op->src = walk.src.virt.addr,
++ op->dst = walk.dst.virt.addr;
++ op->flags = DCP_AES | DCP_ENC |
++ DCP_CBC;
++ if (blockno == 0) {
++ op->flags |= DCP_CBC_INIT;
++ memcpy(op->cipher.key + AES_KEYSIZE_128, walk.iv,
++ AES_KEYSIZE_128);
++ }
++ op->len = nbytes - (nbytes % AES_KEYSIZE_128);
++
++ /* key needs to be mapped only once */
++ op->cipher.key_phys = dma_map_single(sdcp->dev, op->cipher.key,
++ AES_KEYSIZE_128 * 2, DMA_BIDIRECTIONAL);
++ if (dma_mapping_error(sdcp->dev, op->cipher.key_phys)) {
++ dev_err(sdcp->dev, "Unable to map key\n");
++ return -ENOMEM;
++ }
++
++ /* map the data */
++ op->src_phys = dma_map_single(sdcp->dev, op->src, op->len,
++ DMA_TO_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->src_phys)) {
++ dma_unmap_single(sdcp->dev, op->cipher.key_phys,
++ AES_KEYSIZE_128 * 2, DMA_BIDIRECTIONAL);
++ dev_err(sdcp->dev, "Unable to map source\n");
++ err = -ENOMEM;
++ break;
++ }
++
++ op->dst_phys = dma_map_single(sdcp->dev, op->dst, op->len,
++ DMA_FROM_DEVICE);
++ if (dma_mapping_error(sdcp->dev, op->dst_phys)) {
++ dma_unmap_single(sdcp->dev, op->cipher.key_phys,
++ AES_KEYSIZE_128 * 2, DMA_BIDIRECTIONAL);
++ dma_unmap_single(sdcp->dev, op->src_phys, op->len,
++ DMA_TO_DEVICE);
++ dev_err(sdcp->dev, "Unable to map dest\n");
++ err = -ENOMEM;
++ break;
++ }
++
++ /* perform! */
++ dcp_perform_op(op);
++
++ dma_unmap_single(sdcp->dev, op->cipher.key_phys,
++ AES_KEYSIZE_128 * 2, DMA_BIDIRECTIONAL);
++ dma_unmap_single(sdcp->dev, op->dst_phys, op->len,
++ DMA_FROM_DEVICE);
++ dma_unmap_single(sdcp->dev, op->src_phys, op->len,
++ DMA_TO_DEVICE);
++
++ nbytes -= op->len;
++ ret = blkcipher_walk_done(desc, &walk, nbytes);
++
++ blockno++;
++ }
++
++ return err;
++}
++
++static struct crypto_alg dcp_aes_cbc_alg = {
++ .cra_name = "cbc(aes)",
++ .cra_driver_name = "dcp-cbc-aes",
++ .cra_priority = 400,
++ .cra_alignmask = 15,
++ .cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER |
++ CRYPTO_ALG_NEED_FALLBACK,
++ .cra_init = fallback_init_blk,
++ .cra_exit = fallback_exit_blk,
++ .cra_blocksize = AES_KEYSIZE_128,
++ .cra_ctxsize = sizeof(struct dcp_op),
++ .cra_type = &crypto_blkcipher_type,
++ .cra_module = THIS_MODULE,
++ .cra_list = LIST_HEAD_INIT(dcp_aes_cbc_alg.cra_list),
++ .cra_u = {
++ .blkcipher = {
++ .min_keysize = AES_MIN_KEY_SIZE,
++ .max_keysize = AES_MAX_KEY_SIZE,
++ .setkey = dcp_aes_setkey_blk,
++ .encrypt = dcp_aes_cbc_encrypt,
++ .decrypt = dcp_aes_cbc_decrypt,
++ .ivsize = AES_KEYSIZE_128,
++ }
++ }
++};
++
++static int dcp_perform_hash_op(
++ struct dcp_hash_coherent_block *input,
++ u32 num_desc, bool init, bool terminate)
++{
++ struct dcp *sdcp = global_sdcp;
++ int chan;
++ struct dcp_hw_packet *pkt;
++ struct dcp_hash_coherent_block *hw;
++ unsigned long timeout;
++ u32 stat;
++ int descno, mapped;
++
++ chan = HASH_CHAN;
++
++ hw = input;
++ pkt = hw->pkt;
++
++ for (descno = 0; descno < num_desc; descno++) {
++
++ if (descno != 0) {
++
++ /* set next ptr and CHAIN bit in last packet */
++ pkt->pNext = hw->next->my_phys + offsetof(
++ struct dcp_hash_coherent_block,
++ pkt[0]);
++ pkt->pkt1 |= BM_DCP_PACKET1_CHAIN;
++
++ /* iterate to next descriptor */
++ hw = hw->next;
++ pkt = hw->pkt;
++ }
++
++ pkt->pkt1 = BM_DCP_PACKET1_DECR_SEMAPHORE |
++ BM_DCP_PACKET1_ENABLE_HASH;
++
++ if (init && descno == 0)
++ pkt->pkt1 |= BM_DCP_PACKET1_HASH_INIT;
++
++ pkt->pkt2 = BF(hw->hash_sel,
++ DCP_PACKET2_HASH_SELECT);
++
++ /* no need to flush buf1 or buf2, which are uncached */
++ if (hw->src != sdcp->buf1 && hw->src != sdcp->buf2) {
++
++ /* we have to flush the cache for the buffer */
++ hw->src_phys = dma_map_single(sdcp->dev,
++ hw->src, hw->len, DMA_TO_DEVICE);
++
++ if (dma_mapping_error(sdcp->dev, hw->src_phys)) {
++ dev_err(sdcp->dev, "Unable to map source\n");
++
++ /* unmap any previous mapped buffers */
++ for (mapped = 0, hw = input; mapped < descno;
++ mapped++) {
++
++ if (mapped != 0)
++ hw = hw->next;
++ if (hw->src != sdcp->buf1 &&
++ hw->src != sdcp->buf2)
++ dma_unmap_single(sdcp->dev,
++ hw->src_phys, hw->len,
++ DMA_TO_DEVICE);
++ }
++
++ return -EFAULT;
++ }
++ }
++
++ pkt->pSrc = (u32)hw->src_phys;
++ pkt->pDst = 0;
++ pkt->size = hw->len;
++ pkt->pPayload = 0;
++ pkt->stat = 0;
++
++ /* set HASH_TERM bit on last buf if terminate was set */
++ if (terminate && (descno == (num_desc - 1))) {
++ pkt->pkt1 |= BM_DCP_PACKET1_HASH_TERM;
++
++ memset(input->digest, 0, sizeof(input->digest));
++
++ /* set payload ptr to the 1st buffer's digest */
++ pkt->pPayload = (u32)input->my_phys +
++ offsetof(
++ struct dcp_hash_coherent_block,
++ digest);
++ }
++ }
++
++ /* submit the work */
++
++ __raw_writel(-1, sdcp->dcp_regs_base + HW_DCP_CHnSTAT_CLR(chan));
++
++ mb();
++ /* Load the 1st descriptor's physical address */
++ __raw_writel((u32)input->my_phys +
++ offsetof(struct dcp_hash_coherent_block,
++ pkt[0]), sdcp->dcp_regs_base + HW_DCP_CHnCMDPTR(chan));
++
++ /* XXX wake from interrupt instead of looping */
++ timeout = jiffies + msecs_to_jiffies(1000);
++
++ /* write num_desc into sema register */
++ __raw_writel(BF(num_desc, DCP_CHnSEMA_INCREMENT),
++ sdcp->dcp_regs_base + HW_DCP_CHnSEMA(chan));
++
++ while (time_before(jiffies, timeout) &&
++ ((__raw_readl(sdcp->dcp_regs_base +
++ HW_DCP_CHnSEMA(chan)) >> 16) & 0xff) != 0) {
++
++ cpu_relax();
++ }
++
++ if (!time_before(jiffies, timeout)) {
++ dev_err(sdcp->dev,
++ "Timeout while waiting STAT 0x%08x\n",
++ __raw_readl(sdcp->dcp_regs_base + HW_DCP_STAT));
++ }
++
++ stat = __raw_readl(sdcp->dcp_regs_base + HW_DCP_CHnSTAT(chan));
++ if ((stat & 0xff) != 0)
++ dev_err(sdcp->dev, "Channel stat error 0x%02x\n",
++ __raw_readl(sdcp->dcp_regs_base +
++ HW_DCP_CHnSTAT(chan)) & 0xff);
++
++ /* unmap all src buffers */
++ for (descno = 0, hw = input; descno < num_desc; descno++) {
++ if (descno != 0)
++ hw = hw->next;
++ if (hw->src != sdcp->buf1 && hw->src != sdcp->buf2)
++ dma_unmap_single(sdcp->dev, hw->src_phys, hw->len,
++ DMA_TO_DEVICE);
++ }
++
++ return 0;
++
++}
++
++static int dcp_sha_init(struct shash_desc *desc)
++{
++ struct dcp *sdcp = global_sdcp;
++ struct dcp_hash_op *op = shash_desc_ctx(desc);
++ struct mutex *mutex = &sdcp->op_mutex[HASH_CHAN];
++
++ mutex_lock(mutex);
++
++ op->length = 0;
++
++ /* reset the lengths and the pointers of buffer descriptors */
++ sdcp->buf1_desc->len = 0;
++ sdcp->buf1_desc->src = sdcp->buf1;
++ sdcp->buf2_desc->len = 0;
++ sdcp->buf2_desc->src = sdcp->buf2;
++ op->head_desc = sdcp->buf1_desc;
++ op->tail_desc = sdcp->buf2_desc;
++
++ return 0;
++}
++
++static int dcp_sha_update(struct shash_desc *desc, const u8 *data,
++ unsigned int length)
++{
++ struct dcp *sdcp = global_sdcp;
++ struct dcp_hash_op *op = shash_desc_ctx(desc);
++ struct dcp_hash_coherent_block *temp;
++ u32 rem_bytes, bytes_borrowed, hash_sel;
++ int ret = 0;
++
++ if (strcmp(desc->tfm->base.__crt_alg->cra_name, "sha1") == 0)
++ hash_sel = BV_DCP_PACKET2_HASH_SELECT__SHA1;
++ else
++ hash_sel = BV_DCP_PACKET2_HASH_SELECT__SHA256;
++
++ sdcp->user_buf_desc->src = (void *)data;
++ sdcp->user_buf_desc->len = length;
++
++ op->tail_desc->len = 0;
++
++ /* check if any pending data from previous updates */
++ if (op->head_desc->len) {
++
++ /* borrow from this buffer to make it 64 bytes */
++ bytes_borrowed = min(64 - op->head_desc->len,
++ sdcp->user_buf_desc->len);
++
++ /* copy n bytes to head */
++ memcpy(op->head_desc->src + op->head_desc->len,
++ sdcp->user_buf_desc->src, bytes_borrowed);
++ op->head_desc->len += bytes_borrowed;
++
++ /* update current buffer's src and len */
++ sdcp->user_buf_desc->src += bytes_borrowed;
++ sdcp->user_buf_desc->len -= bytes_borrowed;
++ }
++
++ /* Is current buffer unaligned to 64 byte length?
++ * Each buffer's length must be a multiple of 64 bytes for DCP
++ */
++ rem_bytes = sdcp->user_buf_desc->len % 64;
++
++ /* if length is unaligned, copy remainder to tail */
++ if (rem_bytes) {
++
++ memcpy(op->tail_desc->src, (sdcp->user_buf_desc->src +
++ sdcp->user_buf_desc->len - rem_bytes),
++ rem_bytes);
++
++ /* update length of current buffer */
++ sdcp->user_buf_desc->len -= rem_bytes;
++
++ op->tail_desc->len = rem_bytes;
++ }
++
++ /* do not send to DCP if length is < 64 */
++ if ((op->head_desc->len + sdcp->user_buf_desc->len) >= 64) {
++
++ /* set hash alg to be used (SHA1 or SHA256) */
++ op->head_desc->hash_sel = hash_sel;
++ sdcp->user_buf_desc->hash_sel = hash_sel;
++
++ if (op->head_desc->len) {
++ op->head_desc->next = sdcp->user_buf_desc;
++
++ ret = dcp_perform_hash_op(op->head_desc,
++ sdcp->user_buf_desc->len ? 2 : 1,
++ op->length == 0, false);
++ } else {
++ ret = dcp_perform_hash_op(sdcp->user_buf_desc, 1,
++ op->length == 0, false);
++ }
++
++ op->length += op->head_desc->len + sdcp->user_buf_desc->len;
++ op->head_desc->len = 0;
++ }
++
++ /* if tail has bytes, make it the head for next time */
++ if (op->tail_desc->len) {
++ temp = op->head_desc;
++ op->head_desc = op->tail_desc;
++ op->tail_desc = temp;
++ }
++
++ /* hash_sel to be used by final function */
++ op->head_desc->hash_sel = hash_sel;
++
++ return ret;
++}
++
++static int dcp_sha_final(struct shash_desc *desc, u8 *out)
++{
++ struct dcp_hash_op *op = shash_desc_ctx(desc);
++ const uint8_t *digest;
++ struct dcp *sdcp = global_sdcp;
++ u32 i, digest_len;
++ struct mutex *mutex = &sdcp->op_mutex[HASH_CHAN];
++ int ret = 0;
++
++ /* Send the leftover bytes in head, which can be length 0,
++ * but DCP still produces hash result in payload ptr.
++ * Last data bytes need not be 64-byte multiple.
++ */
++ ret = dcp_perform_hash_op(op->head_desc, 1, op->length == 0, true);
++
++ op->length += op->head_desc->len;
++
++ digest_len = (op->head_desc->hash_sel ==
++ BV_DCP_PACKET2_HASH_SELECT__SHA1) ? SHA1_DIGEST_SIZE :
++ SHA256_DIGEST_SIZE;
++
++ /* hardware reverses the digest (for some unexplicable reason) */
++ digest = op->head_desc->digest + digest_len;
++ for (i = 0; i < digest_len; i++)
++ *out++ = *--digest;
++
++ mutex_unlock(mutex);
++
++ return ret;
++}
++
++static struct shash_alg dcp_sha1_alg = {
++ .init = dcp_sha_init,
++ .update = dcp_sha_update,
++ .final = dcp_sha_final,
++ .descsize = sizeof(struct dcp_hash_op),
++ .digestsize = SHA1_DIGEST_SIZE,
++ .base = {
++ .cra_name = "sha1",
++ .cra_driver_name = "sha1-dcp",
++ .cra_priority = 300,
++ .cra_blocksize = SHA1_BLOCK_SIZE,
++ .cra_ctxsize =
++ sizeof(struct dcp_hash_op),
++ .cra_module = THIS_MODULE,
++ }
++};
++
++static struct shash_alg dcp_sha256_alg = {
++ .init = dcp_sha_init,
++ .update = dcp_sha_update,
++ .final = dcp_sha_final,
++ .descsize = sizeof(struct dcp_hash_op),
++ .digestsize = SHA256_DIGEST_SIZE,
++ .base = {
++ .cra_name = "sha256",
++ .cra_driver_name = "sha256-dcp",
++ .cra_priority = 300,
++ .cra_blocksize = SHA256_BLOCK_SIZE,
++ .cra_ctxsize =
++ sizeof(struct dcp_hash_op),
++ .cra_module = THIS_MODULE,
++ }
++};
++
++static irqreturn_t dcp_common_irq(int irq, void *context)
++{
++ struct dcp *sdcp = context;
++ u32 msk;
++
++ /* check */
++ msk = __raw_readl(sdcp->dcp_regs_base + HW_DCP_STAT) &
++ BF(0x0f, DCP_STAT_IRQ);
++ if (msk == 0)
++ return IRQ_NONE;
++
++ /* clear this channel */
++ __raw_writel(msk, sdcp->dcp_regs_base + HW_DCP_STAT_CLR);
++ if (msk & BF(0x01, DCP_STAT_IRQ))
++ sdcp->wait[0]++;
++ if (msk & BF(0x02, DCP_STAT_IRQ))
++ sdcp->wait[1]++;
++ if (msk & BF(0x04, DCP_STAT_IRQ))
++ sdcp->wait[2]++;
++ if (msk & BF(0x08, DCP_STAT_IRQ))
++ sdcp->wait[3]++;
++ return IRQ_HANDLED;
++}
++
++static irqreturn_t dcp_vmi_irq(int irq, void *context)
++{
++ return dcp_common_irq(irq, context);
++}
++
++static irqreturn_t dcp_irq(int irq, void *context)
++{
++ return dcp_common_irq(irq, context);
++}
++
++/* DCP bootstream verification interface: uses OTP key for crypto */
++static int dcp_bootstream_ioctl(struct inode *inode, struct file *file,
++ unsigned int cmd, unsigned long arg)
++{
++ struct dcp *sdcp = global_sdcp;
++ struct dcpboot_dma_area *da = sdcp->dcpboot_dma_area;
++ void __user *argp = (void __user *)arg;
++ int chan = ROM_DCP_CHAN;
++ unsigned long timeout;
++ struct mutex *mutex;
++ int retVal;
++
++ /* be paranoid */
++ if (sdcp == NULL)
++ return -EBADF;
++
++ if (cmd != DBS_ENC && cmd != DBS_DEC)
++ return -EINVAL;
++
++ /* copy to (aligned) block */
++ if (copy_from_user(da->block, argp, 16))
++ return -EFAULT;
++
++ mutex = &sdcp->op_mutex[chan];
++ mutex_lock(mutex);
++
++ __raw_writel(-1, sdcp->dcp_regs_base +
++ HW_DCP_CHnSTAT_CLR(ROM_DCP_CHAN));
++ __raw_writel(BF(ROM_DCP_CHAN_MASK, DCP_STAT_IRQ),
++ sdcp->dcp_regs_base + HW_DCP_STAT_CLR);
++
++ da->hw_packet.pNext = 0;
++ da->hw_packet.pkt1 = BM_DCP_PACKET1_DECR_SEMAPHORE |
++ BM_DCP_PACKET1_ENABLE_CIPHER | BM_DCP_PACKET1_OTP_KEY |
++ BM_DCP_PACKET1_INTERRUPT |
++ (cmd == DBS_ENC ? BM_DCP_PACKET1_CIPHER_ENCRYPT : 0);
++ da->hw_packet.pkt2 = BF(0, DCP_PACKET2_CIPHER_CFG) |
++ BF(0, DCP_PACKET2_KEY_SELECT) |
++ BF(BV_DCP_PACKET2_CIPHER_MODE__ECB, DCP_PACKET2_CIPHER_MODE) |
++ BF(BV_DCP_PACKET2_CIPHER_SELECT__AES128, DCP_PACKET2_CIPHER_SELECT);
++ da->hw_packet.pSrc = sdcp->dcpboot_dma_area_phys +
++ offsetof(struct dcpboot_dma_area, block);
++ da->hw_packet.pDst = da->hw_packet.pSrc; /* in-place */
++ da->hw_packet.size = 16;
++ da->hw_packet.pPayload = 0;
++ da->hw_packet.stat = 0;
++
++ /* Load the work packet pointer and bump the channel semaphore */
++ __raw_writel(sdcp->dcpboot_dma_area_phys +
++ offsetof(struct dcpboot_dma_area, hw_packet),
++ sdcp->dcp_regs_base + HW_DCP_CHnCMDPTR(ROM_DCP_CHAN));
++
++ sdcp->wait[chan] = 0;
++ __raw_writel(BF(1, DCP_CHnSEMA_INCREMENT),
++ sdcp->dcp_regs_base + HW_DCP_CHnSEMA(ROM_DCP_CHAN));
++
++ timeout = jiffies + msecs_to_jiffies(100);
++
++ while (time_before(jiffies, timeout) && sdcp->wait[chan] == 0)
++ cpu_relax();
++
++ if (!time_before(jiffies, timeout)) {
++ dev_err(sdcp->dev,
++ "Timeout while waiting for operation to complete\n");
++ retVal = -ETIMEDOUT;
++ goto exit;
++ }
++
++ if ((__raw_readl(sdcp->dcp_regs_base + HW_DCP_CHnSTAT(ROM_DCP_CHAN))
++ & 0xff) != 0) {
++ dev_err(sdcp->dev, "Channel stat error 0x%02x\n",
++ __raw_readl(sdcp->dcp_regs_base +
++ HW_DCP_CHnSTAT(ROM_DCP_CHAN)) & 0xff);
++ retVal = -EFAULT;
++ goto exit;
++ }
++
++ if (copy_to_user(argp, da->block, 16)) {
++ retVal = -EFAULT;
++ goto exit;
++ }
++
++ retVal = 0;
++
++exit:
++ mutex_unlock(mutex);
++ return retVal;
++}
++
++static const struct file_operations dcp_bootstream_fops = {
++ .owner = THIS_MODULE,
++ .ioctl = dcp_bootstream_ioctl,
++};
++
++static struct miscdevice dcp_bootstream_misc = {
++ .minor = MISC_DYNAMIC_MINOR,
++ .name = "dcpboot",
++ .fops = &dcp_bootstream_fops,
++};
++
++static int dcp_probe(struct platform_device *pdev)
++{
++ struct dcp *sdcp = NULL;
++ struct resource *r;
++ int i, ret;
++ dma_addr_t hw_phys;
++
++ if (global_sdcp != NULL) {
++ dev_err(&pdev->dev, "Only one instance allowed\n");
++ ret = -ENODEV;
++ goto err;
++ }
++
++ /* allocate memory */
++ sdcp = kzalloc(sizeof(*sdcp), GFP_KERNEL);
++ if (sdcp == NULL) {
++ dev_err(&pdev->dev, "Failed to allocate structure\n");
++ ret = -ENOMEM;
++ goto err;
++ }
++
++ sdcp->dev = &pdev->dev;
++ spin_lock_init(&sdcp->lock);
++
++ for (i = 0; i < DCP_NUM_CHANNELS; i++) {
++ mutex_init(&sdcp->op_mutex[i]);
++ init_completion(&sdcp->op_wait[i]);
++ }
++
++ platform_set_drvdata(pdev, sdcp);
++
++ r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if (!r) {
++ dev_err(&pdev->dev, "failed to get IORESOURCE_MEM\n");
++ ret = -ENXIO;
++ goto err_kfree;
++ }
++ sdcp->dcp_regs_base = (u32) IO_ADDRESS(r->start);
++
++ /* Soft reset and remove the clock gate */
++ __raw_writel(BM_DCP_CTRL_SFTRST, sdcp->dcp_regs_base + HW_DCP_CTRL_SET);
++
++ /* At 24Mhz, it takes no more than 4 clocks (160 ns) Maximum for
++ * the part to reset, reading the register twice should
++ * be sufficient to get 4 clks delay.
++ */
++ __raw_readl(sdcp->dcp_regs_base + HW_DCP_CTRL);
++ __raw_readl(sdcp->dcp_regs_base + HW_DCP_CTRL);
++
++ __raw_writel(BM_DCP_CTRL_SFTRST | BM_DCP_CTRL_CLKGATE,
++ sdcp->dcp_regs_base + HW_DCP_CTRL_CLR);
++
++ /* Initialize control registers */
++ __raw_writel(DCP_CTRL_INIT, sdcp->dcp_regs_base + HW_DCP_CTRL);
++ __raw_writel(DCP_CHANNELCTRL_INIT, sdcp->dcp_regs_base +
++ HW_DCP_CHANNELCTRL);
++
++ /* We do not enable context switching. Give the context
++ * buffer pointer an illegal address so if context switching is
++ * inadvertantly enabled, the dcp will return an error instead of
++ * trashing good memory. The dcp dma cannot access rom, so any rom
++ * address will do.
++ */
++ __raw_writel(0xFFFF0000, sdcp->dcp_regs_base + HW_DCP_CONTEXT);
++
++ for (i = 0; i < DCP_NUM_CHANNELS; i++)
++ __raw_writel(-1, sdcp->dcp_regs_base + HW_DCP_CHnSTAT_CLR(i));
++ __raw_writel(-1, sdcp->dcp_regs_base + HW_DCP_STAT_CLR);
++
++ r = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
++ if (!r) {
++ dev_err(&pdev->dev, "can't get IRQ resource (0)\n");
++ ret = -EIO;
++ goto err_kfree;
++ }
++ sdcp->dcp_vmi_irq = r->start;
++ ret = request_irq(sdcp->dcp_vmi_irq, dcp_vmi_irq, 0, "dcp",
++ sdcp);
++ if (ret != 0) {
++ dev_err(&pdev->dev, "can't request_irq (0)\n");
++ goto err_kfree;
++ }
++
++ r = platform_get_resource(pdev, IORESOURCE_IRQ, 1);
++ if (!r) {
++ dev_err(&pdev->dev, "can't get IRQ resource (1)\n");
++ ret = -EIO;
++ goto err_free_irq0;
++ }
++ sdcp->dcp_irq = r->start;
++ ret = request_irq(sdcp->dcp_irq, dcp_irq, 0, "dcp", sdcp);
++ if (ret != 0) {
++ dev_err(&pdev->dev, "can't request_irq (1)\n");
++ goto err_free_irq0;
++ }
++
++ global_sdcp = sdcp;
++
++ ret = crypto_register_alg(&dcp_aes_alg);
++ if (ret != 0) {
++ dev_err(&pdev->dev, "Failed to register aes crypto\n");
++ goto err_kfree;
++ }
++
++ ret = crypto_register_alg(...
[truncated message content] |
|
From: Julien B a. A. <ar...@us...> - 2011-10-20 11:11:33
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 0cd171766a17ed7a8e11083223414d57225084d6 (commit)
via 44e7c62a681e87a29a48c84b2a611b55834f1ef1 (commit)
via 81a11c9925cfac662c04b3bd5c51a2594b742565 (commit)
from 36116f62d98bb248e435349387498ee3c704f408 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 0cd171766a17ed7a8e11083223414d57225084d6
Merge: 44e7c62 36116f6
Author: Julien Boibessot <jul...@ar...>
Date: Thu Oct 20 13:09:58 2011 +0200
Merge branch 'master' of ssh://armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit 44e7c62a681e87a29a48c84b2a611b55834f1ef1
Author: Julien Boibessot <jul...@ar...>
Date: Thu Oct 20 13:09:18 2011 +0200
[LINUX] Add SCC and SAHARA drivers (from Freescale BSP)
commit 81a11c9925cfac662c04b3bd5c51a2594b742565
Author: Julien Boibessot <jul...@ar...>
Date: Thu Oct 20 11:35:28 2011 +0200
[BUILDROOT] Add Freescale's imx-lib & imx-test packages (not selectable in menu yet)
-----------------------------------------------------------------------
Summary of changes:
.../package/armadeus/freescale-tools/imx-lib.mk | 43 +
.../package/armadeus/freescale-tools/imx-test.mk | 42 +
...0-add_scc2_and_sahara_drivers_without_rng.patch |31842 ++++++++++++++++++++
3 files changed, 31927 insertions(+), 0 deletions(-)
create mode 100644 buildroot/package/armadeus/freescale-tools/imx-lib.mk
create mode 100644 buildroot/package/armadeus/freescale-tools/imx-test.mk
create mode 100644 patches/linux/2.6.38/442-freescale-0197-ENGR00131650-add_scc2_and_sahara_drivers_without_rng.patch
diff --git a/buildroot/package/armadeus/freescale-tools/imx-lib.mk b/buildroot/package/armadeus/freescale-tools/imx-lib.mk
new file mode 100644
index 0000000..b68be67
--- /dev/null
+++ b/buildroot/package/armadeus/freescale-tools/imx-lib.mk
@@ -0,0 +1,43 @@
+#############################################################
+#
+# imx-lib (helpers librairies from Freescale BSP)
+#
+#############################################################
+IMX_LIB_VERSION = 10.11.01
+IMX_LIB_SOURCE = imx-lib-$(IMX_LIB_VERSION).tar.gz
+IMX_LIB_SITE = ftp://ftp2.armadeus.com/armadeusw/download/
+IMX_LIB_INSTALL_STAGING = YES
+
+ifeq ($(BR2_CPU_NAME),imx27)
+BUILD_PLATFORM = IMX27
+else
+BUILD_PLATFORM = IMX51
+endif
+
+define IMX_LIB_BUILD_CMDS
+ $(MAKE) CC="$(TARGET_CC)" \
+ PLATFORM=$(BUILD_PLATFORM) \
+ DIRS="sahara2 vpu" \
+ CFLAGS="-fPIC -I$(LINUX26_DIR)/drivers/mxc/security/sahara2/include" \
+ -C $(@D)
+endef
+
+define IMX_LIB_INSTALL_STAGING_CMDS
+ install -D -m 755 $(@D)/vpu/libvpu.so $(STAGING_DIR)/usr/lib
+ install -D -m 755 $(@D)/sahara2/libsahara.so $(STAGING_DIR)/usr/lib
+endef
+
+define IMX_LIB_INSTALL_TARGET_CMDS
+ install -D -m 755 $(@D)/vpu/libvpu.so $(TARGET_DIR)/usr/lib
+ install -D -m 755 $(@D)/sahara2/libsahara.so $(TARGET_DIR)/usr/lib
+endef
+
+define IMX_LIB_UNINSTALL_TARGET_CMDS
+ rm -f $(TARGET_DIR)/usr/lib/libvpu.so
+endef
+
+define IMX_LIB_CLEAN_CMDS
+ -$(MAKE) -C $(@D) clean
+endef
+
+$(eval $(call GENTARGETS,package,imx-lib))
diff --git a/buildroot/package/armadeus/freescale-tools/imx-test.mk b/buildroot/package/armadeus/freescale-tools/imx-test.mk
new file mode 100644
index 0000000..8ecbff9
--- /dev/null
+++ b/buildroot/package/armadeus/freescale-tools/imx-test.mk
@@ -0,0 +1,42 @@
+#############################################################
+#
+# imx-test (test tools from Freescale BSP)
+#
+#############################################################
+IMX_TEST_VERSION = 10.11.01
+IMX_TEST_SOURCE = imx-test-$(IMX_TEST_VERSION).tar.gz
+IMX_TEST_SITE = ftp://ftp2.armadeus.com/armadeusw/download/
+
+ifeq ($(BR2_CPU_NAME),imx27)
+BUILD_PLATFORM = IMX27
+BUILD_CFLAGS = -DCONFIG_ARCH_MX2
+else
+BUILD_PLATFORM = IMX51
+BUILD_CFLAGS = -DCONFIG_ARCH_MX5
+endif
+
+define IMX_TEST_BUILD_CMDS
+ $(MAKE) CC="$(TARGET_CC)" \
+ VERBOSE="" \
+ LINUXPATH=$(LINUX26_DIR) \
+ CROSS_COMPILE="$(HOST_DIR)/usr/bin/arm-linux-" \
+ PLATFORM=$(BUILD_PLATFORM) \
+ DIRS="mxc_sahara_test mxc_scc2 mxc_spi_test mxc_uart_test mxc_usb_test" \
+ CFLAGS="$(BUILD_CFLAGS) -I$(LINUX26_DIR)/drivers/mxc/security/sahara2/include" \
+ -C $(@D)
+endef
+
+define IMX_TEST_INSTALL_TARGET_CMDS
+ $(MAKE) LINUXPATH=$(LINUX26_DIR) INSTALL_MOD_PATH=$(TARGET_DIR) install -C $(@D)/module_test
+ $(MAKE) DESTDIR=$(TARGET_DIR)/unit_tests PLATFORM=IMX51 install -C $(@D)
+endef
+
+define IMX_TEST_UNINSTALL_TARGET_CMDS
+ rm -rf $(TARGET_DIR)/unit_tests
+endef
+
+define IMX_TEST_CLEAN_CMDS
+ -$(MAKE) -C $(@D) clean
+endef
+
+$(eval $(call GENTARGETS,package,imx-test))
diff --git a/patches/linux/2.6.38/442-freescale-0197-ENGR00131650-add_scc2_and_sahara_drivers_without_rng.patch b/patches/linux/2.6.38/442-freescale-0197-ENGR00131650-add_scc2_and_sahara_drivers_without_rng.patch
new file mode 100644
index 0000000..7e68abc
--- /dev/null
+++ b/patches/linux/2.6.38/442-freescale-0197-ENGR00131650-add_scc2_and_sahara_drivers_without_rng.patch
@@ -0,0 +1,31842 @@
+From 20100e633c68787378f6a933c3da266edfe495d4 Mon Sep 17 00:00:00 2001
+From: Anish Trivedi <an...@fr...>
+Date: Fri, 17 Sep 2010 12:11:29 -0500
+Subject: [PATCH] ENGR00131650 SCC2 and SAHARA drivers upgrade to 2.6.35
+
+Add security driver files. SCC2 unit tests all pass on MX51 and
+MX53. Some SAHARA kernel mode unit tests fail on both SOCs
+(see ENGR00131651), however user mode tests pass.
+
+Signed-off-by: Anish Trivedi <an...@fr...>
+---
+ Modifications done by Armadeus systems:
+ - removal of RNG stuff
+ - compatibility with 2.6.38
+
+ drivers/mxc/security/Kconfig | 53 +
+ drivers/mxc/security/Makefile | 10 +
+ drivers/mxc/security/mxc_scc.c | 2386 ++++++++++++++++
+ drivers/mxc/security/mxc_scc_internals.h | 498 ++++
+ drivers/mxc/security/sahara2/Kconfig | 35 +
+ drivers/mxc/security/sahara2/Makefile | 47 +
+ drivers/mxc/security/sahara2/fsl_shw_auth.c | 706 +++++
+ drivers/mxc/security/sahara2/fsl_shw_hash.c | 186 ++
+ drivers/mxc/security/sahara2/fsl_shw_hmac.c | 266 ++
+ drivers/mxc/security/sahara2/fsl_shw_keystore.c | 837 ++++++
+ drivers/mxc/security/sahara2/fsl_shw_rand.c | 96 +
+ drivers/mxc/security/sahara2/fsl_shw_sym.c | 281 ++
+ drivers/mxc/security/sahara2/fsl_shw_user.c | 137 +
+ drivers/mxc/security/sahara2/fsl_shw_wrap.c | 967 +++++++
+ drivers/mxc/security/sahara2/include/adaptor.h | 113 +
+ drivers/mxc/security/sahara2/include/diagnostic.h | 116 +
+ .../mxc/security/sahara2/include/fsl_platform.h | 161 ++
+ drivers/mxc/security/sahara2/include/fsl_shw.h | 2515 +++++++++++++++++
+ .../security/sahara2/include/fsl_shw_keystore.h | 475 ++++
+ drivers/mxc/security/sahara2/include/linux_port.h | 1806 ++++++++++++
+ .../sahara2/include/platform_abstractions.h | 15 +
+ drivers/mxc/security/sahara2/include/portable_os.h | 1453 ++++++++++
+ .../security/sahara2/include/sah_driver_common.h | 102 +
+ .../sahara2/include/sah_hardware_interface.h | 99 +
+ .../sahara2/include/sah_interrupt_handler.h | 42 +
+ drivers/mxc/security/sahara2/include/sah_kernel.h | 113 +
+ .../security/sahara2/include/sah_memory_mapper.h | 79 +
+ .../security/sahara2/include/sah_queue_manager.h | 63 +
+ .../security/sahara2/include/sah_status_manager.h | 228 ++
+ drivers/mxc/security/sahara2/include/sahara.h | 2265 +++++++++++++++
+ .../mxc/security/sahara2/include/sahara2_kernel.h | 49 +
+ drivers/mxc/security/sahara2/include/sf_util.h | 466 +++
+ drivers/mxc/security/sahara2/km_adaptor.c | 849 ++++++
+ .../mxc/security/sahara2/sah_driver_interface.c | 2179 ++++++++++++++
+ .../mxc/security/sahara2/sah_hardware_interface.c | 808 ++++++
+ .../mxc/security/sahara2/sah_interrupt_handler.c | 216 ++
+ drivers/mxc/security/sahara2/sah_memory_mapper.c | 2356 ++++++++++++++++
+ drivers/mxc/security/sahara2/sah_queue.c | 249 ++
+ drivers/mxc/security/sahara2/sah_queue_manager.c | 1050 +++++++
+ drivers/mxc/security/sahara2/sah_status_manager.c | 734 +++++
+ drivers/mxc/security/sahara2/sf_util.c | 1390 +++++++++
+ drivers/mxc/security/scc2_driver.c | 2393 ++++++++++++++++
+ drivers/mxc/security/scc2_internals.h | 519 ++++
+ 67 files changed, 40654 insertions(+), 3 deletions(-)
+
+Index: linux-2.6.38.8/drivers/mxc/security/Kconfig
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.38.8/drivers/mxc/security/Kconfig 2011-08-31 15:28:27.000000000 +0200
+@@ -0,0 +1,56 @@
++menu "MXC Security Drivers"
++
++config MXC_SECURITY_SCC
++ tristate "MXC SCC Driver"
++ default n
++ ---help---
++ This module contains the core API's for accessing the SCC module.
++ If you are unsure about this, say N here.
++
++config MXC_SECURITY_SCC2
++ tristate "MXC SCC2 Driver"
++ depends on ARCH_MX37 || ARCH_MX5
++ default n
++ ---help---
++ This module contains the core API's for accessing the SCC2 module.
++ If you are unsure about this, say N here.
++
++config SCC_DEBUG
++ bool "MXC SCC Module debugging"
++ depends on MXC_SECURITY_SCC || MXC_SECURITY_SCC2
++ ---help---
++ This is an option for use by developers; most people should
++ say N here. This enables SCC module debugging.
++
++config MXC_SECURITY_RNG
++ tristate "MXC RNG Driver"
++ depends on ARCH_MXC
++ depends on !ARCH_MXC91321
++ depends on !ARCH_MX27
++ default n
++ select MXC_SECURITY_CORE
++ ---help---
++ This module contains the core API's for accessing the RNG module.
++ If you are unsure about this, say N here.
++
++config MXC_RNG_TEST_DRIVER
++ bool "MXC RNG debug register"
++ depends on MXC_SECURITY_RNG
++ default n
++ ---help---
++ This option enables the RNG kcore driver to provide peek-poke facility
++ into the RNG device registers. Enable this, only for development and
++ testing purposes.
++config MXC_RNG_DEBUG
++ bool "MXC RNG Module Dubugging"
++ depends on MXC_SECURITY_RNG
++ default n
++ ---help---
++ This is an option for use by developers; most people should
++ say N here. This enables RNG module debugging.
++
++if (ARCH_MX37 || ARCH_MX5 || ARCH_MX27)
++source "drivers/mxc/security/sahara2/Kconfig"
++endif
++
++endmenu
+Index: linux-2.6.38.8/drivers/mxc/security/Makefile
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.38.8/drivers/mxc/security/Makefile 2011-08-31 15:28:27.000000000 +0200
+@@ -0,0 +1,10 @@
++# Makefile for the Linux MXC Security API
++ifeq ($( SCC_DEBUG),y)
++EXTRA_CFLAGS += -DDEBUG
++endif
++EXTRA_CFLAGS += -DMXC -DLINUX_KERNEL
++
++obj-$(CONFIG_MXC_SECURITY_SCC2) += scc2_driver.o
++obj-$(CONFIG_MXC_SECURITY_SCC) += mxc_scc.o
++obj-$(CONFIG_MXC_SECURITY_RNG) += rng/
++obj-$(CONFIG_MXC_SAHARA) += sahara2/
+Index: linux-2.6.38.8/drivers/mxc/security/mxc_scc.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.38.8/drivers/mxc/security/mxc_scc.c 2011-08-31 15:28:27.000000000 +0200
+@@ -0,0 +1,2386 @@
++/*
++ * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved.
++ */
++
++/*
++ * The code contained herein is licensed under the GNU General Public
++ * License. You may obtain a copy of the GNU General Public License
++ * Version 2 or later at the following locations:
++ *
++ * http://www.opensource.org/licenses/gpl-license.html
++ * http://www.gnu.org/copyleft/gpl.html
++ */
++
++/*!
++ * @file mxc_scc.c
++ *
++ * This is the driver code for the Security Controller (SCC). It has no device
++ * driver interface, so no user programs may access it. Its interaction with
++ * the Linux kernel is from calls to #scc_init() when the driver is loaded, and
++ * #scc_cleanup() should the driver be unloaded. The driver uses locking and
++ * (task-sleep/task-wakeup) functions of the kernel. It also registers itself
++ * to handle the interrupt line(s) from the SCC.
++ *
++ * Other drivers in the kernel may use the remaining API functions to get at
++ * the services of the SCC. The main service provided is the Secure Memory,
++ * which allows encoding and decoding of secrets with a per-chip secret key.
++ *
++ * The SCC is single-threaded, and so is this module. When the scc_crypt()
++ * routine is called, it will lock out other accesses to the function. If
++ * another task is already in the module, the subsequent caller will spin on a
++ * lock waiting for the other access to finish.
++ *
++ * Note that long crypto operations could cause a task to spin for a while,
++ * preventing other kernel work (other than interrupt processing) to get done.
++ *
++ * The external (kernel module) interface is through the following functions:
++ * @li scc_get_configuration()
++ * @li scc_crypt()
++ * @li scc_zeroize_memories()
++ * @li scc_monitor_security_failure()
++ * @li scc_stop_monitoring_security_failure()
++ * @li scc_set_sw_alarm()
++ * @li scc_read_register()
++ * @li scc_write_register()
++ *
++ * All other functions are internal to the driver.
++ *
++ * @ingroup MXCSCC
++*/
++#include "sahara2/include/fsl_platform.h"
++#include "sahara2/include/portable_os.h"
++#include "mxc_scc_internals.h"
++
++#include <linux/delay.h>
++
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18))
++
++#include <linux/device.h>
++#include <mach/clock.h>
++#include <linux/device.h>
++
++#else
++#include <linux/platform_device.h>
++#include <linux/clk.h>
++#include <linux/err.h>
++
++#endif
++
++/*!
++ * This is the set of errors which signal that access to the SCM RAM has
++ * failed or will fail.
++ */
++#define SCM_ACCESS_ERRORS \
++ (SCM_ERR_USER_ACCESS | SCM_ERR_ILLEGAL_ADDRESS | \
++ SCM_ERR_ILLEGAL_MASTER | SCM_ERR_CACHEABLE_ACCESS | \
++ SCM_ERR_UNALIGNED_ACCESS | SCM_ERR_BYTE_ACCESS | \
++ SCM_ERR_INTERNAL_ERROR | SCM_ERR_SMN_BLOCKING_ACCESS | \
++ SCM_ERR_CIPHERING | SCM_ERR_ZEROIZING | SCM_ERR_BUSY)
++/******************************************************************************
++ *
++ * Global / Static Variables
++ *
++ *****************************************************************************/
++
++/*!
++ * This is type void* so that a) it cannot directly be dereferenced,
++ * and b) pointer arithmetic on it will function in a 'normal way' for
++ * the offsets in scc_defines.h
++ *
++ * scc_base is the location in the iomap where the SCC's registers
++ * (and memory) start.
++ *
++ * The referenced data is declared volatile so that the compiler will
++ * not make any assumptions about the value of registers in the SCC,
++ * and thus will always reload the register into CPU memory before
++ * using it (i.e. wherever it is referenced in the driver).
++ *
++ * This value should only be referenced by the #SCC_READ_REGISTER and
++ * #SCC_WRITE_REGISTER macros and their ilk. All dereferences must be
++ * 32 bits wide.
++ */
++static volatile void *scc_base;
++
++/*! Array to hold function pointers registered by
++ #scc_monitor_security_failure() and processed by
++ #scc_perform_callbacks() */
++static void (*scc_callbacks[SCC_CALLBACK_SIZE]) (void);
++
++/*! Structure returned by #scc_get_configuration() */
++static scc_config_t scc_configuration = {
++ .driver_major_version = SCC_DRIVER_MAJOR_VERSION_1,
++ .driver_minor_version = SCC_DRIVER_MINOR_VERSION_8,
++ .scm_version = -1,
++ .smn_version = -1,
++ .block_size_bytes = -1,
++ .black_ram_size_blocks = -1,
++ .red_ram_size_blocks = -1
++};
++
++/*! Key Control Information. Integrity is controlled by use of
++ #scc_crypto_lock. */
++static struct scc_key_slot scc_key_info[SCC_KEY_SLOTS];
++
++/*! Internal flag to know whether SCC is in Failed state (and thus many
++ * registers are unavailable). Once it goes failed, it never leaves it. */
++static volatile enum scc_status scc_availability = SCC_STATUS_INITIAL;
++
++/*! Flag to say whether interrupt handler has been registered for
++ * SMN interrupt */
++static int smn_irq_set = 0;
++
++/*! Flag to say whether interrupt handler has been registered for
++ * SCM interrupt */
++static int scm_irq_set = 0;
++
++/*! This lock protects the #scc_callbacks list as well as the @c
++ * callbacks_performed flag in #scc_perform_callbacks. Since the data this
++ * protects may be read or written from either interrupt or base level, all
++ * operations should use the irqsave/irqrestore or similar to make sure that
++ * interrupts are inhibited when locking from base level.
++ */
++static spinlock_t scc_callbacks_lock = SPIN_LOCK_UNLOCKED;
++
++/*!
++ * Ownership of this lock prevents conflicts on the crypto operation in the SCC
++ * and the integrity of the #scc_key_info.
++ */
++static spinlock_t scc_crypto_lock = SPIN_LOCK_UNLOCKED;
++
++/*! Calculated once for quick reference to size of the unreserved space in one
++ * RAM in SCM.
++ */
++static uint32_t scc_memory_size_bytes;
++
++/*! Calculated once for quick reference to size of SCM address space */
++static uint32_t scm_highest_memory_address;
++
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18))
++#ifndef SCC_CLOCK_NOT_GATED
++/*! Pointer to SCC's clock information. Initialized during scc_init(). */
++static struct clk *scc_clk = NULL;
++#endif
++#endif
++
++/*! The lookup table for an 8-bit value. Calculated once
++ * by #scc_init_ccitt_crc().
++ */
++static uint16_t scc_crc_lookup_table[256];
++
++/*! Fixed padding for appending to plaintext to fill out a block */
++static uint8_t scc_block_padding[8] =
++ { SCC_DRIVER_PAD_CHAR, 0, 0, 0, 0, 0, 0, 0 };
++
++/******************************************************************************
++ *
++ * Function Implementations - Externally Accessible
++ *
++ *****************************************************************************/
++
++/*****************************************************************************/
++/* fn scc_init() */
++/*****************************************************************************/
++/*!
++ * Initialize the driver at boot time or module load time.
++ *
++ * Register with the kernel as the interrupt handler for the SCC interrupt
++ * line(s).
++ *
++ * Map the SCC's register space into the driver's memory space.
++ *
++ * Query the SCC for its configuration and status. Save the configuration in
++ * #scc_configuration and save the status in #scc_availability. Called by the
++ * kernel.
++ *
++ * Do any locking/wait queue initialization which may be necessary.
++ *
++ * The availability fuse may be checked, depending on platform.
++ */
++static int scc_init(void)
++{
++ uint32_t smn_status;
++ int i;
++ int return_value = -EIO; /* assume error */
++ if (scc_availability == SCC_STATUS_INITIAL) {
++
++ /* Set this until we get an initial reading */
++ scc_availability = SCC_STATUS_CHECKING;
++
++ /* Initialize the constant for the CRC function */
++ scc_init_ccitt_crc();
++
++ /* initialize the callback table */
++ for (i = 0; i < SCC_CALLBACK_SIZE; i++) {
++ scc_callbacks[i] = 0;
++ }
++
++ /* Initialize key slots */
++ for (i = 0; i < SCC_KEY_SLOTS; i++) {
++ scc_key_info[i].offset = i * SCC_KEY_SLOT_SIZE;
++ scc_key_info[i].status = 0; /* unassigned */
++ }
++
++ /* Enable the SCC clock on platforms where it is gated */
++#ifndef SCC_CLOCK_NOT_GATED
++
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18))
++ mxc_clks_enable(SCC_CLK);
++#else
++
++ scc_clk = clk_get(NULL, "scc_clk");
++ if (scc_clk != ERR_PTR(ENOENT)) {
++ clk_enable(scc_clk);
++ }
++#endif /* LINUX_VERSION_CODE */
++
++#endif /* SCC_CLOCK_NOT_GATED */
++ /* See whether there is an SCC available */
++ if (0 && !SCC_ENABLED()) {
++ os_printk(KERN_ERR
++ "SCC: Fuse for SCC is set to disabled. Exiting.\n");
++ } else {
++ /* Map the SCC (SCM and SMN) memory on the internal bus into
++ kernel address space */
++ scc_base = (void *)IO_ADDRESS(SCC_BASE);
++
++ /* If that worked, we can try to use the SCC */
++ if (scc_base == NULL) {
++ os_printk(KERN_ERR
++ "SCC: Register mapping failed. Exiting.\n");
++ } else {
++ /* Get SCM into 'clean' condition w/interrupts cleared &
++ disabled */
++ SCC_WRITE_REGISTER(SCM_INTERRUPT_CTRL,
++ SCM_INTERRUPT_CTRL_CLEAR_INTERRUPT
++ |
++ SCM_INTERRUPT_CTRL_MASK_INTERRUPTS);
++
++ /* Clear error status register (any write will do it) */
++ SCC_WRITE_REGISTER(SCM_ERROR_STATUS, 0);
++
++ /*
++ * There is an SCC. Determine its current state. Side effect
++ * is to populate scc_config and scc_availability
++ */
++ smn_status = scc_grab_config_values();
++
++ /* Try to set up interrupt handler(s) */
++ if (scc_availability == SCC_STATUS_OK) {
++ if (setup_interrupt_handling() != 0) {
++ unsigned condition;
++ /*!
++ * The error could be only that the SCM interrupt was
++ * not set up. This interrupt is always masked, so
++ * that is not an issue.
++ *
++ * The SMN's interrupt may be shared on that line, it
++ * may be separate, or it may not be wired. Do what
++ * is necessary to check its status.
++ *
++ * Although the driver is coded for possibility of not
++ * having SMN interrupt, the fact that there is one
++ * means it should be available and used.
++ */
++#ifdef USE_SMN_INTERRUPT
++ condition = !smn_irq_set; /* Separate. Check SMN binding */
++#elif !defined(NO_SMN_INTERRUPT)
++ condition = !scm_irq_set; /* Shared. Check SCM binding */
++#else
++ condition = FALSE; /* SMN not wired at all. Ignore. */
++#endif
++ /* setup was not able to set up SMN interrupt */
++ scc_availability =
++ SCC_STATUS_UNIMPLEMENTED;
++ } /* interrupt handling returned non-zero */
++ } /* availability is OK */
++ if (scc_availability == SCC_STATUS_OK) {
++ /* Get SMN into 'clean' condition w/interrupts cleared &
++ enabled */
++ SCC_WRITE_REGISTER(SMN_COMMAND,
++ SMN_COMMAND_CLEAR_INTERRUPT
++ |
++ SMN_COMMAND_ENABLE_INTERRUPT);
++ }
++ /* availability is still OK */
++ } /* if scc_base != NULL */
++
++ } /* if SCC_ENABLED() */
++
++ /*
++ * If status is SCC_STATUS_UNIMPLEMENTED or is still
++ * SCC_STATUS_CHECKING, could be leaving here with the driver partially
++ * initialized. In either case, cleanup (which will mark the SCC as
++ * UNIMPLEMENTED).
++ */
++ if (scc_availability == SCC_STATUS_CHECKING ||
++ scc_availability == SCC_STATUS_UNIMPLEMENTED) {
++ scc_cleanup();
++ } else {
++ return_value = 0; /* All is well */
++ }
++ }
++ /* ! STATUS_INITIAL */
++ pr_debug("SCC: Driver Status is %s\n",
++ (scc_availability == SCC_STATUS_INITIAL) ? "INITIAL" :
++ (scc_availability == SCC_STATUS_CHECKING) ? "CHECKING" :
++ (scc_availability ==
++ SCC_STATUS_UNIMPLEMENTED) ? "UNIMPLEMENTED"
++ : (scc_availability ==
++ SCC_STATUS_OK) ? "OK" : (scc_availability ==
++ SCC_STATUS_FAILED) ? "FAILED" :
++ "UNKNOWN");
++
++ return return_value;
++} /* scc_init */
++
++/*****************************************************************************/
++/* fn scc_cleanup() */
++/*****************************************************************************/
++/*!
++ * Perform cleanup before driver/module is unloaded by setting the machine
++ * state close to what it was when the driver was loaded. This function is
++ * called when the kernel is shutting down or when this driver is being
++ * unloaded.
++ *
++ * A driver like this should probably never be unloaded, especially if there
++ * are other module relying upon the callback feature for monitoring the SCC
++ * status.
++ *
++ * In any case, cleanup the callback table (by clearing out all of the
++ * pointers). Deregister the interrupt handler(s). Unmap SCC registers.
++ *
++ */
++static void scc_cleanup(void)
++{
++ int i;
++
++ /* Mark the driver / SCC as unusable. */
++ scc_availability = SCC_STATUS_UNIMPLEMENTED;
++
++ /* Clear out callback table */
++ for (i = 0; i < SCC_CALLBACK_SIZE; i++) {
++ scc_callbacks[i] = 0;
++ }
++
++ /* If SCC has been mapped in, clean it up and unmap it */
++ if (scc_base) {
++ /* For the SCM, disable interrupts, zeroize RAMs. Interrupt
++ * status will appear because zeroize will complete. */
++ SCC_WRITE_REGISTER(SCM_INTERRUPT_CTRL,
++ SCM_INTERRUPT_CTRL_MASK_INTERRUPTS |
++ SCM_INTERRUPT_CTRL_ZEROIZE_MEMORY);
++
++ /* For the SMN, clear and disable interrupts */
++ SCC_WRITE_REGISTER(SMN_COMMAND, SMN_COMMAND_CLEAR_INTERRUPT);
++
++ /* remove virtual mapping */
++ iounmap((void *)scc_base);
++ }
++
++ /* Now that interrupts cannot occur, disassociate driver from the interrupt
++ * lines.
++ */
++
++ /* Deregister SCM interrupt handler */
++ if (scm_irq_set) {
++ os_deregister_interrupt(INT_SCC_SCM);
++ }
++
++ /* Deregister SMN interrupt handler */
++ if (smn_irq_set) {
++#ifdef USE_SMN_INTERRUPT
++ os_deregister_interrupt(INT_SCC_SMN);
++#endif
++ }
++ pr_debug("SCC driver cleaned up.\n");
++
++} /* scc_cleanup */
++
++/*****************************************************************************/
++/* fn scc_get_configuration() */
++/*****************************************************************************/
++scc_config_t *scc_get_configuration(void)
++{
++ /*
++ * If some other driver calls scc before the kernel does, make sure that
++ * this driver's initialization is performed.
++ */
++ if (scc_availability == SCC_STATUS_INITIAL) {
++ scc_init();
++ }
++
++ /*!
++ * If there is no SCC, yet the driver exists, the value -1 will be in
++ * the #scc_config_t fields for other than the driver versions.
++ */
++ return &scc_configuration;
++} /* scc_get_configuration */
++
++/*****************************************************************************/
++/* fn scc_zeroize_memories() */
++/*****************************************************************************/
++scc_return_t scc_zeroize_memories(void)
++{
++ scc_return_t return_status = SCC_RET_FAIL;
++ uint32_t status;
++
++ if (scc_availability == SCC_STATUS_INITIAL) {
++ scc_init();
++ }
++
++ if (scc_availability == SCC_STATUS_OK) {
++ unsigned long irq_flags; /* for IRQ save/restore */
++
++ /* Lock access to crypto memory of the SCC */
++ spin_lock_irqsave(&scc_crypto_lock, irq_flags);
++
++ /* Start the Zeroize by setting a bit in the SCM_INTERRUPT_CTRL
++ * register */
++ SCC_WRITE_REGISTER(SCM_INTERRUPT_CTRL,
++ SCM_INTERRUPT_CTRL_MASK_INTERRUPTS
++ | SCM_INTERRUPT_CTRL_ZEROIZE_MEMORY);
++
++ scc_wait_completion();
++
++ /* Get any error info */
++ status = SCC_READ_REGISTER(SCM_ERROR_STATUS);
++
++ /* unlock the SCC */
++ spin_unlock_irqrestore(&scc_crypto_lock, irq_flags);
++
++ if (!(status & SCM_ERR_ZEROIZE_FAILED)) {
++ return_status = SCC_RET_OK;
++ } else {
++ pr_debug
++ ("SCC: Zeroize failed. SCM Error Status is 0x%08x\n",
++ status);
++ }
++
++ /* Clear out any status. */
++ SCC_WRITE_REGISTER(SCM_INTERRUPT_CTRL,
++ SCM_INTERRUPT_CTRL_CLEAR_INTERRUPT
++ | SCM_INTERRUPT_CTRL_MASK_INTERRUPTS);
++
++ /* and any error status */
++ SCC_WRITE_REGISTER(SCM_ERROR_STATUS, 0);
++ }
++
++ return return_status;
++} /* scc_zeroize_memories */
++
++/*****************************************************************************/
++/* fn scc_crypt() */
++/*****************************************************************************/
++scc_return_t
++scc_crypt(unsigned long count_in_bytes, const uint8_t * data_in,
++ const uint8_t * init_vector,
++ scc_enc_dec_t direction, scc_crypto_mode_t crypto_mode,
++ scc_verify_t check_mode, uint8_t * data_out,
++ unsigned long *count_out_bytes)
++
++{
++ scc_return_t return_code = SCC_RET_FAIL;
++
++ if (scc_availability == SCC_STATUS_INITIAL) {
++ scc_init();
++ }
++
++ (void)scc_update_state(); /* in case no interrupt line from SMN */
++
++ /* make initial error checks */
++ if (scc_availability != SCC_STATUS_OK
++ || count_in_bytes == 0
++ || data_in == 0
++ || data_out == 0
++ || (crypto_mode != SCC_CBC_MODE && crypto_mode != SCC_ECB_MODE)
++ || (crypto_mode == SCC_CBC_MODE && init_vector == NULL)
++ || (direction != SCC_ENCRYPT && direction != SCC_DECRYPT)
++ || (check_mode == SCC_VERIFY_MODE_NONE &&
++ count_in_bytes % SCC_BLOCK_SIZE_BYTES() != 0)
++ || (direction == SCC_DECRYPT &&
++ count_in_bytes % SCC_BLOCK_SIZE_BYTES() != 0)
++ || (check_mode != SCC_VERIFY_MODE_NONE &&
++ check_mode != SCC_VERIFY_MODE_CCITT_CRC)) {
++ pr_debug
++ ("SCC: scc_crypt() count_in_bytes_ok = %d; data_in_ok = %d;"
++ " data_out_ok = %d; iv_ok = %d\n", !(count_in_bytes == 0),
++ !(data_in == 0), !(data_out == 0),
++ !(crypto_mode == SCC_CBC_MODE && init_vector == NULL));
++ pr_debug("SCC: scc_crypt() mode_ok=%d; direction_ok=%d;"
++ " size_ok=%d, check_mode_ok=%d\n",
++ !(crypto_mode != SCC_CBC_MODE
++ && crypto_mode != SCC_ECB_MODE),
++ !(direction != SCC_ENCRYPT
++ && direction != SCC_DECRYPT),
++ !((check_mode == SCC_VERIFY_MODE_NONE
++ && count_in_bytes % SCC_BLOCK_SIZE_BYTES() != 0)
++ || (direction == SCC_DECRYPT
++ && count_in_bytes % SCC_BLOCK_SIZE_BYTES() !=
++ 0)), !(check_mode != SCC_VERIFY_MODE_NONE
++ && check_mode !=
++ SCC_VERIFY_MODE_CCITT_CRC));
++ pr_debug("SCC: scc_crypt() detected bad argument\n");
++ } else {
++ /* Start settings for write to SCM_CONTROL register */
++ uint32_t scc_control = SCM_CONTROL_START_CIPHER;
++ unsigned long irq_flags; /* for IRQ save/restore */
++
++ /* Lock access to crypto memory of the SCC */
++ spin_lock_irqsave(&scc_crypto_lock, irq_flags);
++
++ /* Special needs for CBC Mode */
++ if (crypto_mode == SCC_CBC_MODE) {
++ scc_control |= SCM_CBC_MODE; /* change default of ECB */
++ /* Put in Initial Context. Vector registers are contiguous */
++ copy_to_scc(init_vector, SCM_INIT_VECTOR_0,
++ SCC_BLOCK_SIZE_BYTES(), NULL);
++ }
++
++ /* Fill the RED_START register */
++ SCC_WRITE_REGISTER(SCM_RED_START,
++ SCM_NON_RESERVED_OFFSET /
++ SCC_BLOCK_SIZE_BYTES());
++
++ /* Fill the BLACK_START register */
++ SCC_WRITE_REGISTER(SCM_BLACK_START,
++ SCM_NON_RESERVED_OFFSET /
++ SCC_BLOCK_SIZE_BYTES());
++
++ if (direction == SCC_ENCRYPT) {
++ /* Check for sufficient space in data_out */
++ if (check_mode == SCC_VERIFY_MODE_NONE) {
++ if (*count_out_bytes < count_in_bytes) {
++ return_code =
++ SCC_RET_INSUFFICIENT_SPACE;
++ }
++ } else { /* SCC_VERIFY_MODE_CCITT_CRC */
++ /* Calculate extra bytes needed for crc (2) and block
++ padding */
++ int padding_needed =
++ CRC_SIZE_BYTES + SCC_BLOCK_SIZE_BYTES() -
++ ((count_in_bytes + CRC_SIZE_BYTES)
++ % SCC_BLOCK_SIZE_BYTES());
++
++ /* Verify space is available */
++ if (*count_out_bytes <
++ count_in_bytes + padding_needed) {
++ return_code =
++ SCC_RET_INSUFFICIENT_SPACE;
++ }
++ }
++ /* If did not detect space error, do the encryption */
++ if (return_code != SCC_RET_INSUFFICIENT_SPACE) {
++ return_code =
++ scc_encrypt(count_in_bytes, data_in,
++ scc_control, data_out,
++ check_mode ==
++ SCC_VERIFY_MODE_CCITT_CRC,
++ count_out_bytes);
++ }
++
++ }
++ /* direction == SCC_ENCRYPT */
++ else { /* SCC_DECRYPT */
++ /* Check for sufficient space in data_out */
++ if (check_mode == SCC_VERIFY_MODE_NONE) {
++ if (*count_out_bytes < count_in_bytes) {
++ return_code =
++ SCC_RET_INSUFFICIENT_SPACE;
++ }
++ } else { /* SCC_VERIFY_MODE_CCITT_CRC */
++ /* Do initial check. Assume last block (of padding) and CRC
++ * will get stripped. After decipher is done and padding is
++ * removed, will know exact value.
++ */
++ int possible_size =
++ (int)count_in_bytes - CRC_SIZE_BYTES -
++ SCC_BLOCK_SIZE_BYTES();
++ if ((int)*count_out_bytes < possible_size) {
++ pr_debug
++ ("SCC: insufficient decrypt space %ld/%d.\n",
++ *count_out_bytes, possible_size);
++ return_code =
++ SCC_RET_INSUFFICIENT_SPACE;
++ }
++ }
++
++ /* If did not detect space error, do the decryption */
++ if (return_code != SCC_RET_INSUFFICIENT_SPACE) {
++ return_code =
++ scc_decrypt(count_in_bytes, data_in,
++ scc_control, data_out,
++ check_mode ==
++ SCC_VERIFY_MODE_CCITT_CRC,
++ count_out_bytes);
++ }
++
++ } /* SCC_DECRYPT */
++
++ /* unlock the SCC */
++ spin_unlock_irqrestore(&scc_crypto_lock, irq_flags);
++
++ } /* else no initial error */
++
++ return return_code;
++} /* scc_crypt */
++
++/*****************************************************************************/
++/* fn scc_set_sw_alarm() */
++/*****************************************************************************/
++void scc_set_sw_alarm(void)
++{
++
++ if (scc_availability == SCC_STATUS_INITIAL) {
++ scc_init();
++ }
++
++ /* Update scc_availability based on current SMN status. This might
++ * perform callbacks.
++ */
++ (void)scc_update_state();
++
++ /* if everything is OK, make it fail */
++ if (scc_availability == SCC_STATUS_OK) {
++
++ /* sound the alarm (and disable SMN interrupts */
++ SCC_WRITE_REGISTER(SMN_COMMAND, SMN_COMMAND_SET_SOFTWARE_ALARM);
++
++ scc_availability = SCC_STATUS_FAILED; /* Remember what we've done */
++
++ /* In case SMN interrupt is not available, tell the world */
++ scc_perform_callbacks();
++ }
++
++ return;
++} /* scc_set_sw_alarm */
++
++/*****************************************************************************/
++/* fn scc_monitor_security_failure() */
++/*****************************************************************************/
++scc_return_t scc_monitor_security_failure(void callback_func(void))
++{
++ int i;
++ unsigned long irq_flags; /* for IRQ save/restore */
++ scc_return_t return_status = SCC_RET_TOO_MANY_FUNCTIONS;
++ int function_stored = FALSE;
++
++ if (scc_availability == SCC_STATUS_INITIAL) {
++ scc_init();
++ }
++
++ /* Acquire lock of callbacks table. Could be spin_lock_irq() if this
++ * routine were just called from base (not interrupt) level
++ */
++ spin_lock_irqsave(&scc_callbacks_lock, irq_flags);
++
++ /* Search through table looking for empty slot */
++ for (i = 0; i < SCC_CALLBACK_SIZE; i++) {
++ if (scc_callbacks[i] == callback_func) {
++ if (function_stored) {
++ /* Saved duplicate earlier. Clear this later one. */
++ scc_callbacks[i] = NULL;
++ }
++ /* Exactly one copy is now stored */
++ return_status = SCC_RET_OK;
++ break;
++ } else if (scc_callbacks[i] == NULL && !function_stored) {
++ /* Found open slot. Save it and remember */
++ scc_callbacks[i] = callback_func;
++ return_status = SCC_RET_OK;
++ function_stored = TRUE;
++ }
++ }
++
++ /* Free the lock */
++ spin_unlock_irqrestore(&scc_callbacks_lock, irq_flags);
++
++ return return_status;
++} /* scc_monitor_security_failure */
++
++/*****************************************************************************/
++/* fn scc_stop_monitoring_security_failure() */
++/*****************************************************************************/
++void scc_stop_monitoring_security_failure(void callback_func(void))
++{
++ unsigned long irq_flags; /* for IRQ save/restore */
++ int i;
++
++ if (scc_availability == SCC_STATUS_INITIAL) {
++ scc_init();
++ }
++
++ /* Acquire lock of callbacks table. Could be spin_lock_irq() if this
++ * routine were just called from base (not interrupt) level
++ */
++ spin_lock_irqsave(&scc_callbacks_lock, irq_flags);
++
++ /* Search every entry of the table for this function */
++ for (i = 0; i < SCC_CALLBACK_SIZE; i++) {
++ if (scc_callbacks[i] == callback_func) {
++ scc_callbacks[i] = NULL; /* found instance - clear it out */
++ break;
++ }
++ }
++
++ /* Free the lock */
++ spin_unlock_irqrestore(&scc_callbacks_lock, irq_flags);
++
++ return;
++} /* scc_stop_monitoring_security_failure */
++
++/*****************************************************************************/
++/* fn scc_read_register() */
++/*****************************************************************************/
++scc_return_t scc_read_register(int register_offset, uint32_t * value)
++{
++ scc_return_t return_status = SCC_RET_FAIL;
++ uint32_t smn_status;
++ uint32_t scm_status;
++
++ if (scc_availability == SCC_STATUS_INITIAL) {
++ scc_init();
++ }
++
++ /* First layer of protection -- completely unaccessible SCC */
++ if (scc_availability != SCC_STATUS_UNIMPLEMENTED) {
++
++ /* Second layer -- that offset is valid */
++ if (register_offset != SMN_BITBANK_DECREMENT && /* write only! */
++ check_register_offset(register_offset) == SCC_RET_OK) {
++
++ /* Get current status / update local state */
++ smn_status = scc_update_state();
++ scm_status = SCC_READ_REGISTER(SCM_STATUS);
++
++ /*
++ * Third layer - verify that the register being requested is
++ * available in the current state of the SCC.
++ */
++ if ((return_status =
++ check_register_accessible(register_offset,
++ smn_status,
++ scm_status)) ==
++ SCC_RET_OK) {
++ *value = SCC_READ_REGISTER(register_offset);
++ }
++ }
++ }
++
++ return return_status;
++} /* scc_read_register */
++
++/*****************************************************************************/
++/* fn scc_write_register() */
++/*****************************************************************************/
++scc_return_t scc_write_register(int register_offset, uint32_t value)
++{
++ scc_return_t return_status = SCC_RET_FAIL;
++ uint32_t smn_status;
++ uint32_t scm_status;
++
++ if (scc_availability == SCC_STATUS_INITIAL) {
++ scc_init();
++ }
++
++ /* First layer of protection -- completely unaccessible SCC */
++ if (scc_availability != SCC_STATUS_UNIMPLEMENTED) {
++
++ /* Second layer -- that offset is valid */
++ if (!(register_offset == SCM_STATUS || /* These registers are */
++ register_offset == SCM_CONFIGURATION || /* Read Only */
++ register_offset == SMN_BIT_COUNT ||
++ register_offset == SMN_TIMER) &&
++ check_register_offset(register_offset) == SCC_RET_OK) {
++
++ /* Get current status / update local state */
++ smn_status = scc_update_state();
++ scm_status = SCC_READ_REGISTER(SCM_STATUS);
++
++ /*
++ * Third layer - verify that the register being requested is
++ * available in the current state of the SCC.
++ */
++ if (check_register_accessible
++ (register_offset, smn_status, scm_status) == 0) {
++ SCC_WRITE_REGISTER(register_offset, value);
++ return_status = SCC_RET_OK;
++ }
++ }
++ }
++
++ return return_status;
++} /* scc_write_register() */
++
++/******************************************************************************
++ *
++ * Function Implementations - Internal
++ *
++ *****************************************************************************/
++
++/*****************************************************************************/
++/* fn scc_irq() */
++/*****************************************************************************/
++/*!
++ * This is the interrupt handler for the SCC.
++ *
++ * This function checks the SMN Status register to see whether it
++ * generated the interrupt, then it checks the SCM Status register to
++ * see whether it needs attention.
++ *
++ * If an SMN Interrupt is active, then the SCC state set to failure, and
++ * #scc_perform_callbacks() is invoked to notify any interested parties.
++ *
++ * The SCM Interrupt should be masked, as this driver uses polling to determine
++ * when the SCM has completed a crypto or zeroing operation. Therefore, if the
++ * interrupt is active, the driver will just clear the interrupt and (re)mask.
++ *
++ */
++OS_DEV_ISR(scc_irq)
++{
++ uint32_t smn_status;
++ uint32_t scm_status;
++ int handled = 0; /* assume interrupt isn't from SMN */
++#if defined(USE_SMN_INTERRUPT)
++ int smn_irq = INT_SCC_SMN; /* SMN interrupt is on a line by itself */
++#elif defined (NO_SMN_INTERRUPT)
++ int smn_irq = -1; /* not wired to CPU at all */
++#else
++ int smn_irq = INT_SCC_SCM; /* SMN interrupt shares a line with SCM */
++#endif
++
++ /* Update current state... This will perform callbacks... */
++ smn_status = scc_update_state();
++
++ /* SMN is on its own interrupt line. Verify the IRQ was triggered
++ * before clearing the interrupt and marking it handled. */
++ if ((os_dev_get_irq() == smn_irq) &&
++ (smn_status & SMN_STATUS_SMN_STATUS_IRQ)) {
++ SCC_WRITE_REGISTER(SMN_COMMAND, SMN_COMMAND_CLEAR_INTERRUPT);
++ handled++; /* tell kernel that interrupt was handled */
++ }
++
++ /* Check on the health of the SCM */
++ scm_status = SCC_READ_REGISTER(SCM_STATUS);
++
++ /* The driver masks interrupts, so this should never happen. */
++ if (os_dev_get_irq() == INT_SCC_SCM) {
++ /* but if it does, try to prevent it in the future */
++ SCC_WRITE_REGISTER(SCM_INTERRUPT_CTRL,
++ SCM_INTERRUPT_CTRL_CLEAR_INTERRUPT
++ | SCM_INTERRUPT_CTRL_MASK_INTERRUPTS);
++ handled++;
++ }
++
++ /* Any non-zero value of handled lets kernel know we got something */
++ return IRQ_RETVAL(handled);
++}
++
++/*****************************************************************************/
++/* fn scc_perform_callbacks() */
++/*****************************************************************************/
++/*! Perform callbacks registered by #scc_monitor_security_failure().
++ *
++ * Make sure callbacks only happen once... Since there may be some reason why
++ * the interrupt isn't generated, this routine could be called from base(task)
++ * level.
++ *
++ * One at a time, go through #scc_callbacks[] and call any non-null pointers.
++ */
++static void scc_perform_callbacks(void)
++{
++ static int callbacks_performed = 0;
++ unsigned long irq_flags; /* for IRQ save/restore */
++ int i;
++
++ /* Acquire lock of callbacks table and callbacks_performed flag */
++ spin_lock_irqsave(&scc_callbacks_lock, irq_flags);
++
++ if (!callbacks_performed) {
++ callbacks_performed = 1;
++
++ /* Loop over all of the entries in the table */
++ for (i = 0; i < SCC_CALLBACK_SIZE; i++) {
++ /* If not null, ... */
++ if (scc_callbacks[i]) {
++ scc_callbacks[i] (); /* invoke the callback routine */
++ }
++ }
++ }
++
++ spin_unlock_irqrestore(&scc_callbacks_lock, irq_flags);
++
++ return;
++}
++
++/*****************************************************************************/
++/* fn copy_to_scc() */
++/*****************************************************************************/
++/*!
++ * Move data from possibly unaligned source and realign for SCC, possibly
++ * while calculating CRC.
++ *
++ * Multiple calls can be made to this routine (without intervening calls to
++ * #copy_from_scc(), as long as the sum total of bytes copied is a multiple of
++ * four (SCC native word size).
++ *
++ * @param[in] from Location in memory
++ * @param[out] to Location in SCC
++ * @param[in] count_bytes Number of bytes to copy
++ * @param[in,out] crc Pointer to CRC. Initial value must be
++ * #CRC_CCITT_START if this is the start of
++ * message. Output is the resulting (maybe
++ * partial) CRC. If NULL, no crc is calculated.
++ *
++ * @return Zero - success. Non-zero - SCM status bits defining failure.
++ */
++static uint32_t
++copy_to_scc(const uint8_t * from, uint32_t to, unsigned long count_bytes,
++ uint16_t * crc)
++{
++ int i;
++ uint32_t scm_word;
++ uint16_t current_crc = 0; /* local copy for fast access */
++ uint32_t status;
++
++ pr_debug("SCC: copying %ld bytes to 0x%0x.\n", count_bytes, to);
++
++ status = SCC_READ_REGISTER(SCM_ERROR_STATUS) & SCM_ACCESS_ERRORS;
++ if (status != 0) {
++ pr_debug
++ ("SCC copy_to_scc(): Error status detected (before copy):"
++ " %08x\n", status);
++ /* clear out errors left behind by somebody else */
++ SCC_WRITE_REGISTER(SCM_ERROR_STATUS, status);
++ }
++
++ if (crc) {
++ current_crc = *crc;
++ }
++
++ /* Initialize value being built for SCM. If we are starting 'clean',
++ * set it to zero. Otherwise pick up partial value which had been saved
++ * earlier. */
++ if (SCC_BYTE_OFFSET(to) == 0) {
++ scm_word = 0;
++ } else {
++ scm_word = SCC_READ_REGISTER(SCC_WORD_PTR(to)); /* recover */
++ }
++
++ /* Now build up SCM words and write them out when each is full */
++ for (i = 0; i < count_bytes; i++) {
++ uint8_t byte = *from++; /* value from plaintext */
++
++#if defined(__BIG_ENDIAN) || defined(FSL_HAVE_DRYICE)
++ scm_word = (scm_word << 8) | byte; /* add byte to SCM word */
++#else
++ scm_word = (byte << 24) | (scm_word >> 8);
++#endif
++ /* now calculate CCITT CRC */
++ if (crc) {
++ CALC_CRC(byte, current_crc);
++ }
++
++ to++; /* bump location in SCM */
++
++ /* check for full word */
++ if (SCC_BYTE_OFFSET(to) == 0) {
++ SCC_WRITE_REGISTER((uint32_t) (to - 4), scm_word); /* write it out */
++ }
++ }
++
++ /* If at partial word after previous loop, save it in SCM memory for
++ next time. */
++ if (SCC_BYTE_OFFSET(to) != 0) {
++ SCC_WRITE_REGISTER(SCC_WORD_PTR(to), scm_word); /* save */
++ }
++
++ /* Copy CRC back */
++ if (crc) {
++ *crc = current_crc;
++ }
++
++ status = SCC_READ_REGISTER(SCM_ERROR_STATUS) & SCM_ACCESS_ERRORS;
++ if (status != 0) {
++ pr_debug("SCC copy_to_scc(): Error status detected: %08x\n",
++ status);
++ /* Clear any/all bits. */
++ SCC_WRITE_REGISTER(SCM_ERROR_STATUS, status);
++ }
++ return status;
++}
++
++/*****************************************************************************/
++/* fn copy_from_scc() */
++/*****************************************************************************/
++/*!
++ * Move data from aligned 32-bit source and place in (possibly unaligned)
++ * target, and maybe calculate CRC at the same time.
++ *
++ * Multiple calls can be made to this routine (without intervening calls to
++ * #copy_to_scc(), as long as the sum total of bytes copied is be a multiple
++ * of four.
++ *
++ * @param[in] from Location in SCC
++ * @param[out] to Location in memory
++ * @param[in] count_bytes Number of bytes to copy
++ * @param[in,out] crc Pointer to CRC. Initial value must be
++ * #CRC_CCITT_START if this is the start of
++ * message. Output is the resulting (maybe
++ * partial) CRC. If NULL, crc is not calculated.
++ *
++ * @return Zero - success. Non-zero - SCM status bits defining failure.
++ */
++static uint32_t
++copy_from_scc(const uint32_t from, uint8_t * to, unsigned long count_bytes,
++ uint16_t * crc)
++{
++ uint32_t running_from = from;
++ uint32_t scm_word;
++ uint16_t current_crc = 0; /* local copy for fast access */
++ uint32_t status;
++ pr_debug("SCC: copying %ld bytes from 0x%x.\n", count_bytes, from);
++ status = SCC_READ_REGISTER(SCM_ERROR_STATUS) & SCM_ACCESS_ERRORS;
++ if (status != 0) {
++ pr_debug
++ ("SCC copy_from_scc(): Error status detected (before copy):"
++ " %08x\n", status);
++ /* clear out errors left behind by somebody else */
++ SCC_WRITE_REGISTER(SCM_ERROR_STATUS, status);
++ }
++
++ if (crc) {
++ current_crc = *crc;
++ }
++
++ /* Read word which is sitting in SCM memory. Ignore byte offset */
++ scm_word = SCC_READ_REGISTER(SCC_WORD_PTR(running_from));
++
++ /* If necessary, move the 'first' byte into place */
++ if (SCC_BYTE_OFFSET(running_from) != 0) {
++#if defined(__BIG_ENDIAN) || defined(FSL_HAVE_DRYICE)
++ scm_word <<= 8 * SCC_BYTE_OFFSET(running_from);
++#else
++ scm_word >>= 8 * SCC_BYTE_OFFSET(running_from);
++#endif
++ }
++
++ /* Now build up SCM words and write them out when each is full */
++ while (count_bytes--) {
++ uint8_t byte; /* value from plaintext */
++
++#if defined(__BIG_ENDIAN) || defined(FSL_HAVE_DRYICE)
++ byte = (scm_word & 0xff000000) >> 24; /* pull byte out of SCM word */
++ scm_word <<= 8; /* shift over to remove the just-pulled byte */
++#else
++ byte = (scm_word & 0xff);
++ scm_word >>= 8; /* shift over to remove the just-pulled byte */
++#endif
++ *to++ = byte; /* send byte to memory */
++
++ /* now calculate CRC */
++ if (crc) {
++ CALC_CRC(byte, current_crc);
++ }
++
++ running_from++;
++ /* check for empty word */
++ if (count_bytes && SCC_BYTE_OFFSET(running_from) == 0) {
++ /* read one in */
++ scm_word = SCC_READ_REGISTER((uint32_t) running_from);
++ }
++ }
++
++ if (crc) {
++ *crc = current_crc;
++ }
++
++ status = SCC_READ_REGISTER(SCM_ERROR_STATUS) & SCM_ACCESS_ERRORS;
++ if (status != 0) {
++ pr_debug("SCC copy_from_scc(): Error status detected: %08x\n",
++ status);
++ /* Clear any/all bits. */
++ SCC_WRITE_REGISTER(SCM_ERROR_STATUS, status);
++ }
++
++ return status;
++}
++
++/*****************************************************************************/
++/* fn scc_strip_padding() */
++/*****************************************************************************/
++/*!
++ * Remove padding from plaintext. Search backwards for #SCC_DRIVER_PAD_CHAR,
++ * verifying that each byte passed over is zero (0). Maximum number of bytes
++ * to examine is 8.
++ *
++ * @param[in] from Pointer to byte after end of message
++ * @param[out] count_bytes_stripped Number of padding bytes removed by this
++ * function.
++ *
++ * @return #SCC_RET_OK if all goes, well, #SCC_RET_FAIL if padding was
++ * not present.
++*/
++static scc_return_t
++scc_strip_padding(uint8_t * from, unsigned *count_bytes_stripped)
++{
++ int i = SCC_BLOCK_SIZE_BYTES();
++ scc_return_t return_code = SCC_RET_VERIFICATION_FAILED;
++
++ /*
++ * Search backwards looking for the magic marker. If it isn't found,
++ * make sure that a 0 byte is there in its place. Stop after the maximum
++ * amount of padding (8 bytes) has been searched);
++ */
++ while (i-- > 0) {
++ if (*--from == SCC_DRIVER_PAD_CHAR) {
++ *count_bytes_stripped = SCC_BLOCK_SIZE_BYTES() - i;
++ return_code = SCC_RET_OK;
++ break;
++ } else if (*from != 0) { /* if not marker, check for 0 */
++ pr_debug("SCC: Found non-zero interim pad: 0x%x\n",
++ *from);
++ break;
++ }
++ }
++
++ return return_code;
++}
++
++/*****************************************************************************/
++/* fn scc_update_state() */
++/*****************************************************************************/
++/*!
++ * Make certain SCC is still running.
++ *
++ * Side effect is to update #scc_availability and, if the state goes to failed,
++ * run #scc_perform_callbacks().
++ *
++ * (If #SCC_BRINGUP is defined, bring SCC to secure state if it is found to be
++ * in health check state)
++ *
++ * @return Current value of #SMN_STATUS register.
++ */
++static uint32_t scc_update_state(void)
++{
++ uint32_t smn_status_register = SMN_STATE_FAIL;
++ int smn_state;
++
++ /* if FAIL or UNIMPLEMENTED, don't bother */
++ if (scc_availability == SCC_STATUS_CHECKING ||
++ scc_availability == SCC_STATUS_OK) {
++
++ smn_status_register = SCC_READ_REGISTER(SMN_STATUS);
++ smn_state = smn_status_register & SMN_STATUS_STATE_MASK;
++
++#ifdef SCC_BRINGUP
++ /* If in Health Check while booting, try to 'bringup' to Secure mode */
++ if (scc_availability == SCC_STATUS_CHECKING &&
++ smn_state == SMN_STATE_HEALTH_CHECK) {
++ /* Code up a simple algorithm for the ASC */
++ SCC_WRITE_REGISTER(SMN_SEQUENCE_START, 0xaaaa);
++ SCC_WRITE_REGISTER(SMN_SEQUENCE_END, 0x5555);
++ SCC_WRITE_REGISTER(SMN_SEQUENCE_CHECK, 0x5555);
++ /* State should be SECURE now */
++ smn_status_register = SCC_READ_REGISTER(SMN_STATUS);
++ smn_state = smn_status_register & SMN_STATUS_STATE_MASK;
++ }
++#endif
++
++ /*
++ * State should be SECURE or NON_SECURE for operation of the part. If
++ * FAIL, mark failed (i.e. limited access to registers). Any other
++ * state, mark unimplemented, as the SCC is unuseable.
++ */
++ if (smn_state == SMN_STATE_SECURE
++ || smn_state == SMN_STATE_NON_SECURE) {
++ /* Healthy */
++ scc_availability = SCC_STATUS_OK;
++ } else if (smn_state == SMN_STATE_FAIL) {
++ scc_availability = SCC_STATUS_FAILED; /* uh oh - unhealthy */
++ scc_perform_callbacks();
++ os_printk(KERN_ERR "SCC: SCC went into FAILED mode\n");
++ } else {
++ /* START, ZEROIZE RAM, HEALTH CHECK, or unknown */
++ scc_availability = SCC_STATUS_UNIMPLEMENTED; /* unuseable */
++ os_printk(KERN_ERR "SCC: SCC declared UNIMPLEMENTED\n");
++ }
++ }
++ /* if availability is initial or ok */
++ return smn_status_register;
++}
++
++/*****************************************************************************/
++/* fn scc_init_ccitt_crc() */
++/*****************************************************************************/
++/*!
++ * Populate the partial CRC lookup table.
++ *
++ * @return none
++ *
++ */
++static void scc_init_ccitt_crc(void)
++{
++ int dividend; /* index for lookup table */
++ uint16_t remainder; /* partial value for a given dividend */
++ int bit; /* index into bits of a byte */
++
++ /*
++ * Compute the remainder of each possible dividend.
++ */
++ for (dividend = 0; dividend < 256; ++dividend) {
++ /*
++ * Start with the dividend followed by zeros.
++ */
++ remainder = dividend << (8);
++
++ /*
++ * Perform modulo-2 division, a bit at a time.
++ */
++ for (bit = 8; bit > 0; --bit) {
++ /*
++ * Try to divide the current data bit.
++ */
++ if (remainder & 0x8000) {
++ remainder = (remainder << 1) ^ CRC_POLYNOMIAL;
++ } else {
++ remainder = (remainder << 1);
++ }
++ }
++
++ /*
++ * Store the result into the table.
++ */
++ scc_crc_lookup_table[dividend] = remainder;
++ }
++
++} /* scc_init_ccitt_crc() */
++
++/*****************************************************************************/
++/* fn grab_config_values() */
++/*****************************************************************************/
++/*!
++ * grab_config_values() will read the SCM Configuration and SMN Status
++ * registers and store away version and size information for later use.
++ *
++ * @return The current value of the SMN Status register.
++ */
++static uint32_t scc_grab_config_values(void)
++{
++ uint32_t config_register;
++ uint32_t smn_status_register = SMN_STATE_FAIL;
++
++ if (scc_availability != SCC_STATUS_UNIMPLEMENTED) {
++ /* access the SCC - these are 'safe' registers */
++ config_register = SCC_READ_REGISTER(SCM_CONFIGURATION);
++ pr_debug("SCC Driver: SCM config is 0x%08x\n", config_register);
++
++ /* Get SMN status and update scc_availability */
++ smn_status_register = scc_update_state();
++ pr_debug("SCC Driver: SMN status is 0x%08x\n",
++ smn_status_register);
++
++ /* save sizes and versions information for later use */
++ scc_configuration.block_size_bytes = (config_register &
++ SCM_CFG_BLOCK_SIZE_MASK)
++ >> SCM_CFG_BLOCK_SIZE_SHIFT;
++
++ scc_configuration.red_ram_size_blocks = (config_register &
++ SCM_CFG_RED_SIZE_MASK)
++ >> SCM_CFG_RED_SIZE_SHIFT;
++
++ scc_configuration.black_ram_size_blocks = (config_register &
++ SCM_CFG_BLACK_SIZE_MASK)
++ >> SCM_CFG_BLACK_SIZE_SHIFT;
++
++ scc_configuration.scm_version = (config_register
++ & SCM_CFG_VERSION_ID_MASK)
++ >> SCM_CFG_VERSION_ID_SHIFT;
++
++ scc_configuration.smn_version = (smn_status_register &
++ SMN_STATUS_VERSION_ID_MASK)
++ >> SMN_STATUS_VERSION_ID_SHIFT;
++
++ if (scc_configuration.scm_version != SCM_VERSION_1) {
++ scc_availability = SCC_STATUS_UNIMPLEMENTED; /* Unknown version */
++ }
++
++ scc_memory_size_bytes = (SCC_BLOCK_SIZE_BYTES() *
++ scc_configuration.
++ black_ram_size_blocks)
++ - SCM_NON_RESERVED_OFFSET;
++
++ /* This last is for driver consumption only */
++ scm_highest_memory_address = SCM_BLACK_MEMORY +
++ (SCC_BLOCK_SIZE_BYTES() *
++ scc_configuration.black_ram_size_blocks);
++ }
++
++ return smn_status_register;
++} /* grab_config_values */
++
++/*****************************************************************************/
++/* fn setup_interrupt_handling() */
++/*****************************************************************************/
++/*!
++ * Register the SCM and SMN interrupt handlers.
++ *
++ * Called from #scc_init()
++ *
++ * @return 0 on success
++ */
++static int setup_interrupt_handling(void)
++{
++ int smn_error_code = -1;
++ int scm_error_code = -1;
++
++ /* Disnable SCM interrupts */
++ SCC_WRITE_REGISTER(SCM_INTERRUPT_CTRL,
++ SCM_INTERRUPT_CTRL_CLEAR_INTERRUPT
++ | SCM_INTERRUPT_CTRL_MASK_INTERRUPTS);
++
++#ifdef USE_SMN_INTERRUPT
++ /* Install interrupt service routine for SMN. */
++ smn_error_code = os_register_interrupt(SCC_DRIVER_NAME,
++ INT_SCC_SMN, scc_irq);
++ if (smn_error_code != 0) {
++ os_printk
++ ("SCC Driver: Error installing SMN Interrupt Handler: %d\n",
++ smn_error_code);
++ } else {
++ smn_irq_set = 1; /* remember this for cleanup */
++ /* Enable SMN interrupts */
++ SCC_WRITE_REGISTER(SMN_COMMAND,
++ SMN_COMMAND_CLEAR_INTERRUPT |
++ SMN_COMMAND_ENABLE_INTERRUPT);
++ }
++#else
++ smn_error_code = 0; /* no problems... will handle later */
++#endif
++
++ /*
++ * Install interrupt service routine for SCM (or both together).
++ */
++ scm_error_code = os_register_interrupt(SCC_DRIVER_NAME,
++ INT_SCC_SCM, scc_irq);
++ if (scm_error_code != 0) {
++#ifndef MXC
++ os_printk
++ ("SCC Driver: Error installing SCM Interrupt Handler: %d\n",
++ scm_error_code);
++#else
++ os_printk
++ ("SCC Driver: Error installing SCC Interrupt Handler: %d\n",
++ scm_error_code);
++#endif
++ } else {
++ scm_irq_set = 1; /* remember this for cleanup */
++#if defined(USE_SMN_INTERRUPT) && !defined(NO_SMN_INTERRUPT)
++ /* Enable SMN interrupts */
++ SCC_WRITE_REGISTER(SMN_COMMAND,
++ SMN_COMMAND_CLEAR_INTERRUPT |
++ SMN_COMMAND_ENABLE_INTERRUPT);
++#endif
++ }
++
++ /* Return an error if one was encountered */
++ return scm_error_code ? scm_error_code : smn_error_code;
++} /* setup_interrupt_handling */
++
++/*****************************************************************************/
++/* fn scc_do_crypto() */
++/*****************************************************************************/
++/*! Have the SCM perform the crypto function.
++ *
++ * Set up length register, and the store @c scm_control into control register
++ * to kick off the operation. Wait for completion, gather status, clear
++ * interrupt / status.
++ *
++ * @param byte_count number of ...
[truncated message content] |
|
From: Julien B a. A. <ar...@us...> - 2011-10-19 21:32:55
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 36116f62d98bb248e435349387498ee3c704f408 (commit)
via 8cb06cbe4400524639beecc3f80b2383887f2017 (commit)
via a2832959c94c518b4e9a34380d24a1ab16de2640 (commit)
from 388c5b328a8fab881fcbb3f2f05433e253509325 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 36116f62d98bb248e435349387498ee3c704f408
Merge: 8cb06cb 388c5b3
Author: Julien Boibessot <jul...@ar...>
Date: Wed Oct 19 23:32:00 2011 +0200
Merge branch 'master' of ssh://armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit 8cb06cbe4400524639beecc3f80b2383887f2017
Author: Julien Boibessot <jul...@ar...>
Date: Wed Oct 19 20:00:03 2011 +0200
[BUILDROOT] 2011.05: Add libmodbus package
commit a2832959c94c518b4e9a34380d24a1ab16de2640
Author: Julien Boibessot <jul...@ar...>
Date: Wed Oct 19 19:59:04 2011 +0200
[BUILDROOT] 2011.05: Add libmodbus package
-----------------------------------------------------------------------
Summary of changes:
.../2011.05/162-libmodbus-add_package.patch | 45 ++++++++++++++++++++
patches/buildroot/2011.05/cleanup_buildroot.sh | 1 +
2 files changed, 46 insertions(+), 0 deletions(-)
create mode 100644 patches/buildroot/2011.05/162-libmodbus-add_package.patch
diff --git a/patches/buildroot/2011.05/162-libmodbus-add_package.patch b/patches/buildroot/2011.05/162-libmodbus-add_package.patch
new file mode 100644
index 0000000..0c34810
--- /dev/null
+++ b/patches/buildroot/2011.05/162-libmodbus-add_package.patch
@@ -0,0 +1,45 @@
+Sent to BR guys on 19th October 2011.
+
+Signed-off-by: Julien Boibessot <jul...@ar...>
+
+Index: buildroot/package/Config.in
+===================================================================
+--- buildroot.orig/package/Config.in 2011-10-18 09:33:47.000000000 +0200
++++ buildroot/package/Config.in 2011-10-19 19:54:51.000000000 +0200
+@@ -344,6 +344,7 @@
+ source "package/libeXosip2/Config.in"
+ source "package/libidn/Config.in"
+ source "package/libmicrohttpd/Config.in"
++source "package/libmodbus/Config.in"
+ source "package/neon/Config.in"
+ source "package/libnl/Config.in"
+ source "package/libpcap/Config.in"
+Index: buildroot/package/libmodbus/Config.in
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ buildroot/package/libmodbus/Config.in 2011-10-18 09:40:11.000000000 +0200
+@@ -0,0 +1,8 @@
++config BR2_PACKAGE_LIBMODBUS
++ bool "libmodbus"
++ help
++ libmodbus is a free software library to send/receive data according
++ to the Modbus protocol. This library is written in C and supports
++ RTU (serial) and TCP (Ethernet) communications.
++
++ http://libmodbus.org
+Index: buildroot/package/libmodbus/libmodbus.mk
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ buildroot/package/libmodbus/libmodbus.mk 2011-10-19 19:52:20.000000000 +0200
+@@ -0,0 +1,11 @@
++#############################################################
++#
++# libmodbus
++#
++#############################################################
++LIBMODBUS_VERSION = 3.0.1
++LIBMODBUS_SITE = http://github.com/downloads/stephane/libmodbus
++LIBMODBUS_SOURCE = libmodbus-$(LIBMODBUS_VERSION).tar.gz
++LIBMODBUS_INSTALL_STAGING = YES
++
++$(eval $(call AUTOTARGETS,package,libmodbus))
diff --git a/patches/buildroot/2011.05/cleanup_buildroot.sh b/patches/buildroot/2011.05/cleanup_buildroot.sh
index 2623f4a..dffb68a 100755
--- a/patches/buildroot/2011.05/cleanup_buildroot.sh
+++ b/patches/buildroot/2011.05/cleanup_buildroot.sh
@@ -57,3 +57,4 @@ rm -f buildroot/toolchain/uClibc/*.patch
rm -f buildroot/package/ntp/ntp-nano.patch
rm -f buildroot/package/busybox/busybox-1.16.2/*.patch
rm -f buildroot/target/generic/Config.in
+rm -rf buildroot/package/libmodbus
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2011-10-19 09:30:59
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 388c5b328a8fab881fcbb3f2f05433e253509325 (commit)
via 76d730abbdd8c41f10e4eadef8892374f73f8252 (commit)
from 4bead27ab869003c0f23cddee5ed10140bab61c9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 388c5b328a8fab881fcbb3f2f05433e253509325
Author: Julien Boibessot <jul...@ar...>
Date: Wed Oct 19 11:24:27 2011 +0200
Indent
commit 76d730abbdd8c41f10e4eadef8892374f73f8252
Author: Julien Boibessot <jul...@ar...>
Date: Wed Oct 19 11:21:31 2011 +0200
[DEBUG] Add i.MX51 SCC registers to imxregs
-----------------------------------------------------------------------
Summary of changes:
target/linux/debug/imxregs/imx51regs.h | 90 +++++++++++++++++++++++--------
1 files changed, 67 insertions(+), 23 deletions(-)
diff --git a/target/linux/debug/imxregs/imx51regs.h b/target/linux/debug/imxregs/imx51regs.h
index 4d8d787..cc6b0b5 100644
--- a/target/linux/debug/imxregs/imx51regs.h
+++ b/target/linux/debug/imxregs/imx51regs.h
@@ -62,30 +62,30 @@ static struct reg_info regs[] =
{ "CCGR6", 0x73fd4080, 0, 0xffffffff, 'x', "CCM Clock Gating Register 6" },
{ "CMEOR", 0x73fd4084, 0, 0xffffffff, 'x', "CCM Module Enable Override Register" },
/* GPT */
-{ "GPTCR_1", 0x73fa0000, 0, 0xffffffff, 'x', "GPT1 Control Register" },
-{ "GPTPR_1", 0x73fa0004, 0, 0xffffffff, 'x', "GPT1 Prescaler Register" },
-{ "GPTSR_1", 0x73fa0008, 0, 0xffffffff, 'x', "GPT1 Status Register" },
-{ "GPTIR_1", 0x73fa000c, 0, 0xffffffff, 'x', "GPT1 Interrupt Register" },
-{ "GPTOCR1_1", 0x73fa0010, 0, 0xffffffff, 'x', "GPT1 Output Compare Register 1" },
-{ "GPTOCR2_1", 0x73fa0014, 0, 0xffffffff, 'x', "GPT1 Output Compare Register 2" },
-{ "GPTOCR3_1", 0x73fa0018, 0, 0xffffffff, 'x', "GPT1 Output Compare Register 3" },
-{ "GPTICR1_1", 0x73fa001c, 0, 0xffffffff, 'x', "GPT1 Input capture Register 1" },
-{ "GPTICR2_1", 0x73fa0020, 0, 0xffffffff, 'x', "GPT1 Input capture Register 2" },
-{ "GPTCNT_1", 0x73fa0024, 0, 0xffffffff, 'x', "GPT1 Counter Register" },
+{ "GPTCR_1", 0x73fa0000, 0, 0xffffffff, 'x', "GPT1 Control Register" },
+{ "GPTPR_1", 0x73fa0004, 0, 0xffffffff, 'x', "GPT1 Prescaler Register" },
+{ "GPTSR_1", 0x73fa0008, 0, 0xffffffff, 'x', "GPT1 Status Register" },
+{ "GPTIR_1", 0x73fa000c, 0, 0xffffffff, 'x', "GPT1 Interrupt Register" },
+{ "GPTOCR1_1", 0x73fa0010, 0, 0xffffffff, 'x', "GPT1 Output Compare Register 1" },
+{ "GPTOCR2_1", 0x73fa0014, 0, 0xffffffff, 'x', "GPT1 Output Compare Register 2" },
+{ "GPTOCR3_1", 0x73fa0018, 0, 0xffffffff, 'x', "GPT1 Output Compare Register 3" },
+{ "GPTICR1_1", 0x73fa001c, 0, 0xffffffff, 'x', "GPT1 Input capture Register 1" },
+{ "GPTICR2_1", 0x73fa0020, 0, 0xffffffff, 'x', "GPT1 Input capture Register 2" },
+{ "GPTCNT_1", 0x73fa0024, 0, 0xffffffff, 'x', "GPT1 Counter Register" },
/* PWM1 */
-{ "PWMCR_1", 0x73fb4000, 0, 0xffffffff, 'x', "PWM1 Control Register" },
-{ "PWMSR_1", 0x73fb4004, 0, 0xffffffff, 'x', "PWM1 Status Register" },
-{ "PWMIR_1", 0x73fb4008, 0, 0xffffffff, 'x', "PWM1 Interrupt Register" },
-{ "PWMSAR_1", 0x73fb400c, 0, 0xffffffff, 'x', "PWM1 Sample Register" },
-{ "PWMPR_1", 0x73fb4010, 0, 0xffffffff, 'x', "PWM1 Period Register" },
-{ "PWMCNR_1", 0x73fb4014, 0, 0xffffffff, 'x', "PWM1 Counter Register" },
+{ "PWMCR_1", 0x73fb4000, 0, 0xffffffff, 'x', "PWM1 Control Register" },
+{ "PWMSR_1", 0x73fb4004, 0, 0xffffffff, 'x', "PWM1 Status Register" },
+{ "PWMIR_1", 0x73fb4008, 0, 0xffffffff, 'x', "PWM1 Interrupt Register" },
+{ "PWMSAR_1", 0x73fb400c, 0, 0xffffffff, 'x', "PWM1 Sample Register" },
+{ "PWMPR_1", 0x73fb4010, 0, 0xffffffff, 'x', "PWM1 Period Register" },
+{ "PWMCNR_1", 0x73fb4014, 0, 0xffffffff, 'x', "PWM1 Counter Register" },
/* PWM2 */
-{ "PWMCR_2", 0x73fb8000, 0, 0xffffffff, 'x', "PWM2 Control Register" },
-{ "PWMSR_2", 0x73fb8004, 0, 0xffffffff, 'x', "PWM2 Status Register" },
-{ "PWMIR_2", 0x73fb8008, 0, 0xffffffff, 'x', "PWM2 Interrupt Register" },
-{ "PWMSAR_2", 0x73fb800c, 0, 0xffffffff, 'x', "PWM2 Sample Register" },
-{ "PWMPR_2", 0x73fb8010, 0, 0xffffffff, 'x', "PWM2 Period Register" },
-{ "PWMCNR_2", 0x73fb8014, 0, 0xffffffff, 'x', "PWM2 Counter Register" },
+{ "PWMCR_2", 0x73fb8000, 0, 0xffffffff, 'x', "PWM2 Control Register" },
+{ "PWMSR_2", 0x73fb8004, 0, 0xffffffff, 'x', "PWM2 Status Register" },
+{ "PWMIR_2", 0x73fb8008, 0, 0xffffffff, 'x', "PWM2 Interrupt Register" },
+{ "PWMSAR_2", 0x73fb800c, 0, 0xffffffff, 'x', "PWM2 Sample Register" },
+{ "PWMPR_2", 0x73fb8010, 0, 0xffffffff, 'x', "PWM2 Period Register" },
+{ "PWMCNR_2", 0x73fb8014, 0, 0xffffffff, 'x', "PWM2 Counter Register" },
/* I2C1 */
{ "IADR_1", 0x83fc8000, 0, 0xffffffff, 'x', "I2C1 Address Register" },
{ "IFDR_1", 0x83fc8004, 0, 0xffffffff, 'x', "I2C1 Frequency Divider Register" },
@@ -99,7 +99,7 @@ static struct reg_info regs[] =
{ "I2SR_2", 0x83fc400c, 0, 0xffffffff, 'x', "I2C2 Status Register" },
{ "I2DR_2", 0x83fc4010, 0, 0xffffffff, 'x', "I2C2 Data I/O Register" },
/* FEC */
-{ "EIR", 0x83fec004, 0, 0xffffffff, 'x', "FEC Interrupt Event Register" },
+{ "EIR", 0x83fec004, 0, 0xffffffff, 'x', "FEC Interrupt Event Register" },
/* AUDMUX */
{ "PTCR1", 0x83fd0000, 0, 0xffffffff, 'x', "Port Timing Control Register 1" },
{ "PDCR1", 0x83fd0004, 0, 0xffffffff, 'x', "Port Data Control Register 1" },
@@ -185,6 +185,50 @@ static struct reg_info regs[] =
{ "SaharaEn3", 0x83f98048, 0, 0xffffffff, 'x', "Software setting. Upon setting proper value allows SAHARA_EN blowing." },
{ "SaharaEn4", 0x83f9804C, 0, 0xffffffff, 'x', "Software setting. Upon setting proper value allows SAHARA_EN blowing." },
{ "SaharaEn5", 0x83f98050, 0, 0xffffffff, 'x', "Software setting. Upon setting proper value allows SAHARA_EN blowing." },
+/* SCC */
+{ "SCC_VER", 0x83fb4000, 0, 0xffffffff, 'x', "SCC Version" },
+{ "SCC_IC", 0x83fb4008, 0, 0xffffffff, 'x', "SCC Interrupt Control" },
+{ "SCC_CS", 0x83fb400c, 0, 0xffffffff, 'x', "SCC Command Status" },
+{ "SCC_ES", 0x83fb4010, 0, 0xffffffff, 'x', "SCC Error Status" },
+{ "SCC_DMAF", 0x83fb4014, 0, 0xffffffff, 'x', "SCC DMA Fault" },
+{ "SCC_PART", 0x83fb4018, 0, 0xffffffff, 'x', "SCC Partition Owners" },
+{ "SCC_PART_EN",0x83fb401c, 0, 0xffffffff, 'x', "SCC Partitions Engaged" },
+{ "SCC_UN0", 0x83fb4020, 0, 0xffffffff, 'x', "SCC Unique Number 0" },
+{ "SCC_UN1", 0x83fb4024, 0, 0xffffffff, 'x', "SCC Unique Number 1" },
+{ "SCC_UN2", 0x83fb4028, 0, 0xffffffff, 'x', "SCC Unique Number 2" },
+{ "SCC_UN3", 0x83fb402c, 0, 0xffffffff, 'x', "SCC Unique Number 3" },
+{ "SCC_ZERO", 0x83fb4050, 0, 0xffffffff, 'x', "SCC Zeroize Command" },
+{ "SCC_CMD", 0x83fb4054, 0, 0xffffffff, 'x', "SCC Cipher Command" },
+{ "SCC_BLACK", 0x83fb4058, 0, 0xffffffff, 'x', "SCC Cipher Black RAM Start Address" },
+{ "SCC_DBG", 0x83fb405c, 0, 0xffffffff, 'x', "SCC Internal Debug" },
+{ "SCC_CINIT1", 0x83fb4060, 0, 0xffffffff, 'x', "SCC Cipher Initialization Vector [127-96]" },
+{ "SCC_CINIT2", 0x83fb4064, 0, 0xffffffff, 'x', "SCC Cipher Initialization Vector [95-64]" },
+{ "SCC_CINIT3", 0x83fb4068, 0, 0xffffffff, 'x', "SCC Cipher Initialization Vector [63-32]" },
+{ "SCC_CINIT4", 0x83fb406c, 0, 0xffffffff, 'x', "SCC Cipher Initialization Vector [31-0]" },
+{ "SMID_PART0", 0x83fb4080, 0, 0xffffffff, 'x', "SCC SMID Partition 0" },
+{ "MAP_PART0", 0x83fb4084, 0, 0xffffffff, 'x', "SCC Master Access Permissions Partition 0" },
+{ "SMID_PART1", 0x83fb4088, 0, 0xffffffff, 'x', "SCC SMID Partition 1" },
+{ "MAP_PART1", 0x83fb408c, 0, 0xffffffff, 'x', "SCC Master Access Permissions Partition 1" },
+{ "SMID_PART2", 0x83fb4090, 0, 0xffffffff, 'x', "SCC SMID Partition 2" },
+{ "MAP_PART2", 0x83fb4094, 0, 0xffffffff, 'x', "SCC Master Access Permissions Partition 2" },
+{ "SMID_PART3", 0x83fb4098, 0, 0xffffffff, 'x', "SCC SMID Partition 3" },
+{ "MAP_PART3", 0x83fb409c, 0, 0xffffffff, 'x', "SCC Master Access Permissions Partition 3" },
+{ "SMON_STAT", 0x83fb4100, 0, 0xffffffff, 'x', "SCC Security Monitor Status" },
+{ "SMON_CMD", 0x83fb4104, 0, 0xffffffff, 'x', "SCC Security Monitor Command" },
+{ "SEQ_START", 0x83fb4108, 0, 0xffffffff, 'x', "SCC Sequence Start" },
+{ "SEQ_END", 0x83fb410c, 0, 0xffffffff, 'x', "SCC Sequence End" },
+{ "SEQ_CHK", 0x83fb4110, 0, 0xffffffff, 'x', "SCC Sequence Check" },
+{ "BIT_COUNT", 0x83fb4114, 0, 0xffffffff, 'x', "SCC Bit Count" },
+{ "BANK_INC", 0x83fb4118, 0, 0xffffffff, 'x', "SCC Bit Bank Increment Size" },
+{ "BANK_DEC", 0x83fb411c, 0, 0xffffffff, 'x', "SCC Bit Bank Decrement" },
+{ "CMP_SZ", 0x83fb4120, 0, 0xffffffff, 'x', "SCC Compare Size" },
+{ "PLN_CHK", 0x83fb4124, 0, 0xffffffff, 'x', "SCC Plaintext Check" },
+{ "CPH_CHK", 0x83fb4128, 0, 0xffffffff, 'x', "SCC Ciphertext Check" },
+{ "TIMERIV", 0x83fb412c, 0, 0xffffffff, 'x', "SCC Timer IV" },
+{ "TIMER_CTL", 0x83fb4130, 0, 0xffffffff, 'x', "SCC Timer Control" },
+{ "SEC_VIO", 0x83fb4134, 0, 0xffffffff, 'x', "SCC Security Violation Detector" },
+{ "SEC_TIMER", 0x83fb4138, 0, 0xffffffff, 'x', "SCC Security Timer" },
+{ "HA_CONF", 0x83fb413c, 0, 0xffffffff, 'x', "SCC High Assurance Configuration" },
/* SSI 3 */
{ "STX0_3", 0x83fe8000, 0, 0xffffffff, 'x', "SSI3 Transmit Data Register 0" },
{ "STX1_3", 0x83fe8004, 0, 0xffffffff, 'x', "SSI3 Transmit Data Register 1" },
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2011-10-14 16:39:50
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 4bead27ab869003c0f23cddee5ed10140bab61c9 (commit)
from b37a1259a1e410dff312ad1a1fa2378a071dfbf2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 4bead27ab869003c0f23cddee5ed10140bab61c9
Author: Julien Boibessot <jul...@ar...>
Date: Fri Oct 14 18:38:58 2011 +0200
[BUILDROOT] Bump used busybox version to 1.18.5
-----------------------------------------------------------------------
Summary of changes:
buildroot/configs/apf27_defconfig | 1 -
buildroot/configs/apf27_webradio_defconfig | 1 -
buildroot/configs/apf27test_defconfig | 1 -
buildroot/configs/apf51_defconfig | 1 -
buildroot/configs/apf51test_defconfig | 1 -
buildroot/configs/apf9328_defconfig | 1 -
buildroot/configs/apf9328test_defconfig | 1 -
buildroot/configs/pps_defconfig | 1 -
.../target/device/armadeus/busybox-1.18.5.config | 1 +
.../{busybox-1.16.2.config => busybox-1.18.config} | 210 +++++++++++++-------
.../2011.05/161-busybox-bump_1.18_version.patch | 17 ++
11 files changed, 156 insertions(+), 80 deletions(-)
create mode 120000 buildroot/target/device/armadeus/busybox-1.18.5.config
copy buildroot/target/device/armadeus/{busybox-1.16.2.config => busybox-1.18.config} (90%)
create mode 100644 patches/buildroot/2011.05/161-busybox-bump_1.18_version.patch
diff --git a/buildroot/configs/apf27_defconfig b/buildroot/configs/apf27_defconfig
index bb86aff..0cf91ce 100644
--- a/buildroot/configs/apf27_defconfig
+++ b/buildroot/configs/apf27_defconfig
@@ -36,7 +36,6 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="$(ARMADEUS_PATH)/rootfs/post_build.sh"
BR2_TARGET_ARMADEUS=y
BR2_BOARD_NAME="apf27"
BR2_CPU_NAME="imx27"
-BR2_BUSYBOX_VERSION_1_16_X=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(ARMADEUS_PATH)/busybox-$(BR2_BUSYBOX_VERSION).config"
BR2_PACKAGE_FPGAREGS=y
BR2_PACKAGE_IMXREGS=y
diff --git a/buildroot/configs/apf27_webradio_defconfig b/buildroot/configs/apf27_webradio_defconfig
index ba0b7b1..1a51d54 100644
--- a/buildroot/configs/apf27_webradio_defconfig
+++ b/buildroot/configs/apf27_webradio_defconfig
@@ -36,7 +36,6 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="$(ARMADEUS_PATH)/rootfs/post_build.sh"
BR2_TARGET_ARMADEUS=y
BR2_BOARD_NAME="apf27"
BR2_CPU_NAME="imx27"
-BR2_BUSYBOX_VERSION_1_16_X=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(ARMADEUS_PATH)/busybox-$(BR2_BUSYBOX_VERSION).config"
BR2_PACKAGE_FPGAREGS=y
BR2_PACKAGE_IMXREGS=y
diff --git a/buildroot/configs/apf27test_defconfig b/buildroot/configs/apf27test_defconfig
index 4534a6d..8016f57 100644
--- a/buildroot/configs/apf27test_defconfig
+++ b/buildroot/configs/apf27test_defconfig
@@ -36,7 +36,6 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="$(ARMADEUS_PATH)/rootfs/post_build.sh"
BR2_TARGET_ARMADEUS=y
BR2_BOARD_NAME="apf27"
BR2_CPU_NAME="imx27"
-BR2_BUSYBOX_VERSION_1_16_X=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(ARMADEUS_PATH)/busybox-$(BR2_BUSYBOX_VERSION).config"
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_AS_DEVICES=y
diff --git a/buildroot/configs/apf51_defconfig b/buildroot/configs/apf51_defconfig
index aa8c881..90a169f 100644
--- a/buildroot/configs/apf51_defconfig
+++ b/buildroot/configs/apf51_defconfig
@@ -39,7 +39,6 @@ BR2_TARGET_ARMADEUS=y
BR2_BOARD_NAME="apf51"
BR2_CPU_NAME="imx51"
BR2_TARGET_ARMADEUS_SDRAM_SIZE="256"
-BR2_BUSYBOX_VERSION_1_16_X=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(ARMADEUS_PATH)/busybox-$(BR2_BUSYBOX_VERSION).config"
BR2_PACKAGE_FPGAREGS=y
BR2_PACKAGE_ARMADEUS_FPGA_FIRMWARE=y
diff --git a/buildroot/configs/apf51test_defconfig b/buildroot/configs/apf51test_defconfig
index 41506d6..44ec864 100644
--- a/buildroot/configs/apf51test_defconfig
+++ b/buildroot/configs/apf51test_defconfig
@@ -39,7 +39,6 @@ BR2_TARGET_ARMADEUS=y
BR2_BOARD_NAME="apf51"
BR2_CPU_NAME="imx51"
BR2_TARGET_ARMADEUS_SDRAM_SIZE="256"
-BR2_BUSYBOX_VERSION_1_16_X=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(ARMADEUS_PATH)/busybox-$(BR2_BUSYBOX_VERSION).config"
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_AS_DEVICES=y
diff --git a/buildroot/configs/apf9328_defconfig b/buildroot/configs/apf9328_defconfig
index 4edd418..e3d01a3 100644
--- a/buildroot/configs/apf9328_defconfig
+++ b/buildroot/configs/apf9328_defconfig
@@ -37,7 +37,6 @@ BR2_TARGET_ARMADEUS=y
BR2_BOARD_NAME="apf9328"
BR2_CPU_NAME="imxl"
BR2_TARGET_ARMADEUS_SDRAM_SIZE="16"
-BR2_BUSYBOX_VERSION_1_16_X=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(ARMADEUS_PATH)/busybox-$(BR2_BUSYBOX_VERSION).config"
BR2_PACKAGE_FPGAREGS=y
BR2_PACKAGE_IMXREGS=y
diff --git a/buildroot/configs/apf9328test_defconfig b/buildroot/configs/apf9328test_defconfig
index 819a903..14a5df4 100644
--- a/buildroot/configs/apf9328test_defconfig
+++ b/buildroot/configs/apf9328test_defconfig
@@ -37,7 +37,6 @@ BR2_TARGET_ARMADEUS=y
BR2_BOARD_NAME="apf9328"
BR2_CPU_NAME="imxl"
BR2_TARGET_ARMADEUS_SDRAM_SIZE="16"
-BR2_BUSYBOX_VERSION_1_16_X=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(ARMADEUS_PATH)/busybox-$(BR2_BUSYBOX_VERSION).config"
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_AS_DEVICES=y
diff --git a/buildroot/configs/pps_defconfig b/buildroot/configs/pps_defconfig
index e495d69..955eb19 100644
--- a/buildroot/configs/pps_defconfig
+++ b/buildroot/configs/pps_defconfig
@@ -34,7 +34,6 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="$(ARMADEUS_PATH)/rootfs/post_build.sh"
BR2_TARGET_ARMADEUS=y
BR2_BOARD_NAME="pps"
BR2_CPU_NAME="imx27"
-BR2_BUSYBOX_VERSION_1_16_X=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(ARMADEUS_PATH)/busybox-$(BR2_BUSYBOX_VERSION).config"
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
BR2_PACKAGE_FPGAREGS=y
diff --git a/buildroot/target/device/armadeus/busybox-1.18.5.config b/buildroot/target/device/armadeus/busybox-1.18.5.config
new file mode 120000
index 0000000..0e00a73
--- /dev/null
+++ b/buildroot/target/device/armadeus/busybox-1.18.5.config
@@ -0,0 +1 @@
+busybox-1.18.config
\ No newline at end of file
diff --git a/buildroot/target/device/armadeus/busybox-1.16.2.config b/buildroot/target/device/armadeus/busybox-1.18.config
similarity index 90%
copy from buildroot/target/device/armadeus/busybox-1.16.2.config
copy to buildroot/target/device/armadeus/busybox-1.18.config
index 068af53..40bd23a 100644
--- a/buildroot/target/device/armadeus/busybox-1.16.2.config
+++ b/buildroot/target/device/armadeus/busybox-1.18.config
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Busybox version: 1.16.2
-# Fri Oct 15 23:59:04 2010
+# Busybox version: 1.18.5
+# Fri Oct 14 18:14:33 2011
#
CONFIG_HAVE_DOT_CONFIG=y
@@ -16,6 +16,7 @@ CONFIG_DESKTOP=y
# CONFIG_EXTRA_COMPAT is not set
# CONFIG_INCLUDE_SUSv2 is not set
# CONFIG_USE_PORTABLE_CODE is not set
+CONFIG_PLATFORM_LINUX=y
CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
@@ -23,12 +24,23 @@ CONFIG_SHOW_USAGE=y
CONFIG_FEATURE_VERBOSE_USAGE=y
CONFIG_FEATURE_COMPRESS_USAGE=y
CONFIG_FEATURE_INSTALLER=y
+# CONFIG_INSTALL_NO_USR is not set
CONFIG_LOCALE_SUPPORT=y
-# CONFIG_FEATURE_ASSUME_UNICODE is not set
+CONFIG_UNICODE_SUPPORT=y
+# CONFIG_UNICODE_USING_LOCALE is not set
# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
+CONFIG_SUBST_WCHAR=63
+CONFIG_LAST_SUPPORTED_WCHAR=767
+# CONFIG_UNICODE_COMBINING_WCHARS is not set
+# CONFIG_UNICODE_WIDE_WCHARS is not set
+# CONFIG_UNICODE_BIDI_SUPPORT is not set
+# CONFIG_UNICODE_NEUTRAL_TABLE is not set
+# CONFIG_UNICODE_PRESERVE_BROKEN is not set
CONFIG_LONG_OPTS=y
CONFIG_FEATURE_DEVPTS=y
CONFIG_FEATURE_CLEAN_UP=y
+CONFIG_FEATURE_WTMP=y
+CONFIG_FEATURE_UTMP=y
# CONFIG_FEATURE_PIDFILE is not set
CONFIG_FEATURE_SUID=y
# CONFIG_FEATURE_SUID_CONFIG is not set
@@ -63,9 +75,8 @@ CONFIG_NO_DEBUG_LIB=y
# CONFIG_EFENCE is not set
#
-# Installation Options
+# Installation Options ("make install" behavior)
#
-# CONFIG_INSTALL_NO_USR is not set
CONFIG_INSTALL_APPLET_SYMLINKS=y
# CONFIG_INSTALL_APPLET_HARDLINKS is not set
# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
@@ -82,6 +93,7 @@ CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SIZE_VS_SPEED=1
CONFIG_FEATURE_FAST_TOP=y
# CONFIG_FEATURE_ETC_NETWORKS is not set
+CONFIG_FEATURE_USE_TERMIOS=y
CONFIG_FEATURE_EDITING=y
CONFIG_FEATURE_EDITING_MAX_LEN=1024
CONFIG_FEATURE_EDITING_VI=y
@@ -105,12 +117,14 @@ CONFIG_FEATURE_HWIB=y
#
# Archival Utilities
#
+CONFIG_FEATURE_SEAMLESS_XZ=y
# CONFIG_FEATURE_SEAMLESS_LZMA is not set
# CONFIG_FEATURE_SEAMLESS_BZ2 is not set
# CONFIG_FEATURE_SEAMLESS_GZ is not set
# CONFIG_FEATURE_SEAMLESS_Z is not set
CONFIG_AR=y
# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
+CONFIG_FEATURE_AR_CREATE=y
CONFIG_BUNZIP2=y
# CONFIG_BZIP2 is not set
CONFIG_CPIO=y
@@ -134,19 +148,34 @@ CONFIG_FEATURE_TAR_FROM=y
# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+CONFIG_FEATURE_TAR_TO_COMMAND=y
# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set
+# CONFIG_FEATURE_TAR_SELINUX is not set
# CONFIG_UNCOMPRESS is not set
CONFIG_UNLZMA=y
# CONFIG_FEATURE_LZMA_FAST is not set
+CONFIG_LZMA=y
+CONFIG_UNXZ=y
+CONFIG_XZ=y
CONFIG_UNZIP=y
#
# Coreutils
#
CONFIG_BASENAME=y
-# CONFIG_CAL is not set
CONFIG_CAT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+# CONFIG_FEATURE_DATE_NANO is not set
+CONFIG_FEATURE_DATE_COMPAT=y
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_BASE64=y
+# CONFIG_CAL is not set
CONFIG_CATV=y
CONFIG_CHGRP=y
CONFIG_CHMOD=y
@@ -158,9 +187,6 @@ CONFIG_CKSUM=y
CONFIG_CP=y
# CONFIG_FEATURE_CP_LONG_OPTIONS is not set
CONFIG_CUT=y
-CONFIG_DATE=y
-CONFIG_FEATURE_DATE_ISOFMT=y
-CONFIG_FEATURE_DATE_COMPAT=y
CONFIG_DD=y
CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
@@ -241,12 +267,7 @@ CONFIG_TAIL=y
CONFIG_FEATURE_FANCY_TAIL=y
CONFIG_TEE=y
CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
-CONFIG_TEST=y
-CONFIG_FEATURE_TEST_64=y
CONFIG_TOUCH=y
-CONFIG_TR=y
-CONFIG_FEATURE_TR_CLASSES=y
-CONFIG_FEATURE_TR_EQUIV=y
CONFIG_TRUE=y
CONFIG_TTY=y
CONFIG_UNAME=y
@@ -286,6 +307,7 @@ CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
# Console Utilities
#
CONFIG_CHVT=y
+CONFIG_FGCONSOLE=y
CONFIG_CLEAR=y
CONFIG_DEALLOCVT=y
CONFIG_DUMPKMAP=y
@@ -306,6 +328,12 @@ CONFIG_SETLOGCONS=y
# CONFIG_SHOWKEY is not set
#
+# Common options for loadfont and setfont
+#
+CONFIG_FEATURE_LOADFONT_PSF2=y
+CONFIG_FEATURE_LOADFONT_RAW=y
+
+#
# Debian Utilities
#
CONFIG_MKTEMP=y
@@ -321,6 +349,7 @@ CONFIG_WHICH=y
#
# Editors
#
+CONFIG_PATCH=y
CONFIG_AWK=y
CONFIG_FEATURE_AWK_LIBM=y
CONFIG_CMP=y
@@ -328,7 +357,6 @@ CONFIG_DIFF=y
# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
CONFIG_FEATURE_DIFF_DIR=y
# CONFIG_ED is not set
-CONFIG_PATCH=y
CONFIG_SED=y
CONFIG_VI=y
CONFIG_FEATURE_VI_MAX_LEN=1024
@@ -342,6 +370,7 @@ CONFIG_FEATURE_VI_READONLY=y
CONFIG_FEATURE_VI_SETOPTS=y
CONFIG_FEATURE_VI_SET=y
CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_ASK_TERMINAL=y
CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
CONFIG_FEATURE_ALLOW_EXEC=y
@@ -384,6 +413,12 @@ CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
#
# Init Utilities
#
+CONFIG_BOOTCHARTD=y
+CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER=y
+CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE=y
+CONFIG_HALT=y
+# CONFIG_FEATURE_CALL_TELINIT is not set
+CONFIG_TELINIT_PATH=""
CONFIG_INIT=y
CONFIG_FEATURE_USE_INITTAB=y
CONFIG_FEATURE_KILL_REMOVED=y
@@ -393,33 +428,31 @@ CONFIG_FEATURE_INIT_SCTTY=y
CONFIG_FEATURE_EXTRA_QUIET=y
# CONFIG_FEATURE_INIT_COREDUMPS is not set
CONFIG_FEATURE_INITRD=y
-CONFIG_HALT=y
-# CONFIG_FEATURE_CALL_TELINIT is not set
-CONFIG_TELINIT_PATH=""
+CONFIG_INIT_TERMINAL_TYPE="linux"
CONFIG_MESG=y
#
# Login/Password Management Utilities
#
+CONFIG_ADD_SHELL=y
+CONFIG_REMOVE_SHELL=y
CONFIG_FEATURE_SHADOWPASSWDS=y
# CONFIG_USE_BB_PWD_GRP is not set
# CONFIG_USE_BB_SHADOW is not set
CONFIG_USE_BB_CRYPT=y
# CONFIG_USE_BB_CRYPT_SHA is not set
-CONFIG_ADDGROUP=y
-# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set
-# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
-CONFIG_DELGROUP=y
-# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
-# CONFIG_FEATURE_CHECK_NAMES is not set
CONFIG_ADDUSER=y
# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+# CONFIG_FEATURE_CHECK_NAMES is not set
CONFIG_FIRST_SYSTEM_ID=100
CONFIG_LAST_SYSTEM_ID=999
+CONFIG_ADDGROUP=y
+# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set
+# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
CONFIG_DELUSER=y
+CONFIG_DELGROUP=y
+# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
CONFIG_GETTY=y
-CONFIG_FEATURE_UTMP=y
-CONFIG_FEATURE_WTMP=y
CONFIG_LOGIN=y
# CONFIG_PAM is not set
# CONFIG_LOGIN_SCRIPTS is not set
@@ -441,10 +474,12 @@ CONFIG_VLOCK=y
CONFIG_CHATTR=y
CONFIG_FSCK=y
CONFIG_LSATTR=y
+# CONFIG_TUNE2FS is not set
#
# Linux Module Utilities
#
+CONFIG_MODINFO=y
# CONFIG_MODPROBE_SMALL is not set
# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set
# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
@@ -475,6 +510,8 @@ CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
#
# Linux System Utilities
#
+CONFIG_BLOCKDEV=y
+CONFIG_REV=y
# CONFIG_ACPID is not set
# CONFIG_FEATURE_ACPID_COMPAT is not set
# CONFIG_BLKID is not set
@@ -492,8 +529,10 @@ CONFIG_FEATURE_FDISK_WRITABLE=y
# CONFIG_FEATURE_SGI_LABEL is not set
# CONFIG_FEATURE_SUN_LABEL is not set
# CONFIG_FEATURE_OSF_LABEL is not set
+# CONFIG_FEATURE_GPT_LABEL is not set
# CONFIG_FEATURE_FDISK_ADVANCED is not set
# CONFIG_FINDFS is not set
+CONFIG_FLOCK=y
CONFIG_FREERAMDISK=y
# CONFIG_FSCK_MINIX is not set
# CONFIG_MKFS_EXT2 is not set
@@ -523,25 +562,6 @@ CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
CONFIG_MKSWAP=y
# CONFIG_FEATURE_MKSWAP_UUID is not set
CONFIG_MORE=y
-CONFIG_FEATURE_USE_TERMIOS=y
-# CONFIG_VOLUMEID is not set
-# CONFIG_FEATURE_VOLUMEID_EXT is not set
-# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
-# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
-# CONFIG_FEATURE_VOLUMEID_FAT is not set
-# CONFIG_FEATURE_VOLUMEID_HFS is not set
-# CONFIG_FEATURE_VOLUMEID_JFS is not set
-# CONFIG_FEATURE_VOLUMEID_XFS is not set
-# CONFIG_FEATURE_VOLUMEID_NTFS is not set
-# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
-# CONFIG_FEATURE_VOLUMEID_UDF is not set
-# CONFIG_FEATURE_VOLUMEID_LUKS is not set
-# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
-# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
-# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
-# CONFIG_FEATURE_VOLUMEID_SYSV is not set
-# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
-# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
CONFIG_MOUNT=y
# CONFIG_FEATURE_MOUNT_FAKE is not set
# CONFIG_FEATURE_MOUNT_VERBOSE is not set
@@ -569,13 +589,38 @@ CONFIG_FEATURE_UMOUNT_ALL=y
# Common options for mount/umount
#
CONFIG_FEATURE_MOUNT_LOOP=y
+CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
# CONFIG_FEATURE_MTAB_SUPPORT is not set
+# CONFIG_VOLUMEID is not set
+# CONFIG_FEATURE_VOLUMEID_EXT is not set
+# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
+# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
+# CONFIG_FEATURE_VOLUMEID_FAT is not set
+# CONFIG_FEATURE_VOLUMEID_HFS is not set
+# CONFIG_FEATURE_VOLUMEID_JFS is not set
+# CONFIG_FEATURE_VOLUMEID_XFS is not set
+# CONFIG_FEATURE_VOLUMEID_NTFS is not set
+# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
+# CONFIG_FEATURE_VOLUMEID_UDF is not set
+# CONFIG_FEATURE_VOLUMEID_LUKS is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
+# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
+# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
+# CONFIG_FEATURE_VOLUMEID_SYSV is not set
+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
#
# Miscellaneous Utilities
#
+# CONFIG_CONSPY is not set
+# CONFIG_NANDWRITE is not set
+# CONFIG_NANDDUMP is not set
+# CONFIG_UBIATTACH is not set
+# CONFIG_UBIDETACH is not set
CONFIG_ADJTIMEX=y
# CONFIG_BBCONFIG is not set
+# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
# CONFIG_BEEP is not set
CONFIG_FEATURE_BEEP_FREQ=0
CONFIG_FEATURE_BEEP_LENGTH_MS=0
@@ -638,6 +683,7 @@ CONFIG_MOUNTPOINT=y
CONFIG_MT=y
# CONFIG_RAIDAUTORUN is not set
# CONFIG_READAHEAD is not set
+# CONFIG_RFKILL is not set
# CONFIG_RUNLEVEL is not set
# CONFIG_RX is not set
CONFIG_SETSID=y
@@ -654,6 +700,11 @@ CONFIG_WATCHDOG=y
#
# Networking Utilities
#
+CONFIG_NBDCLIENT=y
+# CONFIG_NC is not set
+# CONFIG_NC_SERVER is not set
+# CONFIG_NC_EXTRA is not set
+# CONFIG_NC_110_COMPAT is not set
CONFIG_FEATURE_IPV6=y
# CONFIG_FEATURE_UNIX_LOCAL is not set
CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
@@ -685,6 +736,7 @@ CONFIG_HOSTNAME=y
# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
# CONFIG_FEATURE_HTTPD_PROXY is not set
+# CONFIG_FEATURE_HTTPD_GZIP is not set
CONFIG_IFCONFIG=y
CONFIG_FEATURE_IFCONFIG_STATUS=y
CONFIG_FEATURE_IFCONFIG_SLIP=y
@@ -695,8 +747,8 @@ CONFIG_FEATURE_IFCONFIG_HW=y
# CONFIG_IFPLUGD is not set
CONFIG_IFUPDOWN=y
CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
-CONFIG_FEATURE_IFUPDOWN_IP=y
-CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
+# CONFIG_FEATURE_IFUPDOWN_IP is not set
+# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set
# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
CONFIG_FEATURE_IFUPDOWN_IPV4=y
CONFIG_FEATURE_IFUPDOWN_IPV6=y
@@ -709,27 +761,24 @@ CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
CONFIG_FEATURE_INETD_RPC=y
-CONFIG_IP=y
-CONFIG_FEATURE_IP_ADDRESS=y
-CONFIG_FEATURE_IP_LINK=y
-CONFIG_FEATURE_IP_ROUTE=y
-CONFIG_FEATURE_IP_TUNNEL=y
-CONFIG_FEATURE_IP_RULE=y
-CONFIG_FEATURE_IP_SHORT_FORMS=y
+# CONFIG_IP is not set
+# CONFIG_FEATURE_IP_ADDRESS is not set
+# CONFIG_FEATURE_IP_LINK is not set
+# CONFIG_FEATURE_IP_ROUTE is not set
+# CONFIG_FEATURE_IP_TUNNEL is not set
+# CONFIG_FEATURE_IP_RULE is not set
+# CONFIG_FEATURE_IP_SHORT_FORMS is not set
# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
-CONFIG_IPADDR=y
-CONFIG_IPLINK=y
-CONFIG_IPROUTE=y
-CONFIG_IPTUNNEL=y
-CONFIG_IPRULE=y
+# CONFIG_IPADDR is not set
+# CONFIG_IPLINK is not set
+# CONFIG_IPROUTE is not set
+# CONFIG_IPTUNNEL is not set
+# CONFIG_IPRULE is not set
# CONFIG_IPCALC is not set
# CONFIG_FEATURE_IPCALC_FANCY is not set
# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
CONFIG_NAMEIF=y
# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
-# CONFIG_NC is not set
-# CONFIG_NC_SERVER is not set
-# CONFIG_NC_EXTRA is not set
CONFIG_NETSTAT=y
# CONFIG_FEATURE_NETSTAT_WIDE is not set
# CONFIG_FEATURE_NETSTAT_PRG is not set
@@ -742,6 +791,7 @@ CONFIG_FEATURE_FANCY_PING=y
# CONFIG_PSCAN is not set
CONFIG_ROUTE=y
# CONFIG_SLATTACH is not set
+# CONFIG_TCPSVD is not set
CONFIG_TELNET=y
CONFIG_FEATURE_TELNET_TTYPE=y
CONFIG_FEATURE_TELNET_AUTOLOGIN=y
@@ -750,6 +800,10 @@ CONFIG_TELNETD=y
# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
CONFIG_TFTP=y
# CONFIG_TFTPD is not set
+
+#
+# Common options for tftp/tftpd
+#
CONFIG_FEATURE_TFTP_GET=y
CONFIG_FEATURE_TFTP_PUT=y
CONFIG_FEATURE_TFTP_BLOCKSIZE=y
@@ -760,6 +814,8 @@ CONFIG_TRACEROUTE=y
# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+# CONFIG_TUNCTL is not set
+# CONFIG_FEATURE_TUNCTL_UG is not set
# CONFIG_UDHCPD is not set
# CONFIG_DHCPRELAY is not set
# CONFIG_DUMPLEASES is not set
@@ -773,16 +829,14 @@ CONFIG_UDHCP_DEBUG=0
CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"
+# CONFIG_UDPSVD is not set
CONFIG_VCONFIG=y
CONFIG_WGET=y
CONFIG_FEATURE_WGET_STATUSBAR=y
CONFIG_FEATURE_WGET_AUTHENTICATION=y
CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_FEATURE_WGET_TIMEOUT=y
# CONFIG_ZCIP is not set
-# CONFIG_TCPSVD is not set
-# CONFIG_TUNCTL is not set
-# CONFIG_FEATURE_TUNCTL_UG is not set
-# CONFIG_UDPSVD is not set
#
# Print Utilities
@@ -805,6 +859,11 @@ CONFIG_FEATURE_MIME_CHARSET=""
#
# Process Utilities
#
+CONFIG_IOSTAT=y
+CONFIG_MPSTAT=y
+CONFIG_PMAP=y
+CONFIG_POWERTOP=y
+CONFIG_SMEMCAP=y
CONFIG_FREE=y
CONFIG_FUSER=y
CONFIG_KILL=y
@@ -867,9 +926,6 @@ CONFIG_SV_DEFAULT_SERVICE_DIR=""
#
# Shells
#
-CONFIG_FEATURE_SH_IS_ASH=y
-# CONFIG_FEATURE_SH_IS_HUSH is not set
-# CONFIG_FEATURE_SH_IS_NONE is not set
CONFIG_ASH=y
CONFIG_ASH_BASH_COMPAT=y
CONFIG_ASH_JOB_CONTROL=y
@@ -883,10 +939,13 @@ CONFIG_ASH_CMDCMD=y
CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
CONFIG_ASH_RANDOM_SUPPORT=y
CONFIG_ASH_EXPAND_PRMT=y
+# CONFIG_CTTYHACK is not set
CONFIG_HUSH=y
CONFIG_HUSH_BASH_COMPAT=y
+CONFIG_HUSH_BRACE_EXPANSION=y
# CONFIG_HUSH_HELP is not set
CONFIG_HUSH_INTERACTIVE=y
+CONFIG_HUSH_SAVEHISTORY=y
# CONFIG_HUSH_JOB is not set
# CONFIG_HUSH_TICK is not set
CONFIG_HUSH_IF=y
@@ -894,16 +953,21 @@ CONFIG_HUSH_LOOPS=y
CONFIG_HUSH_CASE=y
# CONFIG_HUSH_FUNCTIONS is not set
# CONFIG_HUSH_LOCAL is not set
-# CONFIG_HUSH_EXPORT_N is not set
# CONFIG_HUSH_RANDOM_SUPPORT is not set
-# CONFIG_LASH is not set
+# CONFIG_HUSH_EXPORT_N is not set
+CONFIG_HUSH_MODE_X=y
# CONFIG_MSH is not set
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+# CONFIG_FEATURE_BASH_IS_ASH is not set
+# CONFIG_FEATURE_BASH_IS_HUSH is not set
+CONFIG_FEATURE_BASH_IS_NONE=y
CONFIG_SH_MATH_SUPPORT=y
# CONFIG_SH_MATH_SUPPORT_64 is not set
CONFIG_FEATURE_SH_EXTRA_QUIET=y
# CONFIG_FEATURE_SH_STANDALONE is not set
# CONFIG_FEATURE_SH_NOFORK is not set
-# CONFIG_CTTYHACK is not set
#
# System Logging Utilities
@@ -912,9 +976,11 @@ CONFIG_SYSLOGD=y
CONFIG_FEATURE_ROTATE_LOGFILE=y
CONFIG_FEATURE_REMOTE_LOG=y
# CONFIG_FEATURE_SYSLOGD_DUP is not set
+CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256
# CONFIG_FEATURE_IPC_SYSLOG is not set
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
# CONFIG_LOGREAD is not set
# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
CONFIG_KLOGD=y
+CONFIG_FEATURE_KLOGD_KLOGCTL=y
CONFIG_LOGGER=y
diff --git a/patches/buildroot/2011.05/161-busybox-bump_1.18_version.patch b/patches/buildroot/2011.05/161-busybox-bump_1.18_version.patch
new file mode 100644
index 0000000..7a6c069
--- /dev/null
+++ b/patches/buildroot/2011.05/161-busybox-bump_1.18_version.patch
@@ -0,0 +1,17 @@
+Temporary.
+
+Signed-off-by: Julien Boibessot <jul...@ar...>
+
+Index: buildroot/package/busybox/Config.in
+===================================================================
+--- buildroot.orig/package/busybox/Config.in 2011-10-14 17:52:19.000000000 +0200
++++ buildroot/package/busybox/Config.in 2011-10-14 17:52:37.000000000 +0200
+@@ -40,7 +40,7 @@
+ default "1.15.3" if BR2_BUSYBOX_VERSION_1_15_X
+ default "1.16.2" if BR2_BUSYBOX_VERSION_1_16_X
+ default "1.17.4" if BR2_BUSYBOX_VERSION_1_17_X
+- default "1.18.4" if BR2_BUSYBOX_VERSION_1_18_X
++ default "1.18.5" if BR2_BUSYBOX_VERSION_1_18_X
+
+ config BR2_PACKAGE_BUSYBOX_CONFIG
+ string "BusyBox configuration file to use?"
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2011-10-13 12:35:37
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via b37a1259a1e410dff312ad1a1fa2378a071dfbf2 (commit)
from 5721600386f66e3d07902a3cd90df39db0464352 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit b37a1259a1e410dff312ad1a1fa2378a071dfbf2
Author: Julien Boibessot <jul...@ar...>
Date: Thu Oct 13 14:34:07 2011 +0200
[BUILD] Add script to export/save minified Linux kernel configs
-----------------------------------------------------------------------
Summary of changes:
Makefile | 2 ++
Makefile.in | 2 ++
scripts/export_linux_config.sh | 29 +++++++++++++++++++++++++++++
3 files changed, 33 insertions(+), 0 deletions(-)
create mode 100755 scripts/export_linux_config.sh
diff --git a/Makefile b/Makefile
index 0374289..eb10c00 100644
--- a/Makefile
+++ b/Makefile
@@ -206,6 +206,8 @@ shell_env:
@echo ARMADEUS_BUILDROOT_PATCH_DIR=$(BUILDROOT_PATCH_DIR) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_LINUX_DIR=$(ARMADEUS_LINUX_DIR) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_LINUX_PATCH_DIR=$(ARMADEUS_LINUX_PATCH_DIR) >> $(ARMADEUS_ENV_FILE)
+ @echo ARMADEUS_LINUX_CONFIG=$(ARMADEUS_LINUX_CONFIG) >> $(ARMADEUS_ENV_FILE)
+ @echo ARMADEUS_LINUX_MAIN_VERSION=$(ARMADEUS_LINUX_MAIN_VERSION) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_U_BOOT_DIR=$(ARMADEUS_U_BOOT_DIR) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_U_BOOT_VERSION=$(ARMADEUS_U_BOOT_VERSION) >> $(ARMADEUS_ENV_FILE)
@echo ARMADEUS_ROOTFS_DIR=$(ARMADEUS_ROOTFS_DIR) >> $(ARMADEUS_ENV_FILE)
diff --git a/Makefile.in b/Makefile.in
index 61ac4d3..73dbfa7 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -13,6 +13,7 @@ BUILDROOT_DIR:=$(ARMADEUS_BASE_DIR)/buildroot
-include $(BUILDROOT_DIR)/.config
ARMADEUS_LINUX_VERSION:=$(shell echo $(BR2_LINUX_KERNEL_VERSION))
+ARMADEUS_LINUX_MAIN_VERSION:=$(shell echo $(ARMADEUS_LINUX_VERSION) | cut -d . -f 1-3)
ARMADEUS_U_BOOT_VERSION:=$(shell echo $(BR2_TARGET_UBOOT_VERSION))
ARMADEUS_LIBC_NAME=unknown
ARMADEUS_LIBC_VERSION=X.Y
@@ -65,6 +66,7 @@ ARMADEUS_LINUX_PATCH_DIR:=$(ARMADEUS_PATCH_DIR)/linux/$(ARMADEUS_LINUX_VERSION)
ARMADEUS_U_BOOT_DIR:=$(BUILDROOT_PROJECT_BUILD_DIR)/u-boot-$(ARMADEUS_U_BOOT_VERSION)
ARMADEUS_UCLIBC_DIR:=$(BUILDROOT_TOOLCHAIN_BUILD_DIR)/uClibc-$(ARMADEUS_UCLIBC_VERSION)
ARMADEUS_BOARD_DIR:=$(BUILDROOT_DIR)/target/device/armadeus/$(ARMADEUS_BOARD_NAME)
+ARMADEUS_LINUX_CONFIG:=$(ARMADEUS_BOARD_DIR)/$(ARMADEUS_BOARD_NAME)-linux-$(ARMADEUS_LINUX_MAIN_VERSION).config
ARMADEUS_STAGING_DIR:=$(BUILDROOT_OUTPUT_DIR)/staging
ARMADEUS_TOOLCHAIN_PATH:=$(BUILDROOT_OUTPUT_DIR)/host/usr/bin
ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
diff --git a/scripts/export_linux_config.sh b/scripts/export_linux_config.sh
new file mode 100755
index 0000000..2253751
--- /dev/null
+++ b/scripts/export_linux_config.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+pwd
+make shell_env
+source ./armadeus_env.sh
+
+if [ "$ARMADEUS_LINUX_MAIN_VERSION" == "2.6.29" ]; then
+ echo "Not supported for this kernel version ($ARMADEUS_LINUX_MAIN_VERSION)"
+ exit 1
+fi
+
+cd $ARMADEUS_LINUX_DIR
+make savedefconfig
+if [ $? != 0 ]; then
+ echo "Failed to save defconfig"
+ exit 1
+fi
+cd -
+
+echo "Please enter your favorite merge tool (ex: kompare, vimdiff, etc...)"
+read -p "> " DIFFTOOL
+
+if [ "$DIFFTOOL" == "" ]; then
+ DIFFTOOL=kompare
+fi
+echo "Using: $DIFFTOOL"
+$DIFFTOOL $ARMADEUS_LINUX_DIR/defconfig $ARMADEUS_LINUX_CONFIG
+
+exit 0
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2011-10-12 07:17:41
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 5721600386f66e3d07902a3cd90df39db0464352 (commit)
via c75807c65daf2bff95d2498f1b127d622b1988fd (commit)
via 1e69a46d102b1f05a99d75bb78b63f2e11df99bd (commit)
via 211bdfdf3490b1da406d8ffff24d0203a6a425e1 (commit)
via 364197c79b7c3d4a3e643bdb7f75eeb92fc835da (commit)
from e9724660475b37af9807753975c878fc0f7437e0 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 5721600386f66e3d07902a3cd90df39db0464352
Author: Julien Boibessot <jul...@ar...>
Date: Tue Oct 11 21:56:18 2011 +0200
[LINUX] 2.6.38: PPS doesn't need sound support
commit c75807c65daf2bff95d2498f1b127d622b1988fd
Merge: 1e69a46 e972466
Author: Julien Boibessot <jul...@ar...>
Date: Tue Oct 11 21:25:50 2011 +0200
Merge branch 'master' of ssh://armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit 1e69a46d102b1f05a99d75bb78b63f2e11df99bd
Author: Julien Boibessot <jul...@ar...>
Date: Tue Oct 11 21:25:16 2011 +0200
[LINUX] 2.6.38: minify APF27, PPS and APF51 configs
commit 211bdfdf3490b1da406d8ffff24d0203a6a425e1
Author: Julien Boibessot <jul...@ar...>
Date: Tue Oct 11 16:50:22 2011 +0200
Moves to 4.1-alpha2 stage
commit 364197c79b7c3d4a3e643bdb7f75eeb92fc835da
Author: Julien Boibessot <jul...@ar...>
Date: Tue Oct 11 16:15:11 2011 +0200
[LINUX] Updates apf51-linux-2.6.38.config (add devtmpfs and V4L)
-----------------------------------------------------------------------
Summary of changes:
.../armadeus/apf27/apf27-linux-2.6.38.config | 2145 +-------------------
.../armadeus/apf51/apf51-linux-2.6.38.config | 2180 +-------------------
.../device/armadeus/pps/pps-linux-2.6.38.config | 1920 +-----------------
.../rootfs/target_skeleton/etc/armadeus-version | 2 +-
4 files changed, 32 insertions(+), 6215 deletions(-)
diff --git a/buildroot/target/device/armadeus/apf27/apf27-linux-2.6.38.config b/buildroot/target/device/armadeus/apf27/apf27-linux-2.6.38.config
index 12a6ed6..812e771 100644
--- a/buildroot/target/device/armadeus/apf27/apf27-linux-2.6.38.config
+++ b/buildroot/target/device/armadeus/apf27/apf27-linux-2.6.38.config
@@ -1,2351 +1,210 @@
-#
-# Automatically generated make config: don't edit
-# Linux/arm 2.6.38.1 Kernel Configuration
-# Wed May 18 12:19:19 2011
-#
-CONFIG_ARM=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_GENERIC_GPIO=y
-# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_HAVE_PROC_CPU=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_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_CPU_IDLE_WAIT=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_FIQ=y
-CONFIG_VECTORS_BASE=0xffff0000
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
-CONFIG_HAVE_IRQ_WORK=y
-CONFIG_IRQ_WORK=y
-
-#
-# General setup
-#
CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_LOCK_KERNEL=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE=""
-CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_KERNEL_GZIP=y
-# CONFIG_KERNEL_LZMA is not set
-# CONFIG_KERNEL_LZO is not set
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_TASKSTATS is not set
-# CONFIG_AUDIT is not set
-CONFIG_HAVE_GENERIC_HARDIRQS=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_HARDIRQS=y
-# CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED is not set
-CONFIG_HAVE_SPARSE_IRQ=y
-# CONFIG_GENERIC_PENDING_IRQ is not set
-# CONFIG_AUTO_IRQ_AFFINITY is not set
-# CONFIG_IRQ_PER_CPU is not set
-# CONFIG_SPARSE_IRQ is not set
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_PREEMPT_RCU=y
-# CONFIG_TINY_RCU is not set
-# CONFIG_TINY_PREEMPT_RCU is not set
-CONFIG_PREEMPT_RCU=y
-# CONFIG_RCU_TRACE is not set
-CONFIG_RCU_FANOUT=32
-# CONFIG_RCU_FANOUT_EXACT is not set
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_CGROUPS is not set
-# CONFIG_NAMESPACES is not set
-# CONFIG_SCHED_AUTOGROUP is not set
-# CONFIG_SYSFS_DEPRECATED is not set
-# CONFIG_RELAY is not set
-# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-CONFIG_EXPERT=y
CONFIG_EMBEDDED=y
-CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_EXTRA_PASS=y
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_PERF_USE_VMALLOC=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-# CONFIG_PERF_COUNTERS is not set
-CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
CONFIG_PROFILING=y
CONFIG_OPROFILE=y
-CONFIG_HAVE_OPROFILE=y
-# CONFIG_KPROBES is not set
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_BLOCK=y
-CONFIG_LBDAF=y
# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_BLK_DEV_INTEGRITY is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_DEADLINE=y
# CONFIG_IOSCHED_CFQ is not set
-CONFIG_DEFAULT_DEADLINE=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="deadline"
-# CONFIG_INLINE_SPIN_TRYLOCK is not set
-# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK is not set
-# CONFIG_INLINE_SPIN_LOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-# CONFIG_INLINE_SPIN_UNLOCK is not set
-# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
-# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
-# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_READ_TRYLOCK is not set
-# CONFIG_INLINE_READ_LOCK is not set
-# CONFIG_INLINE_READ_LOCK_BH is not set
-# CONFIG_INLINE_READ_LOCK_IRQ is not set
-# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
-# CONFIG_INLINE_READ_UNLOCK is not set
-# CONFIG_INLINE_READ_UNLOCK_BH is not set
-# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
-# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_WRITE_TRYLOCK is not set
-# CONFIG_INLINE_WRITE_LOCK is not set
-# CONFIG_INLINE_WRITE_LOCK_BH is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
-# CONFIG_INLINE_WRITE_UNLOCK is not set
-# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
-# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
-# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
-# CONFIG_MUTEX_SPIN_ON_OWNER is not set
-CONFIG_FREEZER=y
-
-#
-# System Type
-#
-CONFIG_MMU=y
-# 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_VEXPRESS is not set
-# CONFIG_ARCH_AT91 is not set
-# CONFIG_ARCH_BCMRING is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_CNS3XXX is not set
-# CONFIG_ARCH_GEMINI is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
CONFIG_ARCH_MXC=y
-# CONFIG_ARCH_MXS is not set
-# CONFIG_ARCH_STMP3XXX is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_H720X 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_DOVE is not set
-# CONFIG_ARCH_KIRKWOOD is not set
-# CONFIG_ARCH_LOKI is not set
-# CONFIG_ARCH_LPC32XX is not set
-# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_ORION5X is not set
-# CONFIG_ARCH_MMP is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_NS9XXX is not set
-# CONFIG_ARCH_W90X900 is not set
-# CONFIG_ARCH_NUC93X is not set
-# CONFIG_ARCH_TEGRA is not set
-# CONFIG_ARCH_PNX4008 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_MSM is not set
-# CONFIG_ARCH_SHMOBILE is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_S5P64X0 is not set
-# CONFIG_ARCH_S5P6442 is not set
-# CONFIG_ARCH_S5PC100 is not set
-# CONFIG_ARCH_S5PV210 is not set
-# CONFIG_ARCH_S5PV310 is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_TCC_926 is not set
-# CONFIG_ARCH_LH7A40X is not set
-# CONFIG_ARCH_U300 is not set
-# CONFIG_ARCH_U8500 is not set
-# CONFIG_ARCH_NOMADIK is not set
-# CONFIG_ARCH_DAVINCI is not set
-# CONFIG_ARCH_OMAP is not set
-# CONFIG_PLAT_SPEAR is not set
-# CONFIG_GPIO_PCA953X is not set
-# CONFIG_KEYBOARD_GPIO_POLLED is not set
-CONFIG_IMX_HAVE_PLATFORM_FEC=y
-CONFIG_IMX_HAVE_PLATFORM_IMX2_WDT=y
-CONFIG_IMX_HAVE_PLATFORM_IMX_FB=y
-CONFIG_IMX_HAVE_PLATFORM_IMX_I2C=y
-CONFIG_IMX_HAVE_PLATFORM_IMX_SSI=y
-CONFIG_IMX_HAVE_PLATFORM_IMX_UART=y
-CONFIG_IMX_HAVE_PLATFORM_MXC_EHCI=y
-CONFIG_IMX_HAVE_PLATFORM_MXC_MMC=y
-CONFIG_IMX_HAVE_PLATFORM_MXC_NAND=y
-CONFIG_IMX_HAVE_PLATFORM_SPI_IMX=y
-
-#
-# Freescale MXC Implementations
-#
-# CONFIG_ARCH_MX1 is not set
CONFIG_ARCH_MX2=y
-# CONFIG_ARCH_MX25 is not set
-# CONFIG_ARCH_MX3 is not set
-# CONFIG_ARCH_MXC91231 is not set
-# CONFIG_ARCH_MX5 is not set
-CONFIG_IMX_HAVE_DMA_V1=y
-CONFIG_SOC_IMX27=y
-# CONFIG_MACH_MX21 is not set
CONFIG_MACH_MX27=y
-
-#
-# MX27 platforms:
-#
-# CONFIG_MACH_MX27ADS is not set
-# CONFIG_MACH_PCM038 is not set
-# CONFIG_MACH_CPUIMX27 is not set
-# CONFIG_MACH_MX27_3DS is not set
-# CONFIG_MACH_IMX27_VISSTRIM_M10 is not set
-# CONFIG_MACH_IMX27LITE is not set
-# CONFIG_MACH_PCA100 is not set
-# CONFIG_MACH_MXT_TD60 is not set
CONFIG_MACH_APF27=y
-CONFIG_MACH_APF27_HAS_BASEBOARD=y
-CONFIG_MACH_APF27_DEV=y
-CONFIG_MACH_APF27_DEV_EXT_NONE=y
-# CONFIG_MACH_APF27_DEV_EXT_WIRELESS is not set
-# CONFIG_MXC_IRQ_PRIOR is not set
-CONFIG_MXC_AVIC=y
-# CONFIG_MXC_PWM is not set
-# CONFIG_MXC_DEBUG_BOARD is not set
-CONFIG_MXC_ULPI=y
-CONFIG_IMX_HAVE_IOMUX_V1=y
-CONFIG_ARCH_MXC_AUDMUX_V1=y
-
-#
-# System MMU
-#
-
-#
-# Processor Type
-#
-CONFIG_CPU_ARM926T=y
-CONFIG_CPU_32v5=y
-CONFIG_CPU_ABRT_EV5TJ=y
-CONFIG_CPU_PABRT_LEGACY=y
-CONFIG_CPU_CACHE_VIVT=y
-CONFIG_CPU_COPY_V4WB=y
-CONFIG_CPU_TLB_V4WBI=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-CONFIG_CPU_USE_DOMAINS=y
-
-#
-# Processor Features
-#
-CONFIG_ARM_THUMB=y
-# CONFIG_CPU_ICACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
-CONFIG_ARM_L1_CACHE_SHIFT=5
-
-#
-# Bus support
-#
-# CONFIG_PCI_SYSCALL is not set
-# CONFIG_ARCH_SUPPORTS_MSI is not set
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-# CONFIG_PREEMPT_NONE is not set
-# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
-CONFIG_HZ=100
CONFIG_AEABI=y
-CONFIG_OABI_COMPAT=y
-# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-# CONFIG_HIGHMEM is not set
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_HAVE_MEMBLOCK=y
-CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=999999
-# CONFIG_COMPACTION is not set
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=0
-CONFIG_VIRT_TO_BUS=y
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_NEED_PER_CPU_KM=y
-CONFIG_FORCE_MAX_ZONEORDER=11
-CONFIG_ALIGNMENT_TRAP=y
-# CONFIG_UACCESS_WITH_MEMCPY is not set
-# CONFIG_SECCOMP is not set
-# CONFIG_CC_STACKPROTECTOR is not set
-# CONFIG_DEPRECATED_PARAM_STRUCT is not set
-
-#
-# Boot options
-#
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE=""
-# CONFIG_XIP_KERNEL is not set
-# CONFIG_KEXEC is not set
-# CONFIG_CRASH_DUMP is not set
-# CONFIG_AUTO_ZRELADDR is not set
-
-#
-# CPU Power Management
-#
CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-# CONFIG_FPE_NWFPE is not set
-# CONFIG_FPE_FASTFPE is not set
-# CONFIG_VFP is not set
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_HAVE_AOUT=y
-# CONFIG_BINFMT_AOUT is not set
-# CONFIG_BINFMT_MISC is not set
-
-#
-# Power management options
-#
CONFIG_PM=y
CONFIG_PM_DEBUG=y
-# CONFIG_PM_ADVANCED_DEBUG is not set
CONFIG_PM_VERBOSE=y
-CONFIG_CAN_PM_TRACE=y
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND=y
-# CONFIG_PM_TEST_SUSPEND is not set
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_APM_EMULATION is not set
-# CONFIG_PM_RUNTIME is not set
-CONFIG_PM_OPS=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_NET=y
-
-#
-# Networking options
-#
CONFIG_PACKET=y
CONFIG_UNIX=y
-CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_MIGRATE is not set
-# CONFIG_XFRM_STATISTICS is not set
-# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_FIB_HASH=y
CONFIG_IP_PNP=y
-# CONFIG_IP_PNP_DHCP is not set
-# CONFIG_IP_PNP_BOOTP is not set
-# CONFIG_IP_PNP_RARP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE_DEMUX is not set
-# CONFIG_IP_MROUTE is not set
-# CONFIG_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_XFRM_TUNNEL is not set
-CONFIG_INET_TUNNEL=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
# CONFIG_INET_DIAG is not set
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_DEFAULT_TCP_CONG="cubic"
-# CONFIG_TCP_MD5SIG is not set
CONFIG_IPV6=y
-# CONFIG_IPV6_PRIVACY is not set
-# CONFIG_IPV6_ROUTER_PREF is not set
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-# CONFIG_INET6_AH is not set
-# CONFIG_INET6_ESP is not set
-# CONFIG_INET6_IPCOMP is not set
-# CONFIG_IPV6_MIP6 is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
-CONFIG_INET6_XFRM_MODE_TRANSPORT=y
-CONFIG_INET6_XFRM_MODE_TUNNEL=y
-CONFIG_INET6_XFRM_MODE_BEET=y
-# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
-CONFIG_IPV6_SIT=y
-# CONFIG_IPV6_SIT_6RD is not set
-CONFIG_IPV6_NDISC_NODETYPE=y
-# CONFIG_IPV6_TUNNEL is not set
-# CONFIG_IPV6_MULTIPLE_TABLES is not set
-# CONFIG_IPV6_MROUTE is not set
-# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-# CONFIG_NETFILTER is not set
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_RDS is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_NET_DSA is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-# CONFIG_PHONET is not set
-# CONFIG_IEEE802154 is not set
-# CONFIG_NET_SCHED is not set
-# CONFIG_DCB is not set
-CONFIG_DNS_RESOLVER=y
-# CONFIG_BATMAN_ADV is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
CONFIG_CAN=m
CONFIG_CAN_RAW=m
CONFIG_CAN_BCM=m
-
-#
-# CAN Device Drivers
-#
CONFIG_CAN_VCAN=m
-# CONFIG_CAN_SLCAN is not set
CONFIG_CAN_DEV=m
CONFIG_CAN_CALC_BITTIMING=y
CONFIG_CAN_MCP251X=m
-# CONFIG_CAN_SJA1000 is not set
-
-#
-# CAN USB interfaces
-#
-# CONFIG_CAN_EMS_USB is not set
-# CONFIG_CAN_ESD_USB2 is not set
-# CONFIG_CAN_SOFTING is not set
-# CONFIG_CAN_DEBUG_DEVICES is not set
-# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
-# CONFIG_BT_BNEP_MC_FILTER is not set
-# CONFIG_BT_BNEP_PROTO_FILTER is not set
CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
CONFIG_BT_HCIBTUSB=m
-# CONFIG_BT_HCIBTSDIO is not set
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
-# CONFIG_BT_HCIUART_ATH3K is not set
-# CONFIG_BT_HCIUART_LL is not set
-# CONFIG_BT_HCIBCM203X is not set
-# CONFIG_BT_HCIBPA10X is not set
-# CONFIG_BT_HCIBFUSB is not set
-# CONFIG_BT_HCIVHCI is not set
-# CONFIG_BT_MRVL is not set
-# CONFIG_BT_ATH3K is not set
-# CONFIG_AF_RXRPC is not set
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
CONFIG_CFG80211=m
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_REG_DEBUG is not set
-CONFIG_CFG80211_DEFAULT_PS=y
-# CONFIG_CFG80211_DEBUGFS is not set
-# CONFIG_CFG80211_INTERNAL_REGDB is not set
-CONFIG_CFG80211_WEXT=y
-CONFIG_WIRELESS_EXT_SYSFS=y
-CONFIG_LIB80211=m
-# CONFIG_LIB80211_DEBUG is not set
CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
CONFIG_MAC80211_RC_PID=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_MINSTREL_HT=y
-# CONFIG_MAC80211_RC_DEFAULT_PID is not set
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-# CONFIG_MAC80211_MESH is not set
-# CONFIG_MAC80211_DEBUGFS is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-# CONFIG_WIMAX is not set
-# CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
-# CONFIG_CAIF is not set
-# CONFIG_CEPH_LIB is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_DEVTMPFS is not set
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
CONFIG_FW_LOADER=m
-CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_EXTRA_FIRMWARE=""
-# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_CONNECTOR is not set
CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_TESTS is not set
-# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
CONFIG_MTD_CMDLINE_PARTS=y
-# CONFIG_MTD_AFS_PARTS is not set
-# CONFIG_MTD_AR7_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-# CONFIG_SSFDC is not set
-# CONFIG_SM_FTL is not set
-# CONFIG_MTD_OOPS is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-# CONFIG_MTD_CFI is not set
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_DATAFLASH is not set
-# CONFIG_MTD_M25P80 is not set
-# CONFIG_MTD_SST25L is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-CONFIG_MTD_NAND_ECC=y
-# CONFIG_MTD_NAND_ECC_SMC is not set
CONFIG_MTD_NAND=y
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_SM_COMMON is not set
-# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-# CONFIG_MTD_NAND_GPIO is not set
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_ALAUDA is not set
CONFIG_MTD_NAND_MXC=y
-# CONFIG_MTD_ONENAND is not set
-
-#
-# LPDDR flash memory drivers
-#
-# CONFIG_MTD_LPDDR is not set
CONFIG_MTD_UBI=y
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_RESERVE=1
-# CONFIG_MTD_UBI_GLUEBI is not set
-
-#
-# UBI debugging options
-#
-# CONFIG_MTD_UBI_DEBUG is not set
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
-
-#
-# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
-#
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_UB is not set
-# CONFIG_BLK_DEV_RAM is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-# CONFIG_MG_DISK is not set
-# CONFIG_BLK_DEV_RBD is not set
CONFIG_MISC_DEVICES=y
-# CONFIG_AD525X_DPOT is not set
-# CONFIG_ICS932S401 is not set
-# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_APDS9802ALS is not set
-# CONFIG_ISL29003 is not set
-# CONFIG_ISL29020 is not set
-# CONFIG_SENSORS_TSL2550 is not set
-# CONFIG_SENSORS_BH1780 is not set
-# CONFIG_SENSORS_BH1770 is not set
-# CONFIG_SENSORS_APDS990X is not set
-# CONFIG_HMC6352 is not set
-# CONFIG_DS1682 is not set
-# CONFIG_TI_DAC7512 is not set
-# CONFIG_BMP085 is not set
-# CONFIG_C2PORT is not set
-
-#
-# EEPROM support
-#
CONFIG_EEPROM_AT24=y
CONFIG_EEPROM_AT25=y
-# CONFIG_EEPROM_LEGACY is not set
-# CONFIG_EEPROM_MAX6875 is not set
-# CONFIG_EEPROM_93CX6 is not set
-# CONFIG_IWMC3200TOP is not set
-
-#
-# Texas Instruments shared transport line discipline
-#
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-# CONFIG_SCSI_TGT is not set
-# CONFIG_SCSI_NETLINK is not set
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=y
-# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=y
-# CONFIG_BLK_DEV_SR_VENDOR is not set
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_SCH=y
CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_CONSTANTS is not set
CONFIG_SCSI_LOGGING=y
CONFIG_SCSI_SCAN_ASYNC=y
-CONFIG_SCSI_WAIT_SCAN=m
-
-#
-# SCSI Transports
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI_SAS_ATTRS is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-# CONFIG_SCSI_SRP_ATTRS is not set
-CONFIG_SCSI_LOWLEVEL=y
-# CONFIG_ISCSI_TCP is not set
-# CONFIG_ISCSI_BOOT_SYSFS is not set
-# CONFIG_LIBFC is not set
-# CONFIG_LIBFCOE is not set
-# CONFIG_SCSI_DEBUG is not set
-# CONFIG_SCSI_DH is not set
-# CONFIG_SCSI_OSD_INITIATOR is not set
-# CONFIG_ATA is not set
-# CONFIG_MD is not set
-# CONFIG_TARGET_CORE is not set
CONFIG_NETDEVICES=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_MACVLAN is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-# CONFIG_VETH is not set
-# CONFIG_MII is not set
-CONFIG_PHYLIB=y
-
-#
-# MII PHY device drivers
-#
-# CONFIG_MARVELL_PHY is not set
-# CONFIG_DAVICOM_PHY is not set
-# CONFIG_QSEMI_PHY is not set
-# CONFIG_LXT_PHY is not set
-# CONFIG_CICADA_PHY is not set
-# CONFIG_VITESSE_PHY is not set
CONFIG_SMSC_PHY=y
-# CONFIG_BROADCOM_PHY is not set
-# CONFIG_BCM63XX_PHY is not set
-# CONFIG_ICPLUS_PHY is not set
-# CONFIG_REALTEK_PHY is not set
-# CONFIG_NATIONAL_PHY is not set
-# CONFIG_STE10XP is not set
-# CONFIG_LSI_ET1011C_PHY is not set
-# CONFIG_MICREL_PHY is not set
-# CONFIG_FIXED_PHY is not set
-# CONFIG_MDIO_BITBANG is not set
CONFIG_NET_ETHERNET=y
-# CONFIG_AX88796 is not set
-# CONFIG_SMC91X is not set
-# CONFIG_DM9000 is not set
-# CONFIG_ENC28J60 is not set
-# CONFIG_ETHOC is not set
-# CONFIG_SMC911X is not set
-# CONFIG_SMSC911X is not set
-# CONFIG_DNET is not set
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-# CONFIG_B44 is not set
-# CONFIG_KS8851 is not set
-# CONFIG_KS8851_MLL is not set
CONFIG_FEC=y
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
-CONFIG_WLAN=y
-# CONFIG_LIBERTAS_THINFIRM is not set
-# CONFIG_AT76C50X_USB is not set
-# CONFIG_USB_ZD1201 is not set
-# CONFIG_USB_NET_RNDIS_WLAN is not set
CONFIG_RTL8187=m
-# CONFIG_MAC80211_HWSIM is not set
-# CONFIG_ATH_COMMON is not set
-# CONFIG_B43 is not set
-# CONFIG_B43LEGACY is not set
-# CONFIG_HOSTAP is not set
-# CONFIG_IWM is not set
CONFIG_LIBERTAS=m
-# CONFIG_LIBERTAS_USB is not set
CONFIG_LIBERTAS_SDIO=m
-# CONFIG_LIBERTAS_SPI is not set
-# CONFIG_LIBERTAS_DEBUG is not set
-# CONFIG_LIBERTAS_MESH is not set
-# CONFIG_P54_COMMON is not set
CONFIG_RT2X00=m
-# CONFIG_RT2500USB is not set
CONFIG_RT73USB=m
-# CONFIG_RT2800USB is not set
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-# CONFIG_RT2X00_DEBUG is not set
-# CONFIG_RTL8192CE is not set
-# CONFIG_WL1251 is not set
-# CONFIG_WL12XX_MENU is not set
CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-
-#
-# Enable WiMAX (Networking options) to see the WiMAX drivers
-#
-
-#
-# USB Network Adapters
-#
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_RTL8150 is not set
-# CONFIG_USB_USBNET is not set
-# CONFIG_USB_IPHETH is not set
-# CONFIG_WAN is not set
-
-#
-# CAIF transport drivers
-#
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-# CONFIG_INPUT_FF_MEMLESS is not set
-# CONFIG_INPUT_POLLDEV is not set
-# CONFIG_INPUT_SPARSEKMAP is not set
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=y
CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ADP5588 is not set
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_QT2160 is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_GPIO is not set
-# CONFIG_KEYBOARD_TCA6416 is not set
-# CONFIG_KEYBOARD_MATRIX is not set
-# CONFIG_KEYBOARD_MAX7359 is not set
-# CONFIG_KEYBOARD_MCS is not set
CONFIG_KEYBOARD_IMX=m
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_OPENCORES is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=y
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-# CONFIG_MOUSE_PS2_ELANTECH is not set
-# CONFIG_MOUSE_PS2_SENTELIC is not set
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-# CONFIG_MOUSE_SERIAL is not set
-# CONFIG_MOUSE_APPLETOUCH is not set
-# CONFIG_MOUSE_BCM5974 is not set
-# CONFIG_MOUSE_VSXXXAA is not set
-# CONFIG_MOUSE_GPIO is not set
-# CONFIG_MOUSE_SYNAPTICS_I2C is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
CONFIG_INPUT_TOUCHSCREEN=y
-# CONFIG_TOUCHSCREEN_ADS7846 is not set
-# CONFIG_TOUCHSCREEN_AD7877 is not set
-# CONFIG_TOUCHSCREEN_AD7879 is not set
-# CONFIG_TOUCHSCREEN_BU21013 is not set
-# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
-# CONFIG_TOUCHSCREEN_DYNAPRO is not set
-# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
-# CONFIG_TOUCHSCREEN_EETI is not set
-# CONFIG_TOUCHSCREEN_FUJITSU is not set
-# CONFIG_TOUCHSCREEN_GUNZE is not set
-# CONFIG_TOUCHSCREEN_ELO is not set
-# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
-# CONFIG_TOUCHSCREEN_MCS5000 is not set
-# CONFIG_TOUCHSCREEN_MTOUCH is not set
-# CONFIG_TOUCHSCREEN_INEXIO is not set
-# CONFIG_TOUCHSCREEN_MK712 is not set
-# CONFIG_TOUCHSCREEN_PENMOUNT is not set
-# CONFIG_TOUCHSCREEN_QT602240 is not set
-# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
-# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
CONFIG_TOUCHSCREEN_TSC2102=m
-# CONFIG_TOUCHSCREEN_WM97XX is not set
-# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
-# CONFIG_TOUCHSCREEN_TSC2007 is not set
-# CONFIG_TOUCHSCREEN_W90X900 is not set
-# CONFIG_TOUCHSCREEN_ST1232 is not set
-# CONFIG_TOUCHSCREEN_TPS6507X is not set
CONFIG_INPUT_MISC=y
-# CONFIG_INPUT_AD714X is not set
-# CONFIG_INPUT_ATI_REMOTE is not set
-# CONFIG_INPUT_ATI_REMOTE2 is not set
-# CONFIG_INPUT_KEYSPAN_REMOTE is not set
-# CONFIG_INPUT_POWERMATE is not set
-# CONFIG_INPUT_YEALINK is not set
-# CONFIG_INPUT_CM109 is not set
CONFIG_INPUT_UINPUT=m
-# CONFIG_INPUT_PCF8574 is not set
-# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
-# CONFIG_INPUT_ADXL34X is not set
-# CONFIG_INPUT_CMA3000 is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_SERPORT=y
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-# CONFIG_SERIO_ALTERA_PS2 is not set
-# CONFIG_SERIO_PS2MULT is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_VT_HW_CONSOLE_BINDING is not set
-CONFIG_DEVKMEM=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_N_GSM is not set
-
-#
-# Serial drivers
-#
-# CONFIG_SERIAL_8250 is not set
-
-#
-# Non-8250 serial port support
-#
-# CONFIG_SERIAL_MAX3100 is not set
-# CONFIG_SERIAL_MAX3107 is not set
CONFIG_SERIAL_IMX=y
CONFIG_SERIAL_IMX_CONSOLE=y
-CONFIG_SERIAL_IMX_UART1=y
-# CONFIG_SERIAL_IMX_UART2 is not set
-CONFIG_SERIAL_IMX_UART3=y
-# CONFIG_SERIAL_IMX_UART3_USE_RTSCTS is not set
-# CONFIG_SERIAL_IMX_UART5 is not set
-# CONFIG_SERIAL_IMX_UART6 is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_TIMBERDALE is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_IFX6X60 is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_LEGACY_PTYS is not set
-# CONFIG_TTY_PRINTK is not set
-# CONFIG_HVC_DCC is not set
-# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
-# CONFIG_R3964 is not set
-# CONFIG_RAW_DRIVER is not set
-# CONFIG_TCG_TPM is not set
-# CONFIG_RAMOOPS is not set
CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
-# CONFIG_I2C_MUX is not set
-CONFIG_I2C_HELPER_AUTO=y
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_DESIGNWARE is not set
-# CONFIG_I2C_GPIO is not set
CONFIG_I2C_IMX=y
-# CONFIG_I2C_OCORES is not set
-# CONFIG_I2C_PCA_PLATFORM is not set
-# CONFIG_I2C_SIMTEC is not set
-# CONFIG_I2C_XILINX is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_TINY_USB is not set
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
CONFIG_SPI=y
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-CONFIG_SPI_BITBANG=y
-# CONFIG_SPI_GPIO is not set
-CONFIG_SPI_IMX_VER_0_0=y
CONFIG_SPI_IMX=y
-CONFIG_SPI_MXC_SELECT1=y
CONFIG_SPI_MXC_SELECT2=y
-# CONFIG_SPI_MXC_SELECT3 is not set
-# CONFIG_SPI_PXA2XX_PCI is not set
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_DESIGNWARE is not set
-
-#
-# SPI Protocol Masters
-#
CONFIG_SPI_SPIDEV=m
-# CONFIG_SPI_TLE62X0 is not set
-CONFIG_SPI_TSC2102=m
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-
-#
-# PPS generators support
-#
-CONFIG_ARCH_REQUIRE_GPIOLIB=y
-CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
-
-#
-# Memory mapped GPIO expanders:
-#
-# CONFIG_GPIO_BASIC_MMIO is not set
-# CONFIG_GPIO_IT8761E is not set
-
-#
-# I2C GPIO expanders:
-#
-# CONFIG_GPIO_MAX7300 is not set
-# CONFIG_GPIO_MAX732X is not set
-# CONFIG_GPIO_PCF857X is not set
-# CONFIG_GPIO_SX150X is not set
-# CONFIG_GPIO_ADP5588 is not set
-
-#
-# PCI GPIO expanders:
-#
-
-#
-# SPI GPIO expanders:
-#
-# CONFIG_GPIO_MAX7301 is not set
-# CONFIG_GPIO_MCP23S08 is not set
-# CONFIG_GPIO_MC33880 is not set
-# CONFIG_GPIO_74X164 is not set
-
-#
-# AC97 GPIO expanders:
-#
-
-#
-# MODULbus GPIO expanders:
-#
-# CONFIG_W1 is not set
-# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=m
-# CONFIG_HWMON_VID is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-# CONFIG_SENSORS_AD7414 is not set
-# CONFIG_SENSORS_AD7418 is not set
-# CONFIG_SENSORS_ADCXX is not set
-# CONFIG_SENSORS_AS1531 is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1029 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ADM9240 is not set
-# CONFIG_SENSORS_ADT7411 is not set
-# CONFIG_SENSORS_ADT7462 is not set
-# CONFIG_SENSORS_ADT7470 is not set
-# CONFIG_SENSORS_ADT7475 is not set
-# CONFIG_SENSORS_ASC7621 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_DS620 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_F71882FG is not set
-# CONFIG_SENSORS_F75375S is not set
-# CONFIG_SENSORS_G760A is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_GPIO_FAN is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_JC42 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM70 is not set
-# CONFIG_SENSORS_LM73 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_LM93 is not set
-# CONFIG_SENSORS_LTC4215 is not set
-# CONFIG_SENSORS_LTC4245 is not set
-# CONFIG_SENSORS_LTC4261 is not set
-# CONFIG_SENSORS_LM95241 is not set
-# CONFIG_SENSORS_MAX1111 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_MAX6650 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_PC87427 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_SENSORS_SHT15 is not set
-# CONFIG_SENSORS_SHT21 is not set
-# CONFIG_SENSORS_SMM665 is not set
-# CONFIG_SENSORS_DME1737 is not set
-# CONFIG_SENSORS_EMC1403 is not set
-# CONFIG_SENSORS_EMC2103 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_ADS7828 is not set
-# CONFIG_SENSORS_ADS7871 is not set
-# CONFIG_SENSORS_AMC6821 is not set
-# CONFIG_SENSORS_THMC50 is not set
-# CONFIG_SENSORS_TMP102 is not set
-# CONFIG_SENSORS_TMP401 is not set
-# CONFIG_SENSORS_TMP421 is not set
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83791D is not set
-# CONFIG_SENSORS_W83792D is not set
-# CONFIG_SENSORS_W83793 is not set
-# CONFIG_SENSORS_W83795 is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83L786NG is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_SENSORS_LIS3_I2C is not set
-# CONFIG_THERMAL is not set
CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_MAX63XX_WATCHDOG is not set
CONFIG_IMX2_WDT=m
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-# CONFIG_SSB is not set
-CONFIG_MFD_SUPPORT=y
-# CONFIG_MFD_CORE is not set
-# CONFIG_MFD_88PM860X is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_ASIC3 is not set
-# CONFIG_HTC_EGPIO is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_HTC_I2CPLD is not set
-# CONFIG_UCB1400_CORE is not set
-# CONFIG_TPS65010 is not set
-# CONFIG_TPS6507X is not set
-# CONFIG_TWL4030_CORE is not set
-# CONFIG_MFD_STMPE is not set
-# CONFIG_MFD_TC3589X is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_MFD_TC6393XB is not set
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_MAX8925 is not set
-# CONFIG_MFD_MAX8998 is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X_I2C is not set
-# CONFIG_MFD_WM831X_SPI is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_WM8994 is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_MC13XXX is not set
-# CONFIG_ABX500_CORE is not set
-# CONFIG_EZX_PCAP is not set
-# CONFIG_MFD_TPS6586X is not set
-# CONFIG_MFD_WL1273_CORE is not set
-# CONFIG_REGULATOR is not set
CONFIG_MEDIA_SUPPORT=m
-
-#
-# Multimedia core support
-#
CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L2_COMMON=m
-# CONFIG_DVB_CORE is not set
-CONFIG_VIDEO_MEDIA=m
-
-#
-# Multimedia drivers
-#
# CONFIG_RC_CORE is not set
-# CONFIG_MEDIA_ATTACH is not set
-CONFIG_MEDIA_TUNER=m
# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_MEDIA_TUNER_TEA5761=m
-CONFIG_MEDIA_TUNER_TEA5767=m
-CONFIG_MEDIA_TUNER_MT20XX=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_MC44S803=m
-CONFIG_VIDEO_V4L2=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_CONTIG=m
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
-
-#
-# Encoders/decoders and other helper chips
-#
-
-#
-# Audio decoders
-#
-# CONFIG_VIDEO_TVAUDIO is not set
-# CONFIG_VIDEO_TDA7432 is not set
-# CONFIG_VIDEO_TDA9840 is not set
-# CONFIG_VIDEO_TEA6415C is not set
-# CONFIG_VIDEO_TEA6420 is not set
-# CONFIG_VIDEO_MSP3400 is not set
-# CONFIG_VIDEO_CS5345 is not set
-# CONFIG_VIDEO_CS53L32A is not set
-# CONFIG_VIDEO_M52790 is not set
-# CONFIG_VIDEO_TLV320AIC23B is not set
-# CONFIG_VIDEO_WM8775 is not set
-# CONFIG_VIDEO_WM8739 is not set
-# CONFIG_VIDEO_VP27SMPX is not set
-
-#
-# RDS decoders
-#
-# CONFIG_VIDEO_SAA6588 is not set
-
-#
-# Video decoders
-#
-# CONFIG_VIDEO_ADV7180 is not set
-# CONFIG_VIDEO_BT819 is not set
-# CONFIG_VIDEO_BT856 is not set
-# CONFIG_VIDEO_BT866 is not set
-# CONFIG_VIDEO_KS0127 is not set
-# CONFIG_VIDEO_OV7670 is not set
-# CONFIG_VIDEO_MT9V011 is not set
-# CONFIG_VIDEO_TCM825X is not set
-# CONFIG_VIDEO_SAA7110 is not set
-# CONFIG_VIDEO_SAA711X is not set
-# CONFIG_VIDEO_SAA717X is not set
-# CONFIG_VIDEO_SAA7191 is not set
-# CONFIG_VIDEO_TVP514X is not set
-# CONFIG_VIDEO_TVP5150 is not set
-# CONFIG_VIDEO_TVP7002 is not set
-# CONFIG_VIDEO_VPX3220 is not set
-
-#
-# Video and audio decoders
-#
-# CONFIG_VIDEO_CX25840 is not set
-
-#
-# MPEG video encoders
-#
-# CONFIG_VIDEO_CX2341X is not set
-
-#
-# Video encoders
-#
-# CONFIG_VIDEO_SAA7127 is not set
-# CONFIG_VIDEO_SAA7185 is not set
-# CONFIG_VIDEO_AD9889 is not set
-# CONFIG_VIDEO_ADV7170 is not set
-# CONFIG_VIDEO_ADV7175 is not set
-# CONFIG_VIDEO_THS7303 is not set
-# CONFIG_VIDEO_ADV7343 is not set
-# CONFIG_VIDEO_AK881X is not set
-
-#
-# Video improvement chips
-#
-# CONFIG_VIDEO_UPD64031A is not set
-# CONFIG_VIDEO_UPD64083 is not set
-# CONFIG_VIDEO_VIVI is not set
-# CONFIG_VIDEO_CPIA2 is not set
-# CONFIG_VIDEO_TIMBERDALE is not set
-# CONFIG_VIDEO_SR030PC30 is not set
CONFIG_SOC_CAMERA=m
-# CONFIG_SOC_CAMERA_IMX074 is not set
-# CONFIG_SOC_CAMERA_MT9M001 is not set
-# CONFIG_SOC_CAMERA_MT9M111 is not set
-# CONFIG_SOC_CAMERA_MT9T031 is not set
-# CONFIG_SOC_CAMERA_MT9T112 is not set
-# CONFIG_SOC_CAMERA_MT9V022 is not set
-# CONFIG_SOC_CAMERA_RJ54N1 is not set
-# CONFIG_SOC_CAMERA_TW9910 is not set
-# CONFIG_SOC_CAMERA_PLATFORM is not set
-# CONFIG_SOC_CAMERA_OV2640 is not set
-# CONFIG_SOC_CAMERA_OV6650 is not set
-# CONFIG_SOC_CAMERA_OV772X is not set
-# CONFIG_SOC_CAMERA_OV9640 is not set
-# CONFIG_SOC_CAMERA_OV96XX is not set
-# CONFIG_VIDEO_SH_MOBILE_CSI2 is not set
-# CONFIG_VIDEO_SH_MOBILE_CEU is not set
-CONFIG_VIDEO_MX2_HOSTSUPPORT=y
CONFIG_VIDEO_MX2=m
-CONFIG_V4L_USB_DRIVERS=y
-# CONFIG_USB_VIDEO_CLASS is not set
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-# CONFIG_USB_M5602 is not set
-# CONFIG_USB_STV06XX is not set
-# CONFIG_USB_GL860 is not set
-# CONFIG_USB_GSPCA_BENQ is not set
-# CONFIG_USB_GSPCA_CONEX is not set
-# CONFIG_USB_GSPCA_CPIA1 is not set
-# CONFIG_USB_GSPCA_ETOMS is not set
-# CONFIG_USB_GSPCA_FINEPIX is not set
-# CONFIG_USB_GSPCA_JEILINJ is not set
-# CONFIG_USB_GSPCA_KONICA is not set
-# CONFIG_USB_GSPCA_MARS is not set
-# CONFIG_USB_GSPCA_MR97310A is not set
-# CONFIG_USB_GSPCA_OV519 is not set
-# CONFIG_USB_GSPCA_OV534 is not set
-# CONFIG_USB_GSPCA_OV534_9 is not set
-# CONFIG_USB_GSPCA_PAC207 is not set
-# CONFIG_USB_GSPCA_PAC7302 is not set
-# CONFIG_USB_GSPCA_PAC7311 is not set
-# CONFIG_USB_GSPCA_SN9C2028 is not set
-# CONFIG_USB_GSPCA_SN9C20X is not set
-# CONFIG_USB_GSPCA_SONIXB is not set
-# CONFIG_USB_GSPCA_SONIXJ is not set
-# CONFIG_USB_GSPCA_SPCA500 is not set
-# CONFIG_USB_GSPCA_SPCA501 is not set
-# CONFIG_USB_GSPCA_SPCA505 is not set
-# CONFIG_USB_GSPCA_SPCA506 is not set
-# CONFIG_USB_GSPCA_SPCA508 is not set
-# CONFIG_USB_GSPCA_SPCA561 is not set
-# CONFIG_USB_GSPCA_SPCA1528 is not set
-# CONFIG_USB_GSPCA_SQ905 is not set
-# CONFIG_USB_GSPCA_SQ905C is not set
-# CONFIG_USB_GSPCA_SQ930X is not set
-# CONFIG_USB_GSPCA_STK014 is not set
-# CONFIG_USB_GSPCA_STV0680 is not set
-# CONFIG_USB_GSPCA_SUNPLUS is not set
-# CONFIG_USB_GSPCA_T613 is not set
-# CONFIG_USB_GSPCA_TV8532 is not set
-# CONFIG_USB_GSPCA_VC032X is not set
-# CONFIG_USB_GSPCA_XIRLINK_CIT is not set
-# CONFIG_USB_GSPCA_ZC3XX is not set
-# CONFIG_VIDEO_PVRUSB2 is not set
-# CONFIG_VIDEO_HDPVR is not set
-# CONFIG_VIDEO_USBVISION is not set
-# CONFIG_USB_ET61X251 is not set
-# CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_PWC is not set
-# CONFIG_USB_ZR364XX is not set
-# CONFIG_USB_STKWEBCAM is not set
-# CONFIG_USB_S2255 is not set
-# CONFIG_V4L_MEM2MEM_DRIVERS is not set
# CONFIG_RADIO_ADAPTERS is not set
-
-#
-# Graphics support
-#
-CONFIG_HAVE_FB_IMX=y
-# CONFIG_DRM is not set
-# CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
CONFIG_FB=y
-# CONFIG_FIRMWARE_EDID is not set
-# CONFIG_FB_DDC is not set
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-# CONFIG_FB_SYS_FILLRECT is not set
-# CONFIG_FB_SYS_COPYAREA is not set
-# CONFIG_FB_SYS_IMAGEBLIT is not set
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-# CONFIG_FB_SYS_FOPS is not set
-# CONFIG_FB_WMT_GE_ROPS is not set
-# CONFIG_FB_SVGALIB is not set
-# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_BACKLIGHT is not set
-# CONFIG_FB_MODE_HELPERS is not set
-# CONFIG_FB_TILEBLITTING is not set
-
-#
-# Frame buffer hardware drivers
-#
CONFIG_FB_IMX=y
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_UDL is not set
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_MB862XX is not set
-# CONFIG_FB_BROADSHEET is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=m
-# CONFIG_LCD_L4F00242T03 is not set
-# CONFIG_LCD_LMS283GF05 is not set
-# CONFIG_LCD_LTV350QV is not set
-# CONFIG_LCD_TDO24M is not set
-# CONFIG_LCD_VGG2432A4 is not set
-# CONFIG_LCD_PLATFORM is not set
-# CONFIG_LCD_S6E63M0 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
-# CONFIG_BACKLIGHT_ADP8860 is not set
-
-#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT is not set
-
-#
-# Console display driver support
-#
-CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
-# CONFIG_FONT_8x16 is not set
-# CONFIG_FONT_6x11 is not set
-# CONFIG_FONT_7x14 is not set
-# CONFIG_FONT_PEARL_8x8 is not set
-# CONFIG_FONT_ACORN_8x8 is not set
-# CONFIG_FONT_MINI_4x6 is not set
-# CONFIG_FONT_SUN8x16 is not set
-# CONFIG_FONT_SUN12x22 is not set
-# CONFIG_FONT_10x18 is not set
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
-CONFIG_LOGO_LINUX_CLUT224=y
-CONFIG_LOGO_ARMADEUS_CLUT224=y
CONFIG_SOUND=m
-CONFIG_SOUND_OSS_CORE=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_JACK=y
-# CONFIG_SND_SEQUENCER is not set
-CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-# CONFIG_SND_HRTIMER is not set
-# CONFIG_SND_DYNAMIC_MINORS is not set
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-# CONFIG_SND_RAWMIDI_SEQ is not set
-# CONFIG_SND_OPL3_LIB_SEQ is not set
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-# CONFIG_SND_EMU10K1_SEQ is not set
# CONFIG_SND_DRIVERS is not set
# CONFIG_SND_ARM is not set
# CONFIG_SND_SPI is not set
# CONFIG_SND_USB is not set
CONFIG_SND_SOC=m
-# CONFIG_SND_SOC_CACHE_LZO is not set
-CONFIG_SND_SOC_AC97_BUS=y
CONFIG_SND_IMX_SOC=m
-CONFIG_SND_SOC_I2C_AND_SPI=m
-# CONFIG_SND_SOC_ALL_CODECS is not set
-# CONFIG_SOUND_PRIME is not set
-CONFIG_AC97_BUS=m
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-# CONFIG_HIDRAW is not set
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=y
-# CONFIG_HID_PID is not set
-# CONFIG_USB_HIDDEV is not set
-
-#
-# Special HID drivers
-#
-# CONFIG_HID_3M_PCT is not set
-# CONFIG_HID_A4TECH is not set
-# CONFIG_HID_ACRUX is not set
-# CONFIG_HID_APPLE is not set
-# CONFIG_HID_BELKIN is not set
-# CONFIG_HID_CANDO is not set
-# CONFIG_HID_CHERRY is not set
-# CONFIG_HID_CHICONY is not set
-# CONFIG_HID_PRODIKEYS is not set
-# CONFIG_HID_CYPRESS is not set
-# CONFIG_HID_DRAGONRISE is not set
-# CONFIG_HID_EMS_FF is not set
-# CONFIG_HID_EGALAX is not set
-# CONFIG_HID_ELECOM is not set
-# CONFIG_HID_EZKEY is not set
-# CONFIG_HID_KYE is not set
-# CONFIG_HID_UCLOGIC is not set
-# CONFIG_HID_WALTOP is not set
-# CONFIG_HID_GYRATION is not set
-# CONFIG_HID_TWINHAN is not set
-# CONFIG_HID_KENSINGTON is not set
-# CONFIG_HID_LOGITECH is not set
-# CONFIG_HID_MAGICMOUSE is not set
-# CONFIG_HID_MICROSOFT is not set
-# CONFIG_HID_MOSART is not set
-# CONFIG_HID_MONTEREY is not set
-# CONFIG_HID_MULTITOUCH is not set
-# CONFIG_HID_NTRIG is not set
-# CONFIG_HID_ORTEK is not set
-# CONFIG_HID_PANTHERLORD is not set
-# CONFIG_HID_PETALYNX is not set
-# CONFIG_HID_PICOLCD is not set
-# CONFIG_HID_QUANTA is not set
-# CONFIG_HID_ROCCAT is not set
-# CONFIG_HID_ROCCAT_KONE is not set
-# CONFIG_HID_ROCCAT_KONEPLUS is not set
-# CONFIG_HID_ROCCAT_PYRA is not set
-# CONFIG_HID_SAMSUNG is not set
-# CONFIG_HID_SONY is not set
-# CONFIG_HID_STANTUM is not set
-# CONFIG_HID_SUNPLUS is not set
-# CONFIG_HID_GREENASIA is not set
-# CONFIG_HID_SMARTJOYPLUS is not set
-# CONFIG_HID_TOPSEED is not set
-# CONFIG_HID_THRUSTMASTER is not set
-# CONFIG_HID_WACOM is not set
-# CONFIG_HID_ZEROPLUS is not set
-# CONFIG_HID_ZYDACRON is not set
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_ARCH_HAS_HCD=y
-# CONFIG_USB_ARCH_HAS_OHCI is not set
-CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=y
CONFIG_USB_DEBUG=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
CONFIG_USB_MON=y
-# CONFIG_USB_WUSB is not set
-# CONFIG_USB_WUSB_CBAF is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
CONFIG_USB_EHCI_MXC=y
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_ISP1362_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_HWA_HCD is not set
-# CONFIG_USB_MUSB_HDRC is not set
-
-#
-# USB Device Class drivers
-#
CONFIG_USB_ACM=y
CONFIG_USB_PRINTER=y
CONFIG_USB_WDM=y
-# CONFIG_USB_TMC is not set
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_ISD200 is not set
-# CONFIG_USB_STORAGE_USBAT is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_SDDR55 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_STORAGE_ALAUDA is not set
-# CONFIG_USB_STORAGE_ONETOUCH is not set
-# CONFIG_USB_STORAGE_KARMA is not set
-# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-# CONFIG_USB_UAS is not set
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB port drivers
-#
-# CONFIG_USB_SERIAL is not set
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_ADUTUX is not set
-# CONFIG_USB_SEVSEG is not set
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_LED is not set
-# CONFIG_USB_CYPRESS_CY7C63 is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_IDMOUSE is not set
-# CONFIG_USB_FTDI_ELAN is not set
-# CONFIG_USB_APPLEDISPLAY is not set
-# CONFIG_USB_SISUSBVGA is not set
-# CONFIG_USB_LD is not set
-# CONFIG_USB_TRANCEVIBRATOR is not set
-# CONFIG_USB_IOWARRIOR is not set
-# CONFIG_USB_TEST is not set
-# CONFIG_USB_ISIGHTFW is not set
-# CONFIG_USB_YUREX is not set
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_DEBUG_FILES=y
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_SELECTED=y
-CONFIG_USB_GADGET_FSL_USB2=y
-CONFIG_USB_FSL_USB2=y
-# CONFIG_USB_GADGET_R8A66597 is not set
-# CONFIG_USB_GADGET_PXA_U2O is not set
-# CONFIG_USB_GADGET_M66592 is not set
-# CONFIG_USB_GADGET_DUMMY_HCD is not set
-CONFIG_USB_GADGET_DUALSPEED=y
-# CONFIG_USB_ZERO is not set
-# CONFIG_USB_AUDIO is not set
CONFIG_USB_ETH=y
-CONFIG_USB_ETH_RNDIS=y
-# CONFIG_USB_ETH_EEM is not set
-# CONFIG_USB_G_NCM is not set
-# CONFIG_USB_GADGETFS is not set
-# CONFIG_USB_FUNCTIONFS is not set
-# CONFIG_USB_FILE_STORAGE is not set
-# CONFIG_USB_MASS_STORAGE is not set
-# CONFIG_USB_G_SERIAL is not set
-# CONFIG_USB_MIDI_GADGET is not set
-# CONFIG_USB_G_PRINTER is not set
-# CONFIG_USB_CDC_COMPOSITE is not set
-# CONFIG_USB_G_MULTI is not set
-# CONFIG_USB_G_HID is not set
-# CONFIG_USB_G_DBGP is not set
-# CONFIG_USB_G_WEBCAM is not set
-
-#
-# OTG and related infrastructure
-#
-CONFIG_USB_OTG_UTILS=y
-# CONFIG_USB_GPIO_VBUS is not set
CONFIG_USB_ULPI=y
-# CONFIG_NOP_USB_XCEIV is not set
-
-#
-# Armadeus specific drivers
-#
CONFIG_ARMADEUS_DRIVERS=y
-
-#
-# Misc.
-#
-# CONFIG_ARMADEUS_GENERIC_DRIVER is not set
-# CONFIG_ARMADEUS_AS1531_PLAT is not set
-# CONFIG_ARMADEUS_GPIO_DRIVER is not set
-# CONFIG_ARMADEUS_KEYPAD_DRIVER is not set
CONFIG_ARMADEUS_MAX1027=m
-# CONFIG_ARMADEUS_MAX9768 is not set
-
-#
-# FPGA related
-#
-
-#
-# FPGA Drivers
-#
CONFIG_ARMADEUS_FPGA_DRIVERS=y
-
-#
-# Drivers for configuring and testing the FPGA
-#
CONFIG_ARMADEUS_FPGA_LOADER_DRIVER=m
-
-#
-# Others drivers for the FPGA
-#
-# CONFIG_ARMADEUS_I2C_OCORE_IRQMNG is not set
-# CONFIG_ARMADEUS_PS2KBD_DRIVER is not set
-# CONFIG_ARMADEUS_WISHBONE_EXAMPLE_DRIVERS is not set
-# CONFIG_POD_DRIVERS is not set
-
-#
-# Handheld related
-#
-# CONFIG_ARMADEUS_PWM_DRIVER is not set
-# CONFIG_IMX_BACKLIGHT is not set
-# CONFIG_HX5116_DISPLAY is not set
-
-#
-# Communication bus related
-#
-# CONFIG_ARMADEUS_ISP1761 is not set
CONFIG_MMC=y
-# CONFIG_MMC_DEBUG is not set
-# CONFIG_MMC_UNSAFE_RESUME is not set
-# CONFIG_MMC_CLKGATE is not set
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_MMC_BLOCK_BOUNCE=y
-# CONFIG_SDIO_UART is not set
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-# CONFIG_MMC_SDHCI is not set
CONFIG_MMC_MXC=y
-# CONFIG_MMC_SPI is not set
-# CONFIG_MMC_DW is not set
-# CONFIG_MMC_USHC is not set
-# CONFIG_MEMSTICK is not set
-# CONFIG_NEW_LEDS is not set
-# CONFIG_NFC_DEVICES is not set
-# CONFIG_ACCESSIBILITY is not set
-CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_DS1307 is not set
CONFIG_RTC_DRV_DS1374=y
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_DS3232 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_ISL12022 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-# CONFIG_RTC_DRV_PCF8563 is not set
-# CONFIG_RTC_DRV_PCF8583 is not set
-# CONFIG_RTC_DRV_M41T80 is not set
-# CONFIG_RTC_DRV_BQ32K is not set
-# CONFIG_RTC_DRV_S35390A is not set
-# CONFIG_RTC_DRV_FM3130 is not set
-# CONFIG_RTC_DRV_RX8581 is not set
-# CONFIG_RTC_DRV_RX8025 is not set
-
-#
-# SPI RTC drivers
-#
-# CONFIG_RTC_DRV_M41T94 is not set
-# CONFIG_RTC_DRV_DS1305 is not set
-# CONFIG_RTC_DRV_DS1390 is not set
-# CONFIG_RTC_DRV_MAX6902 is not set
-# CONFIG_RTC_DRV_R9701 is not set
-# CONFIG_RTC_DRV_RS5C348 is not set
-# CONFIG_RTC_DRV_DS3234 is not set
-# CONFIG_RTC_DRV_PCF2123 is not set
-
-#
-# Platform RTC drivers
-#
-# CONFIG_RTC_DRV_CMOS is not set
-# CONFIG_RTC_DRV_DS1286 is not set
-# CONFIG_RTC_DRV_DS1511 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T35 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_MSM6242 is not set
CONFIG_RTC_MXC=m
-# CONFIG_RTC_DRV_BQ4802 is not set
-# CONFIG_RTC_DRV_RP5C01 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-
-#
-# on-CPU RTC drivers
-#
-# CONFIG_DMADEVICES is not set
-# CONFIG_AUXDISPLAY is not set
-# CONFIG_UIO is not set
-# CONFIG_STAGING is not set
-CONFIG_CLKDEV_LOOKUP=y
-
-#
-# File systems
-#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT2_FS_XIP=y
CONFIG_EXT3_FS=y
-CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
-CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
-# CONFIG_EXT4_FS is not set
-CONFIG_FS_XIP=y
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_GFS2_FS is not set
-# CONFIG_BTRFS_FS is not set
-# CONFIG_NILFS2_FS is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-# CONFIG_FANOTIFY is not set
-# CONFIG_QUOTA is not set
-# CONFIG_QUOTACTL is not set
CONFIG_AUTOFS4_FS=y
-# CONFIG_FUSE_FS is not set
-
-#
-# Caches
-#
-# CONFIG_FSCACHE is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
-# CONFIG_UDF_FS is not set
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_SYSFS=y
CONFIG_TMPFS=y
-# CONFIG_TMPFS_POSIX_ACL is not set
-# CONFIG_HUGETLB_PAGE is not set
-# CONFIG_CONFIGFS_FS is not set
-CONFIG_MISC_FILESYSTEMS=y
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_ECRYPT_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-# CONFIG_JFFS2_SUMMARY is not set
-# CONFIG_JFFS2_FS_XATTR is not set
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
CONFIG_JFFS2_CMODE_NONE=y
-# CONFIG_JFFS2_CMODE_PRIORITY is not set
-# CONFIG_JFFS2_CMODE_SIZE is not set
-# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
CONFIG_UBIFS_FS=y
-# CONFIG_UBIFS_FS_XATTR is not set
-# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-# CONFIG_UBIFS_FS_DEBUG is not set
-# CONFIG_LOGFS is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_SQUASHFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_OMFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_ROMFS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
CONFIG_NFS_V4=y
-# CONFIG_NFS_V4_1 is not set
CONFIG_ROOT_NFS=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-# CONFIG_NFS_USE_NEW_IDMAPPER is not set
-# CONFIG_NFSD is not set
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-CONFIG_SUNRPC_GSS=y
-CONFIG_RPCSEC_GSS_KRB5=y
-# CONFIG_CEPH_FS is not set
-# CONFIG_CIFS is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_KARMA_PARTITION is not set
-# CONFIG_EFI_PARTITION is not set
-# CONFIG_SYSV68_PARTITION is not set
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=y
-# CONFIG_NLS_CODEPAGE_852 is not set
-# CONFIG_NLS_CODEPAGE_855 is not set
-# CONFIG_NLS_CODEPAGE_857 is not set
-# CONFIG_NLS_CODEPAGE_860 is not set
-# CONFIG_NLS_CODEPAGE_861 is not set
-# CONFIG_NLS_CODEPAGE_862 is not set
-# CONFIG_NLS_CODEPAGE_863 is not set
-# CONFIG_NLS_CODEPAGE_864 is not set
-# CONFIG_NLS_CODEPAGE_865 is not set
-# CONFIG_NLS_CODEPAGE_866 is not set
-# CONFIG_NLS_CODEPAGE_869 is not set
-# CONFIG_NLS_CODEPAGE_936 is not set
-# CONFIG_NLS_CODEPAGE_950 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
-# CONFIG_NLS_CODEPAGE_949 is not set
-# CONFIG_NLS_CODEPAGE_874 is not set
-# CONFIG_NLS_ISO8859_8 is not set
-# CONFIG_NLS_CODEPAGE_1250 is not set
-# CONFIG_NLS_CODEPAGE_1251 is not set
-# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
-# CONFIG_NLS_ISO8859_2 is not set
-# CONFIG_NLS_ISO8859_3 is not set
-# CONFIG_NLS_ISO8859_4 is not set
-# CONFIG_NLS_ISO8859_5 is not set
-# CONFIG_NLS_ISO8859_6 is not set
-# CONFIG_NLS_ISO8859_7 is not set
-# CONFIG_NLS_ISO8859_9 is not set
-# CONFIG_NLS_...
[truncated message content] |
|
From: Gwenhael Goavec-M. <gwe...@us...> - 2011-10-11 18:04:31
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via e9724660475b37af9807753975c878fc0f7437e0 (commit)
from b4556e3829758d9487004b14dac410ab4b54fe7b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit e9724660475b37af9807753975c878fc0f7437e0
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Tue Oct 11 20:03:01 2011 +0200
[BUILDROOT][APF9328] Rename 2.6.38.8 kernel config to 2.6.38 and create a link for 2.6.38.8
-----------------------------------------------------------------------
Summary of changes:
.../armadeus/apf9328/apf9328-linux-2.6.38.8.config | 164 +-------------------
...2.6.38.8.config => apf9328-linux-2.6.38.config} | 0
2 files changed, 1 insertions(+), 163 deletions(-)
mode change 100644 => 120000 buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.8.config
copy buildroot/target/device/armadeus/apf9328/{apf9328-linux-2.6.38.8.config => apf9328-linux-2.6.38.config} (100%)
diff --git a/buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.8.config b/buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.8.config
deleted file mode 100644
index 420c38a..0000000
--- a/buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.8.config
+++ /dev/null
@@ -1,163 +0,0 @@
-CONFIG_EXPERIMENTAL=y
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
-CONFIG_EMBEDDED=y
-# CONFIG_KALLSYMS is not set
-CONFIG_SLAB=y
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_CFQ is not set
-CONFIG_ARCH_MXC=y
-CONFIG_ARCH_MX1=y
-CONFIG_MACH_APF9328=y
-CONFIG_IMX_APF9328_FLASH_8MB=y
-CONFIG_MXC_PWM=y
-CONFIG_MXC_DEBUG_BOARD=y
-CONFIG_PREEMPT=y
-CONFIG_AEABI=y
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_LRO is not set
-CONFIG_IPV6=y
-# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET6_XFRM_MODE_BEET is not set
-# CONFIG_IPV6_SIT is not set
-# CONFIG_WIRELESS is not set
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-CONFIG_MTD=y
-CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_INTELEXT=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_UBI=y
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=1
-CONFIG_BLK_DEV_RAM_SIZE=2048
-CONFIG_MISC_DEVICES=y
-CONFIG_NETDEVICES=y
-CONFIG_NET_ETHERNET=y
-CONFIG_DM9000=y
-CONFIG_DM9000_DEBUGLEVEL=2
-CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
-# CONFIG_NETDEV_1000 is not set
-# CONFIG_NETDEV_10000 is not set
-# CONFIG_WLAN is not set
-CONFIG_INPUT_FF_MEMLESS=y
-CONFIG_INPUT_POLLDEV=y
-CONFIG_INPUT_SPARSEKMAP=y
-CONFIG_INPUT_JOYDEV=y
-CONFIG_INPUT_EVDEV=y
-CONFIG_INPUT_EVBUG=y
-CONFIG_KEYBOARD_MATRIX=y
-CONFIG_KEYBOARD_NEWTON=y
-CONFIG_KEYBOARD_OPENCORES=y
-CONFIG_KEYBOARD_STOWAWAY=y
-CONFIG_KEYBOARD_SUNKBD=y
-CONFIG_KEYBOARD_XTKBD=y
-# CONFIG_INPUT_MOUSE is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_TSC2102=y
-CONFIG_SERIO_RAW=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_SERIAL_8250=m
-CONFIG_SERIAL_IMX=y
-CONFIG_SERIAL_IMX_CONSOLE=y
-CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
-CONFIG_HW_RANDOM=y
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_IMX=y
-CONFIG_SPI=y
-CONFIG_SPI_IMX=y
-CONFIG_GPIO_SYSFS=y
-# CONFIG_MFD_SUPPORT is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=y
-CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-CONFIG_FB_IMX=y
-CONFIG_FB_VIRTUAL=y
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_BACKLIGHT_GENERIC is not set
-CONFIG_DISPLAY_SUPPORT=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-CONFIG_FONTS=y
-CONFIG_FONT_6x11=y
-CONFIG_FONT_7x14=y
-CONFIG_FONT_PEARL_8x8=y
-CONFIG_FONT_ACORN_8x8=y
-CONFIG_FONT_SUN8x16=y
-CONFIG_FONT_SUN12x22=y
-CONFIG_FONT_10x18=y
-CONFIG_LOGO=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-# CONFIG_LOGO_LINUX_CLUT224 is not set
-CONFIG_HIDRAW=y
-CONFIG_HID_PID=y
-# CONFIG_USB_SUPPORT is not set
-CONFIG_ARMADEUS_DRIVERS=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_AUTOFS4_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_ROMFS_FS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V4=y
-CONFIG_ROOT_NFS=y
-CONFIG_PARTITION_ADVANCED=y
-CONFIG_BSD_DISKLABEL=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_850=y
-CONFIG_NLS_ISO8859_1=y
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-# CONFIG_ARM_UNWIND is not set
-CONFIG_CRYPTO_ECB=m
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-# CONFIG_CRYPTO_HW is not set
-CONFIG_CRC16=y
-CONFIG_CRC_ITU_T=y
-CONFIG_CRC7=y
-CONFIG_LIBCRC32C=m
diff --git a/buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.8.config b/buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.8.config
new file mode 120000
index 0000000..cecede5
--- /dev/null
+++ b/buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.8.config
@@ -0,0 +1 @@
+apf9328-linux-2.6.38.config
\ No newline at end of file
diff --git a/buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.8.config b/buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.config
similarity index 100%
copy from buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.8.config
copy to buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.config
hooks/post-receive
--
armadeus
|
|
From: Gwenhael Goavec-M. <gwe...@us...> - 2011-10-11 17:33:19
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via b4556e3829758d9487004b14dac410ab4b54fe7b (commit)
via b72f2d576f0da87e2a1ed0db56e615b09f20c872 (commit)
from c28d39fba8c6410d70f7a962f0eb1690af16cb6f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit b4556e3829758d9487004b14dac410ab4b54fe7b
Merge: b72f2d5 c28d39f
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Tue Oct 11 19:31:48 2011 +0200
Merge branch 'master' of ssh://armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit b72f2d576f0da87e2a1ed0db56e615b09f20c872
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Tue Oct 11 19:30:48 2011 +0200
[BUILDROOT][APF9328] Add config file for 2.6.38 kernel
-----------------------------------------------------------------------
Summary of changes:
.../armadeus/apf9328/apf9328-linux-2.6.38.8.config | 163 ++++++++++++++++++++
1 files changed, 163 insertions(+), 0 deletions(-)
create mode 100644 buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.8.config
diff --git a/buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.8.config b/buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.8.config
new file mode 100644
index 0000000..420c38a
--- /dev/null
+++ b/buildroot/target/device/armadeus/apf9328/apf9328-linux-2.6.38.8.config
@@ -0,0 +1,163 @@
+CONFIG_EXPERIMENTAL=y
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SYSVIPC=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+CONFIG_EMBEDDED=y
+# CONFIG_KALLSYMS is not set
+CONFIG_SLAB=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_ARCH_MXC=y
+CONFIG_ARCH_MX1=y
+CONFIG_MACH_APF9328=y
+CONFIG_IMX_APF9328_FLASH_8MB=y
+CONFIG_MXC_PWM=y
+CONFIG_MXC_DEBUG_BOARD=y
+CONFIG_PREEMPT=y
+CONFIG_AEABI=y
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_LRO is not set
+CONFIG_IPV6=y
+# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET6_XFRM_MODE_BEET is not set
+# CONFIG_IPV6_SIT is not set
+# CONFIG_WIRELESS is not set
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_MTD=y
+CONFIG_MTD_PARTITIONS=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_UBI=y
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=1
+CONFIG_BLK_DEV_RAM_SIZE=2048
+CONFIG_MISC_DEVICES=y
+CONFIG_NETDEVICES=y
+CONFIG_NET_ETHERNET=y
+CONFIG_DM9000=y
+CONFIG_DM9000_DEBUGLEVEL=2
+CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+# CONFIG_WLAN is not set
+CONFIG_INPUT_FF_MEMLESS=y
+CONFIG_INPUT_POLLDEV=y
+CONFIG_INPUT_SPARSEKMAP=y
+CONFIG_INPUT_JOYDEV=y
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=y
+CONFIG_KEYBOARD_MATRIX=y
+CONFIG_KEYBOARD_NEWTON=y
+CONFIG_KEYBOARD_OPENCORES=y
+CONFIG_KEYBOARD_STOWAWAY=y
+CONFIG_KEYBOARD_SUNKBD=y
+CONFIG_KEYBOARD_XTKBD=y
+# CONFIG_INPUT_MOUSE is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_TSC2102=y
+CONFIG_SERIO_RAW=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_SERIAL_8250=m
+CONFIG_SERIAL_IMX=y
+CONFIG_SERIAL_IMX_CONSOLE=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+CONFIG_HW_RANDOM=y
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_IMX=y
+CONFIG_SPI=y
+CONFIG_SPI_IMX=y
+CONFIG_GPIO_SYSFS=y
+# CONFIG_MFD_SUPPORT is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_IMX=y
+CONFIG_FB_VIRTUAL=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_GENERIC is not set
+CONFIG_DISPLAY_SUPPORT=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+CONFIG_FONT_6x11=y
+CONFIG_FONT_7x14=y
+CONFIG_FONT_PEARL_8x8=y
+CONFIG_FONT_ACORN_8x8=y
+CONFIG_FONT_SUN8x16=y
+CONFIG_FONT_SUN12x22=y
+CONFIG_FONT_10x18=y
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+# CONFIG_LOGO_LINUX_CLUT224 is not set
+CONFIG_HIDRAW=y
+CONFIG_HID_PID=y
+# CONFIG_USB_SUPPORT is not set
+CONFIG_ARMADEUS_DRIVERS=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_JFFS2_FS=y
+CONFIG_ROMFS_FS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_850=y
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_ARM_UNWIND is not set
+CONFIG_CRYPTO_ECB=m
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_HW is not set
+CONFIG_CRC16=y
+CONFIG_CRC_ITU_T=y
+CONFIG_CRC7=y
+CONFIG_LIBCRC32C=m
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2011-10-06 14:35:54
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via c28d39fba8c6410d70f7a962f0eb1690af16cb6f (commit)
from 6a39b31ff32c6407deb38e92a1a4dd04676fe41d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c28d39fba8c6410d70f7a962f0eb1690af16cb6f
Author: Julien Boibessot <jul...@ar...>
Date: Thu Oct 6 16:35:00 2011 +0200
[BUILD] Makes ARMADEUS_GCC_VERSION be evaluated only at the end of the build
-----------------------------------------------------------------------
Summary of changes:
Makefile.in | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 43103b0..61ac4d3 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -68,9 +68,9 @@ ARMADEUS_BOARD_DIR:=$(BUILDROOT_DIR)/target/device/armadeus/$(ARMADEUS_BOARD_NAM
ARMADEUS_STAGING_DIR:=$(BUILDROOT_OUTPUT_DIR)/staging
ARMADEUS_TOOLCHAIN_PATH:=$(BUILDROOT_OUTPUT_DIR)/host/usr/bin
ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
-ARMADEUS_GCC_VERSION:=$(shell $(ARMADEUS_TOOLCHAIN_PATH)/$(BR2_TOOLCHAIN_EXTERNAL_PREFIX)-gcc -dumpversion)
+ARMADEUS_GCC_VERSION=$(shell $(ARMADEUS_TOOLCHAIN_PATH)/$(BR2_TOOLCHAIN_EXTERNAL_PREFIX)-gcc -dumpversion)
else
-ARMADEUS_GCC_VERSION:=$(shell $(ARMADEUS_TOOLCHAIN_PATH)/arm-linux-gcc -dumpversion)
+ARMADEUS_GCC_VERSION=$(shell $(ARMADEUS_TOOLCHAIN_PATH)/arm-linux-gcc -dumpversion)
endif
ARMADEUS_BUILD_DIR:=$(BUILDROOT_BUILD_DIR)
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2011-10-06 08:59:52
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 6a39b31ff32c6407deb38e92a1a4dd04676fe41d (commit)
via 3a3a3e10666ba81f7347935aacbbf671183f1a8d (commit)
from b115a688bd0635c27a9bea1a4931814b9f116958 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 6a39b31ff32c6407deb38e92a1a4dd04676fe41d
Author: Julien Boibessot <jul...@ar...>
Date: Thu Oct 6 10:58:34 2011 +0200
[BUILDROOT] crosstool: bump kernel headers version
commit 3a3a3e10666ba81f7347935aacbbf671183f1a8d
Author: Julien Boibessot <jul...@ar...>
Date: Thu Oct 6 10:44:25 2011 +0200
[BUILD] Supports external/crosstool toolchains and other libc librairies than uClibc in build end message
-----------------------------------------------------------------------
Summary of changes:
Makefile | 2 +-
Makefile.in | 20 +++++++++-
...160-crosstool-bump_kernel_headers_version.patch | 41 ++++++++++++++++++++
3 files changed, 60 insertions(+), 3 deletions(-)
create mode 100644 patches/buildroot/2011.05/160-crosstool-bump_kernel_headers_version.patch
diff --git a/Makefile b/Makefile
index bac572a..0374289 100644
--- a/Makefile
+++ b/Makefile
@@ -55,7 +55,7 @@ ECHO_BUILD_IS_OK:= echo -en "\033[1m"; \
echo ""; \
echo "Your Armadeus BSP (version "$(ARMADEUS_BSP_VERSION)" for "$(ARMADEUS_BOARD_NAME)") was successfully built !"; \
echo " gcc: "$(ARMADEUS_GCC_VERSION)""; \
- echo " uClibc: "$(ARMADEUS_UCLIBC_VERSION)""; \
+ echo " libc: "$(ARMADEUS_LIBC_NAME) $(ARMADEUS_LIBC_VERSION)""; \
echo " busybox: "$(ARMADEUS_BUSYBOX_VERSION)""; \
echo " U-Boot: "$(ARMADEUS_U_BOOT_VERSION)""; \
echo " Linux: "$(ARMADEUS_LINUX_VERSION)""; \
diff --git a/Makefile.in b/Makefile.in
index 15c1e4e..43103b0 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -14,8 +14,19 @@ BUILDROOT_DIR:=$(ARMADEUS_BASE_DIR)/buildroot
ARMADEUS_LINUX_VERSION:=$(shell echo $(BR2_LINUX_KERNEL_VERSION))
ARMADEUS_U_BOOT_VERSION:=$(shell echo $(BR2_TARGET_UBOOT_VERSION))
-ARMADEUS_UCLIBC_VERSION:=$(shell echo $(BR2_UCLIBC_VERSION_STRING))
-ARMADEUS_GCC_VERSION:=$(shell echo $(BR2_GCC_VERSION))
+ARMADEUS_LIBC_NAME=unknown
+ARMADEUS_LIBC_VERSION=X.Y
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
+ARMADEUS_LIBC_NAME=uClibc
+ARMADEUS_LIBC_VERSION:=$(shell echo $(BR2_UCLIBC_VERSION_STRING))
+endif
+ifeq ($(BR2_TOOLCHAIN_CTNG),y)
+ARMADEUS_LIBC_NAME:=$(BR2_TOOLCHAIN_CTNG_LIBC)
+ARMADEUS_LIBC_VERSION:=$(shell grep CT_LIBC_VERSION $(BUILDROOT_DIR)/$(BR2_TOOLCHAIN_CTNG_CONFIG) | cut -d = -f 2)
+endif
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
+ARMADEUS_LIBC_NAME=glibc
+endif
ARMADEUS_BUSYBOX_VERSION:=$(shell echo $(BR2_BUSYBOX_VERSION))
ARMADEUS_BOARD_NAME:=$(shell echo $(BR2_BOARD_NAME))
ARMADEUS_TARGET_ARCH:=$(shell echo $(BR2_GCC_TARGET_ARCH))
@@ -56,6 +67,11 @@ ARMADEUS_UCLIBC_DIR:=$(BUILDROOT_TOOLCHAIN_BUILD_DIR)/uClibc-$(ARMADEUS_UCLIBC_V
ARMADEUS_BOARD_DIR:=$(BUILDROOT_DIR)/target/device/armadeus/$(ARMADEUS_BOARD_NAME)
ARMADEUS_STAGING_DIR:=$(BUILDROOT_OUTPUT_DIR)/staging
ARMADEUS_TOOLCHAIN_PATH:=$(BUILDROOT_OUTPUT_DIR)/host/usr/bin
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
+ARMADEUS_GCC_VERSION:=$(shell $(ARMADEUS_TOOLCHAIN_PATH)/$(BR2_TOOLCHAIN_EXTERNAL_PREFIX)-gcc -dumpversion)
+else
+ARMADEUS_GCC_VERSION:=$(shell $(ARMADEUS_TOOLCHAIN_PATH)/arm-linux-gcc -dumpversion)
+endif
ARMADEUS_BUILD_DIR:=$(BUILDROOT_BUILD_DIR)
ARMADEUS_SDL_DIR:=$(ARMADEUS_BUILD_DIR)/sdl-$(ARMADEUS_SDL_VERSION)
diff --git a/patches/buildroot/2011.05/160-crosstool-bump_kernel_headers_version.patch b/patches/buildroot/2011.05/160-crosstool-bump_kernel_headers_version.patch
new file mode 100644
index 0000000..f290cb1
--- /dev/null
+++ b/patches/buildroot/2011.05/160-crosstool-bump_kernel_headers_version.patch
@@ -0,0 +1,41 @@
+Signed-off-by: Julien Boibessot <jul...@ar...>
+
+Index: buildroot/toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc
+===================================================================
+--- buildroot.orig/toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc 2011-10-06 10:47:24.000000000 +0200
++++ buildroot/toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc 2011-10-06 10:47:47.000000000 +0200
+@@ -194,7 +194,7 @@
+ # CT_MINGW32 is not set
+ CT_KERNEL_SUPPORTS_SHARED_LIBS=y
+ CT_KERNEL="linux"
+-CT_KERNEL_VERSION="2.6.38.4"
++CT_KERNEL_VERSION="2.6.38.8"
+ # CT_KERNEL_bare_metal is not set
+ CT_KERNEL_linux=y
+ # CT_KERNEL_mingw32 is not set
+Index: buildroot/toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc
+===================================================================
+--- buildroot.orig/toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc 2011-10-06 10:56:56.000000000 +0200
++++ buildroot/toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc 2011-10-06 10:57:10.000000000 +0200
+@@ -194,7 +194,7 @@
+ # CT_MINGW32 is not set
+ CT_KERNEL_SUPPORTS_SHARED_LIBS=y
+ CT_KERNEL="linux"
+-CT_KERNEL_VERSION="2.6.38.4"
++CT_KERNEL_VERSION="2.6.38.8"
+ # CT_KERNEL_bare_metal is not set
+ CT_KERNEL_linux=y
+ # CT_KERNEL_mingw32 is not set
+Index: buildroot/toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc
+===================================================================
+--- buildroot.orig/toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc 2011-10-06 10:56:22.000000000 +0200
++++ buildroot/toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc 2011-10-06 10:56:39.000000000 +0200
+@@ -194,7 +194,7 @@
+ # CT_MINGW32 is not set
+ CT_KERNEL_SUPPORTS_SHARED_LIBS=y
+ CT_KERNEL="linux"
+-CT_KERNEL_VERSION="2.6.38.4"
++CT_KERNEL_VERSION="2.6.38.8"
+ # CT_KERNEL_bare_metal is not set
+ CT_KERNEL_linux=y
+ # CT_KERNEL_mingw32 is not set
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2011-10-05 20:46:33
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via b115a688bd0635c27a9bea1a4931814b9f116958 (commit)
via 9094e1bd3ad613de22d63148912f24fd3dd788b6 (commit)
via 75c49d3741fa5ceb3e513ddb2dab70f45de71a0c (commit)
via 62589ddc82bcd3f035d3f4fdc3034718197daaf9 (commit)
via ed36f6cfaf16166b54602af2209173623d6d0900 (commit)
via e48564688a7c48e87edddede954650d67844d414 (commit)
via afbd60d3b8b426b37f4563c63fe82b36c991996b (commit)
via bed594eb2c34404e36138e6e4640cc909375adda (commit)
from f49894823ef466a292d20207dfcbdbf9b53e51eb (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit b115a688bd0635c27a9bea1a4931814b9f116958
Author: Julien Boibessot <jul...@ar...>
Date: Wed Oct 5 22:31:18 2011 +0200
[BUILDROOT] Re-makes 1.3.4 the default APF9328 U-Boot version
commit 9094e1bd3ad613de22d63148912f24fd3dd788b6
Author: Julien Boibessot <jul...@ar...>
Date: Wed Oct 5 21:00:34 2011 +0200
[BUILDROOT] Makes U-Boot's fw_printenv compile again with recent toolchains
commit 75c49d3741fa5ceb3e513ddb2dab70f45de71a0c
Author: Julien Boibessot <jul...@ar...>
Date: Wed Oct 5 19:26:38 2011 +0200
[LINUX] POD infrastructure: Escape to the Void
commit 62589ddc82bcd3f035d3f4fdc3034718197daaf9
Author: Julien Boibessot <jul...@ar...>
Date: Wed Oct 5 16:11:44 2011 +0200
[DEBUG] Fixes crash when imxregs is called without parameters
commit ed36f6cfaf16166b54602af2209173623d6d0900
Author: Julien Boibessot <jul...@ar...>
Date: Wed Oct 5 15:44:14 2011 +0200
Indentation
commit e48564688a7c48e87edddede954650d67844d414
Merge: afbd60d f498948
Author: Julien Boibessot <jul...@ar...>
Date: Tue Oct 4 22:03:28 2011 +0200
Merge branch 'master' of ssh://armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit afbd60d3b8b426b37f4563c63fe82b36c991996b
Author: Julien Boibessot <jul...@ar...>
Date: Tue Oct 4 20:01:31 2011 +0200
[U-BOOT] [2010.03] Fixes build with external recent EABI toolchains
commit bed594eb2c34404e36138e6e4640cc909375adda
Author: Julien Boibessot <jul...@ar...>
Date: Tue Oct 4 16:57:51 2011 +0200
[BUILD] Fixes scripts/quiltify.sh for U-Boot usage
-----------------------------------------------------------------------
Summary of changes:
buildroot/configs/apf9328_defconfig | 3 +-
buildroot/configs/apf9328test_defconfig | 1 +
...w_printenv_build_with_external_toolchains.patch | 21 +
...apf9328-fixes_gcc_4_4_EABI_linking_issues.patch | 54 +---
...-fixes_gcc_4_4_or_4_5_EABI_linking_issues.patch | 23 ++
scripts/quiltify.sh | 2 +-
target/linux/debug/imxregs/imxregs.c | 395 ++++++++++----------
target/linux/modules/fpga/Makefile | 5 +-
target/linux/modules/fpga/POD/Kconfig | 2 +-
target/linux/modules/fpga/POD/Makefile | 11 +-
target/linux/modules/fpga/POD/void/Makefile | 24 --
target/linux/modules/fpga/POD/void/void.c | 45 ---
12 files changed, 249 insertions(+), 337 deletions(-)
create mode 100644 patches/buildroot/2011.05/159-u-boot-fix_fw_printenv_build_with_external_toolchains.patch
create mode 100644 patches/u-boot/2010.03/u-boot-2010.03-151-all-apf-fixes_gcc_4_4_or_4_5_EABI_linking_issues.patch
delete mode 100644 target/linux/modules/fpga/POD/void/Kconfig
delete mode 100755 target/linux/modules/fpga/POD/void/Makefile
delete mode 100755 target/linux/modules/fpga/POD/void/void.c
diff --git a/buildroot/configs/apf9328_defconfig b/buildroot/configs/apf9328_defconfig
index d828b79..4edd418 100644
--- a/buildroot/configs/apf9328_defconfig
+++ b/buildroot/configs/apf9328_defconfig
@@ -54,12 +54,13 @@ BR2_PACKAGE_MTD_SUMTOOL=y
BR2_PACKAGE_TSLIB=y
BR2_PACKAGE_NTP=y
# BR2_PACKAGE_NTP_NTPD is not set
-BR2_PACKAGE_NANO=y
BR2_PACKAGE_PORTMAP=y
+BR2_PACKAGE_NANO=y
BR2_TARGET_ROOTFS_JFFS2=y
BR2_TARGET_ROOTFS_JFFS2_PAD=y
BR2_TARGET_UBOOT=y
BR2_TARGET_U_BOOT_CONFIG_HEADER_FILE="$(BR2_BOARD_PATH)/$(BR2_BOARD_NAME)-u-boot-$(BR2_TARGET_UBOOT_VERSION).h"
+BR2_TARGET_UBOOT_1_3_4=y
BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR="../patches/u-boot/$(BR2_TARGET_UBOOT_VERSION)/"
BR2_TARGET_UBOOT_TOOL_ENV=y
# BR2_TARGET_UBOOT_NETWORK is not set
diff --git a/buildroot/configs/apf9328test_defconfig b/buildroot/configs/apf9328test_defconfig
index e803cbd..819a903 100644
--- a/buildroot/configs/apf9328test_defconfig
+++ b/buildroot/configs/apf9328test_defconfig
@@ -103,6 +103,7 @@ BR2_TARGET_ROOTFS_JFFS2=y
BR2_TARGET_ROOTFS_JFFS2_PAD=y
BR2_TARGET_UBOOT=y
BR2_TARGET_U_BOOT_CONFIG_HEADER_FILE="$(BR2_BOARD_PATH)/$(BR2_BOARD_NAME)-u-boot-$(BR2_TARGET_UBOOT_VERSION).h"
+BR2_TARGET_UBOOT_1_3_4=y
BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR="../patches/u-boot/$(BR2_TARGET_UBOOT_VERSION)/"
BR2_TARGET_UBOOT_TOOL_ENV=y
# BR2_TARGET_UBOOT_NETWORK is not set
diff --git a/patches/buildroot/2011.05/159-u-boot-fix_fw_printenv_build_with_external_toolchains.patch b/patches/buildroot/2011.05/159-u-boot-fix_fw_printenv_build_with_external_toolchains.patch
new file mode 100644
index 0000000..1385957
--- /dev/null
+++ b/patches/buildroot/2011.05/159-u-boot-fix_fw_printenv_build_with_external_toolchains.patch
@@ -0,0 +1,21 @@
+Otherwise fw_printenv build fails with "arm-linux-gcc command unknown"
+with external toolchains.
+
+Should be removed when migrating to latest BR, as now fw_printenv build
+is done in packages/
+
+Signed-off-by: Julien Boibessot <jul...@ar...>
+
+Index: buildroot/boot/u-boot/u-boot.mk
+===================================================================
+--- buildroot.orig/boot/u-boot/u-boot.mk 2011-10-04 22:09:23.000000000 +0200
++++ buildroot/boot/u-boot/u-boot.mk 2011-10-04 22:10:19.000000000 +0200
+@@ -212,7 +212,7 @@
+ # Build manually fw_printenv for the target
+ $(TARGET_DIR)/usr/sbin/fw_printenv: $(U_BOOT_DIR)/.configured
+ $(TARGET_CONFIGURE_OPTS) \
+- $(MAKE) HOSTCC="$(TARGET_CC)" -C $(U_BOOT_DIR) env
++ $(MAKE) HOSTCC="$(TARGET_CC)" CROSS_COMPILE="$(TARGET_CROSS)" -C $(U_BOOT_DIR) env
+ $(INSTALL) -m 0755 -D $(U_BOOT_DIR)/tools/env/fw_printenv $@
+ ln -sf fw_printenv $(TARGET_DIR)/usr/sbin/fw_setenv
+
diff --git a/patches/u-boot/2010.03/u-boot-2010.03-150-apf9328-fixes_gcc_4_4_EABI_linking_issues.patch b/patches/u-boot/2010.03/u-boot-2010.03-150-apf9328-fixes_gcc_4_4_EABI_linking_issues.patch
index e033ef8..2e06531 100644
--- a/patches/u-boot/2010.03/u-boot-2010.03-150-apf9328-fixes_gcc_4_4_EABI_linking_issues.patch
+++ b/patches/u-boot/2010.03/u-boot-2010.03-150-apf9328-fixes_gcc_4_4_EABI_linking_issues.patch
@@ -1,24 +1,12 @@
-Don't know if it's the right way to do (marked as HACK in Openmoko). But
-without this patch, U-Boot (1.3.4) fails to link when gcc 4.3 or 4.4 is used.
-
-Errors are:
-
-xxx/buildroot/output/build/staging_dir/usr/bin-ccache/../lib/gcc/arm-linux-uclibcgnueabi/4.3.4/libgcc.a(_udivsi3.o): In function `__aeabi_uidiv':
-xxx/buildroot/output/toolchain/gcc-4.3.4/libgcc/../gcc/config/arm/lib1funcs.asm:810: multiple definition of `__udivsi3' lib_arm/libarm.a(_udivsi3.o):xxx/buildroot/output/build/u-boot-1.3.4/lib_arm/_udivsi3.S:17: first defined here
-...
-xxx/buildroot/output/build/staging_dir/usr/bin/arm-linux-uclibcgnueabi-ld: error: Source object xxx/buildroot/output/build/staging_dir/usr/bin-ccache/../lib/gcc/arm-linux-uclibcgnueabi/4.3.4/libgcc.a(_udivdi3.o) has EABI version 4, but target u-boot has EABI version 0
-xxx/buildroot/output/build/staging_dir/usr/bin/arm-linux-uclibcgnueabi-ld: failed to merge target specific data of file /home/julien/workspace/Armadeus_SF/armadeus-git-new-buildroot-build/buildroot/output/build/staging_dir/usr/bin-ccache/../lib/gcc/arm-linux-uclibcgnueabi/4.3.4/libgcc.a(_udivdi3.o)
-...
-xxx/buildroot/output/build/staging_dir/usr/bin/arm-linux-uclibcgnueabi-ld: failed to merge target specific data of file xxx/buildroot/output/build/staging_dir/usr/bin-ccache/../lib/gcc/arm-linux-uclibcgnueabi/4.3.4/libgcc.a(_clz.o)
-xxx/buildroot/output/build/staging_dir/usr/bin-ccache/../lib/gcc/arm-linux-uclibcgnueabi/4.3.4/libgcc.a(_udivdi3.o):(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'
+To check if still needed...
Signed-off-by: Julien Boibessot <jul...@ar...>
Index: u-boot-2010.03/board/armadeus/apf9328/apf9328.c
===================================================================
---- u-boot-2010.03.orig/board/armadeus/apf9328/apf9328.c 2011-01-05 18:06:50.000000000 +0100
-+++ u-boot-2010.03/board/armadeus/apf9328/apf9328.c 2011-01-05 18:08:34.000000000 +0100
-@@ -99,3 +99,12 @@
+--- u-boot-2010.03.orig/board/armadeus/apf9328/apf9328.c 2011-10-04 15:25:28.000000000 +0200
++++ u-boot-2010.03/board/armadeus/apf9328/apf9328.c 2011-10-04 15:52:25.000000000 +0200
+@@ -99,3 +99,10 @@
{
return;
}
@@ -29,43 +17,13 @@ Index: u-boot-2010.03/board/armadeus/apf9328/apf9328.c
+ return dm9000_initialize(bis);
+}
+#endif
-+
-+void abort() {}
Index: u-boot-2010.03/board/armadeus/apf9328/config.mk
===================================================================
---- u-boot-2010.03.orig/board/armadeus/apf9328/config.mk 2011-01-05 18:05:23.000000000 +0100
-+++ u-boot-2010.03/board/armadeus/apf9328/config.mk 2011-01-05 18:08:34.000000000 +0100
+--- u-boot-2010.03.orig/board/armadeus/apf9328/config.mk 2011-10-04 15:25:28.000000000 +0200
++++ u-boot-2010.03/board/armadeus/apf9328/config.mk 2011-10-04 15:25:28.000000000 +0200
@@ -8,3 +8,5 @@
#
TEXT_BASE = 0x0BF80000
+
+LDSCRIPT := $(SRCTREE)/board/$(BOARDDIR)/u-boot.lds
-Index: u-boot-2010.03/board/armadeus/apf9328/u-boot.lds
-===================================================================
---- u-boot-2010.03.orig/board/armadeus/apf9328/u-boot.lds 2011-01-05 18:05:23.000000000 +0100
-+++ u-boot-2010.03/board/armadeus/apf9328/u-boot.lds 2011-01-05 18:08:34.000000000 +0100
-@@ -38,6 +38,10 @@
-
- . = ALIGN(4);
- .rodata : { *(.rodata) }
-+ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
-+ __exidx_start = .;
-+ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
-+ __exidx_end = .;
-
- . = ALIGN(4);
- .data : { *(.data) }
-Index: u-boot-2010.03/Makefile
-===================================================================
---- u-boot-2010.03.orig/Makefile 2011-01-05 18:07:33.000000000 +0100
-+++ u-boot-2010.03/Makefile 2011-01-05 18:08:34.000000000 +0100
-@@ -262,7 +262,7 @@
- PLATFORM_LIBGCC = -L $(USE_PRIVATE_LIBGCC) -lgcc
- endif
- else
--PLATFORM_LIBGCC = -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc
-+PLATFORM_LIBGCC = -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc -lgcc_eh
- endif
- PLATFORM_LIBS += $(PLATFORM_LIBGCC)
- export PLATFORM_LIBS
diff --git a/patches/u-boot/2010.03/u-boot-2010.03-151-all-apf-fixes_gcc_4_4_or_4_5_EABI_linking_issues.patch b/patches/u-boot/2010.03/u-boot-2010.03-151-all-apf-fixes_gcc_4_4_or_4_5_EABI_linking_issues.patch
new file mode 100644
index 0000000..05968b0
--- /dev/null
+++ b/patches/u-boot/2010.03/u-boot-2010.03-151-all-apf-fixes_gcc_4_4_or_4_5_EABI_linking_issues.patch
@@ -0,0 +1,23 @@
+Prevent linking error with some EABI toolchains.
+
+Signed-off-by: Julien Boibessot <jul...@ar...>
+
+Index: u-boot-2010.03/lib_arm/eabi_compat.c
+===================================================================
+--- u-boot-2010.03.orig/lib_arm/eabi_compat.c 2011-10-04 15:38:21.000000000 +0200
++++ u-boot-2010.03/lib_arm/eabi_compat.c 2011-10-04 15:46:12.000000000 +0200
+@@ -16,3 +16,14 @@
+ printf("raise: Signal # %d caught\n", signum);
+ return 0;
+ }
++
++/* Dummy functions to avoid linker complaints */
++void __aeabi_unwind_cpp_pr0(void)
++{
++
++}
++
++void abort(void)
++{
++ printf( "abort !\n" );
++}
diff --git a/scripts/quiltify.sh b/scripts/quiltify.sh
index 93f6da2..f46920b 100755
--- a/scripts/quiltify.sh
+++ b/scripts/quiltify.sh
@@ -63,7 +63,7 @@ elif [ "$answer" == "U-Boot" ]; then
QUILT_MAKEFILE_TARGET_TOUCH=".unpacked .patched"
QUILT_PATCH_FILTER="$ARMADEUS_U_BOOT_VERSION"
QUILT_TARGET_DIR=$ARMADEUS_U_BOOT_DIR
- QUILT_TARGET_PATCH_DIR=$ARMADEUS_BUILDROOT_DIR/../patches/u-boot
+ QUILT_TARGET_PATCH_DIR=$ARMADEUS_BUILDROOT_DIR/../patches/u-boot/$ARMADEUS_U_BOOT_VERSION
else
QUILT_TARGET_NAME="Linux kernel"
QUILT_MAKEFILE_TARGET="linux26-patched"
diff --git a/target/linux/debug/imxregs/imxregs.c b/target/linux/debug/imxregs/imxregs.c
index dedcf87..26c6bb4 100644
--- a/target/linux/debug/imxregs/imxregs.c
+++ b/target/linux/debug/imxregs/imxregs.c
@@ -1,7 +1,7 @@
/*
- * imxregs.c - Tool to display and modify i.MXL/1/27 registers from Linux's userspace
+ * imxregs.c - Tool to display and modify i.MXL/1/27/51 registers from Linux's userspace
*
- * Copyright (C) 2006-2008 armadeus systems
+ * Copyright (C) 2006-2011 ARMadeus Systems
* Derivated from pxaregs (c) Copyright 2002 by M&N Logistik-Loesungen Online GmbH
* Author: Julien Boibessot
*
@@ -39,8 +39,7 @@
#include "imxregs.h"
#endif
-
-//#define DEBUG TRUE
+/*#define DEBUG TRUE*/
#ifdef DEBUG
#define debug(fmt, arg...) printf(fmt, ##arg)
#else
@@ -50,69 +49,64 @@
// fd for /dev/mem
static int fd = -1;
-
// Get value of the register at the given address
static int getmem(u32 addr)
{
- void *map, *regaddr;
- u32 val;
-
- debug("getmem(0x%08x)\n", addr);
- if (fd == -1)
- {
- fd = open("/dev/mem", O_RDWR | O_SYNC);
- if (fd<0)
- {
- perror("open(\"/dev/mem\")");
- exit(1);
- }
- }
-
- map = mmap(0, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, addr & ~MAP_MASK );
- if (map == (void*)-1 )
- {
- perror("mmap()");
- exit(1);
- }
-
- debug("Mapped addr: 0x%x\n", regaddr);
- regaddr = map + (addr & MAP_MASK);
-
- val = *(u32*) regaddr;
- munmap(0,MAP_SIZE);
-
- return val;
+ void *map, *regaddr;
+ u32 val;
+
+ debug("getmem(0x%08x)\n", addr);
+ if (fd == -1) {
+ fd = open("/dev/mem", O_RDWR | O_SYNC);
+ if (fd < 0) {
+ perror("open(\"/dev/mem\")");
+ exit(1);
+ }
+ }
+
+ map = mmap(0, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd,
+ addr & ~MAP_MASK);
+ if (map == (void *)-1) {
+ perror("mmap()");
+ exit(1);
+ }
+
+ debug("Mapped addr: 0x%x\n", regaddr);
+ regaddr = map + (addr & MAP_MASK);
+
+ val = *(u32 *) regaddr;
+ munmap(0, MAP_SIZE);
+
+ return val;
}
-// Modify register value at given address
+/* Modify register value at given address */
static void putmem(u32 addr, u32 val)
{
- void *map, *regaddr;
- static int fd = -1;
-
- debug("putmem(0x%08x, 0x%08x)\n", addr, val);
-
- if (fd == -1)
- {
- fd = open("/dev/mem", O_RDWR | O_SYNC);
- if (fd<0)
- {
- perror("open(\"/dev/mem\")");
- exit(1);
- }
- }
-
- map = mmap(0, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, addr & ~MAP_MASK );
- if (map == (void*)-1 )
- {
- perror("mmap()");
- exit(1);
- }
- printf("Replaced content: 0x%08x\n", regaddr);
- regaddr = map + (addr & MAP_MASK);
-
- *(u32*) regaddr = val;
- munmap(0,MAP_SIZE);
+ void *map, *regaddr;
+ static int fd = -1;
+
+ debug("putmem(0x%08x, 0x%08x)\n", addr, val);
+
+ if (fd == -1) {
+ fd = open("/dev/mem", O_RDWR | O_SYNC);
+ if (fd < 0) {
+ perror("open(\"/dev/mem\")");
+ exit(1);
+ }
+ }
+
+ map = mmap(0, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd,
+ addr & ~MAP_MASK);
+ if (map == (void *)-1) {
+ perror("mmap()");
+ exit(1);
+ }
+ printf("Replaced content: 0x%08x\n", regaddr);
+ regaddr = map + (addr & MAP_MASK);
+
+ *(u32 *) regaddr = val;
+ munmap(0, MAP_SIZE);
}
static u32 lastaddr = 0;
@@ -120,63 +114,59 @@ static u32 newaddr = 1;
static u32 data = 0;
static u32 shiftdata;
-//
-// Show content of given register (index in reginfo struct)
+/* Show content of given register (index in reginfo struct) */
static void dumpentry(int i)
{
- int j;
-
- if (regs[i].addr != lastaddr) newaddr = 1;
- if (newaddr)
- {
- newaddr = 0;
- lastaddr = regs[i].addr;
- data = getmem(lastaddr);
- printf("\n%s\n", regs[i].desc);
- printf("%-24s 0x%08x -> ", regs[i].name, data);
- shiftdata = data;
- for (j=32; j>0; j--) {
- printf("%c", shiftdata & 0x80000000 ? '1' : '0');
- shiftdata = shiftdata << 1;
- if (j==9 || j==17 || j==25) printf(" ");
- }
-
- printf("\n");
- }
-
- if( (regs[i].shift != 0) || (regs[i].mask != 0xffffffff) )
- {
- shiftdata = (data >> regs[i].shift) & regs[i].mask;
- printf("%-25s ", regs[i].name);
- switch (regs[i].type)
- {
- // Hexa printing
- case 'x':
- printf("%8x", shiftdata);
- break;
- case '<':
- printf("%8u", 1 << shiftdata);
- break;
- // Decimal printing
- default:
- printf("%8u", shiftdata);
- break;
- }
- printf(" %s\n", regs[i].desc);
- }
+ int j;
+
+ if (regs[i].addr != lastaddr)
+ newaddr = 1;
+ if (newaddr) {
+ newaddr = 0;
+ lastaddr = regs[i].addr;
+ data = getmem(lastaddr);
+ printf("\n%s\n", regs[i].desc);
+ printf("%-24s 0x%08x -> ", regs[i].name, data);
+ shiftdata = data;
+ for (j = 32; j > 0; j--) {
+ printf("%c", shiftdata & 0x80000000 ? '1' : '0');
+ shiftdata = shiftdata << 1;
+ if (j == 9 || j == 17 || j == 25)
+ printf(" ");
+ }
+
+ printf("\n");
+ }
+
+ if ((regs[i].shift != 0) || (regs[i].mask != 0xffffffff)) {
+ shiftdata = (data >> regs[i].shift) & regs[i].mask;
+ printf("%-25s ", regs[i].name);
+ switch (regs[i].type) {
+ // Hexa printing
+ case 'x':
+ printf("%8x", shiftdata);
+ break;
+ case '<':
+ printf("%8u", 1 << shiftdata);
+ break;
+ // Decimal printing
+ default:
+ printf("%8u", shiftdata);
+ break;
+ }
+ printf(" %s\n", regs[i].desc);
+ }
}
-//
-// Show content of all supported registers
+/* Show content of all supported registers */
static void dumpall(void)
{
- int i;
- int n=sizeof(regs)/sizeof(struct reg_info);
+ int i;
+ int n = sizeof(regs) / sizeof(struct reg_info);
- for( i=0; i<n; i++ )
- {
- dumpentry(i);
- }
+ for (i = 0; i < n; i++) {
+ dumpentry(i);
+ }
}
/*
@@ -187,112 +177,103 @@ static void dumpall(void)
*/
static int dumpmatching(char *name)
{
- int i, found=0;
- int n=sizeof(regs)/sizeof(struct reg_info);
-
- for (i=0; i<n; i++)
- {
- if (strstr(regs[i].name, name)) {
- dumpentry(i);
- found = 1;
- }
- }
- if(!found)
- printf("No matching register found\n");
-
- return !found;
+ int i, found = 0;
+ int n = sizeof(regs) / sizeof(struct reg_info);
+
+ for (i = 0; i < n; i++) {
+ if (strstr(regs[i].name, name)) {
+ dumpentry(i);
+ found = 1;
+ }
+ }
+ if (!found)
+ printf("No matching register found\n");
+
+ return !found;
}
-//
-// Set content of register with given name
+/* Set content of register with given name */
static void setreg(char *name, u32 val)
{
- int i;
- u32 mem;
- int found=0;
- int count=0;
- int n=sizeof(regs)/sizeof(struct reg_info);
-
- for (i=0; i<n; i++)
- {
- if (strcmp(regs[i].name, name)==0)
- {
- found = i;
- //printf("Matched %s with %s, count=%d\n", regs[i].name, name, count);
- count++;
- }
- }
- if (count!=1)
- {
- printf("No or more than one matching register found\n");
- exit(1);
- }
-
- mem = getmem(regs[found].addr);
- debug("Old contents: 0x%08x\n", mem);
- mem &= ~(regs[found].mask << regs[found].shift);
- debug("Unmasked contents: 0x%08x\n", mem);
- val &= regs[found].mask;
- debug("mask: 0x%08x\n", regs[found].mask);
- debug("masked val: 0x%08x\n", val);
- mem |= val << regs[found].shift;
- debug("Embedded value: 0x%08x\n", mem);
- putmem(regs[found].addr, mem);
+ int i;
+ u32 mem;
+ int found = 0;
+ int count = 0;
+ int n = sizeof(regs) / sizeof(struct reg_info);
+
+ for (i = 0; i < n; i++) {
+ if (strcmp(regs[i].name, name) == 0) {
+ found = i;
+ /*printf("Matched %s with %s, count=%d\n", regs[i].name, name, count);*/
+ count++;
+ }
+ }
+ if (count != 1) {
+ printf("No or more than one matching register found\n");
+ exit(1);
+ }
+
+ mem = getmem(regs[found].addr);
+ debug("Old contents: 0x%08x\n", mem);
+ mem &= ~(regs[found].mask << regs[found].shift);
+ debug("Unmasked contents: 0x%08x\n", mem);
+ val &= regs[found].mask;
+ debug("mask: 0x%08x\n", regs[found].mask);
+ debug("masked val: 0x%08x\n", val);
+ mem |= val << regs[found].shift;
+ debug("Embedded value: 0x%08x\n", mem);
+ putmem(regs[found].addr, mem);
}
-
-void usage(char* name)
+void usage(char *name)
{
- printf("%s for %s CPU\n"
- "Usage: %s - to dump all known registers\n"
- " %s <name> - to dump named register\n"
- " %s <name> <value> - to set named register\n",
- name, IMX_TYPE, name, name, name);
+ printf("%s for %s CPU\n"
+ "Usage: %s - to dump all known registers\n"
+ " %s <name> - to dump named register\n"
+ " %s <name> <value> - to set named register\n",
+ name, IMX_TYPE, name, name, name);
}
int main(int argc, char *argv[])
{
- char *p;
- u32 val;
-
- if ((0 == strcmp(argv[1],"-h")) || (0 == strcmp(argv[1],"--help"))) {
- usage(argv[0]);
- return 0;
- }
-
- /* No arguments -> dump all known registers */
- if (argc == 1) {
- dumpall();
- return 0;
- }
-
- /* Uppercase first argument (register name) */
- if (argc >= 2)
- {
- p = argv[1];
- while (*p) {
- *p = toupper(*p);
- p++;
- }
- }
-
- /* Dump the content of the provided register */
- if (argc == 2)
- {
- return( dumpmatching(argv[1]) );
- }
-
- /* Put value to given register */
- if (argc == 3)
- {
- sscanf(argv[2],"%i",&val);
- setreg(argv[1], val);
- return 0;
- }
-
- /* In all other cases, print Usage */
- usage(argv[0]);
-
- return 1;
+ char *p;
+ u32 val;
+
+ /* No arguments -> dump all known registers */
+ if (argc == 1) {
+ dumpall();
+ return 0;
+ }
+
+ /* Want help ? */
+ if ((0 == strcmp(argv[1], "-h")) || (0 == strcmp(argv[1], "--help"))) {
+ usage(argv[0]);
+ return 0;
+ }
+
+ /* Uppercase first argument (register name) */
+ if (argc >= 2) {
+ p = argv[1];
+ while (*p) {
+ *p = toupper(*p);
+ p++;
+ }
+ }
+
+ /* Dump the content of the provided register */
+ if (argc == 2) {
+ return (dumpmatching(argv[1]));
+ }
+
+ /* Put value to given register */
+ if (argc == 3) {
+ sscanf(argv[2], "%i", &val);
+ setreg(argv[1], val);
+ return 0;
+ }
+
+ /* In all other cases, print Usage */
+ usage(argv[0]);
+
+ return 1;
}
-
diff --git a/target/linux/modules/fpga/Makefile b/target/linux/modules/fpga/Makefile
index 6352c4e..c63449d 100755
--- a/target/linux/modules/fpga/Makefile
+++ b/target/linux/modules/fpga/Makefile
@@ -5,13 +5,12 @@
#
ifneq ($(KERNELRELEASE),)
-
# Part executed when called from kernel build system:
-obj-$(CONFIG_ARMADEUS_FPGA_DRIVERS) += dev_tools/ others/ POD/ board_designs/ virtual_components/
+obj-$(CONFIG_ARMADEUS_FPGA_DRIVERS) += dev_tools/ others/ board_designs/ virtual_components/
+obj-$(CONFIG_POD_DRIVERS) += POD/
else
-
# Part executed when called from standard make in this directory:
ARMADEUS_BASE_DIR=../../../..
diff --git a/target/linux/modules/fpga/POD/Kconfig b/target/linux/modules/fpga/POD/Kconfig
index eeeb583..40fae13 100644
--- a/target/linux/modules/fpga/POD/Kconfig
+++ b/target/linux/modules/fpga/POD/Kconfig
@@ -1,5 +1,5 @@
#
-# Armadeus custom POD drivers configuration
+# Armadeus POD generated drivers configuration
#
config POD_DRIVERS
diff --git a/target/linux/modules/fpga/POD/Makefile b/target/linux/modules/fpga/POD/Makefile
index 2b97715..8c309cc 100644
--- a/target/linux/modules/fpga/POD/Makefile
+++ b/target/linux/modules/fpga/POD/Makefile
@@ -1,17 +1,15 @@
-
#
-# Main Makefile for the Armadeus FPGA related drivers
+# Main Makefile for the Armadeus FPGA related drivers (generated by POD)
#
-# Add your subdirectories to obj- target
+# Sub-directories are automatically added to obj- target
#
ifneq ($(KERNELRELEASE),)
-
# Part executed when called from kernel build system:
-obj-$(CONFIG_POD_DRIVERS) += $(shell ls -F drivers/armadeus/fpga/POD/ | grep \/$)
-else
+obj-$(CONFIG_POD_DRIVERS) += $(shell ls -F drivers/armadeus/fpga/POD/ | grep \/$)
+else
# Part executed when called from standard make in this directory:
ARMADEUS_BASE_DIR=../../../../..
@@ -29,4 +27,3 @@ install:
endif
-
diff --git a/target/linux/modules/fpga/POD/void/Kconfig b/target/linux/modules/fpga/POD/void/Kconfig
deleted file mode 100644
index e69de29..0000000
diff --git a/target/linux/modules/fpga/POD/void/Makefile b/target/linux/modules/fpga/POD/void/Makefile
deleted file mode 100755
index 775eaa1..0000000
--- a/target/linux/modules/fpga/POD/void/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Makefile for a generic Armadeus drivers
-#
-
-# Part executed when called from kernel build system:
-ifneq ($(KERNELRELEASE),)
-
-obj-$(CONFIG_POD_DRIVERS) += void.o
-
-else
-
-# Part executed when called from standard make in this directory:
-
-ARMADEUS_BASE_DIR=../../../../../../
-include $(ARMADEUS_BASE_DIR)/Makefile.in
-
-KDIR := $(ARMADEUS_LINUX_DIR)
-PWD := $(shell pwd)
-
-# Armadeus custom drivers common targets (default, clean, etc...)
-include ../../../Makefile.in
-
-endif
-
diff --git a/target/linux/modules/fpga/POD/void/void.c b/target/linux/modules/fpga/POD/void/void.c
deleted file mode 100755
index e19e376..0000000
--- a/target/linux/modules/fpga/POD/void/void.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- **********************************************************************
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- **********************************************************************
- */
-
-#include <linux/module.h>
-#include <linux/moduleparam.h>
-#include <linux/init.h>
-
-//
-// Module's initialization function
-//
-static int __init void_init(void)
-{
- printk("Init void module\n");
-
- return(0);
-}
-
-//
-// Module's cleanup function
-//
-static void __exit void_exit(void)
-{
- printk("Leave void module\n");
-}
-
-module_init(void_init);
-module_exit(void_exit);
-MODULE_AUTHOR("Fabien Marteau");
-MODULE_DESCRIPTION("Void driver");
-MODULE_LICENSE("GPL");
hooks/post-receive
--
armadeus
|
|
From: Gwenhael <gwe...@us...> - 2011-10-04 14:27:41
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via f49894823ef466a292d20207dfcbdbf9b53e51eb (commit)
from b5099c144431ebbb16195a0472648d8459389871 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit f49894823ef466a292d20207dfcbdbf9b53e51eb
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Tue Oct 4 16:26:34 2011 +0200
[LINUX][BOARD_DESIGNS] spvision loader needs to select virtual components
-----------------------------------------------------------------------
Summary of changes:
.../fpga/board_designs/spvision_loader/Kconfig | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/target/linux/modules/fpga/board_designs/spvision_loader/Kconfig b/target/linux/modules/fpga/board_designs/spvision_loader/Kconfig
index c1ab33b..c23e6a0 100644
--- a/target/linux/modules/fpga/board_designs/spvision_loader/Kconfig
+++ b/target/linux/modules/fpga/board_designs/spvision_loader/Kconfig
@@ -4,6 +4,7 @@ config ARMADEUS_FPGA_BOARD_DESIGNS_SPVISION_PROBER
default n
depends on ARMADEUS_FPGA_BOARD_DESIGNS
select ARMADEUS_FPGA_VIRTUAL_SPVISION_LOADER
+ select ARMADEUS_FPGA_VIRTUAL_COMPONENTS
---help---
With this driver you will be able to load the configuration
of your sp_vision FPGA directly from Linux userspace.
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2011-10-04 08:27:34
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via b5099c144431ebbb16195a0472648d8459389871 (commit)
from d51a31c7ed09ba40ed3f94ff210cd48ddda66594 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit b5099c144431ebbb16195a0472648d8459389871
Author: Julien Boibessot <jul...@ar...>
Date: Tue Oct 4 10:26:51 2011 +0200
[LINUX] Cleanup a little POD menuconfig
-----------------------------------------------------------------------
Summary of changes:
target/linux/modules/fpga/POD/Kconfig | 10 +++-------
target/linux/modules/fpga/POD/void/Kconfig | 7 -------
2 files changed, 3 insertions(+), 14 deletions(-)
diff --git a/target/linux/modules/fpga/POD/Kconfig b/target/linux/modules/fpga/POD/Kconfig
index d06d0c5..eeeb583 100644
--- a/target/linux/modules/fpga/POD/Kconfig
+++ b/target/linux/modules/fpga/POD/Kconfig
@@ -1,15 +1,11 @@
-
-#
-# Armadeus custom drivers configuration
#
+# Armadeus custom POD drivers configuration
#
-#
config POD_DRIVERS
- boolean "Board driver generated by POD"
- default n
+ boolean "Board drivers generated by POD"
depends on ARMADEUS_FPGA_DRIVERS
---help---
- All POD drivers
+ Makes all POD generated drivers selectable.
source "drivers/armadeus/fpga/POD/*/Kconfig"
diff --git a/target/linux/modules/fpga/POD/void/Kconfig b/target/linux/modules/fpga/POD/void/Kconfig
index c6dc402..e69de29 100644
--- a/target/linux/modules/fpga/POD/void/Kconfig
+++ b/target/linux/modules/fpga/POD/void/Kconfig
@@ -1,7 +0,0 @@
-config ARMADEUS_FPGA_VOID_DRIVER
- boolean "useless"
- default n
- depends on POD_DRIVERS
- ---help---
- useless
-
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2011-09-30 10:21:37
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via d51a31c7ed09ba40ed3f94ff210cd48ddda66594 (commit)
from 18c94eff1a9880a70846c77b0cbb3447bb008809 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit d51a31c7ed09ba40ed3f94ff210cd48ddda66594
Author: Julien Boibessot <jul...@ar...>
Date: Fri Sep 30 12:20:10 2011 +0200
[BUILD] 3 tries are enough to try to download BR tarball
-----------------------------------------------------------------------
Summary of changes:
Makefile | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile
index e94c2f3..bac572a 100644
--- a/Makefile
+++ b/Makefile
@@ -104,7 +104,7 @@ help:
$(BUILDROOT_FILE_PATH)/$(BUILDROOT_SOURCE):
mkdir -p $(BUILDROOT_FILE_PATH)
- wget --passive-ftp -P $(BUILDROOT_FILE_PATH) $(BUILDROOT_SITE)/$(BUILDROOT_SOURCE)
+ wget --passive-ftp --tries=3 -P $(BUILDROOT_FILE_PATH) $(BUILDROOT_SITE)/$(BUILDROOT_SOURCE)
buildroot-sources: $(BUILDROOT_FILE_PATH)/$(BUILDROOT_SOURCE)
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2011-09-30 09:08:38
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 18c94eff1a9880a70846c77b0cbb3447bb008809 (commit)
from 77562d8db1711b268e1b614714e9122b91cb3110 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 18c94eff1a9880a70846c77b0cbb3447bb008809
Author: Julien Boibessot <jul...@ar...>
Date: Fri Sep 30 11:07:49 2011 +0200
[TEST] Fixes testsuite build to work with external toolchains too
-----------------------------------------------------------------------
Summary of changes:
buildroot/package/armadeus/testsuite/testsuite.mk | 2 +-
.../fpga/virtual_components/button/Makefile | 12 ++++++++++--
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/buildroot/package/armadeus/testsuite/testsuite.mk b/buildroot/package/armadeus/testsuite/testsuite.mk
index 90575a2..8426150 100644
--- a/buildroot/package/armadeus/testsuite/testsuite.mk
+++ b/buildroot/package/armadeus/testsuite/testsuite.mk
@@ -20,7 +20,7 @@ $(ARMADEUS-TESTSUITE_DIR)/.unpacked:
$(ARMADEUS-TESTSUITE_TARGET_BINARY): $(ARMADEUS-TESTSUITE_DIR)/.unpacked
$(ARMADEUS-TESTSUITE_SOURCE)/install.sh $(ARMADEUS-TESTSUITE_TARGET_DIR)
- make -C $(ARMADEUS-TESTSUITE_WISHBONE_BUTTON_DIR) test
+ make -C $(ARMADEUS-TESTSUITE_WISHBONE_BUTTON_DIR) CC="$(TARGET_CC)" test
install -D $(ARMADEUS-TESTSUITE_WISHBONE_BUTTON_DIR)/testbutton $(ARMADEUS-TESTSUITE_TARGET_DIR)
touch $@
diff --git a/target/linux/modules/fpga/virtual_components/button/Makefile b/target/linux/modules/fpga/virtual_components/button/Makefile
index 2df8d7f..bb42489 100755
--- a/target/linux/modules/fpga/virtual_components/button/Makefile
+++ b/target/linux/modules/fpga/virtual_components/button/Makefile
@@ -2,17 +2,25 @@
# Makefile for the Armadeus FPGA button driver
#
+ifneq ($(KERNELRELEASE),)
+# Part executed when called from kernel build system:
+
obj-$(CONFIG_ARMADEUS_FPGA_VIRTUAL_COMPONENTS_BUTTON) += button_ocore.o
button_ocore-objs := gbutton.o
+else
+# Part executed when called from standard make in this directory:
+# (preferably use Makefile in parent directory)
+
ARMADEUS_BASE_DIR=../../../../../..
-include $(ARMADEUS_BASE_DIR)/Makefile.in
+CC = $(ARMADEUS_TOOLCHAIN_PATH)/arm-linux-gcc
KDIR := $(ARMADEUS_LINUX_DIR)
PWD := $(shell pwd)
test:
- $(ARMADEUS_TOOLCHAIN_PATH)/arm-linux-gcc -Wall testbutton.c -o testbutton
+ $(CC) -Wall testbutton.c -o testbutton
chmod 755 testbutton
-
+endif
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2011-09-29 09:51:51
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 77562d8db1711b268e1b614714e9122b91cb3110 (commit)
from 119de7ae8ba3f0c3d98f87abe20cfba547a4882c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 77562d8db1711b268e1b614714e9122b91cb3110
Author: Julien Boibessot <jul...@ar...>
Date: Thu Sep 29 11:49:29 2011 +0200
Remove executable rights on some U-Boot 2010.03 patches
-----------------------------------------------------------------------
Summary of changes:
0 files changed, 0 insertions(+), 0 deletions(-)
mode change 100755 => 100644 patches/u-boot/2010.03/u-boot-2010.03-300-imx27.patch
mode change 100755 => 100644 patches/u-boot/2010.03/u-boot-2010.03-301-nand.patch
mode change 100755 => 100644 patches/u-boot/2010.03/u-boot-2010.03-310-apf27.patch
mode change 100755 => 100644 patches/u-boot/2010.03/u-boot-2010.03-320-spartan.patch
diff --git a/patches/u-boot/2010.03/u-boot-2010.03-300-imx27.patch b/patches/u-boot/2010.03/u-boot-2010.03-300-imx27.patch
old mode 100755
new mode 100644
diff --git a/patches/u-boot/2010.03/u-boot-2010.03-301-nand.patch b/patches/u-boot/2010.03/u-boot-2010.03-301-nand.patch
old mode 100755
new mode 100644
diff --git a/patches/u-boot/2010.03/u-boot-2010.03-310-apf27.patch b/patches/u-boot/2010.03/u-boot-2010.03-310-apf27.patch
old mode 100755
new mode 100644
diff --git a/patches/u-boot/2010.03/u-boot-2010.03-320-spartan.patch b/patches/u-boot/2010.03/u-boot-2010.03-320-spartan.patch
old mode 100755
new mode 100644
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2011-09-29 08:12:20
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 119de7ae8ba3f0c3d98f87abe20cfba547a4882c (commit)
from f60b8b1d400e5f077d830bab5d99ee96127dac54 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 119de7ae8ba3f0c3d98f87abe20cfba547a4882c
Author: Julien Boibessot <jul...@ar...>
Date: Thu Sep 29 10:11:12 2011 +0200
[BUILDROOT] Fixes armadeus testsuite installation failure, due to recent changes in target/linux/modules/fpga/
-----------------------------------------------------------------------
Summary of changes:
buildroot/package/armadeus/testsuite/testsuite.mk | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/buildroot/package/armadeus/testsuite/testsuite.mk b/buildroot/package/armadeus/testsuite/testsuite.mk
index 358e406..90575a2 100644
--- a/buildroot/package/armadeus/testsuite/testsuite.mk
+++ b/buildroot/package/armadeus/testsuite/testsuite.mk
@@ -11,7 +11,7 @@ ARMADEUS-TESTSUITE_CAT:=zcat
ARMADEUS-TESTSUITE_BINARY:=test_env.sh
ARMADEUS-TESTSUITE_TARGET_DIR:=$(TARGET_DIR)/usr/bin/testsuite
ARMADEUS-TESTSUITE_TARGET_BINARY:=$(ARMADEUS-TESTSUITE_TARGET_DIR)/$(ARMADEUS-TESTSUITE_BINARY)
-ARMADEUS-TESTSUITE_WISHBONE_BUTTON_DIR:=$(TOPDIR)/../target/linux/modules/fpga/wishbone_example/wb_button/
+ARMADEUS-TESTSUITE_WISHBONE_BUTTON_DIR:=$(TOPDIR)/../target/linux/modules/fpga/virtual_components/button/
$(ARMADEUS-TESTSUITE_DIR)/.unpacked:
mkdir -p $(ARMADEUS-TESTSUITE_DIR)/
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2011-09-28 16:08:16
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via f60b8b1d400e5f077d830bab5d99ee96127dac54 (commit)
from 492ab3f0991c343f7efb89532ff76d9d21549de1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit f60b8b1d400e5f077d830bab5d99ee96127dac54
Author: Julien Boibessot <jul...@ar...>
Date: Wed Sep 28 18:07:36 2011 +0200
[BUILDROOT] Bump setserial patches version to fix build
-----------------------------------------------------------------------
Summary of changes:
.../2011.05/158-setserial-bump_version.patch | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)
create mode 100644 patches/buildroot/2011.05/158-setserial-bump_version.patch
diff --git a/patches/buildroot/2011.05/158-setserial-bump_version.patch b/patches/buildroot/2011.05/158-setserial-bump_version.patch
new file mode 100644
index 0000000..c0205d1
--- /dev/null
+++ b/patches/buildroot/2011.05/158-setserial-bump_version.patch
@@ -0,0 +1,17 @@
+Bump setserial patch version.
+
+Signed-off-by: Julien Boibessot <jul...@ar...>
+
+Index: buildroot/package/setserial/setserial.mk
+===================================================================
+--- buildroot.orig/package/setserial/setserial.mk 2011-09-28 18:02:25.000000000 +0200
++++ buildroot/package/setserial/setserial.mk 2011-09-28 18:02:49.000000000 +0200
+@@ -4,7 +4,7 @@
+ #
+ #############################################################
+ SETSERIAL_VERSION = 2.17
+-SETSERIAL_PATCH = setserial_2.17-45.2.diff.gz
++SETSERIAL_PATCH = setserial_2.17-45.3.diff.gz
+ SETSERIAL_SOURCE = setserial_$(SETSERIAL_VERSION).orig.tar.gz
+ SETSERIAL_SITE = $(BR2_DEBIAN_MIRROR)/debian/pool/main/s/setserial/
+
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2011-09-28 14:50:48
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 492ab3f0991c343f7efb89532ff76d9d21549de1 (commit)
from c289c908435b7ce5ac65d145d3f2ab3297580d1f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 492ab3f0991c343f7efb89532ff76d9d21549de1
Author: Julien Boibessot <jul...@ar...>
Date: Wed Sep 28 16:49:51 2011 +0200
[BUILD] Fixes ARMADEUS_QT_DIR definition
-----------------------------------------------------------------------
Summary of changes:
Makefile.in | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 05bc4d7..15c1e4e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -60,5 +60,5 @@ ARMADEUS_TOOLCHAIN_PATH:=$(BUILDROOT_OUTPUT_DIR)/host/usr/bin
ARMADEUS_BUILD_DIR:=$(BUILDROOT_BUILD_DIR)
ARMADEUS_SDL_DIR:=$(ARMADEUS_BUILD_DIR)/sdl-$(ARMADEUS_SDL_VERSION)
ARMADEUS_XENOMAI_DIR:=$(ARMADEUS_BUILD_DIR)/xenomai-$(ARMADEUS_XENOMAI_VERSION)
-ARMADEUS_QT_DIR:=$(ARMADEUS_BUILD_DIR)/qt-everywhere-opensource-src-$(ARMADEUS_QT_VERSION)
+ARMADEUS_QT_DIR:=$(ARMADEUS_BUILD_DIR)/qt-$(ARMADEUS_QT_VERSION)
hooks/post-receive
--
armadeus
|
|
From: Julien B a. A. <ar...@us...> - 2011-09-28 14:25:42
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via c289c908435b7ce5ac65d145d3f2ab3297580d1f (commit)
from 4da0a98e8ae6a0834a0837a1113143b29639cfd4 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c289c908435b7ce5ac65d145d3f2ab3297580d1f
Author: Julien Boibessot <jul...@ar...>
Date: Wed Sep 28 16:24:55 2011 +0200
[BUILDROOT] Activate back portmap by default for all boards
-----------------------------------------------------------------------
Summary of changes:
buildroot/configs/apf27_defconfig | 1 +
buildroot/configs/apf27_webradio_defconfig | 1 +
buildroot/configs/apf27test_defconfig | 1 +
buildroot/configs/apf51test_defconfig | 1 +
buildroot/configs/apf9328_defconfig | 1 +
buildroot/configs/apf9328test_defconfig | 1 +
buildroot/configs/pps_defconfig | 1 +
7 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/buildroot/configs/apf27_defconfig b/buildroot/configs/apf27_defconfig
index 852adec..bb86aff 100644
--- a/buildroot/configs/apf27_defconfig
+++ b/buildroot/configs/apf27_defconfig
@@ -57,6 +57,7 @@ BR2_PACKAGE_CAN_UTILS=y
BR2_PACKAGE_IPROUTE2=y
BR2_PACKAGE_NTP=y
# BR2_PACKAGE_NTP_NTPD is not set
+BR2_PACKAGE_PORTMAP=y
BR2_PACKAGE_UUCP=y
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_NANO=y
diff --git a/buildroot/configs/apf27_webradio_defconfig b/buildroot/configs/apf27_webradio_defconfig
index 3ba383d..ba0b7b1 100644
--- a/buildroot/configs/apf27_webradio_defconfig
+++ b/buildroot/configs/apf27_webradio_defconfig
@@ -66,6 +66,7 @@ BR2_PACKAGE_PYTHON_PYEXPAT=y
BR2_PACKAGE_TSLIB=y
BR2_PACKAGE_NTP=y
# BR2_PACKAGE_NTP_NTPD is not set
+BR2_PACKAGE_PORTMAP=y
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_NANO=y
BR2_TARGET_ROOTFS_JFFS2=y
diff --git a/buildroot/configs/apf27test_defconfig b/buildroot/configs/apf27test_defconfig
index cb1024a..4534a6d 100644
--- a/buildroot/configs/apf27test_defconfig
+++ b/buildroot/configs/apf27test_defconfig
@@ -115,6 +115,7 @@ BR2_PACKAGE_NTP=y
# BR2_PACKAGE_NTP_NTPD is not set
BR2_PACKAGE_NTP_NTPDATE=y
BR2_PACKAGE_TCPDUMP=y
+BR2_PACKAGE_PORTMAP=y
BR2_PACKAGE_UUCP=y
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_WPA_SUPPLICANT=y
diff --git a/buildroot/configs/apf51test_defconfig b/buildroot/configs/apf51test_defconfig
index 0422386..41506d6 100644
--- a/buildroot/configs/apf51test_defconfig
+++ b/buildroot/configs/apf51test_defconfig
@@ -117,6 +117,7 @@ BR2_PACKAGE_LINKS=y
BR2_PACKAGE_NTP=y
# BR2_PACKAGE_NTP_NTPD is not set
BR2_PACKAGE_NTP_NTPDATE=y
+BR2_PACKAGE_PORTMAP=y
BR2_PACKAGE_PPPD=y
BR2_PACKAGE_TCPDUMP=y
BR2_PACKAGE_UUCP=y
diff --git a/buildroot/configs/apf9328_defconfig b/buildroot/configs/apf9328_defconfig
index f4e6418..d828b79 100644
--- a/buildroot/configs/apf9328_defconfig
+++ b/buildroot/configs/apf9328_defconfig
@@ -55,6 +55,7 @@ BR2_PACKAGE_TSLIB=y
BR2_PACKAGE_NTP=y
# BR2_PACKAGE_NTP_NTPD is not set
BR2_PACKAGE_NANO=y
+BR2_PACKAGE_PORTMAP=y
BR2_TARGET_ROOTFS_JFFS2=y
BR2_TARGET_ROOTFS_JFFS2_PAD=y
BR2_TARGET_UBOOT=y
diff --git a/buildroot/configs/apf9328test_defconfig b/buildroot/configs/apf9328test_defconfig
index 1eddd5d..e803cbd 100644
--- a/buildroot/configs/apf9328test_defconfig
+++ b/buildroot/configs/apf9328test_defconfig
@@ -96,6 +96,7 @@ BR2_PACKAGE_LINKS=y
BR2_PACKAGE_NTP=y
# BR2_PACKAGE_NTP_NTPD is not set
BR2_PACKAGE_NTP_NTPDATE=y
+BR2_PACKAGE_PORTMAP=y
BR2_PACKAGE_TCPDUMP=y
BR2_PACKAGE_NANO=y
BR2_TARGET_ROOTFS_JFFS2=y
diff --git a/buildroot/configs/pps_defconfig b/buildroot/configs/pps_defconfig
index ddbb618..e495d69 100644
--- a/buildroot/configs/pps_defconfig
+++ b/buildroot/configs/pps_defconfig
@@ -61,6 +61,7 @@ BR2_PACKAGE_IPTABLES=y
BR2_PACKAGE_NTP=y
# BR2_PACKAGE_NTP_NTPD is not set
BR2_PACKAGE_OPENSSH=y
+BR2_PACKAGE_PORTMAP=y
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_EAP=y
hooks/post-receive
--
armadeus
|
|
From: Gwenhael <gwe...@us...> - 2011-09-26 13:18:41
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 4da0a98e8ae6a0834a0837a1113143b29639cfd4 (commit)
via ccb0d3348eb677ad7c9a7e4341fd6f49eaadf9f1 (commit)
from 7bc375fa10496ca9e4f5fdeae8ce344cc647f1a0 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 4da0a98e8ae6a0834a0837a1113143b29639cfd4
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Mon Sep 26 14:39:31 2011 +0200
[LINUX][BOARD_DESIGNS] prober for sploader: suppress useless command in Makefile and variables
commit ccb0d3348eb677ad7c9a7e4341fd6f49eaadf9f1
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Mon Sep 26 14:37:35 2011 +0200
[LINUX][VIRTUAL_COMPONENTS] sploader source cleanup
-----------------------------------------------------------------------
Summary of changes:
.../fpga/board_designs/spvision_loader/Makefile | 22 --------------------
.../spvision_loader/sploader_prober.c | 8 +++---
.../fpga/virtual_components/sploader/sp-loader.c | 1 -
3 files changed, 4 insertions(+), 27 deletions(-)
diff --git a/target/linux/modules/fpga/board_designs/spvision_loader/Makefile b/target/linux/modules/fpga/board_designs/spvision_loader/Makefile
index 918a1ed..2a3b1cf 100644
--- a/target/linux/modules/fpga/board_designs/spvision_loader/Makefile
+++ b/target/linux/modules/fpga/board_designs/spvision_loader/Makefile
@@ -2,26 +2,4 @@
# Makefile for the Armadeus FPGA loader driver
#
-ifneq ($(KERNELRELEASE),)
-
obj-$(CONFIG_ARMADEUS_FPGA_BOARD_DESIGNS_SPVISION_PROBER) += sploader_prober.o
-
-# Part executed when called from standard make in this directory:
-# (preferably use Makefile in parent directory)
-
-else
-ARMADEUS_BASE_DIR=../../../../../../
-include $(ARMADEUS_BASE_DIR)/Makefile.in
-KDIR := $(ARMADEUS_KERNEL_DIR)
-PWD := $(shell pwd)
-CC:=$(ARMADEUS_TOOLCHAIN_PATH)/arm-linux-gcc
-
-default:
- $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
-
-clean:
- $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
- rm -f modules.order Module.markers
-
-endif
-
diff --git a/target/linux/modules/fpga/board_designs/spvision_loader/sploader_prober.c b/target/linux/modules/fpga/board_designs/spvision_loader/sploader_prober.c
index cf5a94e..7b88c36 100644
--- a/target/linux/modules/fpga/board_designs/spvision_loader/sploader_prober.c
+++ b/target/linux/modules/fpga/board_designs/spvision_loader/sploader_prober.c
@@ -1,9 +1,10 @@
/*
***********************************************************************
*
- * (c) Copyright 2008 Armadeus project
+ * (c) Copyright 2011 Armadeus project
* Fabien Marteau <fab...@ar...>
- * Specific led driver for generic led driver
+ * Gwenhael Goavec-Merou <gwe...@ar...>
+ * loader driver for generic sploader driver
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -43,12 +44,11 @@ static Xilinx_desc plat_sploader0_data = {
.iface = slave_parallel,
.size = (11875104l / 8), //XILINX_XC6SLX45_SIZE,
.fpga_offset = 0xD6000000l,
- .ip_id = 0, // l'id du composant == idnum
.cookie = 1,
.name = "SP_VISION_CONFIGURE00",
.num = 0,
.idnum = 1,
- .idoffset = 0x0 * (16 /8) // pos de l'id dans le composant
+ .idoffset = 0x0 * (16 /8)
};
diff --git a/target/linux/modules/fpga/virtual_components/sploader/sp-loader.c b/target/linux/modules/fpga/virtual_components/sploader/sp-loader.c
index cf2231a..4f1a0ac 100644
--- a/target/linux/modules/fpga/virtual_components/sploader/sp-loader.c
+++ b/target/linux/modules/fpga/virtual_components/sploader/sp-loader.c
@@ -257,7 +257,6 @@ static int armadeus_sploader_probe(struct platform_device *pdev)
Xilinx_desc *pdata = pdev->dev.platform_data;
int ret = 0;
int result;
- u16 data;
struct device *dev = &pdev->dev;
Xilinx_desc *platform_info;
struct resource *mem_res;
hooks/post-receive
--
armadeus
|
|
From: Gwenhael <gwe...@us...> - 2011-09-23 14:24:30
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 7bc375fa10496ca9e4f5fdeae8ce344cc647f1a0 (commit)
from 47f13d4bf1df8d0562bf50ec11b419a2d8d5e4b6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 7bc375fa10496ca9e4f5fdeae8ce344cc647f1a0
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Fri Sep 23 16:23:22 2011 +0200
[UBOOT 1.3.4] Configure CS1 for spvision communication
-----------------------------------------------------------------------
Summary of changes:
.../device/armadeus/apf27/apf27-u-boot-1.3.4.h | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/buildroot/target/device/armadeus/apf27/apf27-u-boot-1.3.4.h b/buildroot/target/device/armadeus/apf27/apf27-u-boot-1.3.4.h
index 46ab099..e684a95 100644
--- a/buildroot/target/device/armadeus/apf27/apf27-u-boot-1.3.4.h
+++ b/buildroot/target/device/armadeus/apf27/apf27-u-boot-1.3.4.h
@@ -655,8 +655,8 @@
#define CFG_CS0L_VAL 0xa0330D01
#define CFG_CS0A_VAL 0x00220800
-#define CFG_CS1U_VAL 0
-#define CFG_CS1L_VAL 0
+#define CFG_CS1U_VAL 0x00000f00
+#define CFG_CS1L_VAL 0x00000D01
#define CFG_CS1A_VAL 0
#define CFG_CS2U_VAL 0
@@ -676,7 +676,7 @@
#define CFG_CS5L_VAL 0x00000D01
#define CFG_CS5A_VAL 0
-#define CFG_EIM_VAL 0x00002000
+#define CFG_EIM_VAL 0x00002200
/* FPGA specific settings */
/* CLKO */
hooks/post-receive
--
armadeus
|
|
From: Gwenhael <gwe...@us...> - 2011-09-23 12:23:40
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 47f13d4bf1df8d0562bf50ec11b419a2d8d5e4b6 (commit)
from 1187889c5986f3053559b9142dd3905415aec90a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 47f13d4bf1df8d0562bf50ec11b419a2d8d5e4b6
Author: Gwenhael Goavec-Merou <gw...@tr...>
Date: Fri Sep 23 14:21:17 2011 +0200
[VIRTUAL_COMPONENTS][SPLOADER] Removes the useless reading of id in the probe function
-----------------------------------------------------------------------
Summary of changes:
.../fpga/virtual_components/sploader/sp-loader.c | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)
diff --git a/target/linux/modules/fpga/virtual_components/sploader/sp-loader.c b/target/linux/modules/fpga/virtual_components/sploader/sp-loader.c
index 9254c69..cf2231a 100644
--- a/target/linux/modules/fpga/virtual_components/sploader/sp-loader.c
+++ b/target/linux/modules/fpga/virtual_components/sploader/sp-loader.c
@@ -307,9 +307,6 @@ static int armadeus_sploader_probe(struct platform_device *pdev)
sdev->mem_res = mem_res;
- data = readw(platform_info->ip_addr + platform_info->idoffset);
- printk("ip num: %d idoffset: %d\n", data, platform_info->idoffset);
-
pdata->sdev = sdev;
result = create_proc_entries();
hooks/post-receive
--
armadeus
|
|
From: Fabien M <fa...@us...> - 2011-09-23 09:42:23
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 1187889c5986f3053559b9142dd3905415aec90a (commit)
via e2fd44ee11c710bf48ad1007b21811421f36f956 (commit)
via 42fab014036ec1acbcec53fede6eb5f39e478dda (commit)
from 20a36f4c438d52e66b69f95cba9bec80c49aa9a3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 1187889c5986f3053559b9142dd3905415aec90a
Author: Fabien Marteau <fab...@ar...>
Date: Fri Sep 23 11:41:35 2011 +0200
[linux][fpga][board_designs] adding drivers for default design spvision_loader
commit e2fd44ee11c710bf48ad1007b21811421f36f956
Author: Fabien Marteau <fab...@ar...>
Date: Fri Sep 23 11:24:41 2011 +0200
[linux][fpga][sploader] little bug correction
commit 42fab014036ec1acbcec53fede6eb5f39e478dda
Author: Fabien Marteau <fab...@ar...>
Date: Fri Sep 23 09:41:35 2011 +0200
[firmware] adding default design for sp_vision loader
-----------------------------------------------------------------------
Summary of changes:
.../apf27_spvision_loader.bit} | Bin 149615 -> 149620 bytes
firmware/pod_scripts/apf27_spvision_loader.pod | 14 +++
target/linux/modules/fpga/board_designs/Makefile | 2 +-
.../fpga/board_designs/spvision_loader/Kconfig | 10 ++
.../fpga/board_designs/spvision_loader/Makefile | 27 ++++++
.../spvision_loader/sploader_prober.c | 91 ++++++++++++++++++++
.../fpga/virtual_components/sploader/sp-loader.c | 6 +-
7 files changed, 146 insertions(+), 4 deletions(-)
copy firmware/{sp_vision_config/bitstream/top_testconfig.bit => pod_scripts/apf27_spvision_loader.bit} (73%)
create mode 100644 firmware/pod_scripts/apf27_spvision_loader.pod
create mode 100644 target/linux/modules/fpga/board_designs/spvision_loader/Kconfig
create mode 100644 target/linux/modules/fpga/board_designs/spvision_loader/Makefile
create mode 100644 target/linux/modules/fpga/board_designs/spvision_loader/sploader_prober.c
diff --git a/firmware/sp_vision_config/bitstream/top_testconfig.bit b/firmware/pod_scripts/apf27_spvision_loader.bit
similarity index 73%
copy from firmware/sp_vision_config/bitstream/top_testconfig.bit
copy to firmware/pod_scripts/apf27_spvision_loader.bit
index 288f718..8f65fd6 100644
Binary files a/firmware/sp_vision_config/bitstream/top_testconfig.bit and b/firmware/pod_scripts/apf27_spvision_loader.bit differ
diff --git a/firmware/pod_scripts/apf27_spvision_loader.pod b/firmware/pod_scripts/apf27_spvision_loader.pod
new file mode 100644
index 0000000..b4a15bb
--- /dev/null
+++ b/firmware/pod_scripts/apf27_spvision_loader.pod
@@ -0,0 +1,14 @@
+create spvision_loader
+selectplatform standard.apf27
+delinstance irq_mngr00
+addinstance components.sp_vision_configure.wb16
+autoconnectbus
+generateintercon imx27_wb16_wrapper00.mwb16
+generateintercon rstgen_syscon00.candroutput
+generatetop
+driver.selecttoolchain armadeus
+driver.generateproject
+synthesis.selecttoolchain ise
+synthesis.generateproject
+#synthesis.generatebitstream
+
diff --git a/target/linux/modules/fpga/board_designs/Makefile b/target/linux/modules/fpga/board_designs/Makefile
index 575dc2e..4109416 100644
--- a/target/linux/modules/fpga/board_designs/Makefile
+++ b/target/linux/modules/fpga/board_designs/Makefile
@@ -1,3 +1,3 @@
-obj-$(CONFIG_ARMADEUS_FPGA_BOARD_DESIGNS) += twin_uart/ wishbone_example/
+obj-$(CONFIG_ARMADEUS_FPGA_BOARD_DESIGNS) += twin_uart/ wishbone_example/ spvision_loader/
diff --git a/target/linux/modules/fpga/board_designs/spvision_loader/Kconfig b/target/linux/modules/fpga/board_designs/spvision_loader/Kconfig
new file mode 100644
index 0000000..c1ab33b
--- /dev/null
+++ b/target/linux/modules/fpga/board_designs/spvision_loader/Kconfig
@@ -0,0 +1,10 @@
+
+config ARMADEUS_FPGA_BOARD_DESIGNS_SPVISION_PROBER
+ tristate "board driver for sp_vision fpga loader"
+ default n
+ depends on ARMADEUS_FPGA_BOARD_DESIGNS
+ select ARMADEUS_FPGA_VIRTUAL_SPVISION_LOADER
+ ---help---
+ With this driver you will be able to load the configuration
+ of your sp_vision FPGA directly from Linux userspace.
+
diff --git a/target/linux/modules/fpga/board_designs/spvision_loader/Makefile b/target/linux/modules/fpga/board_designs/spvision_loader/Makefile
new file mode 100644
index 0000000..918a1ed
--- /dev/null
+++ b/target/linux/modules/fpga/board_designs/spvision_loader/Makefile
@@ -0,0 +1,27 @@
+#
+# Makefile for the Armadeus FPGA loader driver
+#
+
+ifneq ($(KERNELRELEASE),)
+
+obj-$(CONFIG_ARMADEUS_FPGA_BOARD_DESIGNS_SPVISION_PROBER) += sploader_prober.o
+
+# Part executed when called from standard make in this directory:
+# (preferably use Makefile in parent directory)
+
+else
+ARMADEUS_BASE_DIR=../../../../../../
+include $(ARMADEUS_BASE_DIR)/Makefile.in
+KDIR := $(ARMADEUS_KERNEL_DIR)
+PWD := $(shell pwd)
+CC:=$(ARMADEUS_TOOLCHAIN_PATH)/arm-linux-gcc
+
+default:
+ $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
+
+clean:
+ $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
+ rm -f modules.order Module.markers
+
+endif
+
diff --git a/target/linux/modules/fpga/board_designs/spvision_loader/sploader_prober.c b/target/linux/modules/fpga/board_designs/spvision_loader/sploader_prober.c
new file mode 100644
index 0000000..cf5a94e
--- /dev/null
+++ b/target/linux/modules/fpga/board_designs/spvision_loader/sploader_prober.c
@@ -0,0 +1,91 @@
+/*
+ ***********************************************************************
+ *
+ * (c) Copyright 2008 Armadeus project
+ * Fabien Marteau <fab...@ar...>
+ * Specific led driver for generic led driver
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ **********************************************************************
+ */
+
+#include <linux/version.h>
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+
+# include <mach/fpga.h>
+
+#include "../../virtual_components/sploader/spartan_loadsecond.h"
+
+static struct resource sploader0_resources[] = {
+ [0] = {
+ .start = ARMADEUS_FPGA_BASE_ADDR, + 0x0,
+ .end = ARMADEUS_FPGA_BASE_ADDR + 0x0 + 3,
+ .flags = IORESOURCE_MEM,
+ },
+};
+
+static Xilinx_desc plat_sploader0_data = {
+ .family = Xilinx_Spartan6,
+ .iface = slave_parallel,
+ .size = (11875104l / 8), //XILINX_XC6SLX45_SIZE,
+ .fpga_offset = 0xD6000000l,
+ .ip_id = 0, // l'id du composant == idnum
+ .cookie = 1,
+ .name = "SP_VISION_CONFIGURE00",
+ .num = 0,
+ .idnum = 1,
+ .idoffset = 0x0 * (16 /8) // pos de l'id dans le composant
+};
+
+
+void plat_sploader_release(struct device *dev)
+{
+ dev_dbg(dev, "released\n");
+}
+
+static struct platform_device plat_sploader_devices[] = {
+ {
+ .name = "sploader",
+ .id = 0,
+ .dev = {
+ .release = plat_sploader_release,
+ .platform_data = &plat_sploader0_data
+ },
+ .num_resources = ARRAY_SIZE(sploader0_resources),
+ .resource = sploader0_resources,
+ }
+
+};
+
+static int __init sploader_init(void)
+{
+ return platform_device_register(plat_sploader_devices);
+}
+
+static void __exit sploader_exit(void)
+{
+ platform_device_unregister(plat_sploader_devices);
+}
+
+module_init(sploader_init);
+module_exit(sploader_exit);
+
+MODULE_AUTHOR("Fabien Marteau <fab...@ar...>");
+MODULE_AUTHOR("Gwenhael Goavec-Merou <gwe...@ar...>");
+MODULE_DESCRIPTION("Driver to load spvision fpga");
+MODULE_LICENSE("GPL");
+
diff --git a/target/linux/modules/fpga/virtual_components/sploader/sp-loader.c b/target/linux/modules/fpga/virtual_components/sploader/sp-loader.c
index 15310ce..9254c69 100644
--- a/target/linux/modules/fpga/virtual_components/sploader/sp-loader.c
+++ b/target/linux/modules/fpga/virtual_components/sploader/sp-loader.c
@@ -111,12 +111,12 @@ static int armadeus_fpga_open(struct inode *inode, struct file *file)
}
/* check if ID is correct */
- ip_id = readw(sdev->membase + pdata->idoffset);
- if (ip_id != pdata->idnum) {
+ ip_id = readw(g_current_desc->ip_addr + g_current_desc->idoffset);
+ if (ip_id != g_current_desc->idnum) {
ret = -ENODEV;
printk(KERN_WARNING "For %s id:%d doesn't match with "
"id read %d,\n is device present ?\n",
- pdata->name, pdata->idnum, ip_id);
+ g_current_desc->name, g_current_desc->idnum, ip_id);
goto out;
}
hooks/post-receive
--
armadeus
|