From owner-freebsd-arm@FreeBSD.ORG Tue May 13 09:12:29 2014 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1B4354ED for ; Tue, 13 May 2014 09:12:29 +0000 (UTC) Received: from mail-ee0-x232.google.com (mail-ee0-x232.google.com [IPv6:2a00:1450:4013:c00::232]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A7BCB2F88 for ; Tue, 13 May 2014 09:12:28 +0000 (UTC) Received: by mail-ee0-f50.google.com with SMTP id e51so171536eek.23 for ; Tue, 13 May 2014 02:12:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; bh=/YHlyCRZWjgqwYa8DkaEYoTw1vV3LZ9edb4ulTX63dE=; b=g6bjXYIIaYVIDRYuLXaQDsps2wRu5esX5G1CqXlhDTEM1LBm6LEzAHaZU9LAcX07S6 93XXVssHvqOFoaGnp6oix5Me9qbDuJTz/Q1YvI3f5uIhPnKnNsxNmd8eWdoAtjmLPMuM ++rgF9VBIMoJOPJ0/QuT2kmmncS/k4+CB6zeqtHXzf4nlmPqc6Xoch1ukfr+GBmvBUZI 5cJHq5pe03X85+nglVjl3X3VR/A7LkK+bWJvqyj928Nqs28dZCrwRP9Qp+ZldE2jcWDn AaKO1j7j4JV0a4/KnjEkmrPfEi6Q9nYe8FbXS49p4jO9Mh2tcU9ssLGICbDyWqnk5Rqc GsXA== X-Received: by 10.15.49.8 with SMTP id i8mr37445600eew.33.1399972346886; Tue, 13 May 2014 02:12:26 -0700 (PDT) Received: from ketas-laptop.mydomain (ketas-laptop6.si.pri.ee. [2001:ad0:91f:0:21a:6bff:fe66:2ad3]) by mx.google.com with ESMTPSA id w6sm38830256eej.7.2014.05.13.02.12.24 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 13 May 2014 02:12:25 -0700 (PDT) Sender: Sulev-Madis Silber Message-ID: <5371E1F3.6080002@hot.ee> Date: Tue, 13 May 2014 12:12:19 +0300 From: "Sulev-Madis Silber (ketas)" User-Agent: Mozilla/5.0 (X11; FreeBSD i386; rv:15.0) Gecko/20120912 Thunderbird/15.0.1 MIME-Version: 1.0 To: freebsd-arm Subject: Patch to make BBB properly boot from eMMC every time Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 May 2014 09:12:29 -0000 On my BBB, I need following patch to boot from eMMC 100% of cases. Without that, device is detected with 1 / 4 bit bus (it's actually 8 bit) or not at all (then boot fails). Actually, that code looks like weird way to implement sleep(), or at least it has such (side) effect. Actually ian@ made that patch, and was confused about results. ------------------------------------------------------------------------- Index: sys/dev/mmc/mmc.c =================================================================== --- sys/dev/mmc/mmc.c (revision 264141) +++ sys/dev/mmc/mmc.c (working copy) @@ -769,8 +769,10 @@ mmc_test_bus_width(struct mmc_softc *sc) data.data = p8; data.len = 8; data.flags = MMC_DATA_WRITE; - mmc_wait_for_cmd(sc, &cmd, 0); - + err = mmc_wait_for_cmd(sc, &cmd, 0); + if (err != 0) + device_printf(sc->dev, "BUSTEST_W err %d\n", err); + memset(&cmd, 0, sizeof(cmd)); memset(&data, 0, sizeof(data)); cmd.opcode = MMC_BUSTEST_R; @@ -782,7 +784,12 @@ mmc_test_bus_width(struct mmc_softc *sc) data.len = 8; data.flags = MMC_DATA_READ; err = mmc_wait_for_cmd(sc, &cmd, 0); - + if (err != 0) + device_printf(sc->dev, "BUSTEST_R err %d\n", err); + + device_printf(sc->dev, "read %02x %02x %02x %02x %02x %02x %02x %02x\n", + buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7]); + mmcbr_set_bus_width(sc->dev, bus_width_1); mmcbr_update_ios(sc->dev); -------------------------------------------------------------------------