Re: Minimal GPU setup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[AMD Official Use Only]


Most of the register programming in evergreen_gpu_init is required.  That code handles things like harvesting (e.g., disabling bad hardware resources) and setting sane asic specific settings in some registers.  If you don't do it, work may get scheduled to bad or incorrectly configured hardware blocks which will lead to hangs or corrupted results.  You can probably skip some of them, but I don't remember what is minimally required off hand.  It's generally a good idea to re-initialize those registers anyway in case someone has previously messed with them (e.g., manual register munging or GPU passed through to a VM etc.).

Posting the bios is enough to get you a working memory controller and enough asic setup to light up displays (basically what you need for pre-OS console).  As Christian mentioned, loading the ucodes will get the associated engines working so that you can start feeding commands to the GPU, but without proper configuration of the various hardware blocks on the GPU, you may not have success in feeding data to the GPU.

Alex



From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> on behalf of Amol <suratiamol@xxxxxxxxx>
Sent: Saturday, February 5, 2022 4:47 AM
To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx <amd-gfx@xxxxxxxxxxxxxxxxxxxxx>
Subject: Minimal GPU setup
 
Hello,

I am learning to program Radeon HD 7350 by reading the radeon
driver source in Linux, and the guides/manuals from AMD.

I understand the general flow of initialization the driver performs. I
have also been able to understand and re-implement the ATOM
BIOS virtual machine.

I am trying to program the device up from scratch (i.e. bare-metal).
Do I need to perform all those steps that the driver does? Reading
the evergreen_gpu_init function is demotivating; it initializes many
fields and registers which I suspect may not be required for a minimal
setup.

Is posting the BIOS and loading the microcode enough to get me started
with running basic tasks (DMA transfers, simple packet processing, etc.)?

Thanks,
Amol

[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux