Difference between revisions of "Linux Kernel 2.6.35.y"

From IGEP - ISEE Wiki

Jump to: navigation, search
(Created page with '(work in progress) = Introduction = The currently supported machines are as follows: * IGEP0020 * IGEP0030 The currently supported expansion boards are as follows: * IGEP0022 …')
 
 
(41 intermediate revisions by 3 users not shown)
Line 1: Line 1:
(work in progress)
+
__TOC__
 +
 
 +
 
 +
{{Message/Information Message|title=|message=These series are EOL, move to a newer version of the Linux Kernel. Read the [[Linux Kernel 2.6.37.y]] page.}}
  
 
= Introduction =
 
= Introduction =
Line 6: Line 9:
 
* IGEP0020
 
* IGEP0020
 
* IGEP0030
 
* IGEP0030
 +
* IGEP0032
  
 
The currently supported expansion boards are as follows:
 
The currently supported expansion boards are as follows:
 
* IGEP0022
 
* IGEP0022
* BASE0010 (only Rev. A)
+
* BASE0010 (Rev. A & Rev. B)
  
= Build from sources =
+
Binaries: latest stable kernel version is: '''2.6.35.13-5 (20110927)'''
 +
 
 +
{| border="1"
 +
|-
 +
! '''Platform'''
 +
! '''Sources'''
 +
! '''uImage binary'''
 +
! '''zImage binary'''
 +
! '''Modules binaries'''
 +
|-
 +
|  IGEP00x0 
 +
| [http://downloads.isee.biz/pub/releases/linux_kernel/v2.6.35.13-5/linux-omap-2.6.35.13-5.tar.gz 2.6.35.13-5] ([http://downloads.isee.biz/pub/releases/linux_kernel/v2.6.35.13-5/linux-omap-2.6.35.13-5.tar.gz.md5 md5sum])
 +
| [http://downloads.isee.biz/pub/releases/linux_kernel/v2.6.35.13-5/uImage-2.6.35.13-5.bin uImage-2.6.35.13-5.bin] ([http://downloads.isee.biz/pub/releases/linux_kernel/v2.6.35.13-5/uImage-2.6.35.13-5.bin.md5 md5sum])
 +
| [http://downloads.isee.biz/pub/releases/linux_kernel/v2.6.35.13-5/zImage-2.6.35.13-5.bin zImage-2.6.35.13-5.bin] ([http://downloads.isee.biz/pub/releases/linux_kernel/v2.6.35.13-5/zImage-2.6.35.13-5.bin.md5 md5sum])
 +
| [http://downloads.isee.biz/pub/releases/linux_kernel/v2.6.35.13-5/modules-2.6.35.13-5.tar.gz modules-2.6.35.13-5] ([http://downloads.isee.biz/pub/releases/linux_kernel/v2.6.35.13-5/modules-2.6.35.13-5.tar.gz.md5 md5sum)]
 +
|}
 +
 
 +
= Build kernel from sources =
  
 
Download the latest stable version sources and follow next steps:  
 
Download the latest stable version sources and follow next steps:  
  
  wget http://downloads.igep.es/sources/linux-omap-2.6.35.tar.gz
+
  wget http://downloads.isee.biz/pub/releases/linux_kernel/v2.6.35.13-5/linux-omap-2.6.35.13-5.tar.gz
 
  tar xzf linux-omap-2.6.35.tar.gz
 
  tar xzf linux-omap-2.6.35.tar.gz
 
  cd [kernel version]
 
  cd [kernel version]
Line 26: Line 47:
 
Then build the kernel with:
 
Then build the kernel with:
  
  make ARCH=arm CROSS_COMPILE=[your cross compiler] uImage modules
+
  make ARCH=arm CROSS_COMPILE=[your cross compiler] uImage zImage modules
  
 
The result will be an uImage file in arch/arm/boot directory. You can install the kernel modules to your target rootfs  
 
The result will be an uImage file in arch/arm/boot directory. You can install the kernel modules to your target rootfs  
Line 34: Line 55:
 
= Kernel Parameters =
 
= Kernel Parameters =
  
The '''buddy''' parameter  
+
This chapter describes some [[How do I edit my kernel command line | kernel command line]] parameters you can pass to the kernel during system startup. They also depend on the presence of the hardware with which they are associated.
 +
 
 +
The '''board.ei485''' parameter allows to use UART1 as RS232 port instead of EI485
 +
  board.ei485=  [yes, no]
 +
                Format: <string>
 +
                no: disable ei485, use UART1 as RS232, supported by igep0020
 +
                default: yes
 +
 
 +
The '''buddy''' parameter allows enable or disable expansion boards
 
   buddy=  [igep0022, base0010]
 
   buddy=  [igep0022, base0010]
 
           Format: <string>
 
           Format: <string>
 
           igep0022: enable expansion board, supported by igep0020
 
           igep0022: enable expansion board, supported by igep0020
 
                     board
 
                     board
           base0010: enable expansion board, supported by igep0030
+
           base0010: enable expansion board, supported by igep0030  
                     board
+
                     board and igep0032 (only rev. B)
 
           default: none
 
           default: none
  
The '''buddy.modem''' parameter  
+
The '''buddy.revision''' parameter allows to pass hardware revision for buddy boards
 +
  buddy.revision= [A, B]
 +
          Format: <string>
 +
          A: enable hardware buddy revision A, only available for base0010
 +
          B: enable hardware buddy revision B, only available for base0010
 +
          default: A
 +
 
 +
The '''buddy.modem''' parameter allows enable or disable modem
 
   buddy.modem=  [yes]
 
   buddy.modem=  [yes]
 
                 Format: <string>
 
                 Format: <string>
                 yes: enable modem on buddy board, supported by igep0022 and
+
                 yes: enable modem on buddy board, supported by igep0022 expansion board.
                    base0010 Rev. B expansion boards.
 
 
                 default: none
 
                 default: none
  
 
== Scenarios ==
 
== Scenarios ==
  
'''1. If you have and IGEP0020 board plus an IGEP0022 expansion board you should add in your kernel cmdline'''
+
Consider the following situations:
 +
 
 +
'''Scenario A.''' You have and IGEP0020 board plus IGEP0022 expansion board, then you should add in your [[How do I edit my kernel command line | kernel command line]]
  
 
  buddy=igep0022
 
  buddy=igep0022
  
'''1.1 If you wont enable the IGEP0022 modem which is disabled by default you should add in your kernel cmdline'''
+
Optionally, to enable the IGEP0022 modem which is disabled by default you should add in your [[How do I edit my kernel command line | kernel command line]]
  
 
  buddy=igep0022 buddy.modem=yes
 
  buddy=igep0022 buddy.modem=yes
  
NOTE: UART1 can be used for bluetooth OR modem in expansion board but NOT at same time. They are INCOMPATIBLE.
+
<span style="color: rgb(255, 0, 0);">
 +
NOTE: UART2 can be used for bluetooth OR modem in expansion board but NOT at same time. They are INCOMPATIBLE.
 +
</span>
  
The Bluetooth UART and PCM voice interface (PCM VSP) is INCOMPATIBLE with modem (disabled by default, enable with
+
'''Scenario B.''' You have and IGEP0030 board plus BASE0010 expansion board, then you should add in your [[How do I edit my kernel command line | kernel command line]]
  
''' 2. If you have and IGEP0030 board plus an BASE0010 expansion board you should add in your kernel cmdline
+
buddy=base0010
  
  buddy=base0010
+
'''Scenario C.''' You have and IGEP0030 board plus BASE0010 Rev. B expansion board, then you should add in your [[How do I edit my kernel command line | kernel command line]]
 +
 
 +
  buddy=base0010 buddy.revision=B
 +
 
 +
'''Scenario D.''' You have and IGEP0032 board plus BASE0010 Rev. B expansion board, then you should add in your [[How do I edit my kernel command line | kernel command line]]
 +
 
 +
buddy=base0010 buddy.revision=B
  
 
= Layout =
 
= Layout =
Line 75: Line 120:
 
* board-igep0020.c : For IGEP0020 machine
 
* board-igep0020.c : For IGEP0020 machine
 
* board-igep0030.c : For IGEP0030 machine
 
* board-igep0030.c : For IGEP0030 machine
 +
* board-igep0032.c : For IGEP0032 machine
  
 
Expansion board files, also are located in arch/arm/mach-omap2/ directory with
 
Expansion board files, also are located in arch/arm/mach-omap2/ directory with
Line 90: Line 136:
 
As you can see in Layout chapter, an expansion board is called exp-<your board name>.c and should be located in arch/arm/mach-omap2 directory, so the first step will be add a new file for your new expansion board. Following example creates a new expansion board file called exp-dummy.c (arch/arm/mach-omap2/exp-dummy.c)
 
As you can see in Layout chapter, an expansion board is called exp-<your board name>.c and should be located in arch/arm/mach-omap2 directory, so the first step will be add a new file for your new expansion board. Following example creates a new expansion board file called exp-dummy.c (arch/arm/mach-omap2/exp-dummy.c)
  
 +
<pre>
 
  #include <linux/kernel.h>
 
  #include <linux/kernel.h>
 
  #include <linux/init.h>
 
  #include <linux/init.h>
Line 97: Line 144:
 
  pr_info("Initializing expansion board ... \n");
 
  pr_info("Initializing expansion board ... \n");
 
  }
 
  }
 +
</pre>
  
 
next, add the new file to be built
 
next, add the new file to be built
Line 175: Line 223:
 
         /* Add twl4030 common data */
 
         /* Add twl4030 common data */
 
         omap3_pmic_get_config(&twl4030_pdata, TWL_COMMON_PDATA_USB |
 
         omap3_pmic_get_config(&twl4030_pdata, TWL_COMMON_PDATA_USB |
 +
 +
= Changelog =
 +
*[http://git.igep.es/?p=pub/scm/linux-omap-2.6.git;a=commit;h=e620ef8e577d73681f16ab80471332286c1b9fd5 2011-09-27 Release 2.6.35.13-5]
 +
** Fix mux handling for UART2
 +
** Add support for IGEP0032 COM
 +
** Support for BASE0010 Rev. B
 +
*[http://git.igep.es/?p=pub/scm/linux-omap-2.6.git;a=commit;h=52fb200d9d79a38cc72b8fd6f089e253f002e8ff 2011-09-12 Release 2.6.35.13-4]
 +
** Fix MCP251X initialitzation.
 +
** Fix various build problems when a CONFIG option is not selected
 +
** Fix mux when using board.ei485 kernel parameter
 +
*[http://git.igep.es/?p=pub/scm/linux-omap-2.6.git;a=commit;h=be8031203a76375451fe3a46e4169cb1d743e0c7 2011-08-29 Release 2.6.35.13-3]
 +
** Fix buddy initialization.
 +
** Add Invertra dma workaround for DM3730
 +
*[http://git.igep.es/?p=pub/scm/linux-omap-2.6.git;a=commit;h=b69a01294639a4f4973d1ec8d0ef9d66ad2c8a48 2011-07-28 Release 2.6.35.13-2]
 +
** Major rework to support IGEP boards and expansion boards
 +
** Add support for hardware rev. E for IGEP0030
 +
** Add support for OMAP3 ISP
 +
** Fix musb issue, set has_tt flag
 +
** Use IGEP x-loader partition scheme
 +
*[http://git.igep.es/?p=pub/scm/linux-omap-2.6.git;a=commit;h=e12ae1b0f2ada83aa5be8f6c23dda1e9a0ce4360 2011-05-26 Release 2.6.35.13-1]
 +
** Fix failed to setup omapfb
 +
** Add support for expansion board BASE0010
 +
** Rename expansion boards to exp-<expansion name>.c
 +
*[http://git.igep.es/?p=pub/scm/linux-omap-2.6.git;a=commit;h=c2c0f964325b123e551f3791dc78ef80b8fb84c7 2011-05-02 Release 2.6.35.13-0]
 +
** Rebased with longterm/linux-2.6.35.y (2.6.35.13)
 +
*[http://git.igep.es/?p=pub/scm/linux-omap-2.6.git;a=commit;h=620ce1126f4f154d01f3b870d54b875e5a768b8b 2011-04-08 Release 2.6.35.12-0]
 +
** Rebased with longterm/linux-2.6.35.y (2.6.35.12)
 +
*[http://git.igep.es/?p=pub/scm/linux-omap-2.6.git;a=commit;h=4425bead2e2faf4602c7d2c7896fcbe96e12b644 2011-03-08 Release 2.6.35.11-0]
 +
** Rebased with longterm/linux-2.6.35.y (2.6.35.11)
 +
** Fix conflict between bluetooth and modem
 +
** Fix missing omap_reserve functionality in IGEP module
 +
** Fix IRQ for MCP251x driver
 +
*[http://git.igep.es/?p=pub/scm/linux-omap-2.6.git;a=commit;h=5f578909fcb5f2383aa91f07d45bd64fd0a82cbd 2011-01-17 Release 2.6.35.10-0]
 +
** Rebased with longterm/linux-2.6.35.y (2.6.35.10)
 +
** Add MADC driver
 +
** Add TIDSPBRIDGE driver
 +
** Fix MCSPI, disable channel after TX_ONLY transfer in PIO mode
 +
*[http://git.igep.es/?p=pub/scm/linux-omap-2.6.git;a=commit;h=c8a6de6ec4dabb4d7a8b6c2299da4b924700f200 2010-11-23 Release 2.6.35.9-0]
 +
** Rebased with stable/2.6.35.9
 +
** Add IGEP0022 expansion support by default
 +
** Add EHCI support on OMAP3 IGEP module.
 +
** Fix modem GPIO for IGEP v2 expansion board
 +
*[http://git.igep.es/?p=pub/scm/linux-omap-2.6.git;a=commit;h=a0af50a21ce7b97218704e45a3e9b1d987aa95cd 2010-11-05 Release 2.6.35.8-0]
 +
** Rebased with stable/2.6.35.8
 +
** Fix libertas driver with SDIO IRQ
 +
*[http://git.igep.es/?p=pub/scm/linux-omap-2.6.git;a=commit;h=f22e641507e4e0c3fc015405bac7448f2c1d3034 2010-10-28 Release 2.6.35.7-1]
 +
** Add support for SDIO IRQ
 +
** Fix onenand bufferram management
 +
** Improve IGEP0020 expansion board support
 +
*** Add support for 4.3 inch and 7.0 inch display panels
 +
*** Fix CAN probe oops
 +
*[http://git.igep.es/?p=pub/scm/linux-omap-2.6.git;a=commit;h=90ca5f215048ee612398610fab3981589da05633 2010-10-19 Release 2.6.35.7-0]
 +
**First release for 2.6.35 series
 +
 +
[[Category:Linux Kernel]]

Latest revision as of 16:13, 28 June 2013


Information.jpg These series are EOL, move to a newer version of the Linux Kernel. Read the Linux Kernel 2.6.37.y page.

Introduction

The currently supported machines are as follows:

  • IGEP0020
  • IGEP0030
  • IGEP0032

The currently supported expansion boards are as follows:

  • IGEP0022
  • BASE0010 (Rev. A & Rev. B)

Binaries: latest stable kernel version is: 2.6.35.13-5 (20110927)

Platform Sources uImage binary zImage binary Modules binaries
 IGEP00x0  2.6.35.13-5 (md5sum) uImage-2.6.35.13-5.bin (md5sum) zImage-2.6.35.13-5.bin (md5sum) modules-2.6.35.13-5 (md5sum)

Build kernel from sources

Download the latest stable version sources and follow next steps:

wget http://downloads.isee.biz/pub/releases/linux_kernel/v2.6.35.13-5/linux-omap-2.6.35.13-5.tar.gz
tar xzf linux-omap-2.6.35.tar.gz
cd [kernel version]

A generic configuration is provided for all IGEP machines, and can be used as the default by

make ARCH=arm CROSS_COMPILE=[your cross compiler] igep00x0_defconfig

Then build the kernel with:

make ARCH=arm CROSS_COMPILE=[your cross compiler] uImage zImage modules

The result will be an uImage file in arch/arm/boot directory. You can install the kernel modules to your target rootfs

make ARCH=arm CROSS_COMPILE=[your cross compiler] modules_install INSTALL_MOD_PATH=[path to your target rootfs]

Kernel Parameters

This chapter describes some kernel command line parameters you can pass to the kernel during system startup. They also depend on the presence of the hardware with which they are associated.

The board.ei485 parameter allows to use UART1 as RS232 port instead of EI485

 board.ei485=  [yes, no]
               Format: <string>
               no: disable ei485, use UART1 as RS232, supported by igep0020
               default: yes

The buddy parameter allows enable or disable expansion boards

 buddy=   [igep0022, base0010]
          Format: <string>
          igep0022: enable expansion board, supported by igep0020
                    board
          base0010: enable expansion board, supported by igep0030 
                    board and igep0032 (only rev. B)
          default: none

The buddy.revision parameter allows to pass hardware revision for buddy boards

 buddy.revision= [A, B]
          Format: <string>
          A: enable hardware buddy revision A, only available for base0010
          B: enable hardware buddy revision B, only available for base0010
          default: A

The buddy.modem parameter allows enable or disable modem

 buddy.modem=  [yes]
               Format: <string>
               yes: enable modem on buddy board, supported by igep0022 expansion board.
               default: none

Scenarios

Consider the following situations:

Scenario A. You have and IGEP0020 board plus IGEP0022 expansion board, then you should add in your kernel command line

buddy=igep0022

Optionally, to enable the IGEP0022 modem which is disabled by default you should add in your kernel command line

buddy=igep0022 buddy.modem=yes

NOTE: UART2 can be used for bluetooth OR modem in expansion board but NOT at same time. They are INCOMPATIBLE.

Scenario B. You have and IGEP0030 board plus BASE0010 expansion board, then you should add in your kernel command line

buddy=base0010

Scenario C. You have and IGEP0030 board plus BASE0010 Rev. B expansion board, then you should add in your kernel command line

buddy=base0010 buddy.revision=B

Scenario D. You have and IGEP0032 board plus BASE0010 Rev. B expansion board, then you should add in your kernel command line

buddy=base0010 buddy.revision=B

Layout

Machine specific files are located in arch/arm/mach-omap2/ directory with name board-igep*.c. Like :

  • board-igep0020.c : For IGEP0020 machine
  • board-igep0030.c : For IGEP0030 machine
  • board-igep0032.c : For IGEP0032 machine

Expansion board files, also are located in arch/arm/mach-omap2/ directory with name exp-*.c. Like :

  • exp-igep0022.c : For IGEP0022 expansion board
  • exp-base0010.c : For BASE0010 expansion board

Adding New Expansion Boards

This chapter is meant to be a starting point for people to learn how to add your own expansion board in three steps.

Step 1: Add new expansion board file

As you can see in Layout chapter, an expansion board is called exp-<your board name>.c and should be located in arch/arm/mach-omap2 directory, so the first step will be add a new file for your new expansion board. Following example creates a new expansion board file called exp-dummy.c (arch/arm/mach-omap2/exp-dummy.c)

 #include <linux/kernel.h>
 #include <linux/init.h>

 void __init dummy_init(void)
 {
 	pr_info("Initializing expansion board ... \n");
 }

next, add the new file to be built

diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 7505be9..a6572f2 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -156,6 +156,7 @@ obj-$(CONFIG_MACH_IGEP0020)         += board-igep0020.o \
 obj-$(CONFIG_MACH_IGEP0030)            += board-igep0030.o \
                                           board-igep00x0.o \
                                           exp-base0010.o \
+                                          exp-dummy.o \
                                           hsmmc.o
 obj-$(CONFIG_MACH_OMAP3_TOUCHBOOK)     += board-omap3touchbook.o \
                                           hsmmc.o

Step 2: Register new expansion board

Now, edit board-igep00x0.h and add an identifier for the new expansion board, for example,

diff --git a/arch/arm/mach-omap2/board-igep00x0.h b/arch/arm/mach-omap2/board-igep00x0.h
index 6b9b677..a2325d7 100644
--- a/arch/arm/mach-omap2/board-igep00x0.h
+++ b/arch/arm/mach-omap2/board-igep00x0.h
@@ -15,6 +15,7 @@
 #define IGEP00X0_BUDDY_NONE            0x01
 #define IGEP00X0_BUDDY_IGEP0022        0x01
 #define IGEP00X0_BUDDY_BASE0010        0x02
+#define IGEP00X0_BUDDY_DUMMY           0x03

 #define IGEP00X0_BUDDY_HWREV_A         (1 << 0)
 #define IGEP00X0_BUDDY_HWREV_B         (1 << 1)

also, edit in board-igep00x0.c the buddy_early_param to add the new expansion board,

diff --git a/arch/arm/mach-omap2/board-igep00x0.c b/arch/arm/mach-omap2/board-igep00x0.c
index 2a2d8eb..f2b5b27 100644
--- a/arch/arm/mach-omap2/board-igep00x0.c
+++ b/arch/arm/mach-omap2/board-igep00x0.c
@@ -192,6 +192,9 @@ static int __init buddy_early_param(char *str)
                if (!strcmp(name, "base0010")) {
                        igep00x0_buddy_pdata.model = IGEP00X0_BUDDY_BASE0010;
                        pr_info("IGEP: IGEP0030 machine + BASE0010 (buddy)\n");
+               } else if (!strcmp(name, "dummy")) {
+                       igep00x0_buddy_pdata.model = IGEP00X0_BUDDY_DUMMY;
+                       pr_info("IGEP: IGEP0030 machine + DUMMY (buddy)\n");
                } else
                        pr_err("IGEP: Unknown buddy for IGEP0030 machine\n");
        }

Step 3: Run expansion board initialization

Finally, modify the machine file and add support for the new expansion board, for example:

diff --git a/arch/arm/mach-omap2/board-igep0030.c b/arch/arm/mach-omap2/board-igep0030.c
index 2b97257..44b319d 100644
--- a/arch/arm/mach-omap2/board-igep0030.c
+++ b/arch/arm/mach-omap2/board-igep0030.c
@@ -204,6 +204,8 @@ static struct omap_board_mux board_mux[] __initdata = {

 /* Expansion board: BASE0010 */
 extern void __init base0010_init(struct twl4030_platform_data *pdata);
+/* Expansion board: DUMMY */
+extern void __init dummy_init(void);

 static void __init igep0030_init(void)
 {
@@ -223,6 +225,10 @@ static void __init igep0030_init(void)
        /* - BASE0010 (adds twl4030_pdata)  */
        if (igep00x0_buddy_pdata.model == IGEP00X0_BUDDY_BASE0010)
                base0010_init(&twl4030_pdata);
+       /* - DUMMY  */
+       if (igep00x0_buddy_pdata.model == IGEP00X0_BUDDY_DUMMY)
+               dummy_init();
+

        /* Add twl4030 common data */
        omap3_pmic_get_config(&twl4030_pdata, TWL_COMMON_PDATA_USB |

Changelog