Index: head/sysutils/mmc-utils/Makefile =================================================================== --- head/sysutils/mmc-utils/Makefile (revision 498513) +++ head/sysutils/mmc-utils/Makefile (revision 498514) @@ -1,44 +1,44 @@ # Created by: Marius Strobl # $FreeBSD$ PORTNAME= mmc-utils -PORTVERSION= 20180327 -DISTVERSIONSUFFIX= -b4fe0c8c +PORTVERSION= 20181214 +DISTVERSIONSUFFIX= -aef913e3 CATEGORIES= sysutils MASTER_SITES= LOCAL/marius MAINTAINER= marius@FreeBSD.org COMMENT= Userspace tools for MMC/SD devices LICENSE= BSD3CLAUSE GPLv2 LICENSE_COMB= multi IGNORE_DragonFly= only supported on FreeBSD USES= gmake tar:bzip2 PLIST_FILES= man/man1/mmc.1.gz sbin/mmc MMC_GITURL= git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git post-patch: .for i in Makefile mmc_cmds.c mmc.c man/mmc.1 @${REINPLACE_CMD} -e 's|^AM_CFLAGS|#^|; s|path/to|dev|g;\ s|mmcblk|mmcsd|g' ${WRKSRC}/${i} .endfor do-install: ${INSTALL_PROGRAM} ${WRKSRC}/mmc ${STAGEDIR}${PREFIX}/sbin ${INSTALL_MAN} ${WRKSRC}/man/mmc.1 ${STAGEDIR}${PREFIX}/man/man1 maintainer-fetch: @${MAKE} clean @${MKDIR} ${WRKSRC} @git clone ${MMC_GITURL} ${WRKSRC} @cd ${WRKSRC} && git reset --hard ${DISTVERSIONSUFFIX:S|^-||} @${TAR} -cyf ${_DISTDIR:S|/$||}/${DISTFILES:M${PORTNAME}-*} \ -C ${WRKSRC}/.. --exclude .git* . @${MAKE} makesum @${MAKE} clean .include Index: head/sysutils/mmc-utils/distinfo =================================================================== --- head/sysutils/mmc-utils/distinfo (revision 498513) +++ head/sysutils/mmc-utils/distinfo (revision 498514) @@ -1,3 +1,3 @@ -TIMESTAMP = 1526225095 -SHA256 (mmc-utils-20180327-b4fe0c8c.tar.bz2) = 35ec111a5286f6fe59d863b5a9fd9eaeda1f9ae984896fe11c8bd8f2854762f4 -SIZE (mmc-utils-20180327-b4fe0c8c.tar.bz2) = 40044 +TIMESTAMP = 1545854044 +SHA256 (mmc-utils-20181214-aef913e3.tar.bz2) = e41f5a17dd35a40e5f1877f49e7162349792ae01ec5e0e1bd7b78496b1327f63 +SIZE (mmc-utils-20181214-aef913e3.tar.bz2) = 40246 Index: head/sysutils/mmc-utils/files/patch-mmc__cmds.c =================================================================== --- head/sysutils/mmc-utils/files/patch-mmc__cmds.c (revision 498513) +++ head/sysutils/mmc-utils/files/patch-mmc__cmds.c (revision 498514) @@ -1,55 +1,64 @@ ---- mmc_cmds.c.orig 2018-02-26 22:10:51 UTC +--- mmc_cmds.c.orig 2018-12-26 19:54:04 UTC +++ mmc_cmds.c @@ -28,7 +28,12 @@ #include #include #include +#if defined(__linux__) #include /* for BLKGETSIZE */ +#elif defined(__FreeBSD__) +#include /* for offsetof() */ +#include /* for DIOCG{MEDIA,SECTOR}SIZE */ +#endif #include "mmc.h" #include "mmc_cmds.h" @@ -120,8 +125,19 @@ static __u32 get_size_in_blks(int fd) { int res; int size; +#if defined(__FreeBSD__) + off_t mediasize; +#endif +#if defined(__linux__) res = ioctl(fd, BLKGETSIZE, &size); +#elif defined(__FreeBSD__) + res = ioctl(fd, DIOCGMEDIASIZE, &mediasize); + if (!res) { + res = ioctl(fd, DIOCGSECTORSIZE, &size); + size = mediasize / size; + } +#endif if (res) { fprintf(stderr, "Error getting device size, errno: %d\n", errno); @@ -1530,13 +1546,18 @@ int do_read_extcsd(int nargs, char **arg /* A441/A43: reserved [197] [195] [193] [190] [188] * [186] [184] [182] [180] [176] */ - if (ext_csd_rev >= 6) + if (ext_csd_rev >= 6) { printf("I/O Driver Strength [DRIVER_STRENGTH: 0x%02x]\n", ext_csd[197]); + printf("Enhanced Strobe mode [STROBE_SUPPORT: 0x%02x]\n", + ext_csd[184]); + } /* DEVICE_TYPE in A45, CARD_TYPE in A441 */ reg = ext_csd[196]; printf("Card Type [CARD_TYPE: 0x%02x]\n", reg); + if (reg & 0x80) printf(" HS400 Dual Data Rate eMMC @200MHz 1.2VI/O\n"); + if (reg & 0x40) printf(" HS400 Dual Data Rate eMMC @200MHz 1.8VI/O\n"); if (reg & 0x20) printf(" HS200 Single Data Rate eMMC @200MHz 1.2VI/O\n"); if (reg & 0x10) printf(" HS200 Single Data Rate eMMC @200MHz 1.8VI/O\n"); if (reg & 0x08) printf(" HS Dual Data Rate eMMC @52MHz 1.2VI/O\n"); +@@ -1883,7 +1904,7 @@ static int do_rpmb_op(int fd, + u_int16_t rpmb_type; + struct mmc_ioc_multi_cmd *mioc; + struct mmc_ioc_cmd *ioc; +- struct rpmb_frame frame_status = {0}; ++ struct rpmb_frame frame_status = {{0}}; + + if (!frame_in || !frame_out || !out_cnt) + return -EINVAL;