Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Jun 2000 13:25:04 +0900
From:      Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org>
To:        dmlb@ragnet.demon.co.uk
Cc:        freebsd-mobile@freebsd.org, imp@village.org, iwasaki@freebsd.org
Subject:   RE: pccard differences between -current and -stable
Message-ID:  <20000628132504Q.iwasaki@jp.FreeBSD.org>
In-Reply-To: <XFMail.000627235048.dmlb@computer.my.domain>
References:  <XFMail.000627235048.dmlb@computer.my.domain>

next in thread | previous in thread | raw e-mail | index | archive | help
> Hi all,
> 
> On 27-Jun-00 Duncan Barclay wrote:
> > Hi Warner
> > 
> > I'm having mixed success in getting my raylink driver running under RELENG_4.
> > If I use pccardc enable things are good, but pccardd is really screwed.
> > 
> > In both -current and -stable, using debuglevel 1 in pccard.conf shows that
> > pccardd still seems to have remants of the old ed driver hacks - viz. the
> > card memory offset is set to 0x4000 and it is assumed that the common
> > memory is 16bits (the raylink uses 8bits).
> > 
> > The thing is that under -current my raylink driver and NBK seem to just
> > ignore these settings but under stable the settings seem to persist. This is
> > with identical pcic controllers - do you expect this behaviour?
> > 
> > Where should I start looking to fix it?
> > 
> > Duncan
> 
> I think I've found it, around
>        pccard/pccardd/cardd.c:585
> we still totally ignore the card offset and force it to 0x4000. My earlier

It seems that this 0x4000 hack have been there since 5 years ago...
I'm sorry I couldn't get it, but how about the changes like this;
	if (sp->mem.cardaddr == 0)
		sp->mem.cardaddr = 0x4000;

also, PAO has `cardmem' feature for this kind of purpose if I
understand correctly, say;
	cardmem memaddr cardaddr memsize [memflags]
		:
     cardio and cardmem keywords are used with cards whose resources such as
     I/O ports and shared memory block, are not specified in the CIS tuple.  A
     base address and size of I/O ports are specified in iobase and iosize,
     ones of shared memory block are specified in cardaddr, memsize and
     memaddr. An address of a card is cardaddr, one of host is memaddr. Op-
     tional flags can be specified in memflags.

and sample configuration is like this;
# IBM Smart Capture Card
card "IBM Corp\." "Video Capture"
        config  default "scc0" pio
        cardmem 0xd4000 0x0 0x8000
        insert  logger -s Smart Capture Card inserted
        remove  logger -s Smart Capture Card removed

Do we need this feature?

> tests were working as I am using a current that doesn't set the MDF_ASSSIGNED
> flag. This is obviously wrong in general and breaks the raylink driver.
> 
> It appears that some of the logic that tests whether we have an ed card is
> broken and that the memory settings are adjusted whatever card is used.
> Is my reading of the code right?
>         pccard/pccardd/cardd.c:562
> 
>         if (!(strncmp(sp->config->driver->name, "ed", 2) == 0
>                 && (sp->config->flags & 0x10))
>                 && (cisconf->memspace || (defconf && defconf->memspace))) {
> 
> As I'm not really familiar with this code, could someone fix this.

Sanpei-san, help :-)


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-mobile" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000628132504Q.iwasaki>