Building the
EPSON
Frame Buffer Display Driver

 

The following steps assume the kernel sources are in /usr/src/linux. It is also assumed the patch file version matches the Linux kernel version. For illustration purposes we assume the kernel to be Linux-2.4.26. We also assume you are familiar with the kernel build and boot process.

To build an Epson frame buffer display driver,  follow these steps:

  1. First apply the patch file.
    Copy the file s1d13xxxfb-2.4.26.280905.diff.gz in the directory /usr/src/linux and issue the commands:

        cd /usr/src/linux
        gzip -cd s1d13xxxfb-2.4.26.280905.diff.gz | patch -Np1
     
  2. Having patched the kernel, you must provide hardware values for the video controller and display you will use. The driver patch file comes with default configuration values, however it is likely they will not reflect your particular hardware configuration. The easiest method to create new values for your hardware configuration is to modify the existing header file with your values. For example, if you plan on building a driver for S1D13733, you would modify the file /usr/src/linux/drivers/video/epson/s1d13733.h.

    The other option to obtain the configuration values would be to generate the complete include file based on your hardware requirements using the Win32 based configuration utility. There is a configuration utility for each supported controller. The utility is available at  the EPSON web site , typically called S1DxxxxxCFG (where xxxxx is 13706, 13733, 13A05, etc.). Beware the generated include file will be in DOS text file format and MUST be converted to the Linux text file format by a utility such as dos2unix.
     
  3. In the directory /usr/src/linux run the command

        make menuconfig

    Select

        Code maturity level options-->

            [y] Prompt for development and/or incomplete code/drivers

    Under Console drivers we must select support for frame buffer devices and choose our chip from the Epson chips menu. The following assumes we want to support S1D13733 on an Epson 13733B00C evaluation board:

       Console drivers-->
          Frame-buffer support--->
             [y] Support for frame buffer devices
             EPSON LCD/CRT/TV controller drivers --->
                      [y] Epson LCD/CRT/TV controller support
                      [y] Epson S1D13733 Support
                      [y]      Epson PCI Bridge adapter support

    Finally, select the desired color depth (bits per pixel: bpp). Only one color depth at a time is supported, so you must first deselect all color depths and then select the one you want. The menu permits selecting color depths which are not supported by some Epson controllers or the display driver. In this case you will be notified by a forced error during the build time. You will get a similar error if you fail to select a single color depth.

     Console drivers-->
          Frame-buffer support--->
           [y] Advanced low level driver options
           <y> 16 bpp packed pixel support

    As part of this step, disable all options that say VGA. You should also disable support for display mode switching.
     

  4. Back in the console under /usr/src/linux run the command

       make dep

       make bzImage

If the kernel builds without an error you should be able to boot the new kernel with your new frame buffer display driver.

If you are using Epson development/evaluation boards which includes an external clock generation chip, make sure the board is jumpered to use oscillators and not the on board clock chip. The external clock chips are not supported by this driver.