Pau pajuelo
TODO:
Update peripheral tutorials, finish gpio example program
Categorize new tutorials
Finish tutorials below
How to manage the kernel modules on Linux
How do I edit my kernel command line
Basic Software instructions
igep.ini parameters
The kernel command line syntax is name=value1. These next parameters are supported in igep.ini since IGEP-X_Loader 2.4.0-2:
[kernel]
Parameter Name | Description | Default value | Comments |
kaddress | Kernel copy address | =0x80008000 | Hex memory address |
rdaddress | Ram Disk location address | =0x81600000 | Hex memory address; disabled by default |
serial.low | Serial number (low part) | =00000001 | Numeric |
serial.high | Serial number (high part) | =00000000 | Numeric |
revision | Revision ID | =0003 | Numeric |
kImageName | Kernel, binary image name | =zImage | Kernel or binary image name |
kRdImageName | Kernel RAM Disk Image Name | - | Ram Disk image name |
MachineID | Machine ID (kernel ID) | ;IGEPv2 =2344 |
;Module =2717 ;Proton =3203 |
Mode | Boot Mode | ;Linux kernel =kernel |
;Other image (like uboot) [binary image] |
[kparams]
Parameter Name | Description | Default value | Comments |
buddy | Enable/disable expansion board support | ;IGEPv2 Expansion Board support =igep0022 |
;Berlin and Paris Expansion Board support =base0010 New York Expansion =ilms0015 |
console | Setup the kernel console parameters | =ttyO2,115200n8 | - |
earlyprintk | Enable early printk | - | - |
mem | Setup the Board Memory Configuration | =430M | - |
boot_delay | Setup the boot delay | =0 | - |
mpurate | Setup ARM Processor Speed | - | - |
loglevel | Setup the loglevel | - | - |
debug | Enable kernel debug output | - | - |
fixrtc | Fix RTC variable | - | - |
nocompcache | Configure nocompcache variable | =1 | - |
omapfb.mode | Configure frame bugger configuration | =dvi:hd720-16@50 | ;Other configuration =dvi:1280x720MR-16@60 |
vram | Configure Video RAM assigned to every frame buffer | - | - |
omapfb.vram | Configure Video RAM assigned to every frame buffer | - | - |
omapfb.debug | Configure frame buffer debug output | - | - |
omapdss.debug | Configure DSS Video debug output | - | - |
smsc911x.mac0 | Configure Board Ethernet Mac Address | =0xb2,0xb0,0x14,0xb5,0xcd,0xde | For IGEP BERLIN |
smsc911x.mac1 | Configure Board Ethernet Mac Address | =0xb2,0xb0,0x14,0xb5,0xcd,0xdf | For IGEP BERLIN (only with IGEP PROTON) |
smsc911x.mac | Configure Board Ethernet Mac Address | =0xb2,0xb0,0x14,0xb5,0xcd,0xde | For IGEPv2, IGEP PROTON, IGEP PARIS and IGEP BERLIN |
ubi.mtd | Fot UBI FS boot | - | - |
root | Configure root directory for MMC, NFS or UBI | ;For mmc memory =/dev/mmcblk0p2 rw rootwait |
;For flash memory =/dev/mtdblock2 |
nfsroot | For NFS boot | - | - |
rootfstype | For UBI FS boot | - | - |
ip | For NFS boot | - | - |
init | Assign init program | - | - |
musb_hdrc.debug | USB debug | - | - |
musb_hdrc.use_dma | USB over network | - | - |
libertas.libertas_debug | Configure libertas debug | - | - |
board.ei485 | Enable/disable RS485 | ;Enable RS485 =yes |
;Disable RS485 =no |
board.modem | Enable/disable GPRS modem | ;Enable modem (IGEPv2 Expansion) =no |
;Enable modem (IGEPv2 Expansion) =yes |
buddy.revision | Enable hardware buddy revision [A or B] | Only for base0010 =A |
Only for base0010 =B |
How to use GPIOs (update it)
Overview
This How-To is meant to be a starting point for people to learn use GPIOs for IGEP devices as quickly and easily as possible. For this How-To I used IGEP firmware Yocto
There are more ways to use GPIOs, but this one is very simple.
Feedback and Contributing
At any point, if you see a mistake you can contribute to this How-To.
Requirements
For this How-to, I used:
- IGEPv2 Board
- GPIO example
Configure IGEPv2
By default, GPIO 156 (J990:20) and GPIO 157 (J990:22) are available, connect J990:20 and J990:22 with a cable.
Example program
Example program contains some libraries to control GPIOs, libraries can do:
- Export and unexport GPIOs
- Set GPIO direction
- Set GPIO value
- Get GPIO value
- Configure hardware interrupts
Example program configures a GPIO to wait a hardware interrupt. Once the GPIO value change from 0 value to 1 value (rising), program gives you a message.
Compile example program
Download an Install IGEP SDK if you don't have it.
First of all you need to initialize a suitable environment in the bash shell console inside your machine.
You can do this sourcing once the environment-setup script.
jdoe@ubuntu ~ $ source /opt/poky/1.2/environment-setup-armv7a-vfp-neon-poky-linux-gnueabi
- Download source code
- Extract source code
- Build source code:
Cross toolchain tools are available into the built-in virtual machine Poky SDK. You only need open bash terminal prompt and write command:
jdoe@ubuntu ~/Desktop $ arm-poky-linux-gnueabi-gcc -o gpio_example gpio_examplebeta1.c
- Copy binary file to IGEP Board
Execute program
Open a remote terminal and locate your program binary, execute program and pass like a parameter 157 value (GPIO 157):
root@igep00x0:~# ./gpio_example 157
Result will be:
root@igep00x0:~# ./gpio_example 157 gpio/direction: No such file or directory poll() GPIO 157 interrupt occurred .............
Generate interrupts
Open a second remote terminal and type:
cd /sys/class/gpio/ echo 156 > export cd gpio156/ echo out > direction echo 0 > value echo 1 > value
Result
At first remote terminal you should read a message similar like this:
....................................... poll() GPIO 157 interrupt occurred