Lines Matching full:bios
36 * BIOS.
46 /* Check if current bios is an ATOM BIOS.
47 * Return true if it is ATOM BIOS. Otherwise, return false.
49 static bool check_atom_bios(uint8_t *bios, size_t size) in check_atom_bios() argument
53 if (!bios || size < 0x49) { in check_atom_bios()
58 if (!AMD_IS_VALID_VBIOS(bios)) { in check_atom_bios()
59 DRM_INFO("BIOS signature incorrect %x %x\n", bios[0], bios[1]); in check_atom_bios()
63 bios_header_start = bios[0x48] | (bios[0x49] << 8); in check_atom_bios()
65 DRM_INFO("Can't locate bios header\n"); in check_atom_bios()
71 DRM_INFO("BIOS header is broken\n"); in check_atom_bios()
75 if (!memcmp(bios + tmp, "ATOM", 4) || in check_atom_bios()
76 !memcmp(bios + tmp, "MOTA", 4)) { in check_atom_bios()
86 * part of the system bios. On boot, the system bios puts a
92 uint8_t __iomem *bios; in igp_read_bios_from_vram() local
100 adev->bios = NULL; in igp_read_bios_from_vram()
102 bios = ioremap_wc(vram_base, size); in igp_read_bios_from_vram()
103 if (!bios) { in igp_read_bios_from_vram()
107 adev->bios = kmalloc(size, GFP_KERNEL); in igp_read_bios_from_vram()
108 if (!adev->bios) { in igp_read_bios_from_vram()
109 iounmap(bios); in igp_read_bios_from_vram()
113 memcpy_fromio(adev->bios, bios, size); in igp_read_bios_from_vram()
114 iounmap(bios); in igp_read_bios_from_vram()
116 if (!check_atom_bios(adev->bios, size)) { in igp_read_bios_from_vram()
117 kfree(adev->bios); in igp_read_bios_from_vram()
126 uint8_t __iomem *bios; in amdgpu_read_bios() local
129 adev->bios = NULL; in amdgpu_read_bios()
131 bios = pci_map_rom(adev->pdev, &size); in amdgpu_read_bios()
132 if (!bios) { in amdgpu_read_bios()
136 adev->bios = kzalloc(size, GFP_KERNEL); in amdgpu_read_bios()
137 if (adev->bios == NULL) { in amdgpu_read_bios()
138 pci_unmap_rom(adev->pdev, bios); in amdgpu_read_bios()
142 memcpy_fromio(adev->bios, bios, size); in amdgpu_read_bios()
143 pci_unmap_rom(adev->pdev, bios); in amdgpu_read_bios()
145 if (!check_atom_bios(adev->bios, size)) { in amdgpu_read_bios()
146 kfree(adev->bios); in amdgpu_read_bios()
175 adev->bios = kmalloc(len, GFP_KERNEL); in amdgpu_read_bios_from_rom()
176 if (!adev->bios) { in amdgpu_read_bios_from_rom()
177 DRM_ERROR("no memory to allocate for BIOS\n"); in amdgpu_read_bios_from_rom()
182 /* read complete BIOS */ in amdgpu_read_bios_from_rom()
183 amdgpu_asic_read_bios_from_rom(adev, adev->bios, len); in amdgpu_read_bios_from_rom()
185 if (!check_atom_bios(adev->bios, len)) { in amdgpu_read_bios_from_rom()
186 kfree(adev->bios); in amdgpu_read_bios_from_rom()
197 void __iomem *bios; in amdgpu_read_platform_bios() local
199 adev->bios = NULL; in amdgpu_read_platform_bios()
204 adev->bios = kzalloc(romlen, GFP_KERNEL); in amdgpu_read_platform_bios()
205 if (!adev->bios) in amdgpu_read_platform_bios()
208 bios = ioremap(rom, romlen); in amdgpu_read_platform_bios()
209 if (!bios) in amdgpu_read_platform_bios()
212 memcpy_fromio(adev->bios, bios, romlen); in amdgpu_read_platform_bios()
213 iounmap(bios); in amdgpu_read_platform_bios()
215 if (!check_atom_bios(adev->bios, romlen)) in amdgpu_read_platform_bios()
222 kfree(adev->bios); in amdgpu_read_platform_bios()
227 /* ATRM is used to get the BIOS on the discrete cards in
236 * @bios: vbios image pointer
244 static int amdgpu_atrm_call(acpi_handle atrm_handle, uint8_t *bios, in amdgpu_atrm_call() argument
268 memcpy(bios+offset, obj->buffer.pointer, obj->buffer.length); in amdgpu_atrm_call()
317 adev->bios = kmalloc(size, GFP_KERNEL); in amdgpu_atrm_get_bios()
318 if (!adev->bios) { in amdgpu_atrm_get_bios()
319 DRM_ERROR("Unable to allocate bios\n"); in amdgpu_atrm_get_bios()
325 adev->bios, in amdgpu_atrm_get_bios()
332 if (!check_atom_bios(adev->bios, size)) { in amdgpu_atrm_get_bios()
333 kfree(adev->bios); in amdgpu_atrm_get_bios()
395 adev->bios = kmemdup(&vbios->VbiosContent, in amdgpu_acpi_vfct_bios()
399 if (!check_atom_bios(adev->bios, vhdr->ImageLength)) { in amdgpu_acpi_vfct_bios()
400 kfree(adev->bios); in amdgpu_acpi_vfct_bios()
455 DRM_ERROR("Unable to locate a BIOS ROM\n"); in amdgpu_get_bios()