root@arm:~# /opt/scripts/tools/version.sh
git:/opt/scripts/:[ef2c5982e3788e07d9ec4a3d23089dc5e5a3f9cd]
eeprom:[A335BNLT00C05315BBBK054D]
model:[TI_AM335x_BeagleBone_Black]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2018.03-dirty]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2015.01-00001-gb2412df]
kernel:[4.4.127-bone22]
device-tree-override:[loadxfdt=load mmc 0:1 ${fdtaddr} /boot/dtbs/${uname_r}/${fdtfile}]
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[uboot_overlay_addr0=/lib/firmware/BB-I2C2-ADXL-00A0.dtbo ]
pkg:[bb-cape-overlays]:[4.4.20171207.0-0rcnee1~stretch+20171207]
OVERLAY FILE
https://pastebin.com/CsicZ046
compiled overlay as
dtc -I dts -O dtb -o BB-I2C2-ADXL-00A0.dtbo -b 0 -@ BB-I2C2-ADXL-00A0.dts
kconfig file changes
https://pastebin.com/e4hqXgmJ
DRIVER FILE
adxl34x-i2c.c
adxl34x.c
uEnv.txt
##This will work with: Angstrom’s 2013.06.20 u-boot.
loadaddr=0x82000000
fdtaddr=0x88000000
rdaddr=0x88080000
initrd_high=0xffffffff
fdt_high=0xffffffff
#for single partitions:
mmcroot=/dev/mmcblk0p1
loadximage=load mmc 0:1 ${loadaddr} /boot/vmlinuz-${uname_r}
loadxfdt=load mmc 0:1 ${fdtaddr} /boot/dtbs/${uname_r}/${fdtfile}
loadxrd=load mmc 0:1 ${rdaddr} /boot/initrd.img-${uname_r}; setenv rdsize ${filesize}
loaduEnvtxt=load mmc 0:1 ${loadaddr} /boot/uEnv.txt ; env import -t ${loadaddr} ${filesize};
loadall=run loaduEnvtxt; run loadximage; run loadxfdt;
enable_uboot_overlays=1
uboot_overlay_addr0=/lib/firmware/BB-I2C2-ADXL-00A0.dtbo
mmcargs=setenv bootargs console=tty0 console=${console} ${optargs} ${cape_disable} ${cape_enable} root=${mmcroot} rootfstype=${mmcrootfstype} ${cmdline}
uenvcmd=run loadall; run mmcargs; bootz ${loadaddr} - ${fdtaddr}
KERNEL LOGS
https://pastebin.com/VtWbGNsm
I had this impression that cat slots will not work, because it was removed from kernel, but if my dtbo is working but its working ny compatible string match via of_ mechanism.
My objective was to strip down the i2c driver to bare minimum and make it load at boot time using device tree overlay.
I do not see my driver loaded after doing lsmod. Nor the probe print I have put in adxl34x.c probe.
Where am I wrong here? What did I miss.
I am only following this
http://eewiki.net/display/linuxonarm/BeagleBone+Black