linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Help on named object in kernel
@ 2019-06-12 11:48 Udit Kumar
  2019-06-12 16:37 ` Schmauss, Erik
  0 siblings, 1 reply; 6+ messages in thread
From: Udit Kumar @ 2019-06-12 11:48 UTC (permalink / raw)
  To: ACPI Devel Maling List; +Cc: lenb, Rafael J. Wysocki

Dear ACPI experts, 
I need your help on defining named objected in ACPI under _CRS. 
In my firmware, I have defined two addresses for my device using 
Memory32Fixed and QwordMemory under _CRS.  
These  two addresses are 32-bit and 64-bit long respectively. 
For Memory32Fixed, I gave DescriptorName name as REG0
and for QwordMemory I gave DescriptorName as SATA.

In Linux, all of resource of this device is added under its name 
(NXP0003:00).  Reading r-> name for all resource of this device 
is giving name as NXP0003:00. 
So I am not able to use existing OS driver using call 
platform_get_resource_byname, I have to use platform_get_resource
API with index to get above addresses.

Could you help me, if there is way to use named resource in acpi.
Fyi, I am on kernel 4.14.122

Many Thanks 
Udit 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: Help on named object in kernel
  2019-06-12 11:48 Help on named object in kernel Udit Kumar
@ 2019-06-12 16:37 ` Schmauss, Erik
  2019-06-12 17:00   ` [EXT] " Udit Kumar
  2019-06-12 17:00   ` Sudeep Holla
  0 siblings, 2 replies; 6+ messages in thread
From: Schmauss, Erik @ 2019-06-12 16:37 UTC (permalink / raw)
  To: Udit Kumar, ACPI Devel Maling List; +Cc: lenb, Rafael J. Wysocki



> -----Original Message-----
> From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> owner@vger.kernel.org] On Behalf Of Udit Kumar
> Sent: Wednesday, June 12, 2019 4:48 AM
> To: ACPI Devel Maling List <linux-acpi@vger.kernel.org>
> Cc: lenb@kernel.org; Rafael J. Wysocki <rafael@kernel.org>
> Subject: Help on named object in kernel
> 
> Dear ACPI experts,
> I need your help on defining named objected in ACPI under _CRS.
> In my firmware, I have defined two addresses for my device using
> Memory32Fixed and QwordMemory under _CRS.
> These  two addresses are 32-bit and 64-bit long respectively.
> For Memory32Fixed, I gave DescriptorName name as REG0 and for
> QwordMemory I gave DescriptorName as SATA.

Could you give us the ASL for the code snippet that you're talking about?

Erik
> 
> In Linux, all of resource of this device is added under its name (NXP0003:00).
> Reading r-> name for all resource of this device is giving name as NXP0003:00.
> So I am not able to use existing OS driver using call
> platform_get_resource_byname, I have to use platform_get_resource API
> with index to get above addresses.
> 
> Could you help me, if there is way to use named resource in acpi.
> Fyi, I am on kernel 4.14.122
> 
> Many Thanks
> Udit

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [EXT] RE: Help on named object in kernel
  2019-06-12 16:37 ` Schmauss, Erik
@ 2019-06-12 17:00   ` Udit Kumar
  2019-06-12 17:00   ` Sudeep Holla
  1 sibling, 0 replies; 6+ messages in thread
From: Udit Kumar @ 2019-06-12 17:00 UTC (permalink / raw)
  To: Schmauss, Erik, ACPI Devel Maling List; +Cc: lenb, Rafael J. Wysocki

Thanks Eric 

> -----Original Message-----
> From: Schmauss, Erik <erik.schmauss@intel.com>
> Sent: Wednesday, June 12, 2019 10:07 PM
> To: Udit Kumar <udit.kumar@nxp.com>; ACPI Devel Maling List <linux-
> acpi@vger.kernel.org>
> Cc: lenb@kernel.org; Rafael J. Wysocki <rafael@kernel.org>
> Subject: [EXT] RE: Help on named object in kernel
> 
> Caution: EXT Email
> 
> > -----Original Message-----
> > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> > owner@vger.kernel.org] On Behalf Of Udit Kumar
> > Sent: Wednesday, June 12, 2019 4:48 AM
> > To: ACPI Devel Maling List <linux-acpi@vger.kernel.org>
> > Cc: lenb@kernel.org; Rafael J. Wysocki <rafael@kernel.org>
> > Subject: Help on named object in kernel
> >
> > Dear ACPI experts,
> > I need your help on defining named objected in ACPI under _CRS.
> > In my firmware, I have defined two addresses for my device using
> > Memory32Fixed and QwordMemory under _CRS.
> > These  two addresses are 32-bit and 64-bit long respectively.
> > For Memory32Fixed, I gave DescriptorName name as REG0 and for
> > QwordMemory I gave DescriptorName as SATA.
> 
> Could you give us the ASL for the code snippet that you're talking about?

Below is actual ASL 

Scope(_SB)
{
  Device(SAT0) {
    Name(_HID, "NXP0004")
    Name(_CCA, 1)
    Name(_UID, 0)
    Name(_CRS, ResourceTemplate() {
      Memory32Fixed(ReadWrite, SATA0_BASE, SATA_LEN, REG0)
      Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive)
       {
         SATA0_IT_1, SATA0_IT_2, SATA0_IT_3
       }
    QwordMemory (
      ResourceConsumer,
      PosDecode,         // _DEC
      MinFixed,          // _MIF
      MaxFixed,          // _MAF
      NonCacheable,      // _MEM
      ReadWrite,         // _RW
      0,                 // _GRA
      0x700100520,       // _MIN MinAddress
      0x700100523,       // _MAX MaxAddress
      0,                 // _TRA
      0x4,               // _LEN
        ,               //ResourceSourceIndex,
        ,               //ResourceSource,
        SATA,           //DescriptorName
      ,)
    })
  }
 
Driver code is 
https://elixir.bootlin.com/linux/latest/source/drivers/ata/ahci_qoriq.c#L267 

For time being I changed 
platform_get_resource_byname to 
res = platform_get_resource(pdev, IORESOURCE_MEM, 1); 

for sure sata-err will fail, when I added few prints in platform_get_resource_byname to print each resource's name and start . 
I got below 
[    3.013921] Udit res 3200000 name NXP0004:00
[    3.018190] Udit res 10 name NXP0004:00
[    3.022016] Udit res 11 name NXP0004:00
[    3.025842] Udit res 12 name NXP0004:00
[    3.029668] Udit res 700100520 name NXP0004:00

I am looking help on two here
1) how DescriptorName can be associated with resource name 
2) is there any way to use resource name just as string 

Many Thanks
Udit

> Erik
> >
> > In Linux, all of resource of this device is added under its name (NXP0003:00).
> > Reading r-> name for all resource of this device is giving name as NXP0003:00.
> > So I am not able to use existing OS driver using call
> > platform_get_resource_byname, I have to use platform_get_resource API
> > with index to get above addresses.
> >
> > Could you help me, if there is way to use named resource in acpi.
> > Fyi, I am on kernel 4.14.122
> >
> > Many Thanks
> > Udit

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Help on named object in kernel
  2019-06-12 16:37 ` Schmauss, Erik
  2019-06-12 17:00   ` [EXT] " Udit Kumar
@ 2019-06-12 17:00   ` Sudeep Holla
  2019-06-13  1:20     ` [EXT] " Udit Kumar
  1 sibling, 1 reply; 6+ messages in thread
From: Sudeep Holla @ 2019-06-12 17:00 UTC (permalink / raw)
  To: Schmauss, Erik
  Cc: Udit Kumar, ACPI Devel Maling List, lenb, Sudeep Holla,
	Rafael J. Wysocki

On Wed, Jun 12, 2019 at 04:37:09PM +0000, Schmauss, Erik wrote:
> 
> 
> > -----Original Message-----
> > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> > owner@vger.kernel.org] On Behalf Of Udit Kumar
> > Sent: Wednesday, June 12, 2019 4:48 AM
> > To: ACPI Devel Maling List <linux-acpi@vger.kernel.org>
> > Cc: lenb@kernel.org; Rafael J. Wysocki <rafael@kernel.org>
> > Subject: Help on named object in kernel
> > 
> > Dear ACPI experts,
> > I need your help on defining named objected in ACPI under _CRS.
> > In my firmware, I have defined two addresses for my device using
> > Memory32Fixed and QwordMemory under _CRS.
> > These  two addresses are 32-bit and 64-bit long respectively.
> > For Memory32Fixed, I gave DescriptorName name as REG0 and for
> > QwordMemory I gave DescriptorName as SATA.
> 
> Could you give us the ASL for the code snippet that you're talking about?
>

IIUC, something like below(a very rough example based on the description
above):

    Name (_CRS, ResourceTemplate (){
      QwordMemory (
        ResourceConsumer, PosDecode, MinFixed, MaxFixed, NonCacheable,
        ReadWrite, 0x0, 0x700100520, 0x700100523, 0x0, 4, , , "SATA",)
      Memory32Fixed(ReadWrite, 0x3200000, 0x10000, "REG0")
    }

Basically 2 or more entries of Memory/Address Space Resource Descriptor
which can be identified in OSPM by DescriptorName. IOW if a device has
2 sets of registers/memory/address space associated with it, instead of
relying on the order of declaration, identify them by the descriptor
name provided in ASL namespace.

--
Regards,
Sudeep

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [EXT] Re: Help on named object in kernel
  2019-06-12 17:00   ` Sudeep Holla
@ 2019-06-13  1:20     ` Udit Kumar
  2019-06-13 17:08       ` Sudeep Holla
  0 siblings, 1 reply; 6+ messages in thread
From: Udit Kumar @ 2019-06-13  1:20 UTC (permalink / raw)
  To: Sudeep Holla, Schmauss, Erik
  Cc: ACPI Devel Maling List, lenb, Rafael J. Wysocki



> -----Original Message-----
> From: linux-acpi-owner@vger.kernel.org <linux-acpi-owner@vger.kernel.org>
> On Behalf Of Sudeep Holla
> Sent: Wednesday, June 12, 2019 10:31 PM
> To: Schmauss, Erik <erik.schmauss@intel.com>
> Cc: Udit Kumar <udit.kumar@nxp.com>; ACPI Devel Maling List <linux-
> acpi@vger.kernel.org>; lenb@kernel.org; Sudeep Holla
> <sudeep.holla@arm.com>; Rafael J. Wysocki <rafael@kernel.org>
> Subject: [EXT] Re: Help on named object in kernel
> 
> Caution: EXT Email
> 
> On Wed, Jun 12, 2019 at 04:37:09PM +0000, Schmauss, Erik wrote:
> >
> >
> > > -----Original Message-----
> > > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> > > owner@vger.kernel.org] On Behalf Of Udit Kumar
> > > Sent: Wednesday, June 12, 2019 4:48 AM
> > > To: ACPI Devel Maling List <linux-acpi@vger.kernel.org>
> > > Cc: lenb@kernel.org; Rafael J. Wysocki <rafael@kernel.org>
> > > Subject: Help on named object in kernel
> > >
> > > Dear ACPI experts,
> > > I need your help on defining named objected in ACPI under _CRS.
> > > In my firmware, I have defined two addresses for my device using
> > > Memory32Fixed and QwordMemory under _CRS.
> > > These  two addresses are 32-bit and 64-bit long respectively.
> > > For Memory32Fixed, I gave DescriptorName name as REG0 and for
> > > QwordMemory I gave DescriptorName as SATA.
> >
> > Could you give us the ASL for the code snippet that you're talking about?
> >
> 
> IIUC, something like below(a very rough example based on the description
> above):
> 
>     Name (_CRS, ResourceTemplate (){
>       QwordMemory (
>         ResourceConsumer, PosDecode, MinFixed, MaxFixed, NonCacheable,
>         ReadWrite, 0x0, 0x700100520, 0x700100523, 0x0, 4, , , "SATA",)
>       Memory32Fixed(ReadWrite, 0x3200000, 0x10000, "REG0")
>     }
> 
> Basically 2 or more entries of Memory/Address Space Resource Descriptor
> which can be identified in OSPM by DescriptorName. IOW if a device has
> 2 sets of registers/memory/address space associated with it, instead of relying
> on the order of declaration, identify them by the descriptor name provided in
> ASL namespace.

Thanks Sudeep, 
Shouldn't acpi frame work encapsulate descriptor name  while adding resource.
So that driver can rely on platform_get_resource_byname . 
In such way, same driver could be used with device tree and acpi based systems. 

I am not sure, if acpi_evaluate_xx sort of api would work for descriptor-name , even if this does it will be limited to acpi only.
 
> --
> Regards,
> Sudeep

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [EXT] Re: Help on named object in kernel
  2019-06-13  1:20     ` [EXT] " Udit Kumar
@ 2019-06-13 17:08       ` Sudeep Holla
  0 siblings, 0 replies; 6+ messages in thread
From: Sudeep Holla @ 2019-06-13 17:08 UTC (permalink / raw)
  To: Udit Kumar
  Cc: Schmauss, Erik, ACPI Devel Maling List, lenb, Sudeep Holla,
	Rafael J. Wysocki

On Thu, Jun 13, 2019 at 01:20:32AM +0000, Udit Kumar wrote:
>
>
> > -----Original Message-----
> > From: linux-acpi-owner@vger.kernel.org <linux-acpi-owner@vger.kernel.org>
> > On Behalf Of Sudeep Holla
> > Sent: Wednesday, June 12, 2019 10:31 PM
> > To: Schmauss, Erik <erik.schmauss@intel.com>
> > Cc: Udit Kumar <udit.kumar@nxp.com>; ACPI Devel Maling List <linux-
> > acpi@vger.kernel.org>; lenb@kernel.org; Sudeep Holla
> > <sudeep.holla@arm.com>; Rafael J. Wysocki <rafael@kernel.org>
> > Subject: [EXT] Re: Help on named object in kernel
> >
> > Caution: EXT Email
> >
> > On Wed, Jun 12, 2019 at 04:37:09PM +0000, Schmauss, Erik wrote:
> > >
> > >
> > > > -----Original Message-----
> > > > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> > > > owner@vger.kernel.org] On Behalf Of Udit Kumar
> > > > Sent: Wednesday, June 12, 2019 4:48 AM
> > > > To: ACPI Devel Maling List <linux-acpi@vger.kernel.org>
> > > > Cc: lenb@kernel.org; Rafael J. Wysocki <rafael@kernel.org>
> > > > Subject: Help on named object in kernel
> > > >
> > > > Dear ACPI experts,
> > > > I need your help on defining named objected in ACPI under _CRS.
> > > > In my firmware, I have defined two addresses for my device using
> > > > Memory32Fixed and QwordMemory under _CRS.
> > > > These  two addresses are 32-bit and 64-bit long respectively.
> > > > For Memory32Fixed, I gave DescriptorName name as REG0 and for
> > > > QwordMemory I gave DescriptorName as SATA.
> > >
> > > Could you give us the ASL for the code snippet that you're talking about?
> > >
> >
> > IIUC, something like below(a very rough example based on the description
> > above):
> >
> >     Name (_CRS, ResourceTemplate (){
> >       QwordMemory (
> >         ResourceConsumer, PosDecode, MinFixed, MaxFixed, NonCacheable,
> >         ReadWrite, 0x0, 0x700100520, 0x700100523, 0x0, 4, , , "SATA",)
> >       Memory32Fixed(ReadWrite, 0x3200000, 0x10000, "REG0")
> >     }
> >
> > Basically 2 or more entries of Memory/Address Space Resource Descriptor
> > which can be identified in OSPM by DescriptorName. IOW if a device has
> > 2 sets of registers/memory/address space associated with it, instead of relying
> > on the order of declaration, identify them by the descriptor name provided in
> > ASL namespace.
>
> Thanks Sudeep,
> Shouldn't acpi frame work encapsulate descriptor name  while adding resource.
> So that driver can rely on platform_get_resource_byname .
> In such way, same driver could be used with device tree and acpi based systems.
>
> I am not sure, if acpi_evaluate_xx sort of api would work for
> descriptor-name , even if this does it will be limited to acpi only.
>

IIUC acpi_resource_source should have all the information, just not
used for this purpose yet. I do see some uses of string_ptr in that
elsewhere. I haven't tried it, but looking at the code I think the
support is there already.

But the question is who/where will the list of names for such resource
is listed for a given HID/CID/... ?
--
Regards,
Sudeep

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-06-13 17:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-12 11:48 Help on named object in kernel Udit Kumar
2019-06-12 16:37 ` Schmauss, Erik
2019-06-12 17:00   ` [EXT] " Udit Kumar
2019-06-12 17:00   ` Sudeep Holla
2019-06-13  1:20     ` [EXT] " Udit Kumar
2019-06-13 17:08       ` Sudeep Holla

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).