Absolutely possible. I've been using barebox as a main bootloader for imx25 SoC. There is no barebox in a public packages though(I've never met it), but you can build your own "bootloader-barebox" package. Just follow these links: https://vivekian2.wordpress.com/2007/03/28/building-your-own-package-for-openwrt/ http://prplfoundation.org/wiki/Creating_an_OpenWrt_package_for_a_web_page
I'm not sure about framework, but you probably know that you can create an application. http://www.denx.de/wiki/view/DULG/UBootStandalone
Here is an example of Makefile for barebox:
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=barebox
PKG_VERSION:=0.1
PKG_RELEASE:=0
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)
PKG_SOURCE:=$(PKG_NAME).tar.bz2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=GIT-URL
PKG_SOURCE_VERSION:=93aeafd04365cdd5dcb958cc6982c672163154ee
PKG_SOURCE_SUBDIR:=$(PKG_NAME)
PKG_MD5SUM:=
PKG_TARGETS:=bin
include $(INCLUDE_DIR)/package.mk
define barebox/Default
TITLE:=
CONFIG:=
IMAGE:=
endef
define Package/barebox/template
define Package/barebox-$(1)
SECTION:=boot
CATEGORY:=Boot Loaders
TITLE:=$(2)
DEPENDS:=@TARGET_$(1)
URL:=http://localhost/
DEFAULT:=y if (TARGET_$(1)_Default)
VARIANT:=$(1)
endef
endef
define BuildBareboxPackage
$(eval $(barebox/Default))
$(eval $(barebox/$(1)))
$(call Package/barebox/template,$(1),$(TITLE))
endef
define barebox/imx
TITLE:=Barebox for the imx.
endef
BAREBOXS:=imx
ifdef BUILD_VARIANT
$(eval $(call barebox/$(BUILD_VARIANT)))
BAREBOX_CONFIG:=$(if $(CONFIG),$(CONFIG),$(BUILD_VARIANT))
BAREBOX_IMAGE:=$(if $(IMAGE),$(IMAGE),openwrt-$(BOARD)-$(BUILD_VARIANT)-barebox.bin)
endif
define Build/Prepare
$(call Build/Prepare/Default)
endef
define Build/Configure
$(CP) ./barebox-config $(PKG_BUILD_DIR)/.config
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
CROSS_COMPILE=$(TARGET_CROSS) ARCH=arm
endef
define Package/barebox/install/template
define Package/barebox-$(1)/install
$(CP) $(PKG_BUILD_DIR)/barebox.bin $(BIN_DIR)/$(2)
endef
endef
$(foreach u,$(BAREBOXS), \
$(eval $(call Package/barebox/install/template,$(u),openwrt-$(BOARD)-$(u)-barebox.bin)) \
)
$(foreach u,$(BAREBOXS), \
$(eval $(call BuildBareboxPackage,$(u))) \
$(eval $(call BuildPackage,barebox-$(u))) \
)