mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 02:24:24 +02:00
firmware: google: Export coreboot table entries
Move types for coreboot table entries to <linux/coreboot.h>. Allows drivers in other subsystems to use these structures. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Tzung-Bi Shih <tzungbi@kernel.org> Acked-by: Julius Werner <jwerner@chromium.org> Link: https://patch.msgid.link/20260217155836.96267-9-tzimmermann@suse.de
This commit is contained in:
parent
086831fbd2
commit
95cef38e70
|
|
@ -10753,6 +10753,7 @@ L: chrome-platform@lists.linux.dev
|
|||
S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux.git
|
||||
F: drivers/firmware/google/
|
||||
F: include/linux/coreboot.h
|
||||
|
||||
GOOGLE TENSOR SoC SUPPORT
|
||||
M: Peter Griffin <peter.griffin@linaro.org>
|
||||
|
|
|
|||
|
|
@ -22,6 +22,16 @@
|
|||
|
||||
#include "coreboot_table.h"
|
||||
|
||||
/* Coreboot table header structure */
|
||||
struct coreboot_table_header {
|
||||
char signature[4];
|
||||
u32 header_bytes;
|
||||
u32 header_checksum;
|
||||
u32 table_bytes;
|
||||
u32 table_checksum;
|
||||
u32 table_entries;
|
||||
};
|
||||
|
||||
#define CB_DEV(d) container_of(d, struct coreboot_device, dev)
|
||||
#define CB_DRV(d) container_of_const(d, struct coreboot_driver, drv)
|
||||
|
||||
|
|
|
|||
|
|
@ -12,67 +12,9 @@
|
|||
#ifndef __COREBOOT_TABLE_H
|
||||
#define __COREBOOT_TABLE_H
|
||||
|
||||
#include <linux/coreboot.h>
|
||||
#include <linux/device.h>
|
||||
|
||||
struct coreboot_device_id;
|
||||
|
||||
/* Coreboot table header structure */
|
||||
struct coreboot_table_header {
|
||||
char signature[4];
|
||||
u32 header_bytes;
|
||||
u32 header_checksum;
|
||||
u32 table_bytes;
|
||||
u32 table_checksum;
|
||||
u32 table_entries;
|
||||
};
|
||||
|
||||
/* List of coreboot entry structures that is used */
|
||||
/* Generic */
|
||||
struct coreboot_table_entry {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
};
|
||||
|
||||
/* Points to a CBMEM entry */
|
||||
struct lb_cbmem_ref {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
|
||||
u64 cbmem_addr;
|
||||
};
|
||||
|
||||
#define LB_TAG_CBMEM_ENTRY 0x31
|
||||
|
||||
/* Corresponds to LB_TAG_CBMEM_ENTRY */
|
||||
struct lb_cbmem_entry {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
|
||||
u64 address;
|
||||
u32 entry_size;
|
||||
u32 id;
|
||||
};
|
||||
|
||||
/* Describes framebuffer setup by coreboot */
|
||||
struct lb_framebuffer {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
|
||||
u64 physical_address;
|
||||
u32 x_resolution;
|
||||
u32 y_resolution;
|
||||
u32 bytes_per_line;
|
||||
u8 bits_per_pixel;
|
||||
u8 red_mask_pos;
|
||||
u8 red_mask_size;
|
||||
u8 green_mask_pos;
|
||||
u8 green_mask_size;
|
||||
u8 blue_mask_pos;
|
||||
u8 blue_mask_size;
|
||||
u8 reserved_mask_pos;
|
||||
u8 reserved_mask_size;
|
||||
};
|
||||
|
||||
/* A device, additionally with information from coreboot. */
|
||||
struct coreboot_device {
|
||||
struct device dev;
|
||||
|
|
|
|||
|
|
@ -21,8 +21,6 @@
|
|||
|
||||
#include "coreboot_table.h"
|
||||
|
||||
#define CB_TAG_FRAMEBUFFER 0x12
|
||||
|
||||
#if defined(CONFIG_PCI)
|
||||
static bool framebuffer_pci_dev_is_enabled(struct pci_dev *pdev)
|
||||
{
|
||||
|
|
|
|||
66
include/linux/coreboot.h
Normal file
66
include/linux/coreboot.h
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* coreboot.h
|
||||
*
|
||||
* Coreboot device and driver interfaces.
|
||||
*
|
||||
* Copyright 2014 Gerd Hoffmann <kraxel@redhat.com>
|
||||
* Copyright 2017 Google Inc.
|
||||
* Copyright 2017 Samuel Holland <samuel@sholland.org>
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_COREBOOT_H
|
||||
#define _LINUX_COREBOOT_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/* List of coreboot entry structures that is used */
|
||||
|
||||
#define CB_TAG_FRAMEBUFFER 0x12
|
||||
#define LB_TAG_CBMEM_ENTRY 0x31
|
||||
|
||||
/* Generic */
|
||||
struct coreboot_table_entry {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
};
|
||||
|
||||
/* Points to a CBMEM entry */
|
||||
struct lb_cbmem_ref {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
|
||||
u64 cbmem_addr;
|
||||
};
|
||||
|
||||
/* Corresponds to LB_TAG_CBMEM_ENTRY */
|
||||
struct lb_cbmem_entry {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
|
||||
u64 address;
|
||||
u32 entry_size;
|
||||
u32 id;
|
||||
};
|
||||
|
||||
/* Describes framebuffer setup by coreboot */
|
||||
struct lb_framebuffer {
|
||||
u32 tag;
|
||||
u32 size;
|
||||
|
||||
u64 physical_address;
|
||||
u32 x_resolution;
|
||||
u32 y_resolution;
|
||||
u32 bytes_per_line;
|
||||
u8 bits_per_pixel;
|
||||
u8 red_mask_pos;
|
||||
u8 red_mask_size;
|
||||
u8 green_mask_pos;
|
||||
u8 green_mask_size;
|
||||
u8 blue_mask_pos;
|
||||
u8 blue_mask_size;
|
||||
u8 reserved_mask_pos;
|
||||
u8 reserved_mask_size;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_COREBOOT_H */
|
||||
Loading…
Reference in New Issue
Block a user