KernelDriverProgrammingCourse2015/OutlineDay1
Jump to navigation
Jump to search
Kernel Driver Programming Course Day 1
- Intro
- Welcome
- I'm going to dump a lot of information on you, don't worry you do not need to remember it all :)
- Quickly explain of different Axx models
- A10 Datasheet Block diagram (page 12), give a quick overview of the A10
- A10 SoC dtsi file (example)
- sun4i-a10.dtsi
- For a list of addresses see the A10 user manual, section 3.2 "Memory mapping", and 11.2 "Interrupt Source"
- For clock tree info see: A10 Datasheet Clock tree diagram (pages 51 - 54)
- dts file example for a simple board
- Hands on 1: Build and install u-boot and a dts file and boot the board
- Everyone gets a board, a usb to serial convertor and a sdcard
- Build and install u-boot:
- Figure out the config to use for your board, do:
cd u-boot
grep -l SUNXI configs/*_defconfig - Build u-boot for your board, do:
make -j4 CROSS_COMPILE=arm-linux-gnu- $foo_defconfig
make -j4 CROSS_COMPILE=arm-linux-gnu- - Insert the provided sdcard into your laptop
- Figure out which blockdev it has been given, do:
dmesg | tail - Install u-boot by dd-ing it to the whole device (not a partition) blockdev, e.g.:
sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdc bs=1024 seek=8
- Figure out the config to use for your board, do:
- Boot the board:
- Plug a usb to serial convertor into your laptop
- Figure out which ttyUSB# it has been given, do:
dmesg | tail - Start screen on the ttyUSB# in question, e.g.:
screen /dev/ttyUSB0 115200 - Power up the board, and check that it boots properly in the screen session
- Build your own dts file:
cd linux
- Adding support for the musb otg controller to a sunxi dts file
- See the commit enabling it on the A20 OLinuxino Lime as an example of the necessary changes
- See the A20 OLinuxino Lime schematic as an example how to figure out which gpios to use for vbus_det / id_det. Or alternatively look at the usbc0 section of the fex file for the board.
- Some boards are special and use the pmic instead of a gpio for vbus-det, see e.g. the bananapi fex file. For an example of how to deal with this in the dts file see the commit enabling the otg controller on the bananapi.
- Quick demo of how to test otg on a sunxi board
- Hands on 2: Enable the otg controller on the board you've
- Modify the dts file for your board in the same way as done in the provided examples
- Build and install the dts file as before
- Test the otg controller as demoed