bool                    prt_warning;
        uint64_t                stolen_vga_size;
        struct amdgpu_bo        *stolen_vga_memory;
+       uint64_t                stolen_extended_size;
+       struct amdgpu_bo        *stolen_extended_memory;
        bool                    keep_stolen_vga_memory;
        uint32_t                sdpif_register;
        /* apertures */
 
        uint64_t gtt_size;
        int r;
        u64 vis_vram_limit;
-       void *stolen_vga_buf;
+       void *stolen_vga_buf, *stolen_extended_buf;
 
        mutex_init(&adev->mman.gtt_window_lock);
 
                                       &stolen_vga_buf);
        if (r)
                return r;
+       r = amdgpu_bo_create_kernel_at(adev, adev->gmc.stolen_vga_size,
+                                      adev->gmc.stolen_extended_size,
+                                      AMDGPU_GEM_DOMAIN_VRAM,
+                                      &adev->gmc.stolen_extended_memory,
+                                      &stolen_extended_buf);
+       if (r)
+               return r;
 
        DRM_INFO("amdgpu: %uM of VRAM memory ready\n",
                 (unsigned) (adev->gmc.real_vram_size / (1024 * 1024)));
  */
 void amdgpu_ttm_late_init(struct amdgpu_device *adev)
 {
-       void *stolen_vga_buf;
+       void *stolen_vga_buf, *stolen_extended_buf;
 
        /* return the VGA stolen memory (if any) back to VRAM */
        if (!adev->gmc.keep_stolen_vga_memory)
                amdgpu_bo_free_kernel(&adev->gmc.stolen_vga_memory, NULL, &stolen_vga_buf);
+       amdgpu_bo_free_kernel(&adev->gmc.stolen_extended_memory, NULL,
+                             &stolen_extended_buf);
 }
 
 /**