From 4958db9a600668f1b2c36bcf58ef7e0b3eeee439 Mon Sep 17 00:00:00 2001 From: Jan Luebbe Date: Thu, 9 May 2013 11:48:27 +0200 Subject: vexpress: add barebox 2013.05.0 Also add the new script run-barebox, which starts barebox in qemu. Barebox then loads the kernel from a NOR flash and boots it. Signed-off-by: Jan Luebbe --- barebox-defaultenv/boot/nor | 11 + barebox-defaultenv/boot/nor-sd | 10 + barebox-defaultenv/config-board | 8 + barebox-defaultenv/init/mtdparts-nor | 11 + barebox.config | 399 +++++++++++++++++++++++++++++++++++ config/images/nor0.config | 36 ++++ kernelconfig | 3 +- platformconfig | 18 +- platforms/image-nor0.in | 9 + rules/image-nor0.make | 33 +++ run-barebox | 19 ++ 11 files changed, 551 insertions(+), 6 deletions(-) create mode 100644 barebox-defaultenv/boot/nor create mode 100644 barebox-defaultenv/boot/nor-sd create mode 100644 barebox-defaultenv/config-board create mode 100644 barebox-defaultenv/init/mtdparts-nor create mode 100644 barebox.config create mode 100644 config/images/nor0.config create mode 100644 platforms/image-nor0.in create mode 100644 rules/image-nor0.make create mode 100755 run-barebox diff --git a/barebox-defaultenv/boot/nor b/barebox-defaultenv/boot/nor new file mode 100644 index 0000000..434035d --- /dev/null +++ b/barebox-defaultenv/boot/nor @@ -0,0 +1,11 @@ +#!/bin/sh + +if [ "$1" = menu ]; then + boot-menu-add-entry "$0" "kernel & rootfs on NOR flash" + exit +fi + +global.bootm.image=/dev/nor0.kernel +#global.bootm.oftree=/dev/nor0.oftree +global.bootm.initrd=/dev/nor0.root +global.linux.bootargs.dyn.root="" diff --git a/barebox-defaultenv/boot/nor-sd b/barebox-defaultenv/boot/nor-sd new file mode 100644 index 0000000..392750e --- /dev/null +++ b/barebox-defaultenv/boot/nor-sd @@ -0,0 +1,10 @@ +#!/bin/sh + +if [ "$1" = menu ]; then + boot-menu-add-entry "$0" "kernel on NOR flash & rootfs on SD card" + exit +fi + +global.bootm.image=/dev/nor0.kernel +#global.bootm.oftree=/dev/nor0.oftree +global.linux.bootargs.dyn.root="root=/dev/mmcblk0p1 rootfstype=ext2 rootwait rw" diff --git a/barebox-defaultenv/config-board b/barebox-defaultenv/config-board new file mode 100644 index 0000000..1563d13 --- /dev/null +++ b/barebox-defaultenv/config-board @@ -0,0 +1,8 @@ +#!/bin/sh + +# board defaults, do not change in running system. Change /env/config +# instead + +global.hostname=vexpress +global.boot.default=nor-sd +global.linux.bootargs.base="console=ttyAMA0,115200n8" diff --git a/barebox-defaultenv/init/mtdparts-nor b/barebox-defaultenv/init/mtdparts-nor new file mode 100644 index 0000000..4089433 --- /dev/null +++ b/barebox-defaultenv/init/mtdparts-nor @@ -0,0 +1,11 @@ +#!/bin/sh + +if [ "$1" = menu ]; then + init-menu-add-entry "$0" "NOR partitions" + exit +fi + +mtdparts="512k(nor0.barebox),256k(nor0.bareboxenv),256k(nor0.oftree),4M(nor0.kernel),-(nor0.root)" +kernelname="physmap-flash" + +mtdparts-add -d nor0 -k ${kernelname} -p ${mtdparts} diff --git a/barebox.config b/barebox.config new file mode 100644 index 0000000..595e12d --- /dev/null +++ b/barebox.config @@ -0,0 +1,399 @@ +# +# Automatically generated file; DO NOT EDIT. +# Barebox/arm 2013.05.0 Configuration +# +CONFIG_ARM=y +CONFIG_ARM_LINUX=y + +# +# System Type +# +# CONFIG_BUILTIN_DTB is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCM2835 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_MXS is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_NOMADIK is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_S3C24xx is not set +# CONFIG_ARCH_S5PCxx is not set +# CONFIG_ARCH_S3C64xx is not set +# CONFIG_ARCH_VERSATILE is not set +CONFIG_ARCH_VEXPRESS=y +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_ZYNQ is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_V7=y +CONFIG_CPU_32v7=y + +# +# processor features +# +# CONFIG_BOOT_ENDIANNESS_SWITCH is not set +CONFIG_ARCH_TEXT_BASE=0x83f00000 +CONFIG_BOARDINFO="ARM Vexpress" +CONFIG_BAREBOX_MAX_IMAGE_SIZE=0xffffffff +CONFIG_MACH_VEXPRESS=y +CONFIG_AEABI=y +# CONFIG_THUMB2_BAREBOX is not set +# CONFIG_ARM_BOARD_APPEND_ATAG is not set + +# +# Arm specific settings +# +CONFIG_CMD_ARM_CPUINFO=y +CONFIG_CMD_ARM_MMUINFO=y +# CONFIG_CPU_V7_DCACHE_SKIP is not set +CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y +CONFIG_ARM_EXCEPTIONS=y +CONFIG_ARM_UNWIND=y +CONFIG_DEFCONFIG_LIST="$ARCH_DEFCONFIG" +CONFIG_GREGORIAN_CALENDER=y +CONFIG_HAS_KALLSYMS=y +CONFIG_HAS_MODULES=y +CONFIG_CMD_MEMORY=y +CONFIG_ENV_HANDLING=y +CONFIG_FILETYPE=y +CONFIG_BINFMT=y +CONFIG_UIMAGE=y +CONFIG_GLOBALVAR=y +CONFIG_STDDEV=y + +# +# General Settings +# +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_BANNER=y +CONFIG_MEMINFO=y +CONFIG_ENVIRONMENT_VARIABLES=y + +# +# memory layout +# +CONFIG_HAVE_PBL_IMAGE=y +CONFIG_HAVE_IMAGE_COMPRESSION=y +# CONFIG_PBL_IMAGE is not set +# CONFIG_MMU is not set +CONFIG_HAVE_CONFIGURABLE_TEXT_BASE=y +CONFIG_TEXT_BASE=0x68000000 +CONFIG_BAREBOX_MAX_BARE_INIT_SIZE=0xffffffff +CONFIG_STACK_SIZE=0x8000 +CONFIG_MALLOC_SIZE=0x2000000 +# CONFIG_BROKEN is not set +# CONFIG_EXPERIMENTAL is not set +# CONFIG_MALLOC_DLMALLOC is not set +CONFIG_MALLOC_TLSF=y +CONFIG_KALLSYMS=y +# CONFIG_RELOCATABLE is not set +CONFIG_PROMPT="vexpress: " +CONFIG_BAUDRATE=115200 +CONFIG_LONGHELP=y +CONFIG_CBSIZE=1024 +CONFIG_MAXARGS=16 +CONFIG_SHELL_HUSH=y +# CONFIG_SHELL_SIMPLE is not set +# CONFIG_SHELL_NONE is not set +CONFIG_GLOB=y +CONFIG_GLOB_SORT=y +CONFIG_PROMPT_HUSH_PS2="> " +CONFIG_HUSH_FANCY_PROMPT=y +CONFIG_HUSH_GETOPT=y +CONFIG_CMDLINE_EDITING=y +CONFIG_AUTO_COMPLETE=y +CONFIG_MENU=y +CONFIG_PASSWORD=y +CONFIG_PASSWD_SUM_MD5=y +# CONFIG_PASSWD_SUM_SHA1 is not set +# CONFIG_PASSWD_SUM_SHA256 is not set +CONFIG_DYNAMIC_CRC_TABLE=y +CONFIG_ERRNO_MESSAGES=y +CONFIG_TIMESTAMP=y +CONFIG_CONSOLE_FULL=y +# CONFIG_CONSOLE_SIMPLE is not set +# CONFIG_CONSOLE_NONE is not set +CONFIG_CONSOLE_ACTIVATE_FIRST=y +# CONFIG_CONSOLE_ACTIVATE_ALL is not set +# CONFIG_CONSOLE_ACTIVATE_NONE is not set +CONFIG_PARTITION=y +# CONFIG_PARTITION_DISK is not set +CONFIG_DEFAULT_ENVIRONMENT=y +CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y +# CONFIG_DEFAULT_ENVIRONMENT_GENERIC is not set +CONFIG_DEFAULT_ENVIRONMENT_PATH="" +# CONFIG_BAREBOXENV_TARGET is not set +# CONFIG_POLLER is not set +# CONFIG_RESET_SOURCE is not set + +# +# Debugging +# +CONFIG_COMPILE_LOGLEVEL=6 +# CONFIG_DEBUG_INFO is not set +# CONFIG_ENABLE_FLASH_NOISE is not set +# CONFIG_ENABLE_PARTITION_NOISE is not set +# CONFIG_ENABLE_DEVICE_NOISE is not set +# CONFIG_DEBUG_LL is not set +CONFIG_HAS_DEBUG_LL=y +CONFIG_COMMAND_SUPPORT=y +# CONFIG_HAS_POWEROFF is not set + +# +# commands +# + +# +# scripting +# +CONFIG_CMD_EDIT=y +CONFIG_CMD_SLEEP=y +CONFIG_CMD_MSLEEP=y +CONFIG_CMD_SAVEENV=y +CONFIG_CMD_LOADENV=y +CONFIG_CMD_EXPORT=y +CONFIG_CMD_PRINTENV=y +CONFIG_CMD_READLINE=y +CONFIG_CMD_LET=y +CONFIG_CMD_TRUE=y +CONFIG_CMD_FALSE=y +CONFIG_CMD_MENU=y +CONFIG_CMD_MENU_MANAGEMENT=y +CONFIG_CMD_LOGIN=y +CONFIG_CMD_PASSWD=y +CONFIG_PASSWD_MODE_HIDE=y +# CONFIG_PASSWD_MODE_STAR is not set +# CONFIG_PASSWD_MODE_CLEAR is not set +CONFIG_CMD_TIME=y +CONFIG_CMD_GLOBAL=y + +# +# file commands +# +CONFIG_CMD_LS=y +CONFIG_CMD_RM=y +CONFIG_CMD_CAT=y +CONFIG_CMD_MKDIR=y +CONFIG_CMD_RMDIR=y +CONFIG_CMD_CP=y +CONFIG_CMD_PWD=y +CONFIG_CMD_CD=y +CONFIG_CMD_MOUNT=y +CONFIG_CMD_UMOUNT=y +CONFIG_CMD_AUTOMOUNT=y +CONFIG_CMD_BASENAME=y +CONFIG_CMD_DIRNAME=y +CONFIG_CMD_LN=y +CONFIG_CMD_READLINK=y +CONFIG_CMD_TFTP=y +CONFIG_CMD_FILETYPE=y + +# +# console +# +CONFIG_CMD_CLEAR=y +CONFIG_CMD_ECHO=y +CONFIG_CMD_ECHO_E=y + +# +# memory +# +CONFIG_CMD_LOADB=y +# CONFIG_CMD_LOADY is not set +# CONFIG_CMD_LOADS is not set +CONFIG_CMD_MEMINFO=y +CONFIG_CMD_IOMEM=y +CONFIG_CMD_CRC=y +CONFIG_CMD_CRC_CMP=y +CONFIG_CMD_DIGEST=y +CONFIG_CMD_MD5SUM=y +# CONFIG_CMD_SHA1SUM is not set +CONFIG_CMD_SHA256SUM=y +# CONFIG_CMD_SHA224SUM is not set + +# +# flash +# +CONFIG_CMD_FLASH=y + +# +# booting +# +CONFIG_CMD_BOOTM=y +CONFIG_CMD_BOOTM_SHOW_TYPE=y +CONFIG_CMD_BOOTM_VERBOSE=y +CONFIG_CMD_BOOTM_INITRD=y +CONFIG_CMD_BOOTM_OFTREE=y +CONFIG_CMD_BOOTM_OFTREE_UIMAGE=y +# CONFIG_CMD_BOOTM_AIMAGE is not set +CONFIG_CMD_UIMAGE=y +# CONFIG_CMD_BOOTZ is not set +# CONFIG_CMD_BOOTU is not set +CONFIG_FLEXIBLE_BOOTARGS=y +CONFIG_CMD_RESET=y +CONFIG_CMD_GO=y +CONFIG_CMD_OFTREE=y +# CONFIG_CMD_OF_PROPERTY is not set +# CONFIG_CMD_OF_NODE is not set + +# +# testing +# +CONFIG_CMD_MTEST=y +CONFIG_CMD_MTEST_ALTERNATIVE=y + +# +# video command +# +# CONFIG_CMD_BAREBOX_UPDATE is not set +CONFIG_CMD_TIMEOUT=y +CONFIG_CMD_PARTITION=y +CONFIG_CMD_TEST=y +CONFIG_CMD_VERSION=y +CONFIG_CMD_HELP=y +CONFIG_CMD_MAGICVAR=y +CONFIG_CMD_MAGICVAR_HELP=y +CONFIG_CMD_DEVINFO=y +CONFIG_CMD_UNCOMPRESS=y +# CONFIG_CMD_MIITOOL is not set +CONFIG_CMD_CLK=y +CONFIG_NET=y +CONFIG_NET_DHCP=y +CONFIG_NET_NFS=y +CONFIG_NET_PING=y +CONFIG_NET_NETCONSOLE=y +CONFIG_NET_RESOLV=y + +# +# Drivers +# +CONFIG_OFTREE=y +CONFIG_DTC=y +CONFIG_OFDEVICE=y +CONFIG_OF_NET=y +CONFIG_ARM_AMBA=y + +# +# serial drivers +# +# CONFIG_DRIVER_SERIAL_ARM_DCC is not set +CONFIG_SERIAL_AMBA_PL011=y +# CONFIG_DRIVER_SERIAL_NS16550 is not set +# CONFIG_DRIVER_SERIAL_CADENCE is not set +CONFIG_PHYLIB=y + +# +# Network drivers +# + +# +# phylib +# + +# +# MII PHY device drivers +# +# CONFIG_MICREL_PHY is not set +# CONFIG_SMSC_PHY is not set +# CONFIG_DRIVER_NET_CALXEDA_XGMAC is not set +# CONFIG_DRIVER_NET_SMC911X is not set +CONFIG_DRIVER_NET_SMC91111=y +# CONFIG_DRIVER_NET_KS8851_MLL is not set + +# +# SPI drivers +# +# CONFIG_SPI is not set +# CONFIG_I2C is not set +CONFIG_MTD=y +CONFIG_MTD_WRITE=y +# CONFIG_MTD_OOB_DEVICE is not set +# CONFIG_MTD_RAW_DEVICE is not set + +# +# Self contained MTD devices +# +# CONFIG_MTD_DOCG3 is not set +CONFIG_DRIVER_CFI=y +CONFIG_DRIVER_CFI_INTEL=y +# CONFIG_DRIVER_CFI_AMD is not set +# CONFIG_DRIVER_CFI_BANK_WIDTH_1 is not set +# CONFIG_DRIVER_CFI_BANK_WIDTH_2 is not set +CONFIG_DRIVER_CFI_BANK_WIDTH_4=y +# CONFIG_DRIVER_CFI_BANK_WIDTH_8 is not set +CONFIG_CFI_BUFFER_WRITE=y +# CONFIG_NAND is not set +# CONFIG_UBI is not set +# CONFIG_DISK is not set +# CONFIG_USB is not set +# CONFIG_VIDEO is not set +# CONFIG_MCI is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_COMMON_CLK=y +CONFIG_AMBA_SP804=y + +# +# MFD +# +# CONFIG_MFD_SYSCON is not set +# CONFIG_MISC_DEVICES is not set +# CONFIG_LED is not set + +# +# EEPROM support +# + +# +# Input device support +# +# CONFIG_WATCHDOG is not set +# CONFIG_PWM is not set + +# +# DMA support +# +# CONFIG_W1 is not set + +# +# Filesystem support +# +CONFIG_FS=y +CONFIG_FS_AUTOMOUNT=y +# CONFIG_FS_CRAMFS is not set +# CONFIG_FS_EXT4 is not set +CONFIG_FS_RAMFS=y +CONFIG_FS_DEVFS=y +CONFIG_FS_TFTP=y +CONFIG_FS_NFS=y +# CONFIG_FS_FAT is not set + +# +# Library routines +# +CONFIG_PARAMETER=y +CONFIG_UNCOMPRESS=y +# CONFIG_ZLIB is not set +# CONFIG_BZLIB is not set +# CONFIG_GENERIC_FIND_NEXT_BIT is not set +CONFIG_PROCESS_ESCAPE_SEQUENCE=y +# CONFIG_LZO_DECOMPRESS is not set +CONFIG_QSORT=y + +# +# Library gui routines +# +CONFIG_CRC32=y +CONFIG_CRC16=y +CONFIG_DIGEST=y +CONFIG_MD5=y +CONFIG_SHA1=y +# CONFIG_SHA224 is not set +CONFIG_SHA256=y diff --git a/config/images/nor0.config b/config/images/nor0.config new file mode 100644 index 0000000..3d7a41d --- /dev/null +++ b/config/images/nor0.config @@ -0,0 +1,36 @@ +flash nor-64M-256k { + pebsize = 262144 + lebsize = 262016 + numpebs = 512 + minimum-io-unit-size = 1 + vid-header-offset = 64 + sub-page-size = 1 +} + +image @IMAGE@ { + flash { + } + flashtype = "nor-64M-256k" + size = 64M + partition barebox { + image = "barebox-image" + size = 512k + } + partition bareboxenv { + image = "barebox-default-environment" + size = 256k + } +# partition oftree { +# size = 256k +# } + partition kernel { + image = "linuximage" + offset = 1M + size = 4M + } + partition root { + image = "root.cpio.gz" + size = 0 + } +} + diff --git a/kernelconfig b/kernelconfig index 3e6b4df..3552733 100644 --- a/kernelconfig +++ b/kernelconfig @@ -671,7 +671,8 @@ CONFIG_MTD_CFI_UTIL=y # Mapping drivers for chip access # # CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PHYSMAP is not set +CONFIG_MTD_PHYSMAP=y +# CONFIG_MTD_PHYSMAP_COMPAT is not set # CONFIG_MTD_PHYSMAP_OF is not set # CONFIG_MTD_PLATRAM is not set diff --git a/platformconfig b/platformconfig index 61d49e7..3b8290c 100644 --- a/platformconfig +++ b/platformconfig @@ -1,8 +1,8 @@ # # Automatically generated file; DO NOT EDIT. -# PTXdist 2013.03.0 +# PTXdist 2013.05.0 # -PTXCONF_PLATFORMCONFIG_VERSION="2013.03.0" +PTXCONF_PLATFORMCONFIG_VERSION="2013.05.0" PTXCONF_RUNTIME=y PTXCONF_BUILDTIME=y PTXCONF__platformconfig_MAGIC__=y @@ -19,7 +19,7 @@ PTXCONF__platformconfig_MAGIC__=y # ------------------------------------ # PTXCONF_PLATFORM="pengutronix-vexpress" -PTXCONF_PLATFORM_VERSION="-2013.03.0" +PTXCONF_PLATFORM_VERSION="-2013.05.0" # # architecture @@ -141,8 +141,15 @@ PTXCONF_CONSOLE_SPEED="115200" # PTXCONF_AT91BOOTSTRAP is not set # PTXCONF_AT91BOOTSTRAP2 is not set PTXCONF_BAREBOX_ARCH_STRING="arm" -# PTXCONF_BAREBOX is not set +PTXCONF_BAREBOX=y +PTXCONF_BAREBOX_VERSION="2013.05.0" +PTXCONF_BAREBOX_MD5="235ea8ba92985bcabbab378ad606ad69" +PTXCONF_BAREBOX_CONFIG="barebox.config" +PTXCONF_BAREBOX_EXTRA_ENV=y +PTXCONF_BAREBOX_EXTRA_ENV_PATH="${PTXDIST_PLATFORMCONFIGDIR}/barebox-defaultenv" +# PTXCONF_BAREBOX_BAREBOXENV is not set # PTXCONF_BAREBOX_MLO is not set +PTXCONF_BOOTLOADER=y # PTXCONF_GRUB is not set # PTXCONF_HOST_MXS_UTILS is not set # PTXCONF_U_BOOT_V2 is not set @@ -189,7 +196,8 @@ PTXCONF_IMAGE_KERNEL_INSTALL_EARLY=y # new image creation options # # PTXCONF_IMAGE_BOOT_MLO is not set -# PTXCONF_IMAGE_ROOT_CPIO_GZ is not set +PTXCONF_IMAGE_NOR0=y +PTXCONF_IMAGE_ROOT_CPIO_GZ=y # PTXCONF_IMAGE_ROOT_CPIO is not set PTXCONF_IMAGE_ROOT_EXT=y PTXCONF_IMAGE_ROOT_EXT_SIZE="128M" diff --git a/platforms/image-nor0.in b/platforms/image-nor0.in new file mode 100644 index 0000000..dcca99f --- /dev/null +++ b/platforms/image-nor0.in @@ -0,0 +1,9 @@ +## SECTION=image2 + +config IMAGE_NOR0 + tristate + select HOST_GENIMAGE + select BAREBOX + select KERNEL + select IMAGE_ROOT_CPIO_GZ + prompt "Generate images/nor0.img" diff --git a/rules/image-nor0.make b/rules/image-nor0.make new file mode 100644 index 0000000..1d8361c --- /dev/null +++ b/rules/image-nor0.make @@ -0,0 +1,33 @@ +# -*-makefile-*- +# +# Copyright (C) 2013 by Jan Luebbe +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +IMAGE_PACKAGES-$(PTXCONF_IMAGE_NOR0) += image-nor0 + +# +# Paths and names +# +IMAGE_NOR0 := image-nor0 +IMAGE_NOR0_DIR := $(BUILDDIR)/$(IMAGE_NOR0) +IMAGE_NOR0_IMAGE := $(IMAGEDIR)/nor0.img +IMAGE_NOR0_CONFIG := nor0.config + +# ---------------------------------------------------------------------------- +# Image +# ---------------------------------------------------------------------------- + +$(IMAGE_NOR0_IMAGE): + @$(call targetinfo) + @$(call image/genimage, IMAGE_NOR0) + @$(call finish) + +# vim: syntax=make diff --git a/run-barebox b/run-barebox new file mode 100755 index 0000000..154ff20 --- /dev/null +++ b/run-barebox @@ -0,0 +1,19 @@ +#!/bin/bash +# +# For some information about how to work with qemu for ARM, please +# refer: http://fedoraproject.org/wiki/Architectures/ARM/HowToQemu + +. $(dirname $0)/qemu-common + +# do the job +${QEMU_EXEC} ${QEMU_NOGRAPHIC} \ + -M ${QEMU_MACHINE} \ + -m 1024 \ + -no-reboot \ + -net nic,vlan=1 \ + ${QEMU_NET} \ + ${QEMU_REDIR} \ + -kernel ${PTXDIST_PLATFORMDIR}/images/barebox-image \ + -pflash ${PTXDIST_PLATFORMDIR}/images/nor0.img \ + -sd ${PTXDIST_PLATFORMDIR}/images/sd.img \ + -smp 2 -- cgit v1.2.3