Re: Boot off CF card hangs at "Trying to mount root"

From: Stefan Bethke <stb_at_lassitu.de>
Date: Mon, 29 Aug 2005 21:13:35 +0200
Thanks for looking into this!

Am 29.08.2005 um 20:33 schrieb Søren Schmidt:

> On 29/08/2005, at 19:28, Stefan Bethke wrote:
>
>> Am 28.08.2005 um 18:46 schrieb Stefan Bethke:
>> The most striking difference (to me) is that 5-stable thinks DMA66  
>> is fine (and my tests show that at least reading is not a problem  
>> at all), while 6-beta wants to do PIO4, but seemingly gets stuck.
>>
> Uhm, both use PIO4 as far as I can tell..
>

Sorry, no idea what I was looking at.


> Enable debugging in ata-all.h and set ATA_R_DEBUG in request->flags  
> early in ata_queue_request() and see how far it gets.
>
> I'd suspect subtle timing in the lowest levels though....
>

I still have the wrong entry in fstab, so this is from right after  
specifying the proper root device:




After the final "ad2: req=0xc17fc000 READ completed callback/wakeup",  
nothing else happens.


Stefan

p.s. this is what I did to enable debugging:
little:/usr/src/sys/dev/ata# cvs diff
cvs diff: Diffing .
Index: ata-all.h
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/ata-all.h,v
retrieving revision 1.103.2.2
diff -u -r1.103.2.2 ata-all.h
--- ata-all.h   25 Aug 2005 16:21:05 -0000      1.103.2.2
+++ ata-all.h   29 Aug 2005 18:07:33 -0000
_at__at_ -391,7 +391,7 _at__at_
};
/* define this for debugging request processing */
-#if 0
+#if 1
#define ATA_DEBUG_RQ(request, string) \
      { \
      if (request->flags & ATA_R_DEBUG) \
Index: ata-queue.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/ata-queue.c,v
retrieving revision 1.50
diff -u -r1.50 ata-queue.c
--- ata-queue.c 28 Jun 2005 09:06:52 -0000      1.50
+++ ata-queue.c 29 Aug 2005 18:57:15 -0000
_at__at_ -54,6 +54,7 _at__at_
ata_queue_request(struct ata_request *request)
{
      struct ata_channel *ch = device_get_softc(device_get_parent 
(request->dev));
+    request->flags |= ATA_R_DEBUG;
      /* mark request as virgin (this might be a ATA_R_REQUEUE) */
      request->result = request->status = request->error = 0;

-- 
Stefan Bethke <stb_at_lassitu.de>   Fon +49 170 346 0140



Received on Mon Aug 29 2005 - 17:13:54 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:42 UTC