From 034d8f478c1542a22581aaf84d6780e01f4120b0 Mon Sep 17 00:00:00 2001 From: Rod Whitby Date: Sat, 18 Aug 2007 05:22:21 +0000 Subject: apex: Enabled support for 16MiB NSLU2 support --- packages/apex/apex-nslu2-16mb_1.5.8.bb | 69 +++++++++++++++ packages/apex/apex-nslu2_1.5.8.bb | 69 +++++++++++++++ packages/apex/apex_1.5.8.bb | 68 -------------- packages/apex/nslu2/defconfig | 5 +- packages/apex/nslu2/defconfig-16mb | 156 +++++++++++++++++++++++++++++++++ 5 files changed, 296 insertions(+), 71 deletions(-) create mode 100644 packages/apex/apex-nslu2-16mb_1.5.8.bb create mode 100644 packages/apex/apex-nslu2_1.5.8.bb delete mode 100644 packages/apex/apex_1.5.8.bb create mode 100644 packages/apex/nslu2/defconfig-16mb diff --git a/packages/apex/apex-nslu2-16mb_1.5.8.bb b/packages/apex/apex-nslu2-16mb_1.5.8.bb new file mode 100644 index 0000000000..e5bf98a6c8 --- /dev/null +++ b/packages/apex/apex-nslu2-16mb_1.5.8.bb @@ -0,0 +1,69 @@ +DESCRIPTION = "APEX Boot Loader" +SECTION = "" +PRIORITY = "optional" +HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader" +LICENSE = "GPL" +# PR = "r1" + +# Note that this recipe only works for the NSLU2 at the moment. +# Patches to make it more generic are welcome. + +SRC_URI = "ftp://ftp.buici.com/pub/apex/apex-${PV}.tar.gz \ + file://defconfig-16mb" +S = ${WORKDIR}/apex-${PV} + +CMDLINE_CONSOLE = "console=${@bb.data.getVar("KERNEL_CONSOLE",d,1) or "ttyS0"}" + +CMDLINE_ROOT = "root=/dev/mtdblock2 rootfstype=jffs2 rw" + +CMDLINE_ROOT_nslu2 = "root=/dev/mtdblock4 rootfstype=jffs2 rw init=/linuxrc" +CMDLINE_ROOT_dsmg600 = "root=/dev/mtdblock2 rootfstype=jffs2 rw init=/linuxrc" +CMDLINE_ROOT_nas100d = "root=/dev/mtdblock2 rootfstype=jffs2 rw init=/linuxrc" + +EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}" + +oe_runmake() { + oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@" + make ${PARALLEL_MAKE} LDFLAGS= CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@" || die "oe_runmake failed" +} + +# Set the correct CONFIG_USER_xxx_ENDIAN and CONFIG_CMDLINE at the head +# of the .config file and remove any settings in defconfig then append +# defconfig to .config +do_configure() { + rm -f ${S}/.config + . ${CONFIG_SITE} + if [ "x$ac_cv_c_bigendian" = "xyes" -o "x$ac_cv_c_littleendian" = "xno" ]; then + sed -e 's/.*CONFIG_USER_BIGENDIAN.*/CONFIG_USER_BIGENDIAN=y/' \ + -e 's/.*CONFIG_BIGENDIAN.*/CONFIG_BIGENDIAN=y/' \ + -e 's/.*CONFIG_TARGET_DESCRIPTION.*/CONFIG_TARGET_DESCRIPTION=\"OpenEmbedded NSLU2\/BE (16MiB Flash)\"/' \ + -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \ + ${WORKDIR}/defconfig-16mb > ${S}/.config + elif [ "x$ac_cv_c_littleendian" = "xyes" -o "x$ac_cv_c_bigendian" = "xno" ]; then + sed -e 's/.*CONFIG_USER_LITTLEENDIAN.*/CONFIG_USER_LITTLEENDIAN=y/' \ + -e 's/.*CONFIG_LITTLEENDIAN.*/CONFIG_LITTLEENDIAN=y/' \ + -e 's/.*CONFIG_ENV_REGION_KERNEL_SWAP.*/CONFIG_ENV_REGION_KERNEL_SWAP=y/' \ + -e 's/.*CONFIG_TARGET_DESCRIPTION.*/CONFIG_TARGET_DESCRIPTION=\"OpenEmbedded NSLU2\/LE (16MiB Flash)\"/' \ + -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \ + ${WORKDIR}/defconfig-16mb > ${S}/.config + else + oefatal do_configure cannot determine endianess + fi + oe_runmake oldconfig +} + +DEPENDS += "devio-native" + +do_populate_staging() { + install -d ${STAGING_LOADER_DIR} + . ${CONFIG_SITE} + if [ "x$ac_cv_c_bigendian" = "xyes" -o "x$ac_cv_c_littleendian" = "xno" ]; then + # FIXME - arch-arm should not be hard-coded + cp src/arch-arm/rom/apex.bin ${STAGING_LOADER_DIR}/apex-nslu2-16mb.bin + elif [ "x$ac_cv_c_littleendian" = "xyes" -o "x$ac_cv_c_bigendian" = "xno" ]; then + # FIXME - arch-arm should not be hard-coded + devio '<<'src/arch-arm/rom/apex.bin >${STAGING_LOADER_DIR}/apex-nslu2-16mb.bin 'xp $,4' + else + oefatal do_populate_staging cannot determine endianess + fi +} diff --git a/packages/apex/apex-nslu2_1.5.8.bb b/packages/apex/apex-nslu2_1.5.8.bb new file mode 100644 index 0000000000..6ed2d20518 --- /dev/null +++ b/packages/apex/apex-nslu2_1.5.8.bb @@ -0,0 +1,69 @@ +DESCRIPTION = "APEX Boot Loader" +SECTION = "" +PRIORITY = "optional" +HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader" +LICENSE = "GPL" +# PR = "r1" + +# Note that this recipe only works for the NSLU2 at the moment. +# Patches to make it more generic are welcome. + +SRC_URI = "ftp://ftp.buici.com/pub/apex/apex-${PV}.tar.gz \ + file://defconfig" +S = ${WORKDIR}/apex-${PV} + +CMDLINE_CONSOLE = "console=${@bb.data.getVar("KERNEL_CONSOLE",d,1) or "ttyS0"}" + +CMDLINE_ROOT = "root=/dev/mtdblock2 rootfstype=jffs2 rw" + +CMDLINE_ROOT_nslu2 = "root=/dev/mtdblock4 rootfstype=jffs2 rw init=/linuxrc" +CMDLINE_ROOT_dsmg600 = "root=/dev/mtdblock2 rootfstype=jffs2 rw init=/linuxrc" +CMDLINE_ROOT_nas100d = "root=/dev/mtdblock2 rootfstype=jffs2 rw init=/linuxrc" + +EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}" + +oe_runmake() { + oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@" + make ${PARALLEL_MAKE} LDFLAGS= CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@" || die "oe_runmake failed" +} + +# Set the correct CONFIG_USER_xxx_ENDIAN and CONFIG_CMDLINE at the head +# of the .config file and remove any settings in defconfig then append +# defconfig to .config +do_configure() { + rm -f ${S}/.config + . ${CONFIG_SITE} + if [ "x$ac_cv_c_bigendian" = "xyes" -o "x$ac_cv_c_littleendian" = "xno" ]; then + sed -e 's/.*CONFIG_USER_BIGENDIAN.*/CONFIG_USER_BIGENDIAN=y/' \ + -e 's/.*CONFIG_BIGENDIAN.*/CONFIG_BIGENDIAN=y/' \ + -e 's/.*CONFIG_TARGET_DESCRIPTION.*/CONFIG_TARGET_DESCRIPTION=\"OpenEmbedded NSLU2\/BE (8MiB Flash)\"/' \ + -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \ + ${WORKDIR}/defconfig > ${S}/.config + elif [ "x$ac_cv_c_littleendian" = "xyes" -o "x$ac_cv_c_bigendian" = "xno" ]; then + sed -e 's/.*CONFIG_USER_LITTLEENDIAN.*/CONFIG_USER_LITTLEENDIAN=y/' \ + -e 's/.*CONFIG_LITTLEENDIAN.*/CONFIG_LITTLEENDIAN=y/' \ + -e 's/.*CONFIG_ENV_REGION_KERNEL_SWAP.*/CONFIG_ENV_REGION_KERNEL_SWAP=y/' \ + -e 's/.*CONFIG_TARGET_DESCRIPTION.*/CONFIG_TARGET_DESCRIPTION=\"OpenEmbedded NSLU2\/LE (8MiB Flash)\"/' \ + -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \ + ${WORKDIR}/defconfig > ${S}/.config + else + oefatal do_configure cannot determine endianess + fi + oe_runmake oldconfig +} + +DEPENDS += "devio-native" + +do_populate_staging() { + install -d ${STAGING_LOADER_DIR} + . ${CONFIG_SITE} + if [ "x$ac_cv_c_bigendian" = "xyes" -o "x$ac_cv_c_littleendian" = "xno" ]; then + # FIXME - arch-arm should not be hard-coded + cp src/arch-arm/rom/apex.bin ${STAGING_LOADER_DIR}/apex-nslu2.bin + elif [ "x$ac_cv_c_littleendian" = "xyes" -o "x$ac_cv_c_bigendian" = "xno" ]; then + # FIXME - arch-arm should not be hard-coded + devio '<<'src/arch-arm/rom/apex.bin >${STAGING_LOADER_DIR}/apex-nslu2.bin 'xp $,4' + else + oefatal do_populate_staging cannot determine endianess + fi +} diff --git a/packages/apex/apex_1.5.8.bb b/packages/apex/apex_1.5.8.bb deleted file mode 100644 index ccf08ca9a0..0000000000 --- a/packages/apex/apex_1.5.8.bb +++ /dev/null @@ -1,68 +0,0 @@ -DESCRIPTION = "APEX Boot Loader" -SECTION = "" -PRIORITY = "optional" -HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader" -LICENSE = "GPL" -# PR = "r1" - -# Note that this recipe only works for the NSLU2 at the moment. -# Patches to make it more generic are welcome. - -SRC_URI = "ftp://ftp.buici.com/pub/apex/apex-${PV}.tar.gz \ - file://defconfig" - -CMDLINE_CONSOLE = "console=${@bb.data.getVar("KERNEL_CONSOLE",d,1) or "ttyS0"}" - -CMDLINE_ROOT = "root=/dev/mtdblock2 rootfstype=jffs2 rw" - -CMDLINE_ROOT_nslu2 = "root=/dev/mtdblock4 rootfstype=jffs2 rw init=/linuxrc" -CMDLINE_ROOT_dsmg600 = "root=/dev/mtdblock2 rootfstype=jffs2 rw init=/linuxrc" -CMDLINE_ROOT_nas100d = "root=/dev/mtdblock2 rootfstype=jffs2 rw init=/linuxrc" - -EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}" - -oe_runmake() { - oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@" - make ${PARALLEL_MAKE} LDFLAGS= CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@" || die "oe_runmake failed" -} - -# Set the correct CONFIG_USER_xxx_ENDIAN and CONFIG_CMDLINE at the head -# of the .config file and remove any settings in defconfig then append -# defconfig to .config -do_configure() { - rm -f ${S}/.config - . ${CONFIG_SITE} - if [ "x$ac_cv_c_bigendian" = "xyes" -o "x$ac_cv_c_littleendian" = "xno" ]; then - sed -e 's/.*CONFIG_USER_BIGENDIAN.*/CONFIG_USER_BIGENDIAN=y/' \ - -e 's/.*CONFIG_BIGENDIAN.*/CONFIG_BIGENDIAN=y/' \ - -e 's/.*CONFIG_TARGET_DESCRIPTION.*/CONFIG_TARGET_DESCRIPTION=\"OpenEmbedded NSLU2 (big endian)\"/' \ - -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \ - ${WORKDIR}/defconfig > ${S}/.config - elif [ "x$ac_cv_c_littleendian" = "xyes" -o "x$ac_cv_c_bigendian" = "xno" ]; then - sed -e 's/.*CONFIG_USER_LITTLEENDIAN.*/CONFIG_USER_LITTLEENDIAN=y/' \ - -e 's/.*CONFIG_LITTLEENDIAN.*/CONFIG_LITTLEENDIAN=y/' \ - -e 's/.*CONFIG_ENV_REGION_KERNEL_SWAP.*/CONFIG_ENV_REGION_KERNEL_SWAP=y/' \ - -e 's/.*CONFIG_TARGET_DESCRIPTION.*/CONFIG_TARGET_DESCRIPTION=\"OpenEmbedded NSLU2 (little endian)\"/' \ - -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \ - ${WORKDIR}/defconfig > ${S}/.config - else - oefatal do_configure cannot determine endianess - fi - oe_runmake oldconfig -} - -DEPENDS += "devio-native" - -do_populate_staging() { - install -d ${STAGING_LOADER_DIR} - . ${CONFIG_SITE} - if [ "x$ac_cv_c_bigendian" = "xyes" -o "x$ac_cv_c_littleendian" = "xno" ]; then - # FIXME - arch-arm should not be hard-coded - cp src/arch-arm/rom/apex.bin ${STAGING_LOADER_DIR}/apex.bin - elif [ "x$ac_cv_c_littleendian" = "xyes" -o "x$ac_cv_c_bigendian" = "xno" ]; then - # FIXME - arch-arm should not be hard-coded - devio '<<'src/arch-arm/rom/apex.bin >${STAGING_LOADER_DIR}/apex.bin 'xp $,4' - else - oefatal do_populate_staging cannot determine endianess - fi -} diff --git a/packages/apex/nslu2/defconfig b/packages/apex/nslu2/defconfig index 9bdbef2f6b..3c8522e2e8 100644 --- a/packages/apex/nslu2/defconfig +++ b/packages/apex/nslu2/defconfig @@ -17,7 +17,7 @@ CONFIG_EXPERIMENTAL=y # # General Setup # -CONFIG_TARGET_DESCRIPTION="SlugOS NSLU2 (bigendian)" +CONFIG_TARGET_DESCRIPTION="SlugOS NSLU2/BE (8MiB Flash)" CONFIG_CROSS_COMPILE="" CONFIG_AEABI=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y @@ -46,7 +46,6 @@ CONFIG_NOR_BUSWIDTH=16 CONFIG_NOR_BANK0=y CONFIG_NOR_BANK0_START=0x50000000 CONFIG_NOR_BANK0_LENGTH=0x00800000 -CONFIG_ENV_STARTUP="" CONFIG_MACH="ixp42x" CONFIG_MACH_NSLU2=y # CONFIG_MACH_NAS100D is not set @@ -116,7 +115,7 @@ CONFIG_USES_IXP4XX_NPE_ETH=y CONFIG_ENV=y CONFIG_ENV_LINK=y CONFIG_ENV_MUTABLE=y -CONFIG_ENV_REGION="nor:0x7f8000+16k" +CONFIG_ENV_REGION="nor:0x7c000+16k" # CONFIG_ENV_SAVEATONCE is not set CONFIG_ENV_CHECK_LEN=1024 # CONFIG_VARIATIONS is not set diff --git a/packages/apex/nslu2/defconfig-16mb b/packages/apex/nslu2/defconfig-16mb new file mode 100644 index 0000000000..c9688e3d75 --- /dev/null +++ b/packages/apex/nslu2/defconfig-16mb @@ -0,0 +1,156 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: +# Fri Jun 1 17:35:34 2007 +# +CONFIG_ARM=y +CONFIG_CPU_ARMV5=y +CONFIG_CPU_XSCALE=y +# CONFIG_ARCH_LH7952X is not set +# CONFIG_ARCH_LH7A40X is not set +CONFIG_ARCH_IXP42X=y +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_MX3 is not set +CONFIG_EXPERIMENTAL=y +# CONFIG_SMALL is not set + +# +# General Setup +# +CONFIG_TARGET_DESCRIPTION="SlugOS NSLU2/BE (16MiB Flash)" +CONFIG_CROSS_COMPILE="" +CONFIG_AEABI=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_CC_OPTIMIZE_FOR_SPEED is not set +# CONFIG_CC_NO_OPTIMIZATION is not set +CONFIG_STARTUP_UART=y +# CONFIG_DEBUG_LL is not set +CONFIG_SPINNER=y +CONFIG_ATAG=y +CONFIG_MMU=y +# CONFIG_FORCE_WRITETHROUGH_DCACHE is not set +CONFIG_DISABLE_MMU_AT_BOOT=y +# CONFIG_INTERRUPTS is not set +CONFIG_SDRAMBOOT_REPORT=y +CONFIG_STACK_SIZE=0x1000 +CONFIG_STACKLIMIT=y +# CONFIG_BOOTSTRAP_MEMTEST is not set +CONFIG_ATAG_PHYS=0x00000100 +CONFIG_ARCH_NUMBER=597 +CONFIG_APEX_VMA=0x00200000 +CONFIG_KERNEL_LMA=0x00008000 +# CONFIG_USE_RAMDISK is not set +CONFIG_SDRAM_BANK0=y +# CONFIG_SDRAM_BANK1 is not set +CONFIG_NOR_BUSWIDTH=16 +CONFIG_NOR_BANK0=y +CONFIG_NOR_BANK0_START=0x50000000 +CONFIG_NOR_BANK0_LENGTH=0x01000000 +CONFIG_MACH="ixp42x" +CONFIG_MACH_NSLU2=y +# CONFIG_MACH_NAS100D is not set +# CONFIG_MACH_DSMG600 is not set +# CONFIG_MACH_AVILA2347 is not set +# CONFIG_USER_DEFAULTENDIAN is not set +# CONFIG_USER_BIGENDIAN is not set +# CONFIG_USER_LITTLEENDIAN is not set + +# +# Platform Setup +# +CONFIG_SDRAM_BANK_LENGTH=0x02000000 +# CONFIG_DISABLE_SECOND_UART_INIT is not set +CONFIG_ARCH_IXP420=y + +# +# Commands +# +CONFIG_ALLHELP=y +CONFIG_ALPHABETIZE_COMMANDS=y +CONFIG_DEL_IS_BS=y +CONFIG_ANSI_KEYS=y +CONFIG_COMMAND_HISTORY=y +CONFIG_COMMAND_EDITING=y +# CONFIG_TIME_COMMANDS is not set +CONFIG_CMD_ALIAS=y +CONFIG_CMD_CHECKSUM=y +CONFIG_CMD_COPY=y +CONFIG_CMD_COMPARE=y +CONFIG_CMD_DRVINFO=y +CONFIG_CMD_DUMP=y +CONFIG_CMD_ENV=y +CONFIG_CMD_SETENV=y +CONFIG_CMD_ERASE=y +CONFIG_CMD_FILL=y +CONFIG_CMD_GO=y +CONFIG_CMD_INFO=y +# CONFIG_CMD_PAUSE is not set +CONFIG_CMD_WAIT=y +CONFIG_CMD_XRECEIVE=y +CONFIG_CMD_MEMLIMIT=y +CONFIG_CMD_MEMSCAN=y + +# +# Generic Drivers +# +# CONFIG_DRIVER_FAT is not set +# CONFIG_DRIVER_EXT2 is not set +# CONFIG_DRIVER_JFFS2 is not set +CONFIG_DRIVER_FIS=y +CONFIG_DRIVER_FIS_BLOCKDEVICE="nor:0xfe0000+4k" +CONFIG_DRIVER_NOR_CFI=y +# CONFIG_DRIVER_NOR_CFI_NO_BUFFERED is not set +# CONFIG_DRIVER_NOR_CFI_USE_CACHE is not set +CONFIG_DRIVER_NOR_CFI_TYPE_INTEL=y +# CONFIG_DRIVER_NOR_CFI_TYPE_SPANSION is not set +# CONFIG_DRIVER_ONENAND is not set +# CONFIG_DRIVER_IXP4XX_NPE_ETH is not set +CONFIG_USES_NOR_CFI=y +CONFIG_USES_PATHNAME_PARSER=y +CONFIG_USES_IXP4XX_NPE_ETH=y + +# +# Environment +# +CONFIG_ENV=y +CONFIG_ENV_LINK=y +CONFIG_ENV_MUTABLE=y +CONFIG_ENV_REGION="nor:0x7c000+16k" +# CONFIG_ENV_SAVEATONCE is not set +CONFIG_ENV_CHECK_LEN=1024 +# CONFIG_VARIATIONS is not set +# CONFIG_NO_BOOTSTRAP is not set +CONFIG_NOR_BOOT=y +# CONFIG_NAND_BOOT is not set +# CONFIG_ONENAND_BOOT is not set +# CONFIG_COMPANION_EVT1_BOOT is not set +# CONFIG_COMPANION_EVT2_BOOT is not set + +# +# Default Startup +# +CONFIG_AUTOBOOT=y +CONFIG_AUTOBOOT_DELAY=10 +CONFIG_ENV_STARTUP_KERNEL_COPY=y +# CONFIG_ENV_REGION_KERNEL_SWAP is not set +# CONFIG_ENV_STARTUP_PREFIX_P is not set + +# +# Regions +# +CONFIG_ENV_REGION_KERNEL="fis://kernel" + +# +# Overrides +# +CONFIG_ENV_DEFAULT_CMDLINE_OVERRIDE=y +CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock4 rootfstype=jffs2 console=ttyS0,115200" +# CONFIG_ENV_DEFAULT_STARTUP_OVERRIDE is not set +CONFIG_USES_NOR_BOOTFLASH=y +CONFIG_RELOCATE_SIMPLE=y +CONFIG_INLINE_PLATFORM_INITIALIZATION=y +CONFIG_INLINE_PLATFORM_INITIALIZATION_SDRAM_PRE_OVERRIDE=y +# CONFIG_BIGENDIAN is not set +# CONFIG_LITTLEENDIAN is not set +CONFIG_CLEAR_STACKS=y +CONFIG_ALIASES=y -- cgit v1.2.3