mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: barebox@lists.infradead.org
Cc: Ahmad Fatoum <a.fatoum@pengutronix.de>
Subject: [PATCH 105/112] efi: devicepath: let compiler worry about unaligned unpacking
Date: Wed,  3 Jan 2024 19:13:05 +0100	[thread overview]
Message-ID: <20240103181312.409668-106-a.fatoum@pengutronix.de> (raw)
In-Reply-To: <20240103181312.409668-1-a.fatoum@pengutronix.de>

Device path nodes are tightly packed and subsequent device nodes may
start at any boundary. To parse these, existing code allocated a new
buffer and unpacked device paths into it, so they are at a natural
boundary (chosen as 8 bytes with x86_64 in mind).

We can simplify this by using __packed and letting the compiler worry
about not generating unaligned accesses. This has the benefit of
simplifying the incoming EFI loader implementation and we now no longer
leak the unpacked EFI device path.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 efi/devicepath.c          | 56 -------------------------------
 include/efi/device-path.h | 70 +++++++++++++++++++--------------------
 2 files changed, 35 insertions(+), 91 deletions(-)

diff --git a/efi/devicepath.c b/efi/devicepath.c
index 229810d49bbc..0df43f222018 100644
--- a/efi/devicepath.c
+++ b/efi/devicepath.c
@@ -40,15 +40,11 @@ char *cprintf(struct string *str, const char *fmt, ...)
 	return NULL;
 }
 
-#define MIN_ALIGNMENT_SIZE  8	/* FIXME: X86_64 specific */
-#define ALIGN_SIZE(a)   ((a % MIN_ALIGNMENT_SIZE) ? MIN_ALIGNMENT_SIZE - (a % MIN_ALIGNMENT_SIZE) : 0)
-
 #define device_path_type(a)           ( ((a)->type) & DEVICE_PATH_TYPE_MASK )
 #define next_device_path_node(a)       ( (const struct efi_device_path *) ( ((u8 *) (a)) + (a)->length))
 #define is_device_path_end_type(a)      ( device_path_type(a) == DEVICE_PATH_TYPE_END )
 #define is_device_path_end_sub_type(a)   ( (a)->sub_type == DEVICE_PATH_SUB_TYPE_END )
 #define is_device_path_end(a)          ( is_device_path_end_type(a) && is_device_path_end_sub_type(a) )
-#define is_device_path_unpacked(a)     ( (a)->type & DEVICE_PATH_TYPE_UNPACKED )
 
 #define set_device_path_end_node(a)  {                      \
             (a)->type = DEVICE_PATH_TYPE_END;           \
@@ -90,50 +86,6 @@ device_path_from_handle(efi_handle_t Handle)
 	return NULL;
 }
 
-static struct efi_device_path *
-unpack_device_path(const struct efi_device_path *dev_path)
-{
-	const struct efi_device_path *Src;
-	struct efi_device_path *Dest, *new_path;
-	unsigned long Size;
-
-	/* Walk device path and round sizes to valid boundaries */
-
-	Src = dev_path;
-	Size = 0;
-	for (;;) {
-		Size += Src->length;
-		Size += ALIGN_SIZE(Size);
-
-		if (is_device_path_end(Src)) {
-			break;
-		}
-
-		Src = next_device_path_node(Src);
-	}
-
-	new_path = xzalloc(Size);
-
-	Src = dev_path;
-	Dest = new_path;
-	for (;;) {
-		Size = Src->length;
-		memcpy(Dest, Src, Size);
-		Size += ALIGN_SIZE(Size);
-		Dest->length = Size;
-		Dest->type |= DEVICE_PATH_TYPE_UNPACKED;
-		Dest =
-		    (struct efi_device_path *) (((u8 *) Dest) + Size);
-
-		if (is_device_path_end(Src))
-			break;
-
-		Src = next_device_path_node(Src);
-	}
-
-	return new_path;
-}
-
 static void
 dev_path_pci(struct string *str, const void *dev_path)
 {
@@ -727,8 +679,6 @@ static void __device_path_to_str(struct string *str,
 	void (*dump_node) (struct string *, const void *);
 	int i;
 
-	dev_path = unpack_device_path(dev_path);
-
 	dev_path_node = dev_path;
 	while (!is_device_path_end(dev_path_node)) {
 		dump_node = NULL;
@@ -804,7 +754,6 @@ u8 device_path_to_type(const struct efi_device_path *dev_path)
 {
 	const struct efi_device_path *dev_path_next;
 
-	dev_path = unpack_device_path(dev_path);
 	dev_path_next = next_device_path_node(dev_path);
 
 	while (!is_device_path_end(dev_path_next)) {
@@ -819,7 +768,6 @@ u8 device_path_to_subtype(const struct efi_device_path *dev_path)
 {
 	const struct efi_device_path *dev_path_next;
 
-	dev_path = unpack_device_path(dev_path);
 	dev_path_next = next_device_path_node(dev_path);
 
 	while (!is_device_path_end(dev_path_next)) {
@@ -851,8 +799,6 @@ device_path_next_compatible_node(const struct efi_device_path *dev_path,
 
 char *device_path_to_partuuid(const struct efi_device_path *dev_path)
 {
-	dev_path = unpack_device_path(dev_path);
-
 	while ((dev_path = device_path_next_compatible_node(dev_path,
 				 DEVICE_PATH_TYPE_MEDIA_DEVICE, DEVICE_PATH_SUB_TYPE_HARD_DRIVE_PATH))) {
 		struct efi_device_path_hard_drive_path *hd =
@@ -872,8 +818,6 @@ char *device_path_to_filepath(const struct efi_device_path *dev_path)
 	struct efi_device_path_file_path *fp = NULL;
 	char *path;
 
-	dev_path = unpack_device_path(dev_path);
-
 	while ((dev_path = device_path_next_compatible_node(dev_path,
 				 DEVICE_PATH_TYPE_MEDIA_DEVICE, DEVICE_PATH_SUB_TYPE_FILE_PATH))) {
 		fp = container_of(dev_path, struct efi_device_path_file_path, header);
diff --git a/include/efi/device-path.h b/include/efi/device-path.h
index 39221ca369de..f6f11672f5d6 100644
--- a/include/efi/device-path.h
+++ b/include/efi/device-path.h
@@ -2,6 +2,7 @@
 #define __EFI_DEVICE_PATH_H
 
 #include <efi/types.h>
+#include <linux/compiler.h>
 
 /*
  * Hardware Device Path (UEFI 2.4 specification, version 2.4 § 9.3.2.)
@@ -14,13 +15,13 @@ struct efi_device_path_pci {
 	struct efi_device_path header;
 	u8 Function;
 	u8 Device;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_PCCARD                    0x02
 struct efi_device_path_pccard {
 	struct efi_device_path header;
 	u8 function_number;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_MEMORY                    0x03
 struct efi_device_path_memory {
@@ -28,24 +29,24 @@ struct efi_device_path_memory {
 	u32 memory_type;
 	efi_physical_addr_t starting_address;
 	efi_physical_addr_t ending_address;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_VENDOR                    0x04
 struct efi_device_path_vendor {
 	struct efi_device_path header;
 	efi_guid_t Guid;
-};
+} __packed;
 
 struct efi_device_path_unknown_device_vendor {
 	struct efi_device_path_vendor device_path;
 	u8 legacy_drive_letter;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_CONTROLLER            0x05
 struct efi_device_path_controller {
 	struct efi_device_path header;
 	u32 Controller;
-};
+} __packed;
 
 /*
  * ACPI Device Path (UEFI 2.4 specification, version 2.4 § 9.3.3 and 9.3.4.)
@@ -57,7 +58,7 @@ struct efi_device_path_acpi_hid {
 	struct efi_device_path header;
 	u32 HID;
 	u32 UID;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_EXPANDED_ACPI_DEVICE		0x02
 struct efi_device_path_expanded_acpi {
@@ -66,13 +67,13 @@ struct efi_device_path_expanded_acpi {
 	u32 UID;
 	u32 CID;
 	u8 hid_str[];
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_ACPI_ADR_DEVICE 3
 struct efi_device_path_acpi_adr {
 	struct efi_device_path header;
 	u32 ADR;
-};
+} __packed;
 
 /*
  * EISA ID Macro
@@ -99,14 +100,14 @@ struct efi_device_path_atapi {
 	u8 primary_secondary;
 	u8 slave_master;
 	u16 Lun;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_MSG_SCSI                     0x02
 struct efi_device_path_scsi {
 	struct efi_device_path header;
 	u16 Pun;
 	u16 Lun;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_MSG_FIBRECHANNEL             0x03
 struct efi_device_path_fibrechannel {
@@ -114,7 +115,7 @@ struct efi_device_path_fibrechannel {
 	u32 Reserved;
 	u64 WWN;
 	u64 Lun;
-};
+} __packed;
 
 /**
  * Fibre Channel Ex sub_type.
@@ -126,21 +127,21 @@ struct efi_device_path_fibrechannelex {
 	u32 Reserved;
 	u8 WWN[8];		/* World Wide Name */
 	u8 Lun[8];		/* Logical unit, T-10 SCSI Architecture Model 4 specification */
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_MSG_1394                     0x04
 struct efi_device_path_f1394 {
 	struct efi_device_path header;
 	u32 Reserved;
 	u64 Guid;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_MSG_USB                      0x05
 struct efi_device_path_usb {
 	struct efi_device_path header;
 	u8 Port;
 	u8 Endpoint;
-};
+} __packed;
 
 /**
  * SATA Device Path sub_type.
@@ -152,7 +153,7 @@ struct efi_device_path_sata {
 	u16 HBAPort_number;
 	u16 port_multiplier_port_number;
 	u16 Lun;		/* Logical Unit Number */
-};
+} __packed;
 
 /**
  * USB WWID Device Path sub_type.
@@ -165,7 +166,7 @@ struct efi_device_path_usb_wwid {
 	u16 vendor_id;
 	u16 product_id;
 	s16 serial_number[];	/* UTF-16 characters of the USB serial number */
-};
+} __packed;
 
 /**
  * Device Logical Unit sub_type.
@@ -175,7 +176,7 @@ struct efi_device_path_usb_wwid {
 struct efi_device_path_logical_unit {
 	struct efi_device_path header;
 	u8 Lun;			/* Logical Unit Number */
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_MSG_USB_CLASS                0x0f
 struct efi_device_path_usb_class {
@@ -185,20 +186,20 @@ struct efi_device_path_usb_class {
 	u8 device_class;
 	u8 device_subclass;
 	u8 device_protocol;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_MSG_I2_o                      0x06
 struct efi_device_path_i2_o {
 	struct efi_device_path header;
 	u32 Tid;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_MSG_MAC_ADDR                 0x0b
 struct efi_device_path_mac_addr {
 	struct efi_device_path header;
 	struct efi_mac_address mac_address;
 	u8 if_type;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_MSG_IPv4                     0x0c
 struct efi_device_path_ipv4 {
@@ -212,7 +213,7 @@ struct efi_device_path_ipv4 {
 	/* new from UEFI version 2, code must check length field in header */
 	struct efi_ipv4_address gateway_ip_address;
 	struct efi_ipv4_address subnet_mask;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_MSG_IPv6                     0x0d
 struct efi_device_path_ipv6 {
@@ -226,7 +227,7 @@ struct efi_device_path_ipv6 {
 	/* new from UEFI version 2, code must check length field in header */
 	u8 prefix_length;
 	struct efi_ipv6_address gateway_ip_address;
-};
+} __packed;
 
 /**
  * Device Logical Unit sub_type.
@@ -236,7 +237,7 @@ struct efi_device_path_ipv6 {
 struct efi_device_path_vlan {
 	struct efi_device_path header;
 	u16 vlan_id;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_MSG_INFINIBAND               0x09
 struct efi_device_path_infiniband {
@@ -246,7 +247,7 @@ struct efi_device_path_infiniband {
 	u64 service_id;
 	u64 target_port_id;
 	u64 device_id;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_MSG_UART                     0x0e
 struct efi_device_path_uart {
@@ -256,7 +257,7 @@ struct efi_device_path_uart {
 	u8 data_bits;
 	u8 Parity;
 	u8 stop_bits;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_MSG_VENDOR                   0x0a
 /* Use VENDOR_DEVICE_PATH struct */
@@ -299,7 +300,7 @@ struct efi_device_path_hard_drive_path {
 	u8 signature[16];
 	u8 mbr_type;
 	u8 signature_type;
-};
+} __packed;
 
 #define MBR_TYPE_PCAT                       0x01
 #define MBR_TYPE_EFI_PARTITION_TABLE_HEADER 0x02
@@ -313,7 +314,7 @@ struct efi_device_path_cdrom_path {
 	u32 boot_entry;
 	u64 partition_start;
 	u64 partition_size;
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_VENDOR_PATH                 0x03
 /* Use VENDOR_DEVICE_PATH struct */
@@ -322,13 +323,13 @@ struct efi_device_path_cdrom_path {
 struct efi_device_path_file_path {
 	struct efi_device_path header;
 	s16 path_name[];
-};
+} __packed;
 
 #define DEVICE_PATH_SUB_TYPE_MEDIA_PROTOCOL               0x05
 struct efi_device_path_media_protocol {
 	struct efi_device_path header;
 	efi_guid_t Protocol;
-};
+} __packed;
 
 /**
  * PIWG Firmware File sub_type.
@@ -338,7 +339,7 @@ struct efi_device_path_media_protocol {
 struct efi_device_path_media_fw_vol_file_path {
 	struct efi_device_path header;
 	efi_guid_t fv_file_name;
-};
+} __packed;
 
 /**
  * PIWG Firmware Volume Device Path sub_type.
@@ -348,7 +349,7 @@ struct efi_device_path_media_fw_vol_file_path {
 struct efi_device_media_piwg_fw_vol {
 	struct efi_device_path header;
 	efi_guid_t fv_name;
-};
+} __packed;
 
 /**
  * Media relative offset range device path.
@@ -360,7 +361,7 @@ struct efi_device_media_relative_offset_range {
 	u32 Reserved;
 	u64 starting_offset;
 	u64 ending_offset;
-};
+} __packed;
 
 /*
  * BIOS Boot Specification Device Path (UEFI 2.4 specification, version 2.4 § 9.3.7.)
@@ -373,7 +374,7 @@ struct efi_device_path_bbs_bbs {
 	u16 device_type;
 	u16 status_flag;
 	s8 String[];
-};
+} __packed;
 
 /* device_type definitions - from BBS specification */
 #define BBS_TYPE_FLOPPY                 0x01
@@ -387,7 +388,6 @@ struct efi_device_path_bbs_bbs {
 
 
 #define DEVICE_PATH_TYPE_MASK			0x7f
-#define DEVICE_PATH_TYPE_UNPACKED		0x80
 
 #define DEVICE_PATH_TYPE_END			0x7f
 
-- 
2.39.2




  parent reply	other threads:[~2024-01-03 18:33 UTC|newest]

Thread overview: 134+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-03 18:11 [PATCH 000/112] efi: prepare for ARM64 EFI loader support Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 001/112] string: implement strcmp_ptr and streq_ptr helpers Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 002/112] commands: efiexit: flush console and shutdown barebox Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 003/112] treewide: add errno_set helper for returning positive error code in errno Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 004/112] vsprintf: guard against NULL in UUID %pU Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 005/112] common: add option to poweroff system on failure Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 006/112] boot: print error code when booting fails Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 007/112] common: efi: move directory to top-level Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 008/112] efi: payload: rename CONFIG_EFI_BOOTUP to CONFIG_EFI_PAYLOAD Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 009/112] efi: payload: image: return actual read_file() error Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 010/112] of: don't report failure to of_read_file twice Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 011/112] efi: payload: make missing state reporting less verbose Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 012/112] libfile: factor out read_file_into_buf helper Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 013/112] efi: payload: image: allocate image via loader if it exceeds malloc area Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 014/112] efi: payload: image: use assigned barebox loader type on x86 Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 015/112] efi: payload: iomem: adjust types to avoid casting Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 016/112] commands: kallsyms: add command-line interface Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 017/112] block: define BLOCKSIZE globally in block.h Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 018/112] cdev: implement setter/getter for cdev device node Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 019/112] block: virtio: assign virtio-mmio device tree node to cdevs Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 020/112] commands: stat: print DT node for cdevs if available Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 021/112] partitions: have parsers record bootable bits Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 022/112] commands: stat: display bootable partition table bit info Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 023/112] block: record block device type Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 024/112] include: add definitions for UAPI discoverable partitions spec Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 025/112] efi: payload: restrict 8250 UART at I/O port 0x3f8 registration to x86 Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 026/112] fs: fix unreaddir, so readdir returns unread dirent first Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 027/112] fs: turn creat into static inline helper Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 028/112] fs: drop unused LOOKUP_ flags Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 029/112] fs: opendir: reference mount point until closedir is called Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 030/112] fs: factor out opendir iteration Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 031/112] fs: implement fdopendir and rewinddir Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 032/112] fs: remove unused member from struct nameidata Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 033/112] fs: always check path_init for errors Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 034/112] fs: set current working dir directly when mounting root Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 035/112] fs: implement openat and friends Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 036/112] fs: implement O_PATH Ahmad Fatoum
2024-01-05 11:22   ` Sascha Hauer
2024-01-05 11:26     ` Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 037/112] fs: support different root directories Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 038/112] fs: implement O_CHROOT Ahmad Fatoum
2024-01-03 18:11 ` [PATCH 039/112] commands: introduce new findmnt command Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 040/112] fs: initialize struct nameidata::last Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 041/112] fs: support opening / Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 042/112] test: self: add dirfd tests Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 043/112] commands: stat: add option for statat Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 044/112] efi: payload: lower command line options print from error to info Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 045/112] efi: payload: init: warn if /boot FS is unknown Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 046/112] commands: time: refactor into new strjoin Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 047/112] string: reduce strjoin runtime, drop trailing separator Ahmad Fatoum
2024-01-08  7:11   ` Sascha Hauer
2024-01-08  7:18     ` Ahmad Fatoum
2024-01-08  7:43       ` Sascha Hauer
2024-01-03 18:12 ` [PATCH 048/112] test: self: add strjoin tests Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 049/112] filetype: have cdev_detect_type take a cdev Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 050/112] ARM: mmu-early: gracefully handle already enabled MMU Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 051/112] efi: don't hide structs, enums or unions behind _t Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 052/112] efi: make headers self-contained Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 053/112] efi: unify whitespace for GUIDs Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 054/112] efi: efi-guid: add more GUIDs Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 055/112] ARM64: cpu: setupc: rewrite to be fully PIC Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 056/112] ARM64: runtime-offset: make get_runtime_offset " Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 057/112] pbl: introduce CONFIG_PBL_FULLY_PIC Ahmad Fatoum
2024-01-08  7:47   ` Sascha Hauer
2024-01-22 19:15     ` Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 058/112] efi: payload: fix ARM build Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 059/112] efi: payload: init: restrict barebox mem to first 1G only on x86 Ahmad Fatoum
2024-01-03 18:58   ` Michael Olbrich
2024-01-04 11:17     ` Ahmad Fatoum
2024-01-04 18:10       ` Michael Olbrich
2024-01-05  9:14         ` Ahmad Fatoum
2024-01-05  9:31           ` Michael Olbrich
2024-01-05 10:41             ` Ahmad Fatoum
2024-01-05 14:58               ` Michael Olbrich
2024-01-08  7:22                 ` Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 060/112] ARM: pbl: add 64K segment alignment for PE/COFF Ahmad Fatoum
2024-01-08  8:05   ` Sascha Hauer
2024-01-22 19:18     ` Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 061/112] efi: add efi_is_loader/efi_is_payload helpers Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 062/112] efi: payload: suppress EFI payload initcalls when not EFI-loaded Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 063/112] ARM: make board data definitions accessible to other architectures Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 064/112] boarddata: add barebox_boarddata_is_machine helper Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 065/112] common: add PE/COFF loader Ahmad Fatoum
2024-01-08  8:37   ` Sascha Hauer
2024-03-04 17:09     ` Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 066/112] efi: use efi_handle_t where appropriate Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 067/112] efi: block: move definitions into header file Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 068/112] efi: define efi_handle_t as opaque pointer Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 069/112] efi: constify guid_t in API Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 070/112] efi: rename efi_simple_input_interface to efi_simple_text_input_protocol Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 071/112] efi: add EFI_WARN constants Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 072/112] efi-stdio: fix wait_for_event argument Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 073/112] efi-stdio: wait for extended input key event when using extended input Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 074/112] efi: flesh out EFI definitions in header Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 075/112] efi: add efi_driver_binding_protocol Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 076/112] efi: improve usability of EFI_PAGE_* macros Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 077/112] fs: efi: move definitions into header Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 078/112] efi: fs: flesh out file system definitions Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 079/112] efi: stdio: fix efi_register_keystroke_notify prototype Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 080/112] video: mark EFI_GOP driver x86-only for now Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 081/112] filetype: add new file types for EFI-enabled Linux images Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 082/112] efi: payload: register handler for EFI-stubbed ARM64 kernel Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 083/112] efi: payload: factor C efi_main into dedicated file Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 084/112] efi: payload: early-mem: simplify error message reporting Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 085/112] efi: payload: early-mem: use EFI_PAGE_SIZE instead of PAGE_SIZE Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 086/112] ARM64: add optional EFI stub Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 087/112] efi: devicepath: improve const safety Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 088/112] efi: refactor device_path_to_partuuid for code reuse Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 089/112] efi: devicepath: implement device_path_to_str_buf variant Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 090/112] vsprintf: add %pD for printing EFI device path Ahmad Fatoum
2024-01-08  9:01   ` Sascha Hauer
2024-03-04 17:26     ` Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 091/112] lib: string: import Linux strreplace helper Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 092/112] efi: payload: dynamically determine bootloader file name Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 093/112] efi: payload: iomem: register later Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 094/112] efi: payload: protect against buggy EFI implementations Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 095/112] efi: payload: don't require efi_loaded_image->parent_handle for bootsource detection Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 096/112] commands: add cpuinfo -s option for stacktrace Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 097/112] efi: devicepath: align MemoryMapped name with spec Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 098/112] efi: devicepath: pretty print BBS BEV DeviceType Ahmad Fatoum
2024-01-03 18:12 ` [PATCH 099/112] efi: devicepath: format GUIDs as little endian Ahmad Fatoum
2024-01-03 18:13 ` [PATCH 100/112] efi: devicepath: move END device node definitions into header Ahmad Fatoum
2024-01-03 18:13 ` [PATCH 101/112] efi: devicepath: drop underscores in hex constants Ahmad Fatoum
2024-01-03 18:13 ` [PATCH 102/112] efi: devicepath: namespace definitions Ahmad Fatoum
2024-01-03 18:13 ` [PATCH 103/112] efi: devicepath: use flexible array members for trailing strings Ahmad Fatoum
2024-01-03 18:13 ` [PATCH 104/112] efi: devicepath: drop unused macro Ahmad Fatoum
2024-01-03 18:13 ` Ahmad Fatoum [this message]
2024-01-03 18:13 ` [PATCH 106/112] efi: devicepath: correct formatting of BBS Ahmad Fatoum
2024-01-03 18:13 ` [PATCH 107/112] commands: provide efi_handle_dump in both payload and loader Ahmad Fatoum
2024-01-03 18:13 ` [PATCH 108/112] lib: uuid: implement uuid/guid_parse Ahmad Fatoum
2024-01-03 18:13 ` [PATCH 109/112] commands: efi_handle_dump: prepare for supporting EFI loader Ahmad Fatoum
2024-01-03 18:13 ` [PATCH 110/112] commands: efi_handle_dump: print loaded image devpath Ahmad Fatoum
2024-01-03 18:13 ` [PATCH 111/112] commands: efi_handle_dump: use guid_parse instead of open-coding Ahmad Fatoum
2024-01-03 18:13 ` [PATCH 112/112] commands: efi_handle_dump: don't ignore failure to parse GUID Ahmad Fatoum

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240103181312.409668-106-a.fatoum@pengutronix.de \
    --to=a.fatoum@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox