Skip to content

Instantly share code, notes, and snippets.

@jadonk
Last active April 22, 2022 14:03
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jadonk/809337ed8435cdc25f99887746550ed2 to your computer and use it in GitHub Desktop.
Save jadonk/809337ed8435cdc25f99887746550ed2 to your computer and use it in GitHub Desktop.

Modify existing image to run on PocketBeagle

From a BeagleBone host, run make_bootable_from_beagle.sh to modify a target microSD card at /dev/mmcblk0.

Build u-boot (using Ubuntu)

Last tested u-boot commit: https://github.com/jadonk/u-boot-private/commit/c17f8b9c8987c31d875afe353ae4af97e6a8b52f

Public copy of u-boot code: https://github.com/jadonk/u-boot/tree/pocketbeagle-tester

Check out the mainline and apply uboot.patch.

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make am335x_pocketbeagle_defconfig
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make
cp MLO u-boot.img ~/beagleboard.org/static/pb/

Run the u-boot based tester to program the EEPROM (not required on any shipped boards)

Update kernel and Node.JS on your test host BeagleBone

curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - ; \
echo 'deb https://deb.nodesource.com/node_6.x jessie main' > /etc/apt/sources.list.d/nodesource.list ; \
echo 'deb-src https://deb.nodesource.com/node_6.x jessie main' >> /etc/apt/sources.list.d/nodesource.list
apt-get remove -y bonescript
cd /opt/scripts/tools
git pull
./update_kernel.sh
apt-get install -y nodejs bonescript
curl https://gist.githubusercontent.com/jadonk/809337ed8435cdc25f99887746550ed2/raw/1c64f426f3bc018996e458313647c1ab9ee0d0b5/serial.txt > /var/lib/cloud9/serial.txt
curl https://gist.githubusercontent.com/jadonk/809337ed8435cdc25f99887746550ed2/raw/1c64f426f3bc018996e458313647c1ab9ee0d0b5/pb-tester.js > /var/lib/cloud9/autorun/pb-tester.js
connmanctl config ethernet_deadbeaf0000_cable --ipv4 manual 192.168.1.1 255.255.255.0 192.168.1.1

Write u-boot to microSD (using BeagleBone)

sudo echo "Cacheing root password"
echo ',,c;' | sudo sfdisk /dev/mmcblk0
sudo mkfs.vfat /dev/mmcblk0p1
curl https://gist.githubusercontent.com/jadonk/809337ed8435cdc25f99887746550ed2/raw/1c64f426f3bc018996e458313647c1ab9ee0d0b5/write_sd_from_beagle.sh | sh -

Test using BeagleBone

  1. On unit-under-test (UUT, PocketBeagle), insert microSD card
  2. Power and connect to UUT using host (BeagleBone) USB host port

On future runs, setup.sh won't need to be executed. For connman to work the first time, the board must be recently connected.

Make sure to update /var/lib/cloud9/serial.txt and reboot!

/*
* Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
/dts-v1/;
#include "am33xx.dtsi"
/ {
model = "TI AM335x PocketBeagle";
compatible = "ti,am335x-pocketbeagle", "ti,am335x-bone", "ti,am33xx";
};
/ {
cpus {
cpu@0 {
cpu0-supply = <&dcdc2_reg>;
};
};
memory {
device_type = "memory";
reg = <0x80000000 0x20000000>; /* 512 MB */
};
leds {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&user_leds_default>;
pinctrl-1 = <&user_leds_sleep>;
compatible = "gpio-leds";
led@2 {
label = "beaglebone:green:usr0";
gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "heartbeat";
default-state = "off";
};
led@3 {
label = "beaglebone:green:usr1";
gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "mmc0";
default-state = "off";
};
led@4 {
label = "beaglebone:green:usr2";
gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "cpu0";
default-state = "off";
};
led@5 {
label = "beaglebone:green:usr3";
gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "mmc1";
default-state = "off";
};
};
vmmcsd_fixed: fixedregulator@0 {
compatible = "regulator-fixed";
regulator-name = "vmmcsd_fixed";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
};
&am33xx_pinmux {
user_leds_default: user_leds_default {
pinctrl-single,pins = <
AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */
AM33XX_IOPAD(0x858, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a6.gpio1_22 */
AM33XX_IOPAD(0x85c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a7.gpio1_23 */
AM33XX_IOPAD(0x860, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a8.gpio1_24 */
>;
};
user_leds_sleep: user_leds_sleep {
pinctrl-single,pins = <
AM33XX_IOPAD(0x854, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */
AM33XX_IOPAD(0x858, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a6.gpio1_22 */
AM33XX_IOPAD(0x85c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a7.gpio1_23 */
AM33XX_IOPAD(0x860, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a8.gpio1_24 */
>;
};
i2c0_pins: pinmux_i2c0_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */
AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */
>;
};
mmc0_pins: pinmux_mmc0_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* GPIO0_6 */
>;
};
/* P1_01 VIN-AC */
/* P1_02 (ZCZ ball R5 ) lcd_hsync (board-level pull-down via AIN6) */
P1_02_default_pin: pinmux_P1_02_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x8e4, PIN_INPUT | MUX_MODE7) >; }; /* lcd_hsync.gpio2_23 */
P1_02_gpio_pin: pinmux_P1_02_gpio_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x8e4, PIN_INPUT | MUX_MODE7) >; }; /* lcd_hsync.gpio2_23 */
P1_02_pruin_pin: pinmux_P1_02_pruin_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x8e4, PIN_INPUT | MUX_MODE6) >; }; /* lcd_hsync.pru1_in9 */
P1_02_pruout_pin: pinmux_P1_02_pruout_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE5) >; }; /* lcd_hsync.pru1_out9 */
/* P1_03 (ZCZ ball F15) usb1_vbus_out */
/* P1_04 (ZCZ ball R6) lcd_ac_bias_en */
P1_04_default_pin: pinmux_P1_04_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x8ec, PIN_INPUT | MUX_MODE7) >; }; /* lcd_ac_bias_en.gpio2_25 */
P1_04_pruin_pin: pinmux_P1_04_pruin_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x8ec, PIN_INPUT | MUX_MODE6) >; }; /* lcd_ac_bias_en.pru1_in11 */
P1_04_pruout_pin: pinmux_P1_04_pruout_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x8ec, PIN_INPUT | MUX_MODE5) >; }; /* lcd_ac_bias_en.pru1_out11 */
/* P1_05 (ZCZ ball T18) usb1_vbus_in */
/* P1_06 (ZCZ ball A16) spi0_cs0 */
P1_06_default_pin: pinmux_P1_06_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x95c, PIN_INPUT_PULLUP | MUX_MODE0) >; }; /* spi0_cs0.spi0_cs0 */
P1_06_spi_pin: pinmux_P1_06_spi_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x95c, PIN_INPUT_PULLUP | MUX_MODE0) >; }; /* spi0_cs0.spi0_cs0 */
P1_06_gpio_pin: pinmux_P1_06_gpio_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x95c, PIN_INPUT | MUX_MODE7) >; }; /* spi0_cs0.gpio0_5 */
/* P1_07 VIN-USB */
/* P1_08 (ZCZ ball A17) spi0_clk */
P1_08_default_pin: pinmux_P1_08_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x950, PIN_INPUT | MUX_MODE0) >; }; /* spi0_clk.spi0_clk */
P1_08_spi_pin: pinmux_P1_08_spi_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x950, PIN_INPUT | MUX_MODE0) >; }; /* spi0_clk.spi0_clk */
P1_08_gpio_pin: pinmux_P1_08_gpio_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x950, PIN_INPUT | MUX_MODE7) >; }; /* spi0_clk.gpio0_2 */
P1_08_pwm_pin: pinmux_P1_08_pwm_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x950, PIN_OUTPUT | MUX_MODE3) >; }; /* spi0_clk.pwm0_outA */
P1_08_uart_pin: pinmux_P1_08_uart_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x950, PIN_INPUT | MUX_MODE1) >; }; /* spi0_clk.uart2_rx */
/* P1_09 (ZCZ ball R18) USB1-DN */
/* P1_10 (ZCZ ball B17) spi0_d0 */
P1_10_default_pin: pinmux_P1_10_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x954, PIN_INPUT | MUX_MODE0) >; }; /* spi0_d0.spi0_d0 */
P1_10_spi_pin: pinmux_P1_10_spi_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x954, PIN_INPUT | MUX_MODE0) >; }; /* spi0_d0.spi0_d0 */
P1_10_gpio_pin: pinmux_P1_10_gpio_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x954, PIN_INPUT | MUX_MODE7) >; }; /* spi0_d0.gpio0_3 */
P1_10_pwm_pin: pinmux_P1_10_pwm_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x954, PIN_OUTPUT | MUX_MODE3) >; }; /* spi0_d0.pwm0_outB */
P1_10_uart_pin: pinmux_P1_10_uart_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x954, PIN_OUTPUT | MUX_MODE1) >; }; /* spi0_d0.uart2_tx */
/* P1_11 (ZCZ ball R17) USB1-DP */
/* P1_12 (ZCZ ball B16) spi0_d1 */
P1_12_default_pin: pinmux_P1_12_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x958, PIN_INPUT | MUX_MODE0) >; }; /* spi0_d1.spi0_d1 */
P1_12_spi_pin: pinmux_P1_12_spi_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x958, PIN_INPUT | MUX_MODE0) >; }; /* spi0_d1.spi0_d1 */
P1_12_gpio_pin: pinmux_P1_12_gpio_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x958, PIN_INPUT | MUX_MODE7) >; }; /* spi0_d1.gpio0_4 */
P1_12_pwm_pin: pinmux_P1_12_pwm_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x958, PIN_INPUT | MUX_MODE3) >; }; /* spi0_d1.pwm0_tripzone */
/* P1_13 (ZCZ ball P17) USB1-ID */
/* P1_14 VOUT-3.3V */
/* P1_15 GND */
/* P1_16 GND */
/* P1_17 (ZCZ ball A9) VREFN */
/* P1_18 (ZCZ ball B9) VREFP */
/* P1_19 (ZCZ ball B6) AIN0 */
/* P1_20 (ZCZ ball D14) dma_event1 */
P1_20_default_pin: pinmux_P1_20_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x9b4, PIN_INPUT | MUX_MODE7) >; }; /* dma_event1.gpio0_20 */
P1_20_pruin_pin: pinmux_P1_20_pruin_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x9b4, PIN_INPUT | MUX_MODE5) >; }; /* dma_event1.pru0_in16 */
P1_20_gpio_pin: pinmux_P1_20_gpio_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x9b4, PIN_INPUT | MUX_MODE7) >; }; /* dma_event1.gpio0_20 */
P1_20_gpio_pu_pin: pinmux_P1_20_gpio_pu_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x9b4, PIN_INPUT_PULLUP | MUX_MODE7) >; }; /* dma_event1.gpio0_20 */
P1_20_gpio_pd_pin: pinmux_P1_20_gpio_pd_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x9b4, PIN_INPUT_PULLDOWN | MUX_MODE7) >; }; /* dma_event1.gpio0_20 */
/* P1_21 (ZCZ ball C7) AIN1 */
/* P1_22 GND */
/* P1_23 (ZCZ ball B7) AIN2 */
/* P1_24 VOUT-5V */
/* P1_25 (ZCZ ball A7) AIN3 */
/* P1_26 (ZCZ ball D18) uart1_ctsn */
P1_26_default_pin: pinmux_P1_26_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x978, PIN_INPUT_PULLUP | MUX_MODE3) >; }; /* uart1_ctsn.i2c2_sda */
P1_26_i2c_pin: pinmux_P1_26_i2c_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x978, PIN_INPUT_PULLUP | MUX_MODE3) >; }; /* uart1_ctsn.i2c2_sda */
/* P1_27 (ZCZ ball C8) AIN4 */
/* P1_28 (ZCZ ball D17) uart1_rtsn */
P1_28_default_pin: pinmux_P1_28_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x97c, PIN_INPUT_PULLUP | MUX_MODE3) >; }; /* uart1_rtsn.i2c2_scl */
P1_28_i2c_pin: pinmux_P1_28_i2c_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x97c, PIN_INPUT_PULLUP | MUX_MODE3) >; }; /* uart1_rtsn.i2c2_scl */
/* P1_29 (ZCZ ball A14) mcasp0_ahclkx */
P1_29_default_pin: pinmux_P1_29_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x9ac, PIN_INPUT | MUX_MODE6) >; }; /* mcasp0_ahclkx.pru0_in7 */
P1_29_pruin_pin: pinmux_P1_29_pruin_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x9ac, PIN_INPUT | MUX_MODE6) >; }; /* mcasp0_ahclkx.pru0_in7 */
/* P1_30 (ZCZ ball E16) uart0_txd */
P1_30_default_pin: pinmux_P1_30_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x974, PIN_OUTPUT | MUX_MODE0) >; }; /* uart0_txd.uart0_txd */
P1_30_uart_pin: pinmux_P1_30_uart_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x974, PIN_OUTPUT | MUX_MODE0) >; }; /* uart0_txd.uart0_txd */
/* P1_31 (ZCZ ball B12) mcasp0_aclkr */
P1_31_default_pin: pinmux_P1_31_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x9a0, PIN_INPUT | MUX_MODE6) >; }; /* mcasp0_aclkr.pru0_in4 */
P1_31_pruin_pin: pinmux_P1_31_pruin_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x9a0, PIN_INPUT | MUX_MODE6) >; }; /* mcasp0_aclkr.pru0_in4 */
/* P1_32 (ZCZ ball E15) uart0_rxd */
P1_32_default_pin: pinmux_P1_32_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x970, PIN_INPUT | MUX_MODE0) >; }; /* uart0_rxd.uart0_rxd */
P1_32_uart_pin: pinmux_P1_32_uart_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x970, PIN_INPUT | MUX_MODE0) >; }; /* uart0_rxd.uart0_rxd */
/* P1_33 (ZCZ ball B13) mcasp0_fsx */
P1_33_default_pin: pinmux_P1_33_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x994, PIN_INPUT | MUX_MODE6) >; }; /* mcasp0_fsx.pru0_in1 */
P1_33_pruin_pin: pinmux_P1_33_pruin_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x994, PIN_INPUT | MUX_MODE6) >; }; /* mcasp0_fsx.pru0_in1 */
/* P1_34 (ZCZ ball T11) gpmc_ad10 */
P1_34_default_pin: pinmux_P1_34_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x828, PIN_INPUT | MUX_MODE7) >; }; /* gpmc_ad10.gpio0_26 */
P1_34_gpio_pin: pinmux_P1_34_gpio_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x828, PIN_INPUT | MUX_MODE7) >; }; /* gpmc_ad10.gpio0_26 */
P1_34_gpio_pu_pin: pinmux_P1_34_gpio_pu_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x828, PIN_INPUT_PULLUP | MUX_MODE7) >; }; /* gpmc_ad10.gpio0_26 */
P1_34_gpio_pd_pin: pinmux_P1_34_gpio_pd_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x828, PIN_INPUT_PULLDOWN | MUX_MODE7) >; }; /* gpmc_ad10.gpio0_26 */
/* P1_35 (ZCZ ball V5) lcd_pclk */
P1_35_default_pin: pinmux_P1_35_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x8e8, PIN_INPUT | MUX_MODE6) >; }; /* lcd_pclk.pru1_in10 */
P1_35_pruin_pin: pinmux_P1_35_pruin_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x8e8, PIN_INPUT | MUX_MODE6) >; }; /* lcd_pclk.pru1_in10 */
/* P1_36 (ZCZ ball A13) mcasp0_aclkx */
P1_36_default_pin: pinmux_P1_36_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x990, PIN_OUTPUT | MUX_MODE1) >; }; /* mcaps0_aclkx.ehrpwm0A */
P1_36_pwm_pin: pinmux_P1_36_pwm_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x990, PIN_OUTPUT | MUX_MODE1) >; }; /* mcaps0_aclkx.ehrpwm0A */
/* P2_01 (ZCZ ball U14) gpmc_a2 */
P2_01_default_pin: pinmux_P2_01_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x848, PIN_OUTPUT | MUX_MODE6) >; }; /* gpmc_a2.ehrpwm1A */
P2_01_pwm_pin: pinmux_P2_01_pwm_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x848, PIN_OUTPUT | MUX_MODE6) >; }; /* gpmc_a2.ehrpwm1A */
/* P2_02 (ZCZ ball V17) gpmc_a11 */
P2_02_default_pin: pinmux_P2_02_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x86c, PIN_INPUT | MUX_MODE7) >; }; /* gpmc_a11.gpio1_27 */
P2_02_gpio_pu_pin: pinmux_P2_02_gpio_pu_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x86c, PIN_INPUT_PULLUP | MUX_MODE7) >; }; /* gpmc_a11.gpio1_27 */
/* P2_03 (ZCZ ball T10) gpmc_d9 */
P2_03_default_pin: pinmux_P2_03_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x824, PIN_INPUT | MUX_MODE7) >; }; /* gpmc_d9.gpio0_23 */
/* P2_04 (ZCZ ball T16) gpmc_a10 */
P2_04_default_pin: pinmux_P2_04_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x868, PIN_INPUT | MUX_MODE7) >; }; /* gpmc_a10.gpio1_26 */
P2_04_gpio_pu_pin: pinmux_P2_04_gpio_pu_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x868, PIN_INPUT_PULLUP | MUX_MODE7) >; }; /* gpmc_a10.gpio1_26 */
/* P2_05 (ZCZ ball T17) gpmc_wait0 */
P2_05_default_pin: pinmux_P2_05_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x870, PIN_INPUT | MUX_MODE6) >; }; /* gpmc_wait0.uart4_rx */
/* P2_06 (ZCZ ball U16) gpmc_a9 */
P2_06_default_pin: pinmux_P2_06_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x864, PIN_INPUT | MUX_MODE7) >; }; /* gpmc_a9.gpio1_25 */
P2_06_gpio_pu_pin: pinmux_P2_06_gpio_pu_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x864, PIN_INPUT_PULLUP | MUX_MODE7) >; }; /* gpmc_a9.gpio1_25 */
/* P2_07 (ZCZ ball U17) gpmc_wp */
P2_07_default_pin: pinmux_P2_07_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x874, PIN_OUTPUT | MUX_MODE6) >; }; /* gpmc_wp.uart4_tx */
/* P2_08 (ZCZ ball U18) gpmc_be1 */
P2_08_default_pin: pinmux_P2_08_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x878, PIN_INPUT | MUX_MODE7) >; }; /* gpmc_be1.gpio1_28 */
P2_08_gpio_pu_pin: pinmux_P2_08_gpio_pu_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x878, PIN_INPUT_PULLUP | MUX_MODE7) >; }; /* gpmc_be1.gpio1_28 */
/* P2_09 (ZCZ ball D15) uart1_tx */
P2_09_default_pin: pinmux_P2_09_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x984, PIN_INPUT_PULLUP | MUX_MODE3) >; }; /* uart1_tx.i2c1_scl */
/* P2_10 (ZCZ ball R14) gpmc_a4 */
P2_10_default_pin: pinmux_P2_10_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x850, PIN_INPUT | MUX_MODE7) >; }; /* gpmc_a4.gpio1_20 */
/* P2_11 (ZCZ ball D16) uart1_rx */
P2_11_default_pin: pinmux_P2_11_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE3) >; }; /* uart1_rx.i2c1_sda */
/* P2_12 POWER_BUTTON */
/* P2_13 VOUT-5V */
/* P2_14 BAT-VIN */
/* P2_15 GND */
/* P2_16 BAT-TEMP */
/* P2_17 (ZCZ ball V12) gpmc_clk */
P2_17_default_pin: pinmux_P2_17_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x88c, PIN_INPUT | MUX_MODE7) >; }; /* gpmc_clk.gpio2_1 */
/* P2_18 (ZCZ ball U13) gpmc_ad15 */
P2_18_default_pin: pinmux_P2_18_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x83c, PIN_INPUT | MUX_MODE7) >; }; /* gpmc_ad15.gpio1_15 */
P2_18_gpio_pu_pin: pinmux_P2_18_gpio_pu_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x83c, PIN_INPUT_PULLUP | MUX_MODE7) >; }; /* gpmc_ad15.gpio1_15 */
/* P2_19 (ZCZ ball U12) gpmc_ad11 */
P2_19_default_pin: pinmux_P2_19_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x82c, PIN_INPUT | MUX_MODE7) >; }; /* gpmc_ad11.gpio0_27 */
/* P2_20 (ZCZ ball T13) gpmc_csn3 */
P2_20_default_pin: pinmux_P2_20_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x888, PIN_INPUT | MUX_MODE7) >; }; /* gpmc_csn3.gpio2_0 */
P2_20_gpio_pu_pin: pinmux_P2_20_gpio_pu_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x888, PIN_INPUT_PULLUP | MUX_MODE7) >; }; /* gpmc_csn3.gpio2_0 */
/* P2_21 GND */
/* P2_22 (ZCZ ball V13) gpmc_ad14 */
P2_22_default_pin: pinmux_P2_22_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x838, PIN_INPUT | MUX_MODE7) >; }; /* gpmc_ad14.gpio1_14 */
P2_22_gpio_pu_pin: pinmux_P2_22_gpio_pu_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x838, PIN_INPUT_PULLUP | MUX_MODE7) >; }; /* gpmc_ad14.gpio1_14 */
/* P2_23 VOUT-3.3V */
/* P2_24 (ZCZ ball R13) gpmc_a0 */
P2_24_default_pin: pinmux_P2_24_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x840, PIN_INPUT | MUX_MODE7) >; }; /* gpmc_a0.gpio1_16 */
P2_24_gpio_pu_pin: pinmux_P2_24_gpio_pu_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x840, PIN_INPUT_PULLUP | MUX_MODE7) >; }; /* gpmc_a0.gpio1_16 */
/* P2_25 (ZCZ ball E17) uart0_rtsn */
P2_25_default_pin: pinmux_P2_25_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x96c, PIN_INPUT | MUX_MODE4) >; }; /* uart0_rtsn.spi1_d1 (MOSI) */
/* P2_26 RESET# */
/* P2_27 (ZCZ ball E18) uart0_ctsn */
P2_27_default_pin: pinmux_P2_27_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x968, PIN_INPUT | MUX_MODE4) >; }; /* uart0_ctsn.spi1_d0 (MISO) */
/* P2_28 (ZCZ ball D13) mcasp0_axr1 */
P2_28_default_pin: pinmux_P2_28_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x9a8, PIN_INPUT | MUX_MODE6) >; }; /* mcasp0_axr1.pru0_in6 */
/* P2_29 (ZCZ ball C18) eCAP0_in_PWM0_out */
P2_29_default_pin: pinmux_P2_29_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x964, PIN_INPUT | MUX_MODE4) >; }; /* eCAP0_in_PWM0_out.spi1_sclk */
/* P2_30 (ZCZ ball C12) mcasp0_ahclkr */
P2_30_default_pin: pinmux_P2_30_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x99c, PIN_INPUT | MUX_MODE6) >; }; /* mcasp0_ahclkr.pru0_in3 */
/* P2_31 (ZCZ ball A15) xdma_event_intr0 */
P2_31_default_pin: pinmux_P2_31_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x9b0, PIN_INPUT | MUX_MODE4) >; }; /* xdma_event_intr0.spi1_cs1 */
/* P2_32 (ZCZ ball D12) mcasp0_axr0 */
P2_32_default_pin: pinmux_P2_32_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x998, PIN_INPUT | MUX_MODE6) >; }; /* mcasp0_axr0.pru0_in2 */
/* P2_33 (ZCZ ball R12) gpmc_ad13 */
P2_33_default_pin: pinmux_P2_33_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x834, PIN_INPUT | MUX_MODE7) >; }; /* gpmc_ad13.gpio1_13 */
/* P2_34 (ZCZ ball C13) mcasp0_fsr */
P2_34_default_pin: pinmux_P2_34_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x9a4, PIN_INPUT | MUX_MODE6) >; }; /* mcasp0_fsr.pru0_in5 */
/* P2_35 (ZCZ ball U5 ) lcd_vsync */
P2_35_default_pin: pinmux_P2_35_default_pin { pinctrl-single,pins = <
AM33XX_IOPAD(0x8e0, PIN_INPUT | MUX_MODE7) >; }; /* lcd_vsync.gpio2_22 */
/* P2_36 (ZCZ ball C9) AIN7 */
};
&uart0 {
status = "okay";
};
#include "am335x-peripheral-ttyS4.dtsi"
&usb {
status = "okay";
};
&usb_ctrl_mod {
status = "okay";
};
&usb0_phy {
status = "okay";
};
&usb0 {
status = "okay";
dr_mode = "otg";
};
&usb1_phy {
status = "okay";
};
&usb1 {
status = "okay";
dr_mode = "host";
};
&cppi41dma {
status = "okay";
};
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins>;
status = "okay";
clock-frequency = <400000>;
tps: tps@24 {
reg = <0x24>;
};
baseboard_eeprom: baseboard_eeprom@50 {
compatible = "at,24c256";
reg = <0x50>;
#address-cells = <1>;
#size-cells = <1>;
baseboard_data: baseboard_data@0 {
reg = <0 0x100>;
};
};
};
&i2c1 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
clock-frequency = <400000>;
};
&i2c2 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
clock-frequency = <400000>;
};
/include/ "tps65217.dtsi"
&tps {
/*
* Configure pmic to enter OFF-state instead of SLEEP-state ("RTC-only
* mode") at poweroff. Most BeagleBone versions do not support RTC-only
* mode and risk hardware damage if this mode is entered.
*
* For details, see linux-omap mailing list May 2015 thread
* [PATCH] ARM: dts: am335x-bone* enable pmic-shutdown-controller
* In particular, messages:
* http://www.spinics.net/lists/linux-omap/msg118585.html
* http://www.spinics.net/lists/linux-omap/msg118615.html
*
* You can override this later with
* &tps { /delete-property/ ti,pmic-shutdown-controller; }
* if you want to use RTC-only mode and made sure you are not affected
* by the hardware problems. (Tip: double-check by performing a current
* measurement after shutdown: it should be less than 1 mA.)
*/
ti,pmic-shutdown-controller;
interrupt-parent = <&intc>;
interrupts = <7>; /* NNMI */
regulators {
dcdc1_reg: regulator@0 {
regulator-name = "vdds_dpr";
regulator-always-on;
};
dcdc2_reg: regulator@1 {
/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
regulator-name = "vdd_mpu";
regulator-min-microvolt = <925000>;
regulator-max-microvolt = <1351500>;
regulator-boot-on;
regulator-always-on;
};
dcdc3_reg: regulator@2 {
/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
regulator-name = "vdd_core";
regulator-min-microvolt = <925000>;
regulator-max-microvolt = <1150000>;
regulator-boot-on;
regulator-always-on;
};
ldo1_reg: regulator@3 {
regulator-name = "vio,vrtc,vdds";
regulator-always-on;
};
ldo2_reg: regulator@4 {
regulator-name = "vdd_3v3aux";
regulator-always-on;
};
ldo3_reg: regulator@5 {
regulator-name = "vdd_1v8";
regulator-always-on;
};
ldo4_reg: regulator@6 {
regulator-name = "vdd_3v3a";
regulator-always-on;
};
};
};
&mmc1 {
status = "okay";
bus-width = <0x4>;
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins>;
cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
vmmc-supply = <&vmmcsd_fixed>;
};
&aes {
status = "okay";
};
&sham {
status = "okay";
};
&wkup_m3_ipc {
ti,scale-data-fw = "am335x-bone-scale-data.bin";
};
&rtc {
clocks = <&clk_32768_ck>, <&clkdiv32k_ick>;
clock-names = "ext-clk", "int-clk";
system-power-controller;
};
&sgx {
status = "okay";
};
&ldo3_reg {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
&cpu0_opp_table {
opp50@300000000 {
status = "disabled";
};
oppnitro@1000000000 {
opp-supported-hw = <0x06 0x0100>;
};
};
&tscadc {
status = "okay";
adc {
ti,adc-channels = <0 1 2 3 4 5 6 7>;
ti,chan-step-avg = <0x16 0x16 0x16 0x16 0x16 0x16 0x16 0x16>;
ti,chan-step-opendelay = <0x98 0x98 0x98 0x98 0x98 0x98 0x98 0x98>;
ti,chan-step-sampledelay = <0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
};
};
#include "am335x-peripheral-spi0.dtsi"
&spi1 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
channel@0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "spidev";
reg = <0>;
spi-max-frequency = <24000000>;
};
channel@1 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "spidev";
reg = <1>;
spi-max-frequency = <24000000>;
};
};
&ocp {
/* P1_01 VIN-AC */
/* P1_02 (ZCZ ball R5 ) lcd_hsync (board-level pull-down) */
P1_02_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "pruin", "pruout", "gpio";
pinctrl-0 = <&P1_02_default_pin>;
pinctrl-1 = <&P1_02_pruin_pin>;
pinctrl-2 = <&P1_02_pruout_pin>;
pinctrl-3 = <&P1_02_gpio_pin>;
};
/* P1_03 (ZCZ ball F15) usb1_vbus_out */
/* P1_04 (ZCZ ball R6) lcd_ac_bias_en */
P1_04_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P1_04_default_pin>;
};
/* P1_05 (ZCZ ball T18) usb1_vbus_in */
/* P1_06 (ZCZ ball A16) spi0_cs0 */
P1_06_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "spi", "gpio";
pinctrl-0 = <&P1_06_default_pin>;
pinctrl-1 = <&P1_06_spi_pin>;
pinctrl-2 = <&P1_06_gpio_pin>;
};
/* P1_07 VIN-USB */
/* P1_08 (ZCZ ball A17) spi0_clk */
P1_08_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "spi", "gpio", "pwm", "uart";
pinctrl-0 = <&P1_08_default_pin>;
pinctrl-1 = <&P1_08_spi_pin>;
pinctrl-2 = <&P1_08_gpio_pin>;
pinctrl-3 = <&P1_08_pwm_pin>;
pinctrl-4 = <&P1_08_uart_pin>;
};
/* P1_09 (ZCZ ball R18) USB1-DN */
/* P1_10 (ZCZ ball B17) spi0_d0 */
P1_10_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "spi", "gpio", "pwm", "uart";
pinctrl-0 = <&P1_10_default_pin>;
pinctrl-1 = <&P1_10_spi_pin>;
pinctrl-2 = <&P1_10_gpio_pin>;
pinctrl-3 = <&P1_10_pwm_pin>;
pinctrl-4 = <&P1_10_uart_pin>;
};
/* P1_11 (ZCZ ball R17) USB1-DP */
/* P1_12 (ZCZ ball B16) spi0_d1 */
P1_12_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "spi", "gpio", "pwm";
pinctrl-0 = <&P1_12_default_pin>;
pinctrl-1 = <&P1_12_spi_pin>;
pinctrl-2 = <&P1_12_gpio_pin>;
pinctrl-3 = <&P1_12_pwm_pin>;
};
/* P1_13 (ZCZ ball P17) USB1-ID */
/* P1_14 VOUT-3.3V */
/* P1_15 GND */
/* P1_16 GND */
/* P1_17 (ZCZ ball A9) VREFN */
/* P1_18 (ZCZ ball B9) VREFP */
/* P1_19 (ZCZ ball B6) AIN0 */
/* P1_20 (ZCZ ball D14) dma_event1 */
P1_20_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "pruin", "gpio", "gpio_pu", "gpio_pd";
pinctrl-0 = <&P1_20_default_pin>;
pinctrl-1 = <&P1_20_pruin_pin>;
pinctrl-2 = <&P1_20_gpio_pin>;
pinctrl-3 = <&P1_20_gpio_pu_pin>;
pinctrl-4 = <&P1_20_gpio_pd_pin>;
};
/* P1_21 (ZCZ ball C7) AIN1 */
/* P1_22 GND */
/* P1_23 (ZCZ ball B7) AIN2 */
/* P1_24 VOUT-5V */
/* P1_25 (ZCZ ball A7) AIN3 */
/* P1_26 (ZCZ ball D18) uart1_ctsn */
P1_26_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P1_26_default_pin>;
};
/* P1_27 (ZCZ ball C8) AIN4 */
/* P1_28 (ZCZ ball D17) uart1_rtsn */
P1_28_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P1_28_default_pin>;
};
/* P1_29 (ZCZ ball A14) mcasp0_ahclkx */
P1_29_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P1_29_default_pin>;
};
/* P1_30 (ZCZ ball E16) uart0_txd */
P1_30_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P1_30_default_pin>;
};
/* P1_31 (ZCZ ball B12) mcasp0_aclkr */
P1_31_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P1_31_default_pin>;
};
/* P1_32 (ZCZ ball E15) uart0_rxd */
P1_32_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P1_32_default_pin>;
};
/* P1_33 (ZCZ ball B13) mcasp0_fsx */
P1_33_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P1_33_default_pin>;
};
/* P1_34 (ZCZ ball T11) gpmc_ad10 */
P1_34_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P1_34_default_pin>;
};
/* P1_35 (ZCZ ball V5) lcd_pclk */
P1_35_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P1_35_default_pin>;
};
/* P1_36 (ZCZ ball A13) mcasp0_aclkx */
P1_36_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P1_36_default_pin>;
};
/* P2_01 (ZCZ ball U14) gpmc_a2 */
P2_01_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_01_default_pin>;
};
/* P2_02 (ZCZ ball V17) gpmc_a11 */
P2_02_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio_pu";
pinctrl-0 = <&P2_02_default_pin>;
pinctrl-1 = <&P2_02_gpio_pu_pin>;
};
/* P2_03 (ZCZ ball T10) gpmc_d9 */
P2_03_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_03_default_pin>;
};
/* P2_04 (ZCZ ball T16) gpmc_a10 */
P2_04_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio_pu";
pinctrl-0 = <&P2_04_default_pin>;
pinctrl-1 = <&P2_04_gpio_pu_pin>;
};
/* P2_05 (ZCZ ball T17) gpmc_wait0 */
P2_05_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_05_default_pin>;
};
/* P2_06 (ZCZ ball U16) gpmc_a9 */
P2_06_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio_pu";
pinctrl-0 = <&P2_06_default_pin>;
pinctrl-1 = <&P2_06_gpio_pu_pin>;
};
/* P2_07 (ZCZ ball U17) gpmc_wp */
P2_07_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_07_default_pin>;
};
/* P2_08 (ZCZ ball U18) gpmc_be1 */
P2_08_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio_pu";
pinctrl-0 = <&P2_08_default_pin>;
pinctrl-1 = <&P2_08_gpio_pu_pin>;
};
/* P2_09 (ZCZ ball D15) uart1_tx */
P2_09_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_09_default_pin>;
};
/* P2_10 (ZCZ ball R14) gpmc_a4 */
P2_10_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_10_default_pin>;
};
/* P2_11 (ZCZ ball D16) uart1_rx */
P2_11_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_11_default_pin>;
};
/* P2_12 POWER_BUTTON */
/* P2_13 VOUT-5V */
/* P2_14 BAT-VIN */
/* P2_15 GND */
/* P2_16 BAT-TEMP */
/* P2_17 (ZCZ ball V12) gpmc_clk */
P2_17_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_17_default_pin>;
};
/* P2_18 (ZCZ ball U13) gpmc_ad15 */
P2_18_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio_pu";
pinctrl-0 = <&P2_18_default_pin>;
pinctrl-1 = <&P2_18_gpio_pu_pin>;
};
/* P2_19 (ZCZ ball U12) gpmc_ad11 */
P2_19_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_19_default_pin>;
};
/* P2_20 (ZCZ ball T13) gpmc_csn3 */
P2_20_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio_pu";
pinctrl-0 = <&P2_20_default_pin>;
pinctrl-1 = <&P2_20_gpio_pu_pin>;
};
/* P2_21 GND */
/* P2_22 (ZCZ ball V13) gpmc_ad14 */
P2_22_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio_pu";
pinctrl-0 = <&P2_22_default_pin>;
pinctrl-1 = <&P2_22_gpio_pu_pin>;
};
/* P2_23 VOUT-3.3V */
/* P2_24 (ZCZ ball R13) gpmc_a0 */
P2_24_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio_pu";
pinctrl-0 = <&P2_24_default_pin>;
pinctrl-1 = <&P2_24_gpio_pu_pin>;
};
/* P2_25 (ZCZ ball E17) uart0_rtsn */
P2_25_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_25_default_pin>;
};
/* P2_26 RESET# */
/* P2_27 (ZCZ ball E18) uart0_ctsn */
P2_27_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_27_default_pin>;
};
/* P2_28 (ZCZ ball D13) mcasp0_axr1 */
P2_28_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_28_default_pin>;
};
/* P2_29 (ZCZ ball C18) eCAP0_in_PWM0_out */
P2_29_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_29_default_pin>;
};
/* P2_30 (ZCZ ball C12) mcasp0_ahclkr */
/* P2_31 (ZCZ ball A15) xdma_event_intr0 */
P2_31_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_31_default_pin>;
};
/* P2_32 (ZCZ ball D12) mcasp0_axr0 */
P2_32_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_32_default_pin>;
};
/* P2_33 (ZCZ ball R12) gpmc_ad13 */
P2_33_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_33_default_pin>;
};
/* P2_34 (ZCZ ball C13) mcasp0_fsr */
P2_34_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_34_default_pin>;
};
/* P2_35 (ZCZ ball U5 ) lcd_vsync */
P2_35_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&P2_35_default_pin>;
};
};
#!/bin/sh
rm MLO u-boot.img am335x-pocketbeagle.dtb
wget https://beagleboard.org/static/pb/MLO
wget https://beagleboard.org/static/pb/u-boot.img
wget https://beagleboard.org/static/pb/am335x-pocketbeagle.dtb
dd if=MLO of=/dev/mmcblk0 bs=512 seek=256 count=256
dd if=u-boot.img of=/dev/mmcblk0 bs=512 seek=768 count=2048
sync
mount /dev/mmcblk0p1 /mnt
cp am335x-pocketbeagle.dtb /mnt/boot/dtbs/*/
sed -i -e "s/TI_AM335x_PocketBone/TI_AM335x_PocketBeagle/" /mnt/opt/scripts/boot/am335x_evm.sh
umount /mnt
var dgram = require('dgram');
var fs = require('fs');
var os = require('os');
var stream = require('stream');
var uut = ubootNC();
var tester = ubootTester();
uut.pipe(tester);
tester.pipe(uut);
//tester.pipe(process.stdout);
//tester.passthrough.pipe(process.stdout);
//process.stdin.pipe(tester.passthrough);
uut.on('state', tester.setState);
uut.on('error', onError);
tester.on('error', onError);
uut.on('info', onInfo);
tester.on('info', onInfo);
//tester.on('debug', onDebug);
var withinHandler = false;
String.prototype.lpad = function(padString, length) {
var str = this;
while (str.length < length)
str = padString + str;
return str;
}
function onError(error) {
console.log(`error: ${error}`);
}
function onInfo(message) {
console.log(`info: ${message}`);
}
function onDebug(message) {
console.log(`debug: ${message}`);
}
function ubootTester() {
var testStream = new stream.Duplex();
var passthroughStream = new stream.Duplex();
var line = '';
var lineTimer;
var activityTimer = setTimeout(onActivityTimeout, 500);
var activityTimeout = 500;
var state = 'idle';
var cmdIndex = 0;
var serialTxtFile = '/var/lib/cloud9/serial.txt';
var serialTxt = fs.readFileSync(serialTxtFile, 'utf-8');
var led = '/sys/class/leds/beaglebone\:green\:usr3';
//setenv serverip 192.168.1.1
//setenv ipaddr 192.168.1.2
//setenv if_netconsole "ping $serverip"
//setenv start_netconsole "setenv ncip $serverip;setenv bootdelay 10;setenv stdin serial,nc;setenv stdout serial,nc;setenv stderr serial,nc;version"
//setenv preboot "run if_netconsole start_netconsole"
var commands_eeprom_header = [
'setenv eeprom_header "i2c dev 0;'+
'i2c mw 50 0.2 aa;'+ // 0xaa
'i2c mw 50 1.2 55;'+ // 0x55
'i2c mw 50 2.2 33;'+ // 0x33
'i2c mw 50 3.2 ee;'+ // 0xee
'i2c mw 50 4.2 41;'+ // A
'i2c mw 50 5.2 33;'+ // 3
'i2c mw 50 6.2 33;'+ // 3
'i2c mw 50 7.2 35;'+ // 5
'i2c mw 50 8.2 50;'+ // P
'i2c mw 50 9.2 42;'+ // B
'i2c mw 50 a.2 47;'+ // G
'i2c mw 50 b.2 4c;'+ // L
'i2c mw 50 c.2 30;'+ // 0
'i2c mw 50 d.2 30;'+ // 0
'i2c mw 50 e.2 41;'+ // A
'i2c mw 50 f.2 32"', // 2
'saveenv',
];
var commands_header_ref = [
'setenv header_ref "'+
'mw 82001000 ee3355aa;'+
'mw 82001004 35333341;'+
'mw 82001008 4c474250;'+
'mw 8200100c 32413030"'+
'saveenv',
'run header_ref',
'md 82001000 20',
];
var commands_ums = [
'ums 0 mmc 0',
];
var commands = [];
var cmdIndexDone = commands.length + 3;
update_commands();
function update_commands() {
var commands_tester = [
'gpio set 53', // Set USR0 LED
'gpio clear 69', // Enable EEPROM writing
'run pb_eeprom_hdr',
'mw 8200100c '+
serialTxt.charCodeAt(3).toString(16)+
serialTxt.charCodeAt(2).toString(16)+
serialTxt.charCodeAt(1).toString(16)+
serialTxt.charCodeAt(0).toString(16),
'mw 82001010 '+
serialTxt.charCodeAt(7).toString(16)+
serialTxt.charCodeAt(6).toString(16)+
serialTxt.charCodeAt(5).toString(16)+
serialTxt.charCodeAt(4).toString(16),
'mw 82001014 '+
serialTxt.charCodeAt(11).toString(16)+
serialTxt.charCodeAt(10).toString(16)+
serialTxt.charCodeAt(9).toString(16)+
serialTxt.charCodeAt(8).toString(16),
'mw 82001018 '+
serialTxt.charCodeAt(15).toString(16)+
serialTxt.charCodeAt(14).toString(16)+
serialTxt.charCodeAt(13).toString(16)+
serialTxt.charCodeAt(12).toString(16),
'md 82001000 8',
'if eeprom write i2c 50 82001000 0 1c;then gpio set 54;else gpio clear 54;fi', // write eeprom data
'if eeprom read i2c 50 82000000 0 1c;then gpio set 55;else gpio clear 55;fi', // read back
'if cmp 82000000 82001000 7;then gpio set 56;else reset;fi', // compare
];
commands = commands_tester;
cmdIndexDone = commands.length + 3;
}
testStream._write = onWrite;
testStream._read = onRead;
testStream.setState = onSetState;
testStream.passthrough = passthroughStream;
passthroughStream._write = onPassthroughWrite;
passthroughStream._read = onRead;
passthroughStream.on('error', onError);
function serialIncrement(sn) {
var snpre = sn.substring(0, 11);
var snout = sn.substring(11, 16);
//console.log(snpre);
//console.log(snout);
snout++;
//console.log(snout);
//snout = snout.toString(10).lpad('0', 5);
testStream.emit('info', `next serial number ${snpre}${snout}`);
return('' + snpre + snout);
}
function onPassthroughWrite(chunk, encoding, callback) {
setWatchdog(20000);
//testStream.emit('debug', `passthrough write: ${chunk}`);
testStream.push(chunk);
callback();
}
function onSetState(newState) {
testStream.emit('debug', `testStream state = ${newState}`);
state = newState;
setWatchdog(500);
if(state != 'active') {
onIdle();
}
}
function onActivityTimeout() {
testStream.push(' \n');
setWatchdog(500);
}
function onError(error) {
testStream.emit('error', `passthrough error: ${error}`);
}
function setWatchdog(delay) {
activityTimeout = delay;
clearTimeout(activityTimer);
activityTimer = setTimeout(onActivityTimeout, activityTimeout);
}
function petWatchdog() {
clearTimeout(activityTimer);
activityTimer = setTimeout(onActivityTimeout, activityTimeout);
}
function onWrite(chunk, encoding, callback) {
//var successText = 'Total of 7 word(s) were the same';
var successText = 'Total of 7 w';
var failText = 'word at 0x82';
//testStream.emit('debug', `chunk: ${chunk}`);
petWatchdog();
if(chunk == '\n') {
line += chunk;
passthroughStream.push(line);
line = '';
clearTimeout(lineTimer);
} else {
line += chunk;
lineTimer = setTimeout(onLineTimeout, 100);
}
if(line == '=> ') {
passthroughStream.push(line);
line = '';
if(cmdIndex < commands.length) {
if(cmdIndex == 0) {
onStart();
}
testStream.push(`${commands[cmdIndex]}\n`);
cmdIndex++;
} else if(cmdIndex < cmdIndexDone) {
cmdIndex++;
onPass();
}
} else if(line.substring(0, successText.length) == successText) {
passthroughStream.push(line);
line = '';
onPass();
} else if(line.substring(0, failText.length) == failText) {
passthroughStream.push(line);
line = '';
onFail();
}
callback();
}
function onIdle() {
cmdIndex = 0;
fs.writeFileSync(`${led}/trigger`, 'none');
fs.writeFileSync(`${led}/brightness`, '0');
testStream.emit('debug', `testStream state = idle`);
}
function onStart() {
fs.writeFileSync(`${led}/trigger`, 'timer');
fs.writeFileSync(`${led}/delay_on`, '500');
fs.writeFileSync(`${led}/delay_off`, '500');
setWatchdog(100);
testTimeout = setTimeout(onFail, 5000);
testStream.emit('debug', `testStream state = test start`);
}
function onFail() {
clearTimeout(testTimeout);
cmdIndex = cmdIndexDone;
testStream.emit('info', 'device: failed');
fs.writeFileSync(`${led}/trigger`, 'timer');
fs.writeFileSync(`${led}/delay_on`, '50');
fs.writeFileSync(`${led}/delay_off`, '50');
testStream.emit('debug', `testStream state = test fail`);
}
function onPass() {
clearTimeout(testTimeout);
cmdIndex = cmdIndexDone;
testStream.emit('info', 'device: passed');
serialTxt = serialIncrement(serialTxt);
update_commands();
fs.writeFileSync(serialTxtFile, serialTxt);
fs.writeFileSync(`${led}/trigger`, 'none');
fs.writeFileSync(`${led}/brightness`, '1');
testStream.emit('debug', `testStream state = test pass`);
}
function onRead(size) {
}
function onLineTimeout() {
if(line != '') {
passthroughStream.push(line);
line = '';
}
}
return(testStream);
}
function ubootNC() {
var ncStream = new stream.Duplex();
var sentInactiveError = false;
var port = 6666;
var oAddr = '192.168.1.1';
var tAddr = '192.168.1.2';
var address = '';
var cleanupDone = false;
var led = '/sys/class/leds/beaglebone\:green\:usr2';
var server = dgram.createSocket('udp4');
var netTimer = setTimeout(testForNet, 500);
server.state = 'idle';
server.on('error', onServerError);
server.on('message', onServerMessage);
server.on('listening', onServerListening);
ncStream._write = onWrite;
ncStream._read = onRead;
server.bind(port);
process.on('exit', onExit);
process.on('SIGINT', onExit);
function onWrite(chunk, encoding, callback) {
if(server.state == 'active' || server.state == 'connected') {
var buffer = new Buffer(chunk);
server.send(buffer, 0, buffer.length, port, tAddr, onWriteCallback);
ncStream.emit('debug', `sent buffer: ${buffer}`);
setInactiveError = false;
} else {
if(!sentInactiveError) {
ncStream.emit('info', 'stream not in active state');
sentInactiveError = true;
}
callback();
}
function onWriteCallback() {
callback();
}
}
function onRead(size) {
}
function onServerError(err) {
ncStream.emit('error', `server error:\n${err.stack}`);
setState('error');
}
function onServerMessage(msg, rinfo) {
if(withinHandler) ncStream.emit('error', 'missed real-time');
withinHandler = true;
clearTimeout(netTimer);
netTimer = setTimeout(testForNet, 500);
//ncStream.emit('debug', `server got: ${msg} from ${rinfo.address}:${rinfo.port}`);
if(server.state != 'active') {
setState('active');
onFirstMessage(msg, rinfo);
}
fs.writeFile(`${led}/shot`, '1');
//ncStream.emit('data', msg);
var success = ncStream.push(msg);
if(!success) ncStream.emit('error', 'output buffer full');
withinHandler = false;
}
function onServerListening() {
address = server.address();
ncStream.emit('info', `listening ${address.address}:${address.port}`);
if(server.state == 'idle') {
setState('connected');
}
}
function onFirstMessage(msg, rinfo) {
//var buffer = new Buffer(' \n');
//server.send(buffer, 0, buffer.length, port, tAddr, onFirstMessageSent);
}
function onFirstMessageSent(err) {
if(err) {
ncStream.emit('error', `send error:\n${err.stack}`);
setState('error');
} else {
ncStream.emit('debug', `sent message`);
}
}
function onExit() {
if(!cleanupDone) {
setState('exiting');
}
cleanupDone = true;
process.exit();
}
function testForNet() {
netTimer = setTimeout(testForNet, 500);
try {
if(os.networkInterfaces().usb2[0].address == oAddr) {
} else {
setState('idle');
}
} catch(ex) {
setState('idle');
}
}
function setState(newState) {
if(server.state == newState) return;
switch(newState) {
case 'idle':
fs.writeFileSync(`${led}/trigger`, 'timer');
fs.writeFileSync(`${led}/delay_on`, '1000');
fs.writeFileSync(`${led}/delay_off`, '1000');
break;
case 'connected':
fs.writeFileSync(`${led}/trigger`, 'timer');
fs.writeFileSync(`${led}/delay_on`, '500');
fs.writeFileSync(`${led}/delay_off`, '500');
break;
case 'active':
fs.writeFileSync(`${led}/trigger`, 'oneshot');
fs.writeFileSync(`${led}/invert`, '1');
break;
case 'error':
fs.writeFileSync(`${led}/toggle`, 'timer');
fs.writeFileSync(`${led}/delay_on`, '50');
fs.writeFileSync(`${led}/delay_off`, '50');
break;
case 'exiting':
fs.writeFileSync(`${led}/trigger`, 'none');
fs.writeFileSync(`${led}/brightness`, '0');
break;
default:
break;
}
//ncStream.emit('info', `State = ${newState}`);
ncStream.emit('state', newState);
server.state = newState;
}
return ncStream;
}
00A21732GPB10000
#!/bin/sh
connmanctl config ethernet_deadbeaf0000_cable --ipv4 manual 192.168.1.1 255.255.255.0 192.168.1.1
cp pb-tester.js /var/lib/cloud9/autorun/
install serial.txt /var/lib/cloud9/
diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
index 0a16529..da775ab 100644
--- a/board/ti/am335x/board.c
+++ b/board/ti/am335x/board.c
@@ -264,7 +264,7 @@ const struct dpll_params *get_dpll_ddr_params(void)
if (board_is_evm_sk())
return &dpll_ddr3_303MHz[ind];
- else if (board_is_bone_lt() || board_is_icev2())
+ else if (board_is_pb() || board_is_bone_lt() || board_is_icev2())
return &dpll_ddr3_400MHz[ind];
else if (board_is_evm_15_or_later())
return &dpll_ddr3_303MHz[ind];
@@ -274,7 +274,7 @@ const struct dpll_params *get_dpll_ddr_params(void)
static u8 bone_not_connected_to_ac_power(void)
{
- if (board_is_bone()) {
+ if (board_is_bone() && !board_is_pb()) {
uchar pmic_status_reg;
if (tps65217_reg_read(TPS65217_STATUS,
&pmic_status_reg))
@@ -295,7 +295,7 @@ const struct dpll_params *get_dpll_mpu_params(void)
if (bone_not_connected_to_ac_power())
freq = MPUPLL_M_600;
- if (board_is_bone_lt())
+ if (board_is_pb() || board_is_bone_lt())
freq = MPUPLL_M_1000;
switch (freq) {
@@ -324,7 +324,7 @@ static void scale_vcores_bone(int freq)
* Only perform PMIC configurations if board rev > A1
* on Beaglebone White
*/
- if (board_is_bone() && !strncmp(board_ti_get_rev(), "00A1", 4))
+ if (!board_is_pb() && board_is_bone() && !strncmp(board_ti_get_rev(), "00A1", 4))
return;
if (i2c_probe(TPS65217_CHIP_PM))
@@ -341,7 +341,7 @@ static void scale_vcores_bone(int freq)
* Override what we have detected since we know if we have
* a Beaglebone Black it supports 1GHz.
*/
- if (board_is_bone_lt())
+ if (board_is_pb() || board_is_bone_lt())
freq = MPUPLL_M_1000;
switch (freq) {
@@ -387,9 +387,10 @@ static void scale_vcores_bone(int freq)
/*
* Set LDO3, LDO4 output voltage to 3.3V for Beaglebone.
- * Set LDO3 to 1.8V and LDO4 to 3.3V for Beaglebone Black.
+ * Set LDO3 to 1.8V and LDO4 to 3.3V for Beaglebone Black
+ * and PocketBeagle.
*/
- if (board_is_bone()) {
+ if (board_is_bone() && !board_is_pb()) {
if (tps65217_reg_write(TPS65217_PROT_LEVEL_2,
TPS65217_DEFLS1,
TPS65217_LDO_VOLTAGE_OUT_3_3,
@@ -542,7 +543,7 @@ void sdram_init(void)
if (board_is_evm_sk())
config_ddr(303, &ioregs_evmsk, &ddr3_data,
&ddr3_cmd_ctrl_data, &ddr3_emif_reg_data, 0);
- else if (board_is_bone_lt())
+ else if (board_is_pb() || board_is_bone_lt())
config_ddr(400, &ioregs_bonelt,
&ddr3_beagleblack_data,
&ddr3_beagleblack_cmd_ctrl_data,
@@ -859,7 +860,7 @@ int board_eth_init(bd_t *bis)
(defined(CONFIG_SPL_ETH_SUPPORT) && defined(CONFIG_SPL_BUILD))
#ifdef CONFIG_DRIVER_TI_CPSW
- if (board_is_bone() || board_is_bone_lt() ||
+ if ((board_is_bone() && !board_is_pb()) || board_is_bone_lt() ||
board_is_idk()) {
writel(MII_MODE_ENABLE, &cdev->miisel);
cpsw_slaves[0].phy_if = cpsw_slaves[1].phy_if =
@@ -927,6 +928,8 @@ int board_fit_config_name_match(const char *name)
{
if (board_is_gp_evm() && !strcmp(name, "am335x-evm"))
return 0;
+ else if (board_is_pb() && !strcmp(name, "am335x-pocketbeagle"))
+ return 0;
else if (board_is_bone() && !strcmp(name, "am335x-bone"))
return 0;
else if (board_is_bone_lt() && !strcmp(name, "am335x-boneblack"))
diff --git a/board/ti/am335x/board.h b/board/ti/am335x/board.h
index e13fcff..d8faa4b 100644
--- a/board/ti/am335x/board.h
+++ b/board/ti/am335x/board.h
@@ -24,6 +24,14 @@
#define EMIF_OCP_CONFIG_BEAGLEBONE_BLACK 0x00141414
#define EMIF_OCP_CONFIG_AM335X_EVM 0x003d3d3d
+static inline int board_is_pb(void)
+{
+/*
+ return board_ti_is("A335PBGL");
+*/
+ return 1;
+}
+
static inline int board_is_bone(void)
{
return board_ti_is("A335BONE");
@@ -41,7 +49,7 @@ static inline int board_is_bbg1(void)
static inline int board_is_beaglebonex(void)
{
- return board_is_bone() || board_is_bone_lt() || board_is_bbg1();
+ return board_is_pb() || board_is_bone() || board_is_bone_lt() || board_is_bbg1();
}
static inline int board_is_evm_sk(void)
diff --git a/board/ti/am335x/mux.c b/board/ti/am335x/mux.c
index ad85b3a..8326735 100644
--- a/board/ti/am335x/mux.c
+++ b/board/ti/am335x/mux.c
@@ -341,7 +341,10 @@ static unsigned short detect_daughter_board_profile(void)
void enable_board_pin_mux(void)
{
/* Do board-specific muxes. */
- if (board_is_bone()) {
+ if (board_is_pb()) {
+ configure_module_pin_mux(mii1_pin_mux);
+ configure_module_pin_mux(mmc0_pin_mux);
+ } else if (board_is_bone()) {
/* Beaglebone pinmux */
configure_module_pin_mux(mii1_pin_mux);
configure_module_pin_mux(mmc0_pin_mux);
diff --git a/configs/am335x_pocketbeagle_defconfig b/configs/am335x_pocketbeagle_defconfig
new file mode 100644
index 0000000..0c94835
--- /dev/null
+++ b/configs/am335x_pocketbeagle_defconfig
@@ -0,0 +1,1033 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# U-Boot 2017.09-rc1 Configuration
+#
+CONFIG_CREATE_ARCH_SYMLINK=y
+# CONFIG_ARC is not set
+CONFIG_ARM=y
+# CONFIG_M68K is not set
+# CONFIG_MICROBLAZE is not set
+# CONFIG_MIPS is not set
+# CONFIG_NDS32 is not set
+# CONFIG_NIOS2 is not set
+# CONFIG_PPC is not set
+# CONFIG_SANDBOX is not set
+# CONFIG_SH is not set
+# CONFIG_X86 is not set
+# CONFIG_XTENSA is not set
+CONFIG_SYS_ARCH="arm"
+CONFIG_SYS_CPU="armv7"
+CONFIG_SYS_SOC="am33xx"
+CONFIG_SYS_VENDOR="ti"
+CONFIG_SYS_BOARD="am335x"
+CONFIG_SYS_CONFIG_NAME="am335x_evm"
+
+#
+# ARM architecture
+#
+CONFIG_HAS_VBAR=y
+CONFIG_HAS_THUMB2=y
+CONFIG_ARM_ASM_UNIFIED=y
+CONFIG_CPU_V7=y
+CONFIG_SYS_ARM_ARCH=7
+CONFIG_SYS_CACHE_SHIFT_6=y
+CONFIG_SYS_CACHELINE_SIZE=64
+# CONFIG_ARM_SMCCC is not set
+# CONFIG_SEMIHOSTING is not set
+CONFIG_SYS_THUMB_BUILD=y
+CONFIG_SPL_SYS_THUMB_BUILD=y
+# CONFIG_SYS_L2CACHE_OFF is not set
+# CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK is not set
+# CONFIG_ARM_CORTEX_CPU_IS_UP is not set
+CONFIG_USE_ARCH_MEMCPY=y
+CONFIG_SPL_USE_ARCH_MEMCPY=y
+CONFIG_USE_ARCH_MEMSET=y
+CONFIG_SPL_USE_ARCH_MEMSET=y
+# CONFIG_ARM64_SUPPORT_AARCH32 is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_TARGET_EDB93XX is not set
+# CONFIG_TARGET_ASPENITE is not set
+# CONFIG_TARGET_GPLUGD is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_KIRKWOOD is not set
+# CONFIG_ARCH_MVEBU is not set
+# CONFIG_TARGET_DEVKIT3250 is not set
+# CONFIG_TARGET_WORK_92105 is not set
+# CONFIG_TARGET_MX25PDK is not set
+# CONFIG_TARGET_ZMX25 is not set
+# CONFIG_TARGET_APF27 is not set
+# CONFIG_TARGET_APX4DEVKIT is not set
+# CONFIG_TARGET_XFI3 is not set
+# CONFIG_TARGET_M28EVK is not set
+# CONFIG_TARGET_MX23EVK is not set
+# CONFIG_TARGET_MX28EVK is not set
+# CONFIG_TARGET_MX23_OLINUXINO is not set
+# CONFIG_TARGET_BG0900 is not set
+# CONFIG_TARGET_SANSA_FUZE_PLUS is not set
+# CONFIG_TARGET_SC_SPS_1 is not set
+# CONFIG_ORION5X is not set
+# CONFIG_TARGET_SPEAR300 is not set
+# CONFIG_TARGET_SPEAR310 is not set
+# CONFIG_TARGET_SPEAR320 is not set
+# CONFIG_TARGET_SPEAR600 is not set
+# CONFIG_TARGET_STV0991 is not set
+# CONFIG_TARGET_X600 is not set
+# CONFIG_TARGET_IMX31_PHYCORE is not set
+# CONFIG_TARGET_IMX31_PHYCORE_EET is not set
+# CONFIG_TARGET_MX31ADS is not set
+# CONFIG_TARGET_MX31PDK is not set
+# CONFIG_TARGET_WOODBURN is not set
+# CONFIG_TARGET_WOODBURN_SD is not set
+# CONFIG_TARGET_FLEA3 is not set
+# CONFIG_TARGET_MX35PDK is not set
+# CONFIG_ARCH_BCM283X is not set
+# CONFIG_TARGET_VEXPRESS_CA15_TC2 is not set
+# CONFIG_TARGET_VEXPRESS_CA5X2 is not set
+# CONFIG_TARGET_VEXPRESS_CA9X4 is not set
+# CONFIG_TARGET_BCM23550_W1D is not set
+# CONFIG_TARGET_BCM28155_AP is not set
+# CONFIG_TARGET_BCMCYGNUS is not set
+# CONFIG_TARGET_BCMNSP is not set
+# CONFIG_TARGET_BCMNS2 is not set
+# CONFIG_ARCH_EXYNOS is not set
+# CONFIG_ARCH_S5PC1XX is not set
+# CONFIG_ARCH_HIGHBANK is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_KEYSTONE is not set
+CONFIG_ARCH_OMAP2PLUS=y
+# CONFIG_ARCH_MESON is not set
+# CONFIG_ARCH_MX7ULP is not set
+# CONFIG_ARCH_MX7 is not set
+# CONFIG_ARCH_MX6 is not set
+# CONFIG_ARCH_MX5 is not set
+# CONFIG_ARCH_RMOBILE is not set
+# CONFIG_TARGET_S32V234EVB is not set
+# CONFIG_ARCH_SNAPDRAGON is not set
+# CONFIG_ARCH_SOCFPGA is not set
+# CONFIG_ARCH_SUNXI is not set
+# CONFIG_TARGET_TS4600 is not set
+# CONFIG_ARCH_VF610 is not set
+# CONFIG_ARCH_ZYNQ is not set
+# CONFIG_ARCH_ZYNQMP is not set
+# CONFIG_TEGRA is not set
+# CONFIG_TARGET_VEXPRESS64_AEMV8A is not set
+# CONFIG_TARGET_VEXPRESS64_BASE_FVP is not set
+# CONFIG_TARGET_VEXPRESS64_BASE_FVP_DRAM is not set
+# CONFIG_TARGET_VEXPRESS64_JUNO is not set
+# CONFIG_TARGET_LS2080A_EMU is not set
+# CONFIG_TARGET_LS2080A_SIMU is not set
+# CONFIG_TARGET_LS2080AQDS is not set
+# CONFIG_TARGET_LS2080ARDB is not set
+# CONFIG_TARGET_LS2081ARDB is not set
+# CONFIG_TARGET_HIKEY is not set
+# CONFIG_TARGET_POPLAR is not set
+# CONFIG_TARGET_LS1012AQDS is not set
+# CONFIG_TARGET_LS1012ARDB is not set
+# CONFIG_TARGET_LS1012AFRDM is not set
+# CONFIG_TARGET_LS1021AQDS is not set
+# CONFIG_TARGET_LS1021ATWR is not set
+# CONFIG_TARGET_LS1021AIOT is not set
+# CONFIG_TARGET_LS1043AQDS is not set
+# CONFIG_TARGET_LS1043ARDB is not set
+# CONFIG_TARGET_LS1046AQDS is not set
+# CONFIG_TARGET_LS1046ARDB is not set
+# CONFIG_TARGET_H2200 is not set
+# CONFIG_TARGET_ZIPITZ2 is not set
+# CONFIG_TARGET_COLIBRI_PXA270 is not set
+# CONFIG_ARCH_UNIPHIER is not set
+# CONFIG_STM32 is not set
+# CONFIG_ARCH_STI is not set
+# CONFIG_ARCH_ROCKCHIP is not set
+# CONFIG_TARGET_THUNDERX_88XX is not set
+# CONFIG_ARCH_ASPEED is not set
+CONFIG_SYS_TEXT_BASE=0x80800000
+CONFIG_TI_I2C_BOARD_DETECT=y
+CONFIG_EEPROM_BUS_ADDRESS=0
+CONFIG_EEPROM_CHIP_ADDRESS=0x50
+CONFIG_TI_COMMON_CMD_OPTIONS=y
+CONFIG_SPL_GPIO_SUPPORT=y
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_SYS_MALLOC_F_LEN=0x400
+# CONFIG_OMAP34XX is not set
+# CONFIG_OMAP44XX is not set
+# CONFIG_OMAP54XX is not set
+# CONFIG_TI814X is not set
+# CONFIG_TI816X is not set
+# CONFIG_AM43XX is not set
+CONFIG_AM33XX=y
+CONFIG_SYS_MPUCLK=500
+# CONFIG_TI_SECURE_DEVICE is not set
+CONFIG_CONS_INDEX=1
+CONFIG_TARGET_AM335X_EVM=y
+# CONFIG_TARGET_AM335X_BALTOS is not set
+# CONFIG_TARGET_AM335X_IGEP003X is not set
+# CONFIG_TARGET_AM335X_SHC is not set
+# CONFIG_TARGET_AM335X_SL50 is not set
+# CONFIG_TARGET_BAV335X is not set
+# CONFIG_TARGET_BRXRE1 is not set
+# CONFIG_TARGET_BRPPT1 is not set
+# CONFIG_TARGET_CHILIBOARD is not set
+# CONFIG_TARGET_CM_T335 is not set
+# CONFIG_TARGET_DRACO is not set
+# CONFIG_TARGET_ETAMIN is not set
+# CONFIG_TARGET_PCM051 is not set
+# CONFIG_TARGET_PENGWYN is not set
+# CONFIG_TARGET_PEPPER is not set
+# CONFIG_TARGET_PXM2 is not set
+# CONFIG_TARGET_RASTABAN is not set
+# CONFIG_TARGET_RUT is not set
+# CONFIG_TARGET_THUBAN is not set
+CONFIG_ISW_ENTRY_ADDR=0x402F0400
+CONFIG_PUB_ROM_DATA_SIZE=0x8400
+# CONFIG_NOR is not set
+CONFIG_SPL_MMC_SUPPORT=y
+CONFIG_SPL_SERIAL_SUPPORT=y
+# CONFIG_SPL_DRIVERS_MISC_SUPPORT is not set
+CONFIG_SPL_LIBDISK_SUPPORT=y
+# CONFIG_SPL_NAND_SUPPORT is not set
+# CONFIG_SPL_SPI_FLASH_SUPPORT is not set
+# CONFIG_SPL_SPI_SUPPORT is not set
+CONFIG_SPL_WATCHDOG_SUPPORT=y
+CONFIG_IDENT_STRING=""
+# CONFIG_VIDEO is not set
+CONFIG_SPL_STACK_R_ADDR=0x82000000
+CONFIG_SPL_FAT_SUPPORT=y
+# CONFIG_ARMV7_LPAE is not set
+# CONFIG_CMD_DEKBLOB is not set
+# CONFIG_CMD_HDMIDETECT is not set
+
+#
+# ARM debug
+#
+# CONFIG_DEBUG_LL is not set
+CONFIG_SMBIOS_PRODUCT_NAME="am335x"
+# CONFIG_DEBUG_UART is not set
+# CONFIG_AHCI is not set
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_SYS_MALLOC_F=y
+CONFIG_SPL_SYS_MALLOC_F_LEN=0x400
+CONFIG_EXPERT=y
+CONFIG_SYS_MALLOC_CLEAR_ON_INIT=y
+# CONFIG_TOOLS_DEBUG is not set
+# CONFIG_PHYS_64BIT is not set
+
+#
+# Boot images
+#
+CONFIG_FIT=y
+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y
+# CONFIG_FIT_SIGNATURE is not set
+# CONFIG_FIT_VERBOSE is not set
+# CONFIG_FIT_BEST_MATCH is not set
+# CONFIG_SPL_FIT is not set
+# CONFIG_SPL_FIT_SIGNATURE is not set
+# CONFIG_SPL_LOAD_FIT is not set
+# CONFIG_OF_BOARD_SETUP is not set
+# CONFIG_OF_SYSTEM_SETUP is not set
+# CONFIG_OF_STDOUT_VIA_ALIAS is not set
+CONFIG_SYS_EXTRA_OPTIONS=""
+CONFIG_ARCH_FIXUP_FDT_MEMORY=y
+
+#
+# API
+#
+# CONFIG_API is not set
+
+#
+# Boot timing
+#
+# CONFIG_BOOTSTAGE is not set
+CONFIG_BOOTSTAGE_USER_COUNT=20
+CONFIG_BOOTSTAGE_RECORD_COUNT=30
+CONFIG_BOOTSTAGE_STASH_ADDR=0
+CONFIG_BOOTSTAGE_STASH_SIZE=0x1000
+
+#
+# Boot media
+#
+# CONFIG_NAND_BOOT is not set
+# CONFIG_ONENAND_BOOT is not set
+# CONFIG_QSPI_BOOT is not set
+# CONFIG_SATA_BOOT is not set
+# CONFIG_SD_BOOT is not set
+# CONFIG_SPI_BOOT is not set
+
+#
+# Environment
+#
+# CONFIG_ENV_IS_IN_DATAFLASH is not set
+# CONFIG_ENV_IS_IN_EEPROM is not set
+CONFIG_ENV_IS_IN_FAT=y
+# CONFIG_ENV_IS_IN_FLASH is not set
+# CONFIG_ENV_IS_IN_MMC is not set
+# CONFIG_ENV_IS_IN_NAND is not set
+# CONFIG_ENV_IS_IN_NVRAM is not set
+# CONFIG_ENV_IS_IN_ONENAND is not set
+# CONFIG_ENV_IS_IN_REMOTE is not set
+# CONFIG_ENV_IS_IN_SPI_FLASH is not set
+# CONFIG_ENV_IS_IN_UBI is not set
+# CONFIG_ENV_IS_NOWHERE is not set
+CONFIG_ENV_FAT_INTERFACE="mmc"
+CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
+CONFIG_ENV_FAT_FILE="uboot.env"
+CONFIG_BOOTDELAY=2
+
+#
+# Console
+#
+CONFIG_MENU=y
+# CONFIG_CONSOLE_RECORD is not set
+# CONFIG_SILENT_CONSOLE is not set
+# CONFIG_PRE_CONSOLE_BUFFER is not set
+CONFIG_CONSOLE_MUX=y
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
+# CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set
+CONFIG_SYS_CONSOLE_ENV_OVERWRITE=y
+CONFIG_SYS_CONSOLE_INFO_QUIET=y
+# CONFIG_SYS_STDIO_DEREGISTER is not set
+# CONFIG_FIT_EMBED is not set
+CONFIG_DEFAULT_FDT_FILE=""
+CONFIG_VERSION_VARIABLE=y
+CONFIG_BOARD_LATE_INIT=y
+CONFIG_DISPLAY_CPUINFO=y
+CONFIG_DISPLAY_BOARDINFO=y
+
+#
+# Start-up hooks
+#
+# CONFIG_ARCH_EARLY_INIT_R is not set
+CONFIG_ARCH_MISC_INIT=y
+# CONFIG_BOARD_EARLY_INIT_F is not set
+
+#
+# Security support
+#
+CONFIG_HASH=y
+
+#
+# SPL / TPL
+#
+CONFIG_SUPPORT_SPL=y
+CONFIG_SPL=y
+CONFIG_SPL_BOARD_INIT=y
+CONFIG_SPL_RAW_IMAGE_SUPPORT=y
+CONFIG_SPL_LEGACY_IMAGE_SUPPORT=y
+CONFIG_SPL_SYS_MALLOC_SIMPLE=y
+CONFIG_SPL_STACK_R=y
+CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x100000
+CONFIG_SPL_SEPARATE_BSS=y
+# CONFIG_SPL_DISPLAY_PRINT is not set
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x300
+# CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION is not set
+# CONFIG_SPL_CPU_SUPPORT is not set
+# CONFIG_SPL_CRYPTO_SUPPORT is not set
+# CONFIG_SPL_HASH_SUPPORT is not set
+# CONFIG_SPL_DMA_SUPPORT is not set
+CONFIG_SPL_ENV_SUPPORT=y
+# CONFIG_SPL_SAVEENV is not set
+# CONFIG_SPL_ETH_SUPPORT is not set
+CONFIG_SPL_EXT_SUPPORT=y
+# CONFIG_SPL_FPGA_SUPPORT is not set
+CONFIG_SPL_I2C_SUPPORT=y
+# CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT is not set
+# CONFIG_SPL_MTD_SUPPORT is not set
+CONFIG_SPL_MUSB_NEW_SUPPORT=y
+# CONFIG_SPL_NET_SUPPORT is not set
+# CONFIG_SPL_NO_CPU_SUPPORT is not set
+# CONFIG_SPL_NOR_SUPPORT is not set
+# CONFIG_SPL_XIP_SUPPORT is not set
+# CONFIG_SPL_ONENAND_SUPPORT is not set
+CONFIG_SPL_OS_BOOT=y
+# CONFIG_SPL_PCI_SUPPORT is not set
+# CONFIG_SPL_PCH_SUPPORT is not set
+# CONFIG_SPL_POST_MEM_SUPPORT is not set
+CONFIG_SPL_POWER_SUPPORT=y
+# CONFIG_SPL_RAM_SUPPORT is not set
+# CONFIG_SPL_RTC_SUPPORT is not set
+# CONFIG_SPL_SATA_SUPPORT is not set
+# CONFIG_SPL_TIMER_SUPPORT is not set
+# CONFIG_SPL_USB_HOST_SUPPORT is not set
+# CONFIG_SPL_USB_GADGET_SUPPORT is not set
+CONFIG_SPL_YMODEM_SUPPORT=y
+
+#
+# Command line interface
+#
+CONFIG_CMDLINE=y
+CONFIG_HUSH_PARSER=y
+CONFIG_SYS_PROMPT="=> "
+
+#
+# Autoboot options
+#
+CONFIG_AUTOBOOT=y
+CONFIG_AUTOBOOT_KEYED=y
+CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
+# CONFIG_AUTOBOOT_ENCRYPTION is not set
+CONFIG_AUTOBOOT_DELAY_STR="d"
+CONFIG_AUTOBOOT_STOP_STR=" "
+# CONFIG_AUTOBOOT_KEYED_CTRLC is not set
+
+#
+# FASTBOOT
+#
+CONFIG_FASTBOOT=y
+CONFIG_USB_FUNCTION_FASTBOOT=y
+CONFIG_CMD_FASTBOOT=y
+# CONFIG_ANDROID_BOOT_IMAGE is not set
+CONFIG_FASTBOOT_BUF_ADDR=0x81000000
+CONFIG_FASTBOOT_BUF_SIZE=0x07000000
+CONFIG_FASTBOOT_USB_DEV=0
+# CONFIG_FASTBOOT_FLASH is not set
+
+#
+# Commands
+#
+
+#
+# Info commands
+#
+CONFIG_CMD_BDI=y
+# CONFIG_CMD_CONFIG is not set
+CONFIG_CMD_CONSOLE=y
+# CONFIG_CMD_CPU is not set
+# CONFIG_CMD_LICENSE is not set
+
+#
+# Boot commands
+#
+CONFIG_CMD_BOOTD=y
+CONFIG_CMD_BOOTM=y
+CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_BOOTEFI=y
+CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y
+# CONFIG_CMD_BOOTEFI_HELLO is not set
+# CONFIG_CMD_BOOTMENU is not set
+CONFIG_CMD_ELF=y
+CONFIG_CMD_FDT=y
+CONFIG_CMD_GO=y
+CONFIG_CMD_RUN=y
+CONFIG_CMD_IMI=y
+# CONFIG_CMD_IMLS is not set
+CONFIG_CMD_XIMG=y
+# CONFIG_CMD_POWEROFF is not set
+
+#
+# Environment commands
+#
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_EXPORTENV=y
+CONFIG_CMD_IMPORTENV=y
+CONFIG_CMD_EDITENV=y
+# CONFIG_CMD_GREPENV is not set
+CONFIG_CMD_SAVEENV=y
+CONFIG_CMD_ENV_EXISTS=y
+# CONFIG_CMD_ENV_CALLBACK is not set
+# CONFIG_CMD_ENV_FLAGS is not set
+
+#
+# Memory commands
+#
+CONFIG_CMD_MEMORY=y
+CONFIG_CMD_CRC32=y
+# CONFIG_CRC32_VERIFY is not set
+CONFIG_CMD_EEPROM=y
+# CONFIG_CMD_EEPROM_LAYOUT is not set
+# CONFIG_CMD_MD5SUM is not set
+# CONFIG_CMD_SHA1SUM is not set
+# CONFIG_LOOPW is not set
+# CONFIG_CMD_MEMTEST is not set
+# CONFIG_CMD_MX_CYCLIC is not set
+# CONFIG_CMD_MEMINFO is not set
+
+#
+# Compression commands
+#
+# CONFIG_CMD_LZMADEC is not set
+# CONFIG_CMD_UNZIP is not set
+# CONFIG_CMD_ZIP is not set
+
+#
+# Device access commands
+#
+# CONFIG_CMD_CLK is not set
+CONFIG_CMD_DM=y
+# CONFIG_CMD_DEMO is not set
+# CONFIG_CMD_IDE is not set
+# CONFIG_CMD_IO is not set
+# CONFIG_CMD_IOTRACE is not set
+CONFIG_CMD_LOADB=y
+CONFIG_CMD_LOADS=y
+# CONFIG_CMD_FLASH is not set
+CONFIG_CMD_GPT=y
+# CONFIG_CMD_GPT_RENAME is not set
+# CONFIG_CMD_ARMFLASH is not set
+CONFIG_CMD_MMC=y
+# CONFIG_CMD_NAND is not set
+CONFIG_CMD_PART=y
+CONFIG_CMD_SF=y
+CONFIG_CMD_SPI=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_DFU=y
+CONFIG_CMD_USB_MASS_STORAGE=y
+# CONFIG_CMD_FPGA is not set
+# CONFIG_CMD_FPGAD is not set
+# CONFIG_CMD_FUSE is not set
+CONFIG_CMD_GPIO=y
+# CONFIG_CMD_FDC is not set
+# CONFIG_CMD_SATA is not set
+
+#
+# Shell scripting commands
+#
+CONFIG_CMD_ECHO=y
+CONFIG_CMD_ITEST=y
+CONFIG_CMD_SOURCE=y
+# CONFIG_CMD_SETEXPR is not set
+
+#
+# Network commands
+#
+CONFIG_CMD_NET=y
+# CONFIG_CMD_TFTPPUT is not set
+# CONFIG_CMD_TFTPSRV is not set
+# CONFIG_CMD_RARP is not set
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_PXE=y
+CONFIG_CMD_NFS=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
+# CONFIG_CMD_CDP is not set
+# CONFIG_CMD_SNTP is not set
+# CONFIG_CMD_DNS is not set
+# CONFIG_CMD_LINK_LOCAL is not set
+# CONFIG_CMD_ETHSW is not set
+
+#
+# Misc commands
+#
+# CONFIG_CMD_BSP is not set
+# CONFIG_CMD_BKOPS_ENABLE is not set
+# CONFIG_CMD_CACHE is not set
+# CONFIG_CMD_DISPLAY is not set
+# CONFIG_CMD_LED is not set
+# CONFIG_CMD_DATE is not set
+CONFIG_CMD_TIME=y
+# CONFIG_CMD_GETTIME is not set
+CONFIG_CMD_MISC=y
+# CONFIG_CMD_TIMER is not set
+# CONFIG_CMD_QFW is not set
+
+#
+# Power commands
+#
+
+#
+# Security commands
+#
+# CONFIG_CMD_AES is not set
+# CONFIG_CMD_BLOB is not set
+# CONFIG_CMD_HASH is not set
+
+#
+# Firmware commands
+#
+
+#
+# Filesystem commands
+#
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+# CONFIG_CMD_FS_UUID is not set
+# CONFIG_CMD_JFFS2 is not set
+# CONFIG_CMD_MTDPARTS is not set
+
+#
+# Debug commands
+#
+# CONFIG_CMD_BEDBUG is not set
+# CONFIG_CMD_DIAG is not set
+# CONFIG_CMD_KGDB is not set
+# CONFIG_CMD_UBI is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITIONS=y
+# CONFIG_MAC_PARTITION is not set
+# CONFIG_SPL_MAC_PARTITION is not set
+CONFIG_DOS_PARTITION=y
+CONFIG_SPL_DOS_PARTITION=y
+CONFIG_ISO_PARTITION=y
+CONFIG_SPL_ISO_PARTITION=y
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_SPL_AMIGA_PARTITION is not set
+CONFIG_EFI_PARTITION=y
+CONFIG_EFI_PARTITION_ENTRIES_OFF=0
+CONFIG_SPL_EFI_PARTITION=y
+CONFIG_PARTITION_UUIDS=y
+CONFIG_SPL_PARTITION_UUIDS=y
+# CONFIG_PARTITION_TYPE_GUID is not set
+CONFIG_SUPPORT_OF_CONTROL=y
+
+#
+# Device Tree Control
+#
+# CONFIG_OF_CONTROL is not set
+# CONFIG_OF_BOARD_FIXUP is not set
+CONFIG_NET=y
+# CONFIG_NET_RANDOM_ETHADDR is not set
+CONFIG_NETCONSOLE=y
+CONFIG_NET_TFTP_VARS=y
+CONFIG_BOOTP_PXE_CLIENTARCH=0x15
+CONFIG_BOOTP_VCI_STRING="U-Boot.armv7"
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_DM=y
+CONFIG_SPL_DM=y
+CONFIG_DM_WARN=y
+CONFIG_DM_DEVICE_REMOVE=y
+CONFIG_DM_STDIO=y
+CONFIG_DM_SEQ_ALIAS=y
+CONFIG_SPL_DM_SEQ_ALIAS=y
+# CONFIG_REGMAP is not set
+# CONFIG_SPL_REGMAP is not set
+# CONFIG_DEVRES is not set
+CONFIG_DM_DEV_READ_INLINE=y
+# CONFIG_ADC is not set
+# CONFIG_ADC_EXYNOS is not set
+# CONFIG_ADC_SANDBOX is not set
+# CONFIG_SATA is not set
+
+#
+# SATA/SCSI device support
+#
+# CONFIG_BLK is not set
+# CONFIG_BLOCK_CACHE is not set
+# CONFIG_IDE is not set
+
+#
+# Clock
+#
+# CONFIG_CLK is not set
+# CONFIG_CPU is not set
+
+#
+# Hardware crypto devices
+#
+# CONFIG_FSL_CAAM is not set
+# CONFIG_SYS_FSL_SEC_BE is not set
+# CONFIG_SYS_FSL_SEC_LE is not set
+
+#
+# Demo for driver model
+#
+# CONFIG_DM_DEMO is not set
+
+#
+# DFU support
+#
+CONFIG_USB_FUNCTION_DFU=y
+CONFIG_DFU_TFTP=y
+CONFIG_DFU_MMC=y
+# CONFIG_DFU_NAND is not set
+CONFIG_DFU_RAM=y
+# CONFIG_DFU_SF is not set
+
+#
+# DMA Support
+#
+# CONFIG_DMA is not set
+# CONFIG_TI_EDMA3 is not set
+
+#
+# FPGA support
+#
+# CONFIG_FPGA_ALTERA is not set
+# CONFIG_FPGA_SOCFPGA is not set
+# CONFIG_FPGA_XILINX is not set
+
+#
+# GPIO Support
+#
+CONFIG_DM_GPIO=y
+# CONFIG_ALTERA_PIO is not set
+# CONFIG_DWAPB_GPIO is not set
+# CONFIG_AT91_GPIO is not set
+# CONFIG_ATMEL_PIO4 is not set
+# CONFIG_INTEL_BROADWELL_GPIO is not set
+# CONFIG_INTEL_ICH6_GPIO is not set
+# CONFIG_IMX_RGPIO2P is not set
+# CONFIG_LPC32XX_GPIO is not set
+# CONFIG_MSM_GPIO is not set
+CONFIG_OMAP_GPIO=y
+# CONFIG_ROCKCHIP_GPIO is not set
+# CONFIG_TEGRA_GPIO is not set
+# CONFIG_TEGRA186_GPIO is not set
+# CONFIG_VYBRID_GPIO is not set
+# CONFIG_DM_74X164 is not set
+# CONFIG_DM_PCA953X is not set
+# CONFIG_MPC85XX_GPIO is not set
+
+#
+# I2C support
+#
+# CONFIG_DM_I2C is not set
+# CONFIG_DM_I2C_COMPAT is not set
+# CONFIG_SYS_I2C_DW is not set
+# CONFIG_SYS_I2C_IMX_LPI2C is not set
+CONFIG_DM_KEYBOARD=y
+# CONFIG_CROS_EC_KEYB is not set
+# CONFIG_I8042_KEYB is not set
+
+#
+# LED Support
+#
+# CONFIG_LED is not set
+# CONFIG_SPL_LED is not set
+# CONFIG_LED_STATUS is not set
+
+#
+# Mailbox Controller Support
+#
+
+#
+# Memory Controller drivers
+#
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MISC is not set
+# CONFIG_CROS_EC is not set
+# CONFIG_DS4510 is not set
+# CONFIG_FSL_SEC_MON is not set
+# CONFIG_MXC_OCOTP is not set
+# CONFIG_NUVOTON_NCT6102D is not set
+# CONFIG_PWRSEQ is not set
+# CONFIG_PCA9551_LED is not set
+# CONFIG_WINBOND_W83627 is not set
+
+#
+# MMC Host controller Support
+#
+CONFIG_MMC=y
+# CONFIG_DM_MMC is not set
+# CONFIG_SPL_MMC_TINY is not set
+# CONFIG_MMC_DW is not set
+# CONFIG_MMC_MXC is not set
+# CONFIG_MMC_MXS is not set
+# CONFIG_MMC_PCI is not set
+CONFIG_MMC_OMAP_HS=y
+# CONFIG_MMC_SDHCI is not set
+
+#
+# MTD Support
+#
+# CONFIG_MTD is not set
+# CONFIG_MTD_NOR_FLASH is not set
+
+#
+# NAND Device Support
+#
+# CONFIG_NAND_DENALI is not set
+# CONFIG_NAND_VF610_NFC is not set
+# CONFIG_NAND_PXA3XX is not set
+# CONFIG_NAND_ARASAN is not set
+# CONFIG_NAND_ZYNQ is not set
+
+#
+# Generic NAND options
+#
+# CONFIG_SYS_NAND_U_BOOT_LOCATIONS is not set
+# CONFIG_SPL_NAND_DENALI is not set
+
+#
+# SPI Flash Support
+#
+CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_BAR is not set
+# CONFIG_SF_DUAL_FLASH is not set
+# CONFIG_SPI_FLASH_ATMEL is not set
+# CONFIG_SPI_FLASH_EON is not set
+# CONFIG_SPI_FLASH_GIGADEVICE is not set
+# CONFIG_SPI_FLASH_MACRONIX is not set
+# CONFIG_SPI_FLASH_SPANSION is not set
+# CONFIG_SPI_FLASH_STMICRO is not set
+# CONFIG_SPI_FLASH_SST is not set
+CONFIG_SPI_FLASH_WINBOND=y
+CONFIG_SPI_FLASH_USE_4K_SECTORS=y
+# CONFIG_SPI_FLASH_MTD is not set
+
+#
+# UBI support
+#
+# CONFIG_MTD_UBI is not set
+# CONFIG_BITBANGMII is not set
+# CONFIG_MV88E6352_SWITCH is not set
+CONFIG_PHYLIB=y
+# CONFIG_MV88E61XX_SWITCH is not set
+# CONFIG_PHYLIB_10G is not set
+# CONFIG_PHY_AQUANTIA is not set
+# CONFIG_PHY_ATHEROS is not set
+# CONFIG_PHY_BROADCOM is not set
+# CONFIG_PHY_CORTINA is not set
+# CONFIG_PHY_DAVICOM is not set
+# CONFIG_PHY_ET1011C is not set
+# CONFIG_PHY_LXT is not set
+# CONFIG_PHY_MARVELL is not set
+# CONFIG_PHY_MICREL is not set
+# CONFIG_PHY_MSCC is not set
+# CONFIG_PHY_NATSEMI is not set
+# CONFIG_PHY_REALTEK is not set
+# CONFIG_PHY_SMSC is not set
+# CONFIG_PHY_TERANETICS is not set
+# CONFIG_PHY_TI is not set
+# CONFIG_PHY_VITESSE is not set
+# CONFIG_PHY_XILINX is not set
+# CONFIG_DM_ETH is not set
+# CONFIG_NETDEVICES is not set
+# CONFIG_PCI is not set
+
+#
+# PHY Subsystem
+#
+# CONFIG_PHY is not set
+# CONFIG_SPL_PHY is not set
+# CONFIG_MVEBU_COMPHY_SUPPORT is not set
+
+#
+# Pin controllers
+#
+# CONFIG_PINCTRL is not set
+# CONFIG_SPL_PINCTRL is not set
+
+#
+# Power
+#
+
+#
+# Power Domain Support
+#
+# CONFIG_DM_PMIC is not set
+# CONFIG_PMIC_AS3722 is not set
+# CONFIG_POWER_MC34VR500 is not set
+# CONFIG_DM_REGULATOR is not set
+# CONFIG_DM_PWM is not set
+# CONFIG_PWM_SANDBOX is not set
+# CONFIG_RAM is not set
+
+#
+# Remote Processor drivers
+#
+
+#
+# Reset Controller Support
+#
+
+#
+# Real Time Clock
+#
+# CONFIG_DM_RTC is not set
+# CONFIG_SCSI is not set
+
+#
+# Serial drivers
+#
+CONFIG_BAUDRATE=115200
+CONFIG_REQUIRE_SERIAL_CONSOLE=y
+CONFIG_SERIAL_PRESENT=y
+CONFIG_SPL_SERIAL_PRESENT=y
+CONFIG_DM_SERIAL=y
+# CONFIG_SERIAL_IRQ_BUFFER is not set
+CONFIG_SPL_DM_SERIAL=y
+# CONFIG_TPL_DM_SERIAL is not set
+# CONFIG_DEBUG_UART_SKIP_INIT is not set
+# CONFIG_ALTERA_JTAG_UART is not set
+# CONFIG_ALTERA_UART is not set
+# CONFIG_ATMEL_USART is not set
+# CONFIG_FSL_LPUART is not set
+# CONFIG_MVEBU_A3700_UART is not set
+CONFIG_SYS_NS16550=y
+# CONFIG_MSM_SERIAL is not set
+# CONFIG_PXA_SERIAL is not set
+
+#
+# Sound support
+#
+# CONFIG_SOUND is not set
+
+#
+# SPI Support
+#
+# CONFIG_DM_SPI is not set
+# CONFIG_SOFT_SPI is not set
+# CONFIG_FSL_ESPI is not set
+# CONFIG_FSL_QSPI is not set
+# CONFIG_TI_QSPI is not set
+
+#
+# SPMI support
+#
+# CONFIG_SPMI is not set
+
+#
+# System reset device drivers
+#
+# CONFIG_SYSRESET is not set
+# CONFIG_SYSRESET_SYSCON is not set
+# CONFIG_SYSRESET_WATCHDOG is not set
+# CONFIG_DM_THERMAL is not set
+
+#
+# Timer Support
+#
+# CONFIG_TIMER is not set
+
+#
+# TPM support
+#
+CONFIG_USB=y
+# CONFIG_DM_USB is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_XHCI_HCD is not set
+# CONFIG_USB_EHCI_HCD is not set
+# CONFIG_USB_OHCI_HCD is not set
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_DWC2 is not set
+# CONFIG_USB_DWC3 is not set
+
+#
+# MUSB Controller Driver
+#
+CONFIG_USB_MUSB_HOST=y
+CONFIG_USB_MUSB_GADGET=y
+
+#
+# ULPI drivers
+#
+
+#
+# USB peripherals
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_KEYBOARD is not set
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_BCM_UDC_OTG_PHY is not set
+# CONFIG_USB_GADGET_DWC2_OTG is not set
+# CONFIG_CI_UDC is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_DUALSPEED=y
+CONFIG_USB_GADGET_DOWNLOAD=y
+CONFIG_G_DNL_MANUFACTURER="Texas Instruments"
+CONFIG_G_DNL_VENDOR_NUM=0x0451
+CONFIG_G_DNL_PRODUCT_NUM=0xd022
+CONFIG_USBNET_DEVADDR="de:ad:be:ef:00:01"
+
+#
+# Graphics support
+#
+# CONFIG_DM_VIDEO is not set
+# CONFIG_SYS_WHITE_ON_BLACK is not set
+
+#
+# TrueType Fonts
+#
+# CONFIG_VIDEO_VESA is not set
+# CONFIG_VIDEO_LCD_ANX9804 is not set
+# CONFIG_VIDEO_LCD_SSD2828 is not set
+# CONFIG_VIDEO_MVEBU is not set
+# CONFIG_DISPLAY is not set
+# CONFIG_VIDEO_BRIDGE is not set
+# CONFIG_LCD is not set
+
+#
+# Watchdog Timer Support
+#
+CONFIG_HW_WATCHDOG=y
+# CONFIG_BCM2835_WDT is not set
+CONFIG_OMAP_WATCHDOG=y
+# CONFIG_ULP_WATCHDOG is not set
+# CONFIG_WDT is not set
+# CONFIG_PHYS_TO_BUS is not set
+
+#
+# File systems
+#
+# CONFIG_FS_CBFS is not set
+CONFIG_FS_FAT=y
+CONFIG_FAT_WRITE=y
+CONFIG_FS_FAT_MAX_CLUSTSIZE=65536
+# CONFIG_FS_JFFS2 is not set
+# CONFIG_FS_CRAMFS is not set
+
+#
+# Library routines
+#
+# CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set
+CONFIG_HAVE_PRIVATE_LIBGCC=y
+CONFIG_USE_PRIVATE_LIBGCC=y
+CONFIG_SYS_HZ=1000
+CONFIG_USE_TINY_PRINTF=y
+CONFIG_REGEX=y
+# CONFIG_LIB_RAND is not set
+# CONFIG_SPL_TINY_MEMSET is not set
+# CONFIG_CMD_DHRYSTONE is not set
+
+#
+# Security support
+#
+# CONFIG_AES is not set
+# CONFIG_RSA is not set
+# CONFIG_TPM is not set
+
+#
+# Hashing Support
+#
+CONFIG_SHA1=y
+CONFIG_SHA256=y
+# CONFIG_SHA_HW_ACCEL is not set
+CONFIG_MD5=y
+
+#
+# Compression Support
+#
+# CONFIG_LZ4 is not set
+# CONFIG_LZMA is not set
+CONFIG_LZO=y
+# CONFIG_ERRNO_STR is not set
+CONFIG_OF_LIBFDT=y
+CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_SPL_OF_LIBFDT=y
+# CONFIG_FDT_FIXUP_PARTITIONS is not set
+
+#
+# System tables
+#
+CONFIG_GENERATE_SMBIOS_TABLE=y
+CONFIG_SMBIOS_MANUFACTURER="ti"
+CONFIG_EFI_LOADER=y
+# CONFIG_UNIT_TEST is not set
diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
index fbab610..75c20bd 100644
--- a/include/configs/am335x_evm.h
+++ b/include/configs/am335x_evm.h
@@ -60,7 +60,10 @@
#define BOOTENV_DEV_LEGACY_MMC(devtypeu, devtypel, instance) \
"bootcmd_" #devtypel #instance "=" \
"setenv mmcdev " #instance"; "\
- "setenv bootpart " #instance":2 ; "\
+ "setenv bootpart " #instance":2; "\
+ "run mmcboot;"\
+ "setenv mmcdev " #instance"; "\
+ "setenv bootpart " #instance":1; "\
"run mmcboot\0"
#define BOOTENV_DEV_NAME_LEGACY_MMC(devtypeu, devtypel, instance) \
@@ -134,7 +137,24 @@
"ramboot=echo Booting from ramdisk ...; " \
"run ramargs; " \
"bootz ${loadaddr} ${rdaddr} ${fdtaddr}\0" \
+ "pb_eeprom_hdr=" \
+ "mw 82001000 ee3355aa; " \
+ "mw 82001004 35333341; " \
+ "mw 82001008 4c474250\0" \
+ "serverip=192.168.1.1\0" \
+ "ipaddr=192.168.1.2\0" \
+ "if_netconsole=ping $serverip\0" \
+ "start_netconsole=" \
+ "setenv ncip $serverip; " \
+ "setenv bootdelay 10; " \
+ "setenv stdin serial,nc; " \
+ "setenv stdout serial,nc; " \
+ "setenv stderr serial,nc; " \
+ "version\0" \
+ "preboot=run if_netconsole start_netconsole\0"\
"findfdt="\
+ "if test $board_name = A335PBGL; then " \
+ "setenv fdtfile am335x-pocketbeagle.dtb; fi; " \
"if test $board_name = A335BONE; then " \
"setenv fdtfile am335x-bone.dtb; fi; " \
"if test $board_name = A335BNLT; then " \
@@ -263,9 +283,14 @@
#define CONFIG_USB_MUSB_PIO_ONLY
#define CONFIG_USB_MUSB_DISABLE_BULK_COMBINE_SPLIT
#define CONFIG_AM335X_USB0
-#define CONFIG_AM335X_USB0_MODE MUSB_PERIPHERAL
#define CONFIG_AM335X_USB1
+#ifdef CONFIG_AM335X_USB_SWAP
+#define CONFIG_AM335X_USB0_MODE MUSB_HOST
+#define CONFIG_AM335X_USB1_MODE MUSB_PERIPHERAL
+#else
+#define CONFIG_AM335X_USB0_MODE MUSB_PERIPHERAL
#define CONFIG_AM335X_USB1_MODE MUSB_HOST
+#endif
#ifndef CONFIG_SPL_USBETH_SUPPORT
/* Fastboot */
@@ -278,6 +303,7 @@
#define CONFIG_USB_ETHER
#define CONFIG_USB_ETH_RNDIS
#define CONFIG_USBNET_HOST_ADDR "de:ad:be:af:00:00"
+#define CONFIG_USB_FUNCTION_MASS_STORAGE
#endif /* CONFIG_USB_MUSB_GADGET */
/*
@@ -337,6 +363,17 @@
#define CONFIG_ENV_OFFSET_REDUND (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)
#define CONFIG_SYS_REDUNDAND_ENVIRONMENT
#define CONFIG_SYS_MMC_MAX_DEVICE 2
+#elif defined(CONFIG_SD_BOOT)
+#define CONFIG_ENV_IS_IN_FAT
+#define FAT_ENV_INTERFACE "mmc"
+#define FAT_ENV_DEVICE_AND_PART "0:1"
+#define FAT_ENV_FILE "uboot.env"
+#ifndef CONFIG_FAT_WRITE
+#define CONFIG_FAT_WRITE
+#endif
+#define FAT_ENV_DEVICE 0
+#define FAT_ENV_PART 1
+#define CONFIG_BOOT_PARTITION_ACCESS
#elif defined(CONFIG_NOR_BOOT)
#define CONFIG_ENV_SECT_SIZE (128 << 10) /* 128 KiB */
#define CONFIG_ENV_OFFSET (512 << 10) /* 512 KiB */
diff --git a/include/configs/ti_am335x_common.h b/include/configs/ti_am335x_common.h
index bf44121..f92bd67 100644
--- a/include/configs/ti_am335x_common.h
+++ b/include/configs/ti_am335x_common.h
@@ -39,7 +39,9 @@
#define CONFIG_MII /* Required in net/eth.c */
#endif
+#ifndef CONFIG_DISABLE_CPSW
#define CONFIG_DRIVER_TI_CPSW /* Driver for IP block */
+#endif
/*
* RTC related defines. To use bootcount you must set bootlimit in the
* environment to a non-zero value and enable CONFIG_BOOTCOUNT_LIMIT
diff --git a/include/environment/ti/mmc.h b/include/environment/ti/mmc.h
index 4305ebd..b803ecc 100644
--- a/include/environment/ti/mmc.h
+++ b/include/environment/ti/mmc.h
@@ -23,9 +23,10 @@
"bootenvfile=uEnv.txt\0" \
"importbootenv=echo Importing environment from mmc${mmcdev} ...; " \
"env import -t ${loadaddr} ${filesize}\0" \
- "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}\0" \
- "loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
- "loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \
+ "loadbootenv=if fatload mmc ${mmcdev} ${loadaddr} ${bootdir}/${bootenvfile}; then echo Found ${bootdir}/${bootenvfile} in FAT partition; else load mmc ${mmcdev} ${loadaddr} ${bootdir}/${bootenvfile}; fi\0" \
+ "loadimage=if test -n ${uname_r}; then load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/vmlinuz-${uname_r}; run loadrd; else load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}; fi\0" \
+ "loadrd=load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/initrd.img-${uname_r}; setenv rdsize ${filesize}\0" \
+ "loadfdt=if test -n ${uname_r}; then load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/dtbs/${uname_r}/${fdtfile}; else load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}; fi;\0" \
"envboot=mmc dev ${mmcdev}; " \
"if mmc rescan; then " \
"echo SD/MMC found on device ${mmcdev};" \
@@ -45,7 +46,11 @@
"mmcloados=run args_mmc; " \
"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
"if run loadfdt; then " \
- "bootz ${loadaddr} - ${fdtaddr}; " \
+ "if test -n ${uname_r}; then " \
+ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
+ "else " \
+ "bootz ${loadaddr} - ${fdtaddr}; " \
+ "fi; " \
"else " \
"if test ${boot_fdt} = try; then " \
"bootz; " \
#!/bin/sh
rm MLO u-boot.img
wget https://beagleboard.org/static/pb/MLO
wget https://beagleboard.org/static/pb/u-boot.img
dd if=MLO of=/dev/mmcblk0 bs=512 seek=256 count=256
dd if=u-boot.img of=/dev/mmcblk0 bs=512 seek=768 count=2048
sync
mount /dev/mmcblk0p1 /mnt
wget https://gist.githubusercontent.com/jadonk/809337ed8435cdc25f99887746550ed2/raw/5d4f7fd514bc9842d6e08af56fa1f37db638831f/uboot.env
cp uboot.env /mnt/uboot.env
umount /mnt
#!/bin/sh
rm MLO u-boot.img
wget https://beagleboard.org/static/pb/MLO
wget https://beagleboard.org/static/pb/u-boot.img
diskutil unmount /dev/disk2s1
sudo dd if=MLO of=/dev/disk2 bs=512 seek=256 count=256
sleep 2
diskutil unmount /dev/disk2s1
sudo dd if=u-boot.img of=/dev/disk2 bs=512 seek=768 count=2048
sleep 2
#cp uboot.env /Volumes/NO\ NAME/
diskutil unmount /dev/disk2s1
@xralphack
Copy link

Hi, I want to enable RNDIS in uboot on BeagleBone Green Wireless.
Is this possible by configuring the latest uboot? (https://github.com/u-boot/u-boot)
I had spent a lot of time on the internet.
But can not find useful information.
If you know how to achieve this, please help~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment