beagleboard / linux

The official Read Only BeagleBoard and BeagleBone kernel repository https://git.beagleboard.org/beagleboard/linux
http://beagleboard.org/source
Other
725 stars 563 forks source link

Adding support for beaglebone compatible platform #208

Closed tehkillerbee closed 5 years ago

tehkillerbee commented 5 years ago

Hello,

I have been using a platform that is based around the beaglebone platform architecture. The "core module" is designed by GoEmbed and uses the AM3354 and TI TPS65910A3 PMU. It supports a number of carrier that uses the standard beaglebone cape pinout. http://www.goembed.com/index.php/Products/detail/tpid/22 http://www.goembed.com/index.php/Products/detail/tpid/49

The platform is not directly compatible with a standard beaglebone black image due to a sligthly different device tree configuration and due to a slightly different u-boot/MLO. For this reason, it only runs with an outdated debian 8.7.

Therefore, I would like to add support for it. The original device tree created by GoEmbed is based on a beaglebone black / am335x-evm and sources are provided by GoEmbed. I have already made the necessary changes to the latest am335x-boneblack.dtb and am335x-boneblack-uboot-univ.dtb to get it to boot correctly. But I would like to have a separate dtb since this is not a boneblack :)

  1. What is the correct procedure for adding a custom dts?
  2. What is the correct procedure for selecting between a standard beaglebone dts and a custom one in uEnv?

Are there any interest in adding support for this platform?

RobertCNelson commented 5 years ago

@tehkillerbee , do you know what eeprom value they stuck on these boards?

Please run:

sudo /opt/scripts/tools/version.sh

For the dtb files, you can submit merge requests to this repo:

https://github.com/beagleboard/BeagleBoard-DeviceTrees

(v4.14.x-ti and v4.19.x-ti branches are most utilzed today)

and they'll get pulled into the current builds..

Regards,

tehkillerbee commented 5 years ago

@RobertCNelson Thank you. It looks like there is a device at i2c0, address 0x12 (in addition to the TPS at 0x2d). 0x12 appears to be completely empty when I run i2cdump. I am not 100% convinced this is indeed an eeprom. So without an eeprom, it will be impossible to identify the board type at boot, correct?

When running version.sh, I get the following output:

$ sudo /opt/scripts/tools/version.sh [sudo] password for debian: git:/opt/scripts/:[46d33928c4a396ef472829bcf22761546e550a6f] model:[TI_AM335x_BeagleBone_Black] dogtag:[BeagleBoard.org Debian Image 2018-10-07] bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2015.07-gefd62d2-dirty]:[location: dd MBR] kernel:[4.14.108-ti-r108] nodejs:[v6.17.0] /uEnv.txt exists, uboot overlays is DISABLED, remove /uEnv.txt uboot_overlay_options:[enable_uboot_overlays=1] uboot_overlay_options:[uboot_overlay_addr4=BB-I2C1-00A0.dtbo] uboot_overlay_options:[disable_uboot_overlay_video=1] uboot_overlay_options:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo] uboot_overlay_options:[enable_uboot_cape_universal=1] pkg check: to individually upgrade run: [sudo apt install --only-upgrade ] pkg:[bb-cape-overlays]:[4.4.20190610.0-0rcnee0~stretch+20190610] pkg:[bb-wl18xx-firmware]:[1.20190227.1-0rcnee0~stretch+20190227] pkg:[kmod]:[23-2rcnee1~stretch+20171005] pkg:[librobotcontrol]:[1.0.4-git20190227.1-0rcnee0~stretch+20190327] pkg:[firmware-ti-connectivity]:[20180825+dfsg-1rcnee1~stretch+20181217] groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal i2c bluetooth netdev cloud9ide gpio pwm eqep admin spi tisdk weston-launch xenomai] cmdline:[console=tty0 console=ttyO0,115200n8 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet nohz=off] dmesg | grep remote [ 2.438287] remoteproc remoteproc0: wkup_m3 is available [ 2.519928] remoteproc remoteproc0: powering up wkup_m3 [ 2.519949] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217168 [ 2.520211] remoteproc remoteproc0: remote processor wkup_m3 is now up dmesg | grep pru dmesg | grep pinctrl-single [ 0.959846] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568 [ 1.109258] pinctrl-single 44e10800.pinmux: pin PIN56 already requested by panel; cannot claim for ocp:P8_27_pinmux

... (I have added crude support for the 7" LCD display supported by the GoEmbed platform, hence these warnings)

[ 2.143438] pinctrl-single 44e10800.pinmux: pin-103 (ocp:P9_28_pinmux) status -22 [ 2.153645] pinctrl-single 44e10800.pinmux: could not request pin 103 (PIN103) from group pinmux_P9_28_default_pin on device pinctrl-single [ 2.196450] pinctrl-single 44e10800.pinmux: pin PIN108 already requested by panel; cannot claim for ocp:A15_pinmux [ 2.209797] pinctrl-single 44e10800.pinmux: pin-108 (ocp:A15_pinmux) status -22 [ 2.219800] pinctrl-single 44e10800.pinmux: could not request pin 108 (PIN108) from group pinmux_A15_default_pin on device pinctrl-single dmesg | grep gpio-of-helper [ 0.971598] gpio-of-helper ocp:cape-universal: ready lsusb Bus 001 Device 005: ID 413c:2002 Dell Computer Corp. SK-8125 Keyboard Bus 001 Device 004: ID 413c:1002 Dell Computer Corp. Keyboard Hub Bus 001 Device 003: ID 0461:4d22 Primax Electronics, Ltd Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub END

Note: I am still using the original MLO/U-boot provided by GoEmbed as I cannot get it to boot when using the u-boot compiled for "am335x_evm_config" - even after changing the V_OSCK to 25MHz as used by goembed.

Thank you for your help