• Xiaojie Yuan's avatar
    drm/amdgpu/discovery: add ip discovery initial support · f39f5bb1
    Xiaojie Yuan authored
    The IP discovery table lists is populated by the psp at power on
    and includes all of the hw details on the board:
    - List of IPs and MMIO offsets
    - IP harvest details
    - IP configuration details
    
    v2: prefix struct and function names with 'amdgpu'
    v3: read table binary from vram using mmMM_INDEX and mmMM_DATA
        update TABLE_BINARY_MAX_SIZE to 64kb (1 TMR)
        add 'instance_number' field per ip info
        consider endianness and replace uint8/16/32_t with u8/16/32
        initialize register base addresses
        initialize adev->gfx.config and adev->gfx.cu_info to replace gpu info fw
        get major and minor version using a single api
        don't expose internal data structures in amdgpu_discovery.h
    v4: RCC_CONFIG_MEMSIZE is in MB units
        hold mmio_idx_lock while reading ip discovery binary
    v5: pick out discovery.h as a cross-OS header
        do structure pointer cast directly
        consider endianness while using the member of structure
        convert base addresses to dword
    
    at boot up, PSP BL copies ip discovery binary from VBIOS(SPIROM) image to the
    top of the frame buffer (just below the reserved regions for PSP & SMU).
    
    ip discovery data table includes the collection of each ip's identification
    number, base addresses, version number, and harvest setting placeholder.
    
    gc data table includes gfx info structure.
    Signed-off-by: default avatarXiaojie Yuan <xiaojie.yuan@amd.com>
    Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    f39f5bb1
discovery.h 4.07 KB