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
- https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts | sun4i-a10-mini-xplus.dts]
- 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
- Adding support for the musb otg controller to a sunxi dts file
- See the commit enalbing 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 fex file for the board.