 |
phrozen.org >> FOX-VHDL
| FOX-VHDL Intro |
 |
 |
I will keep track of how far i have gotten with the development of the kernel modules and framebuffer driver for the fox-vhdl board, which i am developing in cooperation with acmesystems.it, on this page.
It is our aim to achieve the following things
- General Kernel support for the FOX-VHDL Board
- Create a kernel module for flashing the FOX-VHDL Board, using the JTAG interface, directly from the FOX
- Create a custom framebuffer driver
- port libsvga, fbset, ...
- and finally port opie.handhelds.org to the fox
|
| FOX-VHDL |
 |
 |
28.03.2006 - Initial tests - compile framebuffer support into kernel
29.03.2006 - Duplicate VFB driver to base the FOX version on it. Driver is called fox_vhdl_fb
31.03.2006 - swap to kernel 2.6.15
01.04.2006 - compile first version of fox_vhdl_fb. All handling is done in memory at the moment
02.04.2006 - compiled Virtual terminal/console driver and fonts into kernel
02.04.2006 - MMU Opps panic due to at keyboard / ps2 Mouse ?
02.04.2006 - Added the new Version 2 of my MMC driver to the kernel tree.
03.04.2006 - FOX successfully boot with the custom fb. I am now waiting on my vhdl board to arrive
|
| FOX-VHDL Compile |
 |
 |
In order for the framebuffer to run, the kernel must first support the subsystem.
Here is how you get the kernel to know it :
- Install sdk as described on acmesystems.it
- Download the newest kernel from axis http://developer.axis.com/download/distribution/os-linux-2.6-tag--devboard-R2_01-1.tar.gz
- Unpack it in the devboard folder and ln -s it to ./os/linux-2.6/
- Now we need to modify the Kconfig scripts, such that make menu config will show the 'Graphics Settings' as an option. Do this by copying this file to os/linux-2.6/arch/cris/Kconfig
- Now we need to add our own FB driver to the source tree. Copy this file and this file to os/linux-2.6/drivers/video/
- Now we need to setup the kernel. Enter the folder os/linx-2.6/ and run make menuconfig
- Go to Character Devices
- Enable Virtual Terminal support
- Enable Support for console on VT
- Go to 'Graphis Settings'
- Enable FB support
- Enable FOX VHDL support
- Enter Console Display
- Diable VGA Console
- Enable Framebuffer Console Support
- Enable 8x8 font
- In the future there will be some extra options here
- Go to Input devices, leave mouse and keyboard support enabled, but remove ps2 mouse and at keyboard
- Exit & Save
- cd ../..
- Finally we need to make sure that the device files are setup correctly. Do this by copying this file to packages/devices/axis-2.4
- make the new image
- Flash the new image using bootlinux
|
| FOX-VHDL MMC V2.1 |
 |
 |
To include the new Version2 of the MMC driver you need to follow these steps :
- Edit makefiles such that the mmc devices are created with major id 126. Do this by copying this file to packages/devices/axis-2.4
- Extract this file into the os/linux-2.6/arch/cris/drivers/ directory
- Then make menuconfig in the kernel root
- Enter the menu 'Drivers for built in interfaces'
- The last last entry is FOX MMC Support. Enable it
- Optionally you can also enable debugging here
- Finally you can change the pin configuration
- Save the configuration and make the fimage as usual
|
| FOX-VHDL Boot up |
 |
 |
Here is the current boot output
Mount-cache hash table entries: 1024
NET: Registered protocol family 16
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
JFFS version 1.0, (C) 1999, 2000 Axis Communications AB
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
Initializing Cryptographic API
io scheduler noop registered
io scheduler cfq registered
_________________FOX_VHDL_FB_startup
_________________FOX_VHDL_FB_probe
fb0: Virtual frame buffer device, using 1024K of video memory
_________________FOX_VHDL_FB_finished loading
i8042.c: i8042 controller self test timeout.
ETRAX 100LX serial-driver 1.25 $, (c) 2000-2004 Axis Communications AB
ttyS0 at 0xb0000060 is a builtin UART with DMA
ttyS2 at 0xb0000070 is a builtin UART with DMA
ttyS3 at 0xb0000078 is a builtin UART with DMA
fast_timer_init()
|
|
|