[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1e76bc70-21a6-4ac7-99ea-30a7ccf387bb@kernel.org>
Date: Wed, 23 Oct 2024 11:00:04 +0200
From: Krzysztof Kozlowski <krzk@...nel.org>
To: Tudor Ambarus <tudor.ambarus@...aro.org>, jassisinghbrar@...il.com
Cc: alim.akhtar@...sung.com, mst@...hat.com, javierm@...hat.com,
tzimmermann@...e.de, bartosz.golaszewski@...aro.org,
luzmaximilian@...il.com, sudeep.holla@....com, conor.dooley@...rochip.com,
bjorn@...osinc.com, ulf.hansson@...aro.org,
linux-samsung-soc@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, marcan@...can.st, neal@...pa.dev,
alyssa@...enzweig.io, broonie@...nel.org, andre.draszik@...aro.org,
willmcvicker@...gle.com, peter.griffin@...aro.org, kernel-team@...roid.com,
vincent.guittot@...aro.org, daniel.lezcano@...aro.org
Subject: Re: [PATCH v2 2/2] firmware: add exynos acpm driver
On 22/10/2024 09:58, Tudor Ambarus wrote:
>
>>>>
>>>> I also cannot find any piece of code setting several of above, e.g. tx_base
>>>
>>> I'm not writing any SRAM configuration fields, these fields are used to
>>> read/retrive the channel parameters from SRAM.
>>
>> I meany tx_base is always 0. Where is this property set? Ever?
>
> It's not zero. My assumption is it is set in the acpm firmware, but I
Where is any assignment to this member?
> don't have access to that to verify. Here are some debug prints made in
> the linux driver:
>
> [ 0.069575][ T1] gs-acpm-ipc 17610000.mailbox:
> exynos_mbox_chan_init ID = 2 poll = 1, mlen = 16, qlen = 5
> [ 0.069927][ T1] gs-acpm-ipc 17610000.mailbox:
> exynos_mbox_chan_init ID = 2 offsets: rx_base = 0x00038290 rx_front =
> 0x0003828c, rx_rear = 0x00038288
> [ 0.070449][ T1] gs-acpm-ipc 17610000.mailbox:
> exynos_mbox_chan_init ID = 2 offsets: tx_base = 0x000382f0 tx_front =
> 0x000382ec, tx_rear = 0x000382e8
>
>
> tx_base contains the SRAM offset of the RX queue used in linux. The
> offset is relative to the base address of the SRAM config data.
>
> tx_base is seen/named from the firmware's point of view, thus named TX.
> I assume the same struct is defined in the acpm firmware.
>
>
> Somewhere below in the linux driver I get the RX ring base address by doing:
>
> rx->base = exynos_acpm_get_iomem_addr(base, &shmem_chan->tx_base);
tx_base is still 0.
>
> where base is the SRAM base address of the channels configuration data.
>
> static void __iomem *exynos_acpm_get_iomem_addr(void __iomem *base,
>
>
> void __iomem *addr)
>
>
> {
>
>
> u32 offset;
>
>
>
>
>
> offset = readl_relaxed(addr);
>
>
> return base + offset;
>
>
> }
>
> Hope this clarifies a bit these struct members.
No, where is tx_base assigned?
Best regards,
Krzysztof
Powered by blists - more mailing lists