Date: Mon, 03 Jan 2011 20:08:08 +0200 From: Alexander Motin <mav@FreeBSD.org> To: John Baldwin <jhb@freebsd.org> Cc: freebsd-hackers@freebsd.org, Darmawan Salihun <darmawan_salihun@yahoo.com> Subject: Re: PCI IDE Controller Base Address Register setting Message-ID: <4D221088.8080103@FreeBSD.org> In-Reply-To: <201101031022.02558.jhb@freebsd.org> References: <745749.9930.qm@web76811.mail.sg1.yahoo.com> <201101031022.02558.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> On Saturday, January 01, 2011 2:58:12 pm Darmawan Salihun wrote: >> So, I found out that it seems the >> allocation of I/O ports for the IDE controller is just fine. >> However, the primary IDE channel is shared between >> an IDE interface and a CF card. Moreover, Linux detects >> DMA bug, because all drives connected to the interface would be >> in PIO mode :-/ >> If all drives on the primary channel are "forced" to PIO mode, then >> shouldn't the "IDE PCI bus master register" (offset 20h per SFF-8038i) >> along with the command register (offset 4h), are set to indicate the >> controller doesn't support bus mastering? I don't think that BIOS should change controller capabilities depending on attached drives, may be except may be for workarounding some known bugs/incompatibilities. Otherwise this will just make hot-plug things tricky and unpredictable. >> Anyway, is it possible for devices on _the same_ channel to use >> different setting in FreeBSD? For example, the primary slave >> is using UDMA66 while the primary master is using PIO-4. >> Or such configuration is considered invalid. Yes, it is possible. If automatic negotiation doesn't succeed for some reason, you may limit initial mode for each specific device using hint.ata.X.devY.mode loader tunables, added not so long ago. After boot it can also be tuned per-device via atacontrol or camcontrol tools, depending on ATA stack used. >> The AMDLX800-CS5536 board I'm working with has different connectors >> for the primary master and primary slave. Moreover, the chipset >> supports different setting in primary master and primary slave. There are few other controllers not supporting such configurations, but it is handled by their specific drivers. -- Alexander Motin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D221088.8080103>