Yes BAR0 is an I/O mapped address. I think it is the BAR number problem because 
of which I'm not being able to map BAR1. Also from the man pages of 
devmap_devmem_setup it isn't clear that we pass a pointer to devmap_cookie_t 
and I have been passing the cookie itself, am I correct? I'll change these two 
things and come back.
Thanks a lot.
Bhaskar.
________________________________________
From: Garrett D'Amore [garr...@damore.org]
Sent: Thursday, September 17, 2009 9:41 AM
To: Jayaraman, Bhaskar
Cc: opensolaris-code@opensolaris.org
Subject: Re: [osol-code]devmap_devmem_setup()

Jayaraman, Bhaskar wrote:
> Garrett, I'm trying to port xenbus drivers onto Solaris HVM and hence I need 
> to get to the register space of the platform PCI device which xen emulates 
> for each VM. So any help in this regard would be very helpful. I'm attaching 
> the sample code which I picked up from 
> http://dsc.sun.com/solaris/developer/support/driver/faqs.html#QA3.17 and then 
> modified.
>
> In the attach routine I tried doing the ddi_regs_map_setup on BAR1 of the 
> platform device but I keep getting 0xc000 as its virtual address. If I try 
> writing anything to it the driver crashes the system. Then I decided to 
> switch to devmap_devmem_setup but then on calling it the driver crashes the 
> system.
>

Sounds to me like this might be an "IO" device BAR, rather than a memory
BAR.  You do know that to access BAR0, you have to pass index 1, and to
access BAR1, you pass index 2, to ddi_regs_map_setup()... right?

    - Garrett
> Regards,
> Bhaskar.
>
>
> -----Original Message-----
> From: Garrett D'Amore [mailto:garr...@damore.org]
> Sent: Wednesday, September 16, 2009 7:13 PM
> To: Jayaraman, Bhaskar
> Cc: opensolaris-code@opensolaris.org
> Subject: Re: [osol-code] Doubt in ddi_regs_map_setup!
>
> Jayaraman, Bhaskar wrote:
>
>> Ok I changed the call to devmap_devmem_setup() but my driver is crashing. 
>> Any idea why this could be happening? I'm calling it from the 'attach' 
>> routine which I hope is allowed. Also all my callbacks do nothing and return 
>> 0 unless they're void i.e. I'm not setting the pvtp pointers in the 
>> callbacks or anything.
>> Regards,
>> Bhaskar.
>>
>>
>
> It doesn't sound like conceptually you are doing anything wrong.  I
> think we'd need to look at the crash dump and source code in order to
> understand why you're experiencing these crashes.
>
>     - Garrett
>
>> -----Original Message-----
>> From: Garrett D'Amore [mailto:garr...@damore.org]
>> Sent: Tuesday, September 15, 2009 7:35 PM
>> To: Jayaraman, Bhaskar
>> Cc: opensolaris-code@opensolaris.org
>> Subject: Re: [osol-code] Doubt in ddi_regs_map_setup!
>>
>> Jayaraman, Bhaskar wrote:
>>
>>
>>> Hi, I'm making this call on my driver's BAR1 which has a physical
>>> address 0xf2000008 written on it. So I'm assuming that when I call a
>>> hat_getpfnum(kas.a_hat, returned_address), I should get the physical
>>> page frame number.
>>>
>>> Instead I get 0xffffffff as its return value (which is definitely some
>>> error). Also the virtual address that ddi_regs_map_setup is returning
>>> 0xc000 as the virtual address for the physical address in the BAR1.
>>>
>>> Please note that hat_getpfnum returns proper values for other virtual
>>> addresses. Can someone help me understand what is going on in my case?
>>>
>>>
>>>
>> I'm not sure exactly why this is failing, but you do know that
>> hat_getkpfnum() is an obsolete interface, right? Its been obsolete for
>> quite a long time now. (I think maybe as far back as Solaris 8.)
>>
>> If you're using this for mmap(), you should try implementing a
>> devmap(9e) routine instead.
>>
>> -- Garrett
>>
>>
>>> Regards,
>>>
>>> Bhaskar.
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> opensolaris-code mailing list
>>> opensolaris-code@opensolaris.org
>>> http://mail.opensolaris.org/mailman/listinfo/opensolaris-code
>>>
>>>
>>>
>>
>>
>
>

_______________________________________________
opensolaris-code mailing list
opensolaris-code@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to