<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">The main idea is to be able to use different layouts on different asics that may share the same IP code.</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">Alex<br>
</p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> amd-gfx <amd-gfx-bounces@lists.freedesktop.org> on behalf of Christian König <ckoenig.leichtzumerken@gmail.com><br>
<b>Sent:</b> Thursday, November 22, 2018 4:26:53 AM<br>
<b>To:</b> Alex Deucher; Zeng, Oak<br>
<b>Cc:</b> amd-gfx list<br>
<b>Subject:</b> Re: [PATCH 7/7] drm/amdgpu: Use new doorbell layout for vega20 and future asic</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Am 21.11.18 um 17:39 schrieb Alex Deucher:<br>
> On Wed, Nov 21, 2018 at 11:37 AM Zeng, Oak <Oak.Zeng@amd.com> wrote:<br>
>>> No need to add a new file for this.  Just add this to vega20_reg_init.c.<br>
>> Agreed.<br>
>><br>
>>> Also, please use the doorbell enums rather than hardcoding the numbers.<br>
>> Ok. Where should I put the doorbell enums for vega20? In amdgpu.h or in vega20_reg_init.c?<br>
> Maybe add amdgpu_doorbell.h and move all of the enums there?<br>
<br>
Mhm, isn't part of the goal of this work to get rid of the enums?<br>
<br>
I mean when we have a structure to hold the indexes to we really need <br>
the enums any more? I don't think so.<br>
<br>
Christian.<br>
<br>
><br>
> Alex<br>
><br>
>> thanks,<br>
>> Oak<br>
>><br>
>> -----Original Message-----<br>
>> From: amd-gfx <amd-gfx-bounces@lists.freedesktop.org> On Behalf Of Alex Deucher<br>
>> Sent: Wednesday, November 21, 2018 11:22 AM<br>
>> To: Zeng, Oak <Oak.Zeng@amd.com><br>
>> Cc: Zeng, Oak <Oak.Zeng@amd.com>; amd-gfx list <amd-gfx@lists.freedesktop.org><br>
>> Subject: Re: [PATCH 7/7] drm/amdgpu: Use new doorbell layout for vega20 and future asic<br>
>><br>
>> On Wed, Nov 21, 2018 at 10:52 AM Oak Zeng <ozeng@amd.com> wrote:<br>
>>> Change-Id: I04d22fb717ac50483c0835f160a2e860e344f358<br>
>>> Signed-off-by: Oak Zeng <ozeng@amd.com><br>
>>> Suggested-by: Felix Kuehling <Felix.Kuehling@amd.com><br>
>>> Suggested-by: Alex Deucher <alexander.deucher@amd.com><br>
>>> ---<br>
>>>   drivers/gpu/drm/amd/amdgpu/Makefile                |  4 +-<br>
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c         |  4 +-<br>
>>>   drivers/gpu/drm/amd/amdgpu/soc15.h                 |  1 +<br>
>>>   .../drm/amd/amdgpu/vega20_doorbell_index_init.c    | 64 ++++++++++++++++++++++<br>
>>>   4 files changed, 70 insertions(+), 3 deletions(-)  create mode 100644<br>
>>> drivers/gpu/drm/amd/amdgpu/vega20_doorbell_index_init.c<br>
>>><br>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/Makefile<br>
>>> b/drivers/gpu/drm/amd/amdgpu/Makefile<br>
>>> index 3ab8eba..b3b150b 100644<br>
>>> --- a/drivers/gpu/drm/amd/amdgpu/Makefile<br>
>>> +++ b/drivers/gpu/drm/amd/amdgpu/Makefile<br>
>>> @@ -63,8 +63,8 @@ amdgpu-$(CONFIG_DRM_AMDGPU_SI)+= si.o gmc_v6_0.o<br>
>>> gfx_v6_0.o si_ih.o si_dma.o dce<br>
>>><br>
>>>   amdgpu-y += \<br>
>>>          vi.o mxgpu_vi.o nbio_v6_1.o soc15.o emu_soc.o mxgpu_ai.o nbio_v7_0.o vega10_reg_init.o \<br>
>>> -       vega20_reg_init.o nbio_v7_4.o vega10_doorbell_index_init.o vega12_doorbell_index_init.o \<br>
>>> -       vi_doorbell_index_init.o<br>
>>> +       vega20_reg_init.o nbio_v7_4.o vi_doorbell_index_init.o vega10_doorbell_index_init.o \<br>
>>> +       vega12_doorbell_index_init.o vega20_doorbell_index_init.o<br>
>>><br>
>>>   # add DF block<br>
>>>   amdgpu-y += \<br>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
>>> index 3ffd8f5..19f2149 100644<br>
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
>>> @@ -517,8 +517,10 @@ static int amdgpu_device_doorbell_init(struct amdgpu_device *adev)<br>
>>>                  vi_doorbell_index_init(adev);<br>
>>>          else if (adev->asic_type == CHIP_VEGA10)<br>
>>>                  vega10_doorbell_index_init(adev);<br>
>>> -       else<br>
>>> +       else if (adev->asic_type == CHIP_VEGA12 || adev->asic_type ==<br>
>>> + CHIP_RAVEN)<br>
>>>                  vega12_doorbell_index_init(adev);<br>
>>> +       else<br>
>>> +               vega20_doorbell_index_init(adev);<br>
>>><br>
>>>          /* No doorbell on SI hardware generation */<br>
>>>          if (adev->asic_type < CHIP_BONAIRE) { diff --git<br>
>>> a/drivers/gpu/drm/amd/amdgpu/soc15.h<br>
>>> b/drivers/gpu/drm/amd/amdgpu/soc15.h<br>
>>> index 939c0e8..6ba0d26 100644<br>
>>> --- a/drivers/gpu/drm/amd/amdgpu/soc15.h<br>
>>> +++ b/drivers/gpu/drm/amd/amdgpu/soc15.h<br>
>>> @@ -60,4 +60,5 @@ int vega20_reg_base_init(struct amdgpu_device<br>
>>> *adev);<br>
>>><br>
>>>   void vega10_doorbell_index_init(struct amdgpu_device *adev);  void<br>
>>> vega12_doorbell_index_init(struct amdgpu_device *adev);<br>
>>> +void vega20_doorbell_index_init(struct amdgpu_device *adev);<br>
>>>   #endif<br>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/vega20_doorbell_index_init.c<br>
>>> b/drivers/gpu/drm/amd/amdgpu/vega20_doorbell_index_init.c<br>
>>> new file mode 100644<br>
>>> index 0000000..dcaef7f<br>
>>> --- /dev/null<br>
>>> +++ b/drivers/gpu/drm/amd/amdgpu/vega20_doorbell_index_init.c<br>
>>> @@ -0,0 +1,64 @@<br>
>>> +/*<br>
>>> + * Copyright 2018 Advanced Micro Devices, Inc.<br>
>>> + *<br>
>>> + * Permission is hereby granted, free of charge, to any person<br>
>>> +obtaining a<br>
>>> + * copy of this software and associated documentation files (the<br>
>>> +"Software"),<br>
>>> + * to deal in the Software without restriction, including without<br>
>>> +limitation<br>
>>> + * the rights to use, copy, modify, merge, publish, distribute,<br>
>>> +sublicense,<br>
>>> + * and/or sell copies of the Software, and to permit persons to whom<br>
>>> +the<br>
>>> + * Software is furnished to do so, subject to the following conditions:<br>
>>> + *<br>
>>> + * The above copyright notice and this permission notice shall be<br>
>>> +included in<br>
>>> + * all copies or substantial portions of the Software.<br>
>>> + *<br>
>>> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,<br>
>>> +EXPRESS OR<br>
>>> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF<br>
>>> +MERCHANTABILITY,<br>
>>> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT<br>
>>> +SHALL<br>
>>> + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM,<br>
>>> +DAMAGES OR<br>
>>> + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR<br>
>>> +OTHERWISE,<br>
>>> + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE<br>
>>> +OR<br>
>>> + * OTHER DEALINGS IN THE SOFTWARE.<br>
>>> + *<br>
>>> + */<br>
>>> +<br>
>>> +#include "amdgpu.h"<br>
>>> +<br>
>>> +void vega20_doorbell_index_init(struct amdgpu_device *adev) {<br>
>>> +       /* Compute + GFX: 0~255 */<br>
>>> +       adev->doorbell_index.kiq = 0x00;<br>
>>> +       adev->doorbell_index.mec_ring0 = 0x03;<br>
>>> +       adev->doorbell_index.mec_ring1 = 0x04;<br>
>>> +       adev->doorbell_index.mec_ring2 = 0x05;<br>
>>> +       adev->doorbell_index.mec_ring3 = 0x06;<br>
>>> +       adev->doorbell_index.mec_ring4 = 0x07;<br>
>>> +       adev->doorbell_index.mec_ring5 = 0x08;<br>
>>> +       adev->doorbell_index.mec_ring6 = 0x09;<br>
>>> +       adev->doorbell_index.mec_ring7 = 0x0a;<br>
>>> +       adev->doorbell_index.userqueue_start = 0x0b;<br>
>>> +       adev->doorbell_index.userqueue_end = 0x8a;<br>
>>> +       adev->doorbell_index.gfx_ring0 = 0x8b;<br>
>>> +       /* SDMA:256~335*/<br>
>>> +       adev->doorbell_index.sdma_engine0 = 0x100;<br>
>>> +       adev->doorbell_index.sdma_engine1 = 0x10a;<br>
>>> +       adev->doorbell_index.sdma_engine2 = 0x114;<br>
>>> +       adev->doorbell_index.sdma_engine3 = 0x11e;<br>
>>> +       adev->doorbell_index.sdma_engine4 = 0x128;<br>
>>> +       adev->doorbell_index.sdma_engine5 = 0x132;<br>
>>> +       adev->doorbell_index.sdma_engine6 = 0x13C;<br>
>>> +       adev->doorbell_index.sdma_engine7 = 0x146;<br>
>>> +       /* IH: 376~391 */<br>
>>> +       adev->doorbell_index.ih = 0x178;<br>
>>> +       /* MMSCH: 392~407 */<br>
>>> +       adev->doorbell_index.uvd_vce.uvd_ring0_1 = 0x188;<br>
>>> +       adev->doorbell_index.uvd_vce.uvd_ring2_3 = 0x189;<br>
>>> +       adev->doorbell_index.uvd_vce.uvd_ring4_5 = 0x18a;<br>
>>> +       adev->doorbell_index.uvd_vce.uvd_ring6_7 = 0x18b;<br>
>>> +       adev->doorbell_index.uvd_vce.vce_ring0_1 = 0x18c;<br>
>>> +       adev->doorbell_index.uvd_vce.vce_ring2_3 = 0x18d;<br>
>>> +       adev->doorbell_index.uvd_vce.vce_ring4_5 = 0x18e;<br>
>>> +       adev->doorbell_index.uvd_vce.vce_ring6_7 = 0x18f;<br>
>>> +       /* In unit of dword doorbell */<br>
>>> +       adev->doorbell_index.max_assignment = 0x18f << 1; }<br>
>> No need to add a new file for this.  Just add this to vega20_reg_init.c.  Also, please use the doorbell enums rather than hardcoding the numbers.<br>
>><br>
>> Alex<br>
>><br>
>>> +<br>
>>> --<br>
>>> 2.7.4<br>
>>><br>
>>> _______________________________________________<br>
>>> amd-gfx mailing list<br>
>>> amd-gfx@lists.freedesktop.org<br>
>>> <a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a><br>
>> _______________________________________________<br>
>> amd-gfx mailing list<br>
>> amd-gfx@lists.freedesktop.org<br>
>> <a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a><br>
> _______________________________________________<br>
> amd-gfx mailing list<br>
> amd-gfx@lists.freedesktop.org<br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a><br>
<br>
_______________________________________________<br>
amd-gfx mailing list<br>
amd-gfx@lists.freedesktop.org<br>
<a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a><br>
</div>
</span></font></div>
</body>
</html>