diff --git a/bbb-env b/bbb-env
new file mode 100755
index 0000000000000000000000000000000000000000..952f9951a62a941119dfbc40860989e403c40792
--- /dev/null
+++ b/bbb-env
@@ -0,0 +1,15 @@
+#!/bin/bash
+SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+echo "${SCRIPTDIR}"
+
+#install development environment
+${SCRIPTDIR}/install-environment.sh ${SCRIPTDIR}
+
+#install buildroot repository to generate the U-Boot, the Linux kernel and the rootfs
+mkdir -p ~/workspace/bbb
+cd ~/workspace/bbb
+git clone git://git.buildroot.net/buildroot
+cd buildroot
+git checkout -b bbb 2018.11.2
+patch -p1 < ${SCRIPTDIR}/config/buildroot_bbb.patch
+make bbb-heiafr_defconfig
diff --git a/config/buildroot_bbb.patch b/config/buildroot_bbb.patch
new file mode 100644
index 0000000000000000000000000000000000000000..62e7e550f951c9ca55ff20ed790350e94f3627d3
--- /dev/null
+++ b/config/buildroot_bbb.patch
@@ -0,0 +1,774 @@
+ board/bbb-heiafr/boot.cmd                          |   6 +
+ board/bbb-heiafr/genimage.cfg                      |  29 ++
+ board/bbb-heiafr/linux_defconfig                   | 503 +++++++++++++++++++++
+ .../0001-keep-jtag-clock-alive-for-debugger.patch  |  16 +
+ .../patches/linux/0002_random_ssh_key_gen.patch    |  16 +
+ .../patches/linux/0003-bbb-heiafr-seg7-gpio.patch  |  37 ++
+ .../patches/uboot/0001-board-seg7-gpio.patch       |  28 ++
+ configs/bbb-heiafr_defconfig                       |  81 ++++
+ 8 files changed, 716 insertions(+)
+
+diff --git a/board/bbb-heiafr/boot.cmd b/board/bbb-heiafr/boot.cmd
+new file mode 100644
+index 0000000000..4f367003fe
+--- /dev/null
++++ b/board/bbb-heiafr/boot.cmd
+@@ -0,0 +1,6 @@
++setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
++
++fatload mmc 0 $kernel_addr_r zImage
++fatload mmc 0 $fdt_addr_r am335x-boneblack.dtb
++
++bootz $kernel_addr_r - $fdt_addr_r
+diff --git a/board/bbb-heiafr/genimage.cfg b/board/bbb-heiafr/genimage.cfg
+new file mode 100644
+index 0000000000..664e242d92
+--- /dev/null
++++ b/board/bbb-heiafr/genimage.cfg
+@@ -0,0 +1,29 @@
++image boot.vfat {
++	vfat {
++		files = {
++			"MLO",
++			"u-boot.img",
++			"zImage",
++			"am335x-boneblack.dtb",
++			"boot.scr",
++		}
++	}
++	size = 16M
++}
++
++image sdcard.img {
++	hdimage {
++	}
++
++	partition u-boot {
++		partition-type = 0xC
++		bootable = "true"
++        image = "boot.vfat"
++	}
++
++	partition rootfs {
++		partition-type = 0x83
++		image = "rootfs.ext4"
++		size = 1G
++	}
++}
+diff --git a/board/bbb-heiafr/linux_defconfig b/board/bbb-heiafr/linux_defconfig
+new file mode 100644
+index 0000000000..22181714c3
+--- /dev/null
++++ b/board/bbb-heiafr/linux_defconfig
+@@ -0,0 +1,503 @@
++CONFIG_SYSVIPC=y
++CONFIG_POSIX_MQUEUE=y
++CONFIG_AUDIT=y
++CONFIG_NO_HZ=y
++CONFIG_HIGH_RES_TIMERS=y
++CONFIG_BSD_PROCESS_ACCT=y
++CONFIG_IKCONFIG=y
++CONFIG_IKCONFIG_PROC=y
++CONFIG_LOG_BUF_SHIFT=16
++CONFIG_CGROUPS=y
++CONFIG_MEMCG=y
++CONFIG_MEMCG_SWAP=y
++CONFIG_BLK_CGROUP=y
++CONFIG_CGROUP_SCHED=y
++CONFIG_CFS_BANDWIDTH=y
++CONFIG_RT_GROUP_SCHED=y
++CONFIG_CGROUP_FREEZER=y
++CONFIG_CPUSETS=y
++CONFIG_CGROUP_DEVICE=y
++CONFIG_CGROUP_CPUACCT=y
++CONFIG_CGROUP_PERF=y
++CONFIG_NAMESPACES=y
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_EXPERT=y
++CONFIG_SLAB=y
++CONFIG_PROFILING=y
++CONFIG_POWER_AVS_OMAP=y
++CONFIG_POWER_AVS_OMAP_CLASS3=y
++CONFIG_OMAP_RESET_CLOCKS=y
++CONFIG_ARCH_OMAP3=y
++CONFIG_ARCH_OMAP4=y
++CONFIG_SOC_OMAP5=y
++CONFIG_SOC_AM33XX=y
++CONFIG_SOC_AM43XX=y
++CONFIG_SOC_DRA7XX=y
++CONFIG_ARM_THUMBEE=y
++CONFIG_PCI=y
++CONFIG_PCI_MSI=y
++CONFIG_PCI_DRA7XX_EP=y
++CONFIG_PCI_ENDPOINT=y
++CONFIG_PCI_ENDPOINT_CONFIGFS=y
++CONFIG_PCI_EPF_TEST=m
++CONFIG_SMP=y
++CONFIG_NR_CPUS=2
++CONFIG_SECCOMP=y
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_ARM_APPENDED_DTB=y
++CONFIG_ARM_ATAG_DTB_COMPAT=y
++CONFIG_CMDLINE="root=/dev/mmcblk0p2 rootwait console=ttyS0,115200"
++CONFIG_KEXEC=y
++CONFIG_CPU_FREQ=y
++CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
++CONFIG_CPU_FREQ_GOV_POWERSAVE=y
++CONFIG_CPU_FREQ_GOV_USERSPACE=y
++CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
++CONFIG_CPUFREQ_DT=m
++# CONFIG_ARM_OMAP2PLUS_CPUFREQ is not set
++CONFIG_ARM_TI_CPUFREQ=y
++CONFIG_CPU_IDLE=y
++CONFIG_KERNEL_MODE_NEON=y
++CONFIG_PM_DEBUG=y
++CONFIG_ARM_CRYPTO=y
++CONFIG_CRYPTO_SHA1_ARM_NEON=m
++CONFIG_CRYPTO_SHA256_ARM=m
++CONFIG_CRYPTO_SHA512_ARM=m
++CONFIG_CRYPTO_AES_ARM=m
++CONFIG_CRYPTO_AES_ARM_BS=m
++CONFIG_CRYPTO_GHASH_ARM_CE=m
++CONFIG_CRYPTO_CHACHA20_NEON=m
++CONFIG_OPROFILE=y
++CONFIG_KPROBES=y
++CONFIG_MODULES=y
++CONFIG_MODULE_FORCE_LOAD=y
++CONFIG_MODULE_UNLOAD=y
++CONFIG_MODULE_FORCE_UNLOAD=y
++CONFIG_MODVERSIONS=y
++CONFIG_MODULE_SRCVERSION_ALL=y
++# CONFIG_BLK_DEV_BSG is not set
++CONFIG_PARTITION_ADVANCED=y
++CONFIG_BINFMT_MISC=y
++CONFIG_CMA=y
++CONFIG_NET=y
++CONFIG_PACKET=y
++CONFIG_UNIX=y
++CONFIG_XFRM_USER=y
++CONFIG_NET_KEY=y
++CONFIG_NET_KEY_MIGRATE=y
++CONFIG_INET=y
++CONFIG_IP_MULTICAST=y
++CONFIG_IP_PNP=y
++CONFIG_IP_PNP_DHCP=y
++CONFIG_IP_PNP_BOOTP=y
++CONFIG_IP_PNP_RARP=y
++# CONFIG_IPV6 is not set
++CONFIG_NETFILTER=y
++CONFIG_BT=m
++CONFIG_BT_RFCOMM=m
++CONFIG_BT_RFCOMM_TTY=y
++CONFIG_BT_BNEP=m
++CONFIG_BT_BNEP_MC_FILTER=y
++CONFIG_BT_BNEP_PROTO_FILTER=y
++CONFIG_BT_HIDP=m
++CONFIG_BT_HCIBTUSB=m
++CONFIG_BT_HCIBTSDIO=m
++CONFIG_BT_HCIUART=m
++CONFIG_BT_HCIUART_NOKIA=m
++CONFIG_BT_HCIUART_BCSP=y
++CONFIG_BT_HCIUART_LL=y
++CONFIG_BT_HCIUART_3WIRE=y
++CONFIG_BT_HCIUART_BCM=y
++CONFIG_BT_HCIBCM203X=m
++CONFIG_BT_HCIBPA10X=m
++CONFIG_BT_HCIBFUSB=m
++CONFIG_BT_HCIVHCI=m
++CONFIG_BT_MRVL=m
++CONFIG_BT_MRVL_SDIO=m
++CONFIG_AF_RXRPC=m
++CONFIG_RXKAD=y
++CONFIG_CFG80211=m
++CONFIG_MAC80211=m
++CONFIG_DEVTMPFS=y
++CONFIG_DEVTMPFS_MOUNT=y
++CONFIG_DMA_CMA=y
++CONFIG_OMAP_OCP2SCP=y
++CONFIG_CONNECTOR=m
++CONFIG_MTD=y
++CONFIG_MTD_CMDLINE_PARTS=y
++CONFIG_MTD_BLOCK=y
++CONFIG_MTD_OOPS=y
++CONFIG_MTD_CFI=y
++CONFIG_MTD_CFI_INTELEXT=y
++CONFIG_MTD_PHYSMAP=y
++CONFIG_MTD_PHYSMAP_OF=y
++CONFIG_MTD_M25P80=m
++CONFIG_MTD_ONENAND=y
++CONFIG_MTD_ONENAND_VERIFY_WRITE=y
++CONFIG_MTD_ONENAND_OMAP2=y
++CONFIG_MTD_NAND=y
++CONFIG_MTD_NAND_ECC_BCH=y
++CONFIG_MTD_NAND_OMAP2=y
++CONFIG_MTD_NAND_OMAP_BCH=y
++CONFIG_MTD_SPI_NOR=m
++CONFIG_MTD_UBI=y
++CONFIG_BLK_DEV_LOOP=y
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_SIZE=16384
++CONFIG_SRAM=y
++CONFIG_PCI_ENDPOINT_TEST=m
++CONFIG_EEPROM_AT24=m
++CONFIG_BLK_DEV_SD=y
++CONFIG_SCSI_SCAN_ASYNC=y
++CONFIG_ATA=y
++CONFIG_SATA_AHCI_PLATFORM=y
++CONFIG_AHCI_DM816=m
++CONFIG_NETDEVICES=y
++# CONFIG_NET_VENDOR_ARC is not set
++# CONFIG_NET_VENDOR_BROADCOM is not set
++# CONFIG_NET_VENDOR_CIRRUS is not set
++CONFIG_DM9000=y
++# CONFIG_NET_VENDOR_FARADAY is not set
++# CONFIG_NET_VENDOR_HISILICON is not set
++# CONFIG_NET_VENDOR_INTEL is not set
++# CONFIG_NET_VENDOR_MARVELL is not set
++CONFIG_KS8851=y
++CONFIG_KS8851_MLL=y
++# CONFIG_NET_VENDOR_MICROCHIP is not set
++# CONFIG_NET_VENDOR_NATSEMI is not set
++# CONFIG_NET_VENDOR_QUALCOMM is not set
++# CONFIG_NET_VENDOR_SAMSUNG is not set
++# CONFIG_NET_VENDOR_SEEQ is not set
++CONFIG_SMC91X=y
++CONFIG_SMSC911X=y
++# CONFIG_NET_VENDOR_STMICRO is not set
++CONFIG_TI_DAVINCI_EMAC=y
++CONFIG_TI_CPSW=y
++CONFIG_TI_CPTS=y
++# CONFIG_NET_VENDOR_VIA is not set
++# CONFIG_NET_VENDOR_WIZNET is not set
++CONFIG_AT803X_PHY=y
++CONFIG_DP83848_PHY=y
++CONFIG_DP83867_PHY=y
++CONFIG_MICREL_PHY=y
++CONFIG_SMSC_PHY=y
++CONFIG_PPP=m
++CONFIG_PPP_BSDCOMP=m
++CONFIG_PPP_DEFLATE=m
++CONFIG_PPP_FILTER=y
++CONFIG_PPP_MPPE=m
++CONFIG_PPP_MULTILINK=y
++CONFIG_PPPOE=m
++CONFIG_PPP_ASYNC=m
++CONFIG_PPP_SYNC_TTY=m
++CONFIG_USB_USBNET=m
++CONFIG_USB_NET_SMSC75XX=m
++CONFIG_USB_NET_SMSC95XX=m
++CONFIG_USB_ALI_M5632=y
++CONFIG_USB_AN2720=y
++CONFIG_USB_EPSON2888=y
++CONFIG_USB_KC2190=y
++CONFIG_USB_NET_QMI_WWAN=m
++CONFIG_LIBERTAS=m
++CONFIG_LIBERTAS_USB=m
++CONFIG_LIBERTAS_SDIO=m
++CONFIG_LIBERTAS_DEBUG=y
++CONFIG_MWIFIEX=m
++CONFIG_MWIFIEX_SDIO=m
++CONFIG_MWIFIEX_USB=m
++CONFIG_WL12XX=m
++CONFIG_WL18XX=m
++CONFIG_WLCORE_SPI=m
++CONFIG_WLCORE_SDIO=m
++CONFIG_INPUT_MATRIXKMAP=m
++CONFIG_INPUT_MOUSEDEV=m
++CONFIG_INPUT_JOYDEV=m
++CONFIG_INPUT_EVDEV=m
++# CONFIG_INPUT_KEYBOARD is not set
++# CONFIG_INPUT_MOUSE is not set
++CONFIG_INPUT_TOUCHSCREEN=y
++CONFIG_TOUCHSCREEN_ADS7846=m
++CONFIG_TOUCHSCREEN_ATMEL_MXT=m
++CONFIG_TOUCHSCREEN_EDT_FT5X06=m
++CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
++CONFIG_TOUCHSCREEN_PIXCIR=m
++CONFIG_TOUCHSCREEN_TSC2004=m
++CONFIG_TOUCHSCREEN_TSC2005=m
++CONFIG_TOUCHSCREEN_TSC2007=m
++CONFIG_INPUT_MISC=y
++CONFIG_INPUT_CPCAP_PWRBUTTON=m
++CONFIG_INPUT_TPS65218_PWRBUTTON=m
++CONFIG_INPUT_TWL4030_PWRBUTTON=m
++CONFIG_INPUT_UINPUT=m
++CONFIG_INPUT_PALMAS_PWRBUTTON=m
++CONFIG_INPUT_PWM_VIBRA=m
++CONFIG_SERIO=m
++CONFIG_SERIO_LIBPS2=m
++# CONFIG_LEGACY_PTYS is not set
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_NR_UARTS=32
++CONFIG_SERIAL_8250_RUNTIME_UARTS=6
++CONFIG_SERIAL_8250_EXTENDED=y
++CONFIG_SERIAL_8250_MANY_PORTS=y
++CONFIG_SERIAL_8250_SHARE_IRQ=y
++CONFIG_SERIAL_8250_DETECT_IRQ=y
++CONFIG_SERIAL_8250_RSA=y
++CONFIG_SERIAL_8250_OMAP=y
++CONFIG_SERIAL_OF_PLATFORM=y
++CONFIG_SERIAL_OMAP=y
++CONFIG_SERIAL_OMAP_CONSOLE=y
++CONFIG_SERIAL_DEV_BUS=y
++CONFIG_I2C_CHARDEV=y
++CONFIG_SPI=y
++CONFIG_SPI_OMAP24XX=y
++CONFIG_SPI_SPIDEV=y
++CONFIG_PINCTRL_SINGLE=y
++CONFIG_DEBUG_GPIO=y
++CONFIG_GPIO_SYSFS=y
++CONFIG_GPIO_LP87565=y
++CONFIG_GPIO_PALMAS=y
++CONFIG_GPIO_TWL4030=y
++CONFIG_POWER_AVS=y
++CONFIG_POWER_RESET=y
++CONFIG_POWER_RESET_GPIO=y
++CONFIG_BATTERY_BQ27XXX=m
++CONFIG_CHARGER_ISP1704=m
++CONFIG_CHARGER_TWL4030=m
++CONFIG_CHARGER_BQ2415X=m
++CONFIG_CHARGER_BQ24190=m
++CONFIG_CHARGER_BQ24735=m
++# CONFIG_HWMON is not set
++CONFIG_THERMAL=y
++CONFIG_THERMAL_GOV_FAIR_SHARE=y
++CONFIG_THERMAL_GOV_USER_SPACE=y
++CONFIG_CPU_THERMAL=y
++CONFIG_TI_SOC_THERMAL=m
++CONFIG_TI_THERMAL=y
++CONFIG_OMAP4_THERMAL=y
++CONFIG_OMAP5_THERMAL=y
++CONFIG_DRA752_THERMAL=y
++CONFIG_WATCHDOG=y
++CONFIG_OMAP_WATCHDOG=m
++CONFIG_TWL4030_WATCHDOG=m
++CONFIG_MFD_CPCAP=y
++CONFIG_MFD_TI_AM335X_TSCADC=m
++CONFIG_MFD_TI_LMU=m
++CONFIG_MFD_PALMAS=y
++CONFIG_MFD_TPS65217=y
++CONFIG_MFD_TI_LP873X=y
++CONFIG_MFD_TI_LP87565=y
++CONFIG_MFD_TPS65218=y
++CONFIG_MFD_TPS65910=y
++CONFIG_TWL6040_CORE=y
++CONFIG_REGULATOR_CPCAP=y
++CONFIG_REGULATOR_GPIO=y
++CONFIG_REGULATOR_LM363X=m
++CONFIG_REGULATOR_LP872X=y
++CONFIG_REGULATOR_LP873X=y
++CONFIG_REGULATOR_LP87565=y
++CONFIG_REGULATOR_PALMAS=y
++CONFIG_REGULATOR_PBIAS=y
++CONFIG_REGULATOR_TI_ABB=y
++CONFIG_REGULATOR_TPS62360=m
++CONFIG_REGULATOR_TPS65023=y
++CONFIG_REGULATOR_TPS6507X=y
++CONFIG_REGULATOR_TPS65217=y
++CONFIG_REGULATOR_TPS65218=y
++CONFIG_REGULATOR_TPS65910=y
++CONFIG_REGULATOR_TWL4030=y
++CONFIG_MEDIA_SUPPORT=m
++CONFIG_MEDIA_CAMERA_SUPPORT=y
++CONFIG_MEDIA_CEC_SUPPORT=y
++CONFIG_MEDIA_CONTROLLER=y
++CONFIG_VIDEO_V4L2_SUBDEV_API=y
++CONFIG_V4L_PLATFORM_DRIVERS=y
++CONFIG_VIDEO_OMAP3=m
++CONFIG_CEC_PLATFORM_DRIVERS=y
++# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
++CONFIG_VIDEO_TVP5150=m
++CONFIG_DRM=m
++CONFIG_DRM_OMAP=m
++CONFIG_OMAP5_DSS_HDMI=y
++CONFIG_OMAP2_DSS_SDI=y
++CONFIG_OMAP2_DSS_DSI=y
++CONFIG_DRM_OMAP_ENCODER_OPA362=m
++CONFIG_DRM_OMAP_ENCODER_TFP410=m
++CONFIG_DRM_OMAP_ENCODER_TPD12S015=m
++CONFIG_DRM_OMAP_CONNECTOR_DVI=m
++CONFIG_DRM_OMAP_CONNECTOR_HDMI=m
++CONFIG_DRM_OMAP_CONNECTOR_ANALOG_TV=m
++CONFIG_DRM_OMAP_PANEL_DPI=m
++CONFIG_DRM_OMAP_PANEL_DSI_CM=m
++CONFIG_DRM_OMAP_PANEL_SONY_ACX565AKM=m
++CONFIG_DRM_OMAP_PANEL_LGPHILIPS_LB035Q02=m
++CONFIG_DRM_OMAP_PANEL_SHARP_LS037V7DW01=m
++CONFIG_DRM_OMAP_PANEL_TPO_TD028TTEC1=m
++CONFIG_DRM_OMAP_PANEL_TPO_TD043MTEA1=m
++CONFIG_DRM_OMAP_PANEL_NEC_NL8048HL11=m
++CONFIG_DRM_TILCDC=m
++CONFIG_FB=y
++CONFIG_FIRMWARE_EDID=y
++CONFIG_FB_MODE_HELPERS=y
++CONFIG_FB_TILEBLITTING=y
++CONFIG_LCD_CLASS_DEVICE=y
++CONFIG_LCD_PLATFORM=y
++CONFIG_BACKLIGHT_CLASS_DEVICE=y
++CONFIG_BACKLIGHT_GENERIC=m
++CONFIG_BACKLIGHT_PWM=m
++CONFIG_BACKLIGHT_PANDORA=m
++CONFIG_BACKLIGHT_GPIO=m
++CONFIG_FRAMEBUFFER_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
++CONFIG_LOGO=y
++CONFIG_SOUND=m
++CONFIG_SND=m
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=m
++CONFIG_SND_PCM_OSS=m
++CONFIG_SND_VERBOSE_PRINTK=y
++CONFIG_SND_DEBUG=y
++CONFIG_SND_USB_AUDIO=m
++CONFIG_SND_SOC=m
++CONFIG_SND_EDMA_SOC=m
++CONFIG_SND_AM33XX_SOC_EVM=m
++CONFIG_SND_OMAP_SOC=m
++CONFIG_SND_OMAP_SOC_HDMI_AUDIO=m
++CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m
++CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m
++CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
++CONFIG_SND_SOC_CPCAP=m
++CONFIG_SND_SIMPLE_CARD=m
++CONFIG_SND_AUDIO_GRAPH_CARD=m
++CONFIG_HID_GENERIC=m
++CONFIG_USB_HIDDEV=y
++CONFIG_USB_KBD=m
++CONFIG_USB_MOUSE=m
++CONFIG_USB=m
++CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
++CONFIG_USB_MON=m
++CONFIG_USB_XHCI_HCD=m
++CONFIG_USB_EHCI_HCD=m
++CONFIG_USB_OHCI_HCD=m
++CONFIG_USB_ACM=m
++CONFIG_USB_STORAGE=m
++CONFIG_USB_MUSB_HDRC=m
++CONFIG_USB_MUSB_TUSB6010=m
++CONFIG_USB_MUSB_OMAP2PLUS=m
++CONFIG_USB_MUSB_AM35X=m
++CONFIG_USB_MUSB_DSPS=m
++CONFIG_USB_INVENTRA_DMA=y
++CONFIG_USB_TI_CPPI41_DMA=y
++CONFIG_USB_TUSB_OMAP_DMA=y
++CONFIG_USB_DWC3=m
++CONFIG_USB_SERIAL=m
++CONFIG_USB_SERIAL_GENERIC=y
++CONFIG_USB_SERIAL_SIMPLE=m
++CONFIG_USB_SERIAL_FTDI_SIO=m
++CONFIG_USB_SERIAL_PL2303=m
++CONFIG_USB_TEST=m
++CONFIG_NOP_USB_XCEIV=m
++CONFIG_AM335X_PHY_USB=m
++CONFIG_TWL6030_USB=m
++CONFIG_USB_GADGET=m
++CONFIG_USB_GADGET_DEBUG=y
++CONFIG_USB_GADGET_DEBUG_FILES=y
++CONFIG_USB_GADGET_DEBUG_FS=y
++CONFIG_USB_CONFIGFS=m
++CONFIG_USB_CONFIGFS_SERIAL=y
++CONFIG_USB_CONFIGFS_ACM=y
++CONFIG_USB_CONFIGFS_OBEX=y
++CONFIG_USB_CONFIGFS_NCM=y
++CONFIG_USB_CONFIGFS_ECM=y
++CONFIG_USB_CONFIGFS_ECM_SUBSET=y
++CONFIG_USB_CONFIGFS_RNDIS=y
++CONFIG_USB_CONFIGFS_EEM=y
++CONFIG_USB_CONFIGFS_MASS_STORAGE=y
++CONFIG_USB_CONFIGFS_F_LB_SS=y
++CONFIG_USB_CONFIGFS_F_FS=y
++CONFIG_USB_CONFIGFS_F_UAC1=y
++CONFIG_USB_CONFIGFS_F_UAC2=y
++CONFIG_USB_CONFIGFS_F_MIDI=y
++CONFIG_USB_CONFIGFS_F_HID=y
++CONFIG_USB_ZERO=m
++CONFIG_MMC=y
++CONFIG_SDIO_UART=y
++CONFIG_MMC_SDHCI=y
++CONFIG_MMC_SDHCI_PLTFM=y
++CONFIG_MMC_OMAP=y
++CONFIG_MMC_OMAP_HS=y
++CONFIG_MMC_SDHCI_OMAP=y
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=y
++CONFIG_LEDS_GPIO=y
++CONFIG_LEDS_USER=y
++CONFIG_RTC_CLASS=y
++CONFIG_RTC_DRV_DS1307=m
++CONFIG_RTC_DRV_M41T80=m
++CONFIG_RTC_DRV_TWL4030=m
++CONFIG_RTC_DRV_PALMAS=m
++CONFIG_RTC_DRV_OMAP=m
++CONFIG_RTC_DRV_CPCAP=m
++CONFIG_DMADEVICES=y
++# CONFIG_VIRTIO_MENU is not set
++CONFIG_OMAP_IOMMU=y
++CONFIG_OMAP_IOMMU_DEBUG=y
++CONFIG_REMOTEPROC=m
++CONFIG_OMAP_REMOTEPROC=m
++CONFIG_WKUP_M3_RPROC=m
++CONFIG_SOC_TI=y
++CONFIG_AMX3_PM=m
++CONFIG_WKUP_M3_IPC=m
++CONFIG_EXTCON_PALMAS=m
++CONFIG_EXTCON_USB_GPIO=m
++CONFIG_TI_EMIF=m
++CONFIG_TI_EMIF_SRAM=m
++CONFIG_IIO=m
++CONFIG_IIO_SW_DEVICE=m
++CONFIG_IIO_SW_TRIGGER=m
++CONFIG_IIO_ST_ACCEL_3AXIS=m
++CONFIG_CPCAP_ADC=m
++CONFIG_TI_AM335X_ADC=m
++CONFIG_BMP280=m
++CONFIG_PWM=y
++CONFIG_PWM_OMAP_DMTIMER=y
++CONFIG_PWM_TIECAP=y
++CONFIG_PWM_TIEHRPWM=y
++CONFIG_OMAP_USB2=m
++CONFIG_TI_PIPE3=y
++CONFIG_EXT2_FS=y
++CONFIG_EXT3_FS=y
++CONFIG_FANOTIFY=y
++CONFIG_QUOTA=y
++CONFIG_QFMT_V2=y
++CONFIG_MSDOS_FS=y
++CONFIG_VFAT_FS=y
++CONFIG_TMPFS=y
++CONFIG_TMPFS_POSIX_ACL=y
++CONFIG_NFS_FS=y
++CONFIG_NFS_V3_ACL=y
++CONFIG_NFS_V4=y
++CONFIG_ROOT_NFS=y
++CONFIG_NLS_CODEPAGE_437=y
++CONFIG_NLS_ISO8859_1=y
++CONFIG_SECURITY=y
++CONFIG_CRYPTO_MICHAEL_MIC=y
++CONFIG_CRYPTO_DEFLATE=y
++CONFIG_CRYPTO_LZO=y
++CONFIG_CRC_CCITT=y
++CONFIG_CRC_T10DIF=y
++CONFIG_CRC_ITU_T=y
++CONFIG_CRC7=y
++CONFIG_LIBCRC32C=y
++CONFIG_FONTS=y
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++CONFIG_PRINTK_TIME=y
++CONFIG_DEBUG_INFO=y
++CONFIG_DEBUG_INFO_SPLIT=y
++CONFIG_DEBUG_INFO_DWARF4=y
++CONFIG_MAGIC_SYSRQ=y
++CONFIG_SCHEDSTATS=y
++CONFIG_PROVE_LOCKING=y
++# CONFIG_DEBUG_BUGVERBOSE is not set
+diff --git a/board/bbb-heiafr/patches/linux/0001-keep-jtag-clock-alive-for-debugger.patch b/board/bbb-heiafr/patches/linux/0001-keep-jtag-clock-alive-for-debugger.patch
+new file mode 100644
+index 0000000000..8e36d9abc5
+--- /dev/null
++++ b/board/bbb-heiafr/patches/linux/0001-keep-jtag-clock-alive-for-debugger.patch
+@@ -0,0 +1,16 @@
++This patch keeps the debugSS clock alive, it clocks the JTAG macro and enables
++access to the SoC via JTAG after the kernel booted.
++
++Signed-off-by: Lothar Felten <lothar.felten@gmail.com>
++---
++diff -Naur linux-orig/arch/arm/mach-omap2/omap_hwmod_33xx_data.c linux-52c4aa7cdb93d61f8008f380135beaf7b8fa6593/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
++--- linux-orig/arch/arm/mach-omap2/omap_hwmod_33xx_data.c	2015-10-02 17:30:56.000000000 +0200
+++++ linux-52c4aa7cdb93d61f8008f380135beaf7b8fa6593/arch/arm/mach-omap2/omap_hwmod_33xx_data.c	2016-08-15 11:28:55.017617612 +0200
++@@ -208,6 +208,7 @@
++ 	.name		= "debugss",
++ 	.class		= &am33xx_debugss_hwmod_class,
++ 	.clkdm_name	= "l3_aon_clkdm",
+++	.flags		= (HWMOD_INIT_NO_IDLE|HWMOD_INIT_NO_RESET), /* keep debugSS clock alive for JTAG */
++ 	.main_clk	= "trace_clk_div_ck",
++ 	.prcm		= {
++ 		.omap4	= {
+diff --git a/board/bbb-heiafr/patches/linux/0002_random_ssh_key_gen.patch b/board/bbb-heiafr/patches/linux/0002_random_ssh_key_gen.patch
+new file mode 100644
+index 0000000000..dd61188343
+--- /dev/null
++++ b/board/bbb-heiafr/patches/linux/0002_random_ssh_key_gen.patch
+@@ -0,0 +1,16 @@
++ drivers/char/random.c | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++diff --git a/drivers/char/random.c b/drivers/char/random.c
++index c75b6cdf0053..688b05a3381b 100644
++--- a/drivers/char/random.c
+++++ b/drivers/char/random.c
++@@ -428,7 +428,7 @@ struct crng_state primary_crng = {
++  * its value (from 0->1->2).
++  */
++ static int crng_init = 0;
++-#define crng_ready() (likely(crng_init > 1))
+++#define crng_ready() (likely(crng_init > 0))
++ static int crng_init_cnt = 0;
++ static unsigned long crng_global_init_time = 0;
++ #define CRNG_INIT_CNT_THRESH (2*CHACHA20_KEY_SIZE)
+diff --git a/board/bbb-heiafr/patches/linux/0003-bbb-heiafr-seg7-gpio.patch b/board/bbb-heiafr/patches/linux/0003-bbb-heiafr-seg7-gpio.patch
+new file mode 100644
+index 0000000000..d5e4d6393c
+--- /dev/null
++++ b/board/bbb-heiafr/patches/linux/0003-bbb-heiafr-seg7-gpio.patch
+@@ -0,0 +1,37 @@
++ arch/arm/boot/dts/am335x-bone-common.dtsi | 16 ++++++++++++++++
++ 1 file changed, 16 insertions(+)
++
++diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
++index 73b514dddf65..be3fe0006c7a 100644
++--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
+++++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
++@@ -55,6 +55,20 @@
++ 			linux,default-trigger = "mmc1";
++ 			default-state = "off";
++ 		};
+++
+++		dig1 {
+++			label = "beaglebone:seg7:dig1";
+++			gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
+++			linux,default-trigger = "dig1";
+++			default-state = "off";
+++		};
+++
+++		dig2 {
+++			label = "beaglebone:seg7:dig2";
+++			gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
+++			linux,default-trigger = "dig2";
+++			default-state = "off";
+++		};
++ 	};
++ 
++ 	vmmcsd_fixed: fixedregulator0 {
++@@ -75,6 +89,8 @@
++ 			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 */
+++			AM33XX_IOPAD(0x890, PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* gpio2.2 */
+++			AM33XX_IOPAD(0x894, PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* gpio2.3 */
++ 		>;
++ 	};
++ 
+diff --git a/board/bbb-heiafr/patches/uboot/0001-board-seg7-gpio.patch b/board/bbb-heiafr/patches/uboot/0001-board-seg7-gpio.patch
+new file mode 100644
+index 0000000000..d498df07e3
+--- /dev/null
++++ b/board/bbb-heiafr/patches/uboot/0001-board-seg7-gpio.patch
+@@ -0,0 +1,28 @@
++ board/ti/am335x/board.c | 7 +++++++
++ 1 file changed, 7 insertions(+)
++
++diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
++index d67f94ad47..1490a1686a 100644
++--- a/board/ti/am335x/board.c
+++++ b/board/ti/am335x/board.c
++@@ -52,6 +52,10 @@ DECLARE_GLOBAL_DATA_PTR;
++ #define GPIO_ETH0_MODE		GPIO_TO_PIN(0, 11)
++ #define GPIO_ETH1_MODE		GPIO_TO_PIN(1, 26)
++ 
+++#define GPIO_SEG7_DIG1_MODE		GPIO_TO_PIN(2, 2)
+++#define GPIO_SEG7_DIG2_MODE		GPIO_TO_PIN(2, 3)
+++
+++
++ static struct ctrl_dev *cdev = (struct ctrl_dev *)CTRL_DEVICE_BASE;
++ 
++ #define GPIO0_RISINGDETECT	(AM33XX_GPIO0_BASE + OMAP_GPIO_RISINGDETECT)
++@@ -708,6 +712,9 @@ int board_init(void)
++ 	hw_watchdog_init();
++ #endif
++ 
+++	REQUEST_AND_CLR_GPIO(GPIO_SEG7_DIG1_MODE);
+++	REQUEST_AND_CLR_GPIO(GPIO_SEG7_DIG2_MODE);
+++
++ 	gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
++ #if defined(CONFIG_NOR) || defined(CONFIG_NAND)
++ 	gpmc_init();
+diff --git a/configs/bbb-heiafr_defconfig b/configs/bbb-heiafr_defconfig
+new file mode 100644
+index 0000000000..7500799cdd
+--- /dev/null
++++ b/configs/bbb-heiafr_defconfig
+@@ -0,0 +1,81 @@
++BR2_arm=y
++BR2_cortex_a8=y
++BR2_GLOBAL_PATCH_DIR="board/bbb-heiafr/patches"
++BR2_TOOLCHAIN_EXTERNAL=y
++BR2_PACKAGE_HOST_GDB=y
++BR2_GDB_VERSION_8_2=y
++BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
++BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
++BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/bbb-heiafr/genimage.cfg"
++BR2_LINUX_KERNEL=y
++BR2_LINUX_KERNEL_CUSTOM_VERSION=y
++BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.21"
++BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
++BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/bbb-heiafr/linux_defconfig"
++BR2_LINUX_KERNEL_DTS_SUPPORT=y
++BR2_LINUX_KERNEL_INTREE_DTS_NAME="am335x-boneblack"
++BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT=y
++BR2_PACKAGE_LINUX_TOOLS_CPUPOWER=y
++BR2_PACKAGE_LINUX_TOOLS_PERF=y
++BR2_PACKAGE_LINUX_TOOLS_PERF_TUI=y
++BR2_PACKAGE_LINUX_TOOLS_TMON=y
++BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
++BR2_PACKAGE_GZIP=y
++BR2_PACKAGE_ZIP=y
++BR2_PACKAGE_GDB=y
++BR2_PACKAGE_GDB_SERVER=y
++BR2_PACKAGE_GDB_DEBUGGER=y
++BR2_PACKAGE_LSOF=y
++BR2_PACKAGE_LTRACE=y
++BR2_PACKAGE_STRACE=y
++BR2_PACKAGE_DOSFSTOOLS=y
++BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y
++BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y
++BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y
++BR2_PACKAGE_E2FSPROGS_DEBUGFS=y
++BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
++BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
++BR2_PACKAGE_E2TOOLS=y
++BR2_PACKAGE_MMC_UTILS=y
++BR2_PACKAGE_SSHFS=y
++BR2_PACKAGE_I2C_TOOLS=y
++BR2_PACKAGE_MEMTOOL=y
++BR2_PACKAGE_PARTED=y
++BR2_PACKAGE_SPI_TOOLS=y
++BR2_PACKAGE_UBOOT_TOOLS=y
++BR2_PACKAGE_MICROPYTHON=y
++BR2_PACKAGE_MICROPYTHON_LIB=y
++BR2_PACKAGE_LIBZIP=y
++BR2_PACKAGE_CJSON=y
++BR2_PACKAGE_JSON_C=y
++BR2_PACKAGE_JSON_FOR_MODERN_CPP=y
++BR2_PACKAGE_LIBYAML=y
++BR2_PACKAGE_YAML_CPP=y
++BR2_PACKAGE_EVENTLOG=y
++BR2_PACKAGE_IFUPDOWN=y
++BR2_PACKAGE_IPUTILS=y
++BR2_PACKAGE_RPCBIND=y
++BR2_PACKAGE_WHICH=y
++BR2_PACKAGE_HTOP=y
++BR2_PACKAGE_PROCPS_NG=y
++BR2_PACKAGE_UTIL_LINUX_FSCK=y
++BR2_PACKAGE_UTIL_LINUX_KILL=y
++BR2_PACKAGE_VIM=y
++BR2_TARGET_ROOTFS_EXT2=y
++BR2_TARGET_ROOTFS_EXT2_4=y
++BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
++BR2_TARGET_UBOOT=y
++BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
++BR2_TARGET_UBOOT_CUSTOM_VERSION=y
++BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01"
++BR2_TARGET_UBOOT_BOARD_DEFCONFIG="am335x_boneblack"
++BR2_TARGET_UBOOT_NEEDS_DTC=y
++# BR2_TARGET_UBOOT_FORMAT_BIN is not set
++BR2_TARGET_UBOOT_FORMAT_IMG=y
++BR2_TARGET_UBOOT_SPL=y
++BR2_TARGET_UBOOT_SPL_NAME="MLO"
++BR2_TARGET_UBOOT_BOOT_SCRIPT=y
++BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="board/bbb-heiafr/boot.cmd"
++BR2_PACKAGE_HOST_DOSFSTOOLS=y
++BR2_PACKAGE_HOST_GENIMAGE=y
++BR2_PACKAGE_HOST_MTOOLS=y