* Revert back to Christian Hohnstaedt's ixp4xx NPE driver (Krzysztof's

driver does not currently achieve achieve the performance that
Christian's does, and it is unlikely that Krzysztof will have the time
to work on his before 2.6.22 is released).
* Rename MAC patches to match names in nslu2-linux repository and
refresh these patches to apply with the GPIO patch. The mac patches can
be replaced with the new ones when Krzysztof's driver is developed
further.

svn path=/dists/trunk/linux-2.6/; revision=8957
This commit is contained in:
Gordon Farquharson 2007-06-10 02:14:22 +00:00
parent 3db725c7a9
commit 16b3d949d5
13 changed files with 5060 additions and 2577 deletions

View File

@ -109,8 +109,6 @@ CONFIG_MACH_NAS100D=y
#
CONFIG_DMABOUNCE=y
# CONFIG_IXP4XX_INDIRECT_PCI is not set
CONFIG_IXP4XX_QMGR=m
CONFIG_IXP4XX_NPE=m
#
# Processor Type
@ -768,7 +766,11 @@ CONFIG_CICADA_PHY=m
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
CONFIG_IXP4XX_ETH=m
CONFIG_IXP4XX_QMGR=m
CONFIG_IXP4XX_NPE=m
CONFIG_IXP4XX_FW_LOAD=y
CONFIG_IXP4XX_MAC=m
CONFIG_IXP4XX_CRYPTO=m
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set

4
debian/changelog vendored
View File

@ -43,12 +43,10 @@ linux-2.6 (2.6.22~rc4-1~experimental.1) UNRELEASED; urgency=low
[ Gordon Farquharson ]
* arm: Mark CHELSIO_T3, NETXEN_NIC, BCM43XX, VIDEO_BT848,
DVB_B2C2_FLEXCOP, and DVB_BUDGET as broken on ARM.
* arm/ixp4xx: Replace IXP4xx network drivers (Qmgr, NPE, Ethernet,
HSS) with the ones written by Krzysztof Halasa.
* arm/ixp4xx: Add support for the new generic I2C GPIO driver on the
NSLU2 and the NAS100D. Thanks to Michael-Luke Jones and Rod Whitby.
-- maximilian attems <maks@debian.org> Fri, 08 Jun 2007 16:54:39 +0200
-- Gordon Farquharson <gordonfarquharson@gmail.com> Sat, 9 Jun 2007 19:33:59 -0600
linux-2.6 (2.6.21-3) UNRELEASED; urgency=low

View File

@ -0,0 +1,42 @@
diff --git a/drivers/net/ixp4xx/mac_driver.c b/drivers/net/ixp4xx/mac_driver.c
index 2ae78e5..2212293 100644
--- a/drivers/net/ixp4xx/mac_driver.c
+++ b/drivers/net/ixp4xx/mac_driver.c
@@ -350,6 +350,16 @@ static int ixmac_open (struct net_device *dev)
mac->npe_stat_num = i<NPE_STAT_NUM ? NPE_STAT_NUM_BASE : NPE_STAT_NUM;
mac->npe_stat_num += NPE_Q_STAT_NUM;
+ /* Only use platform or random if there's currently no device hw addr */
+ if (is_zero_ether_addr(dev->dev_addr)) {
+ if (is_zero_ether_addr(mac->plat->hwaddr)) {
+ random_ether_addr(dev->dev_addr);
+ dev->dev_addr[5] = mac->plat->phy_id;
+ }
+ else
+ memcpy(dev->dev_addr, mac->plat->hwaddr, 6);
+ }
+
mac_set_uniaddr(dev);
media_check(dev, 1);
ixmac_set_rx_mode(dev);
@@ -692,20 +702,6 @@ static int mac_probe(struct platform_device *pdev)
INIT_DELAYED_WORK(&mac->mdio_thread, mac_mdio_thread);
- /* The place of the MAC address is very system dependent.
- * Here we use a random one to be replaced by one of the
- * following commands:
- * "ip link set address 02:03:04:04:04:01 dev eth0"
- * "ifconfig eth0 hw ether 02:03:04:04:04:07"
- */
-
- if (is_zero_ether_addr(plat->hwaddr)) {
- random_ether_addr(dev->dev_addr);
- dev->dev_addr[5] = plat->phy_id;
- }
- else
- memcpy(dev->dev_addr, plat->hwaddr, 6);
-
printk(KERN_INFO IXMAC_NAME " driver " IXMAC_VERSION
": %s on %s with PHY[%d] initialized\n",
dev->name, npe->plat->name, plat->phy_id);

File diff suppressed because it is too large Load Diff

View File

@ -1,87 +0,0 @@
Index: linux-2.6.22-rc3-armeb/arch/arm/mach-ixp4xx/common.c
===================================================================
--- linux-2.6.22-rc3-armeb.orig/arch/arm/mach-ixp4xx/common.c 2007-05-27 07:07:26.000000000 -0700
+++ linux-2.6.22-rc3-armeb/arch/arm/mach-ixp4xx/common.c 2007-05-27 07:08:24.000000000 -0700
@@ -486,3 +486,17 @@
clockevents_register_device(&clockevent_ixp4xx);
return 0;
}
+
+/* fuses */
+
+u32 ixp4xx_read_fuses(void)
+{
+ unsigned int fuses = ~*IXP4XX_EXP_CFG2;
+ fuses &= ~IXP4XX_FUSE_RESERVED;
+ if (!cpu_is_ixp46x())
+ fuses &= ~IXP4XX_FUSE_IXP46X_ONLY;
+
+ return fuses;
+}
+
+EXPORT_SYMBOL(ixp4xx_read_fuses);
Index: linux-2.6.22-rc3-armeb/include/asm-arm/arch-ixp4xx/platform.h
===================================================================
--- linux-2.6.22-rc3-armeb.orig/include/asm-arm/arch-ixp4xx/platform.h 2007-05-27 07:07:26.000000000 -0700
+++ linux-2.6.22-rc3-armeb/include/asm-arm/arch-ixp4xx/platform.h 2007-05-27 10:18:14.000000000 -0700
@@ -120,6 +120,47 @@
extern int ixp4xx_setup(int nr, struct pci_sys_data *sys);
extern struct pci_bus *ixp4xx_scan_bus(int nr, struct pci_sys_data *sys);
+/* Fuse definitions and functions */
+
+/* Fuse Bits of IXP_EXP_CFG2 */
+#define IXP4XX_FUSE_RCOMP (1 << 0)
+#define IXP4XX_FUSE_USB_DEVICE (1 << 1)
+#define IXP4XX_FUSE_HASH (1 << 2)
+#define IXP4XX_FUSE_AES (1 << 3)
+#define IXP4XX_FUSE_DES (1 << 4)
+#define IXP4XX_FUSE_HDLC (1 << 5)
+#define IXP4XX_FUSE_AAL (1 << 6)
+#define IXP4XX_FUSE_HSS (1 << 7)
+#define IXP4XX_FUSE_UTOPIA (1 << 8)
+#define IXP4XX_FUSE_NPEB_ETH0 (1 << 9)
+#define IXP4XX_FUSE_NPEC_ETH (1 << 10)
+#define IXP4XX_FUSE_RESET_NPEA (1 << 11)
+#define IXP4XX_FUSE_RESET_NPEB (1 << 12)
+#define IXP4XX_FUSE_RESET_NPEC (1 << 13)
+#define IXP4XX_FUSE_PCI (1 << 14)
+#define IXP4XX_FUSE_ECC_TIMESYNC (1 << 15)
+#define IXP4XX_FUSE_UTOPIA_PHY_LIMIT (3 << 16)
+#define IXP4XX_FUSE_USB_HOST (1 << 18)
+#define IXP4XX_FUSE_NPEA_ETH (1 << 19)
+#define IXP4XX_FUSE_NPEB_ETH_1_TO_3 (1 << 20)
+#define IXP4XX_FUSE_RSA (1 << 21)
+#define IXP4XX_FUSE_XSCALE_MAX_FREQ (3 << 22)
+#define IXP4XX_FUSE_RESERVED (0xFF << 24)
+
+#define IXP4XX_FUSE_IXP46X_ONLY (IXP4XX_FUSE_ECC_TIMESYNC | \
+ IXP4XX_FUSE_USB_HOST | \
+ IXP4XX_FUSE_NPEA_ETH | \
+ IXP4XX_FUSE_NPEB_ETH_1_TO_3 | \
+ IXP4XX_FUSE_RSA | \
+ IXP4XX_FUSE_XSCALE_MAX_FREQ)
+
+extern u32 ixp4xx_read_fuses(void);
+
+static inline void ixp4xx_write_fuses(u32 value)
+{
+ *IXP4XX_EXP_CFG2 = ~value;
+}
+
/*
* GPIO-functions
*/
Index: linux-2.6.22-rc3-armeb/arch/arm/kernel/setup.c
===================================================================
--- linux-2.6.22-rc3-armeb.orig/arch/arm/kernel/setup.c 2007-05-27 07:07:26.000000000 -0700
+++ linux-2.6.22-rc3-armeb/arch/arm/kernel/setup.c 2007-05-27 07:08:24.000000000 -0700
@@ -60,6 +60,8 @@
extern void _stext, _text, _etext, __data_start, _edata, _end;
unsigned int processor_id;
+EXPORT_SYMBOL(processor_id);
+
unsigned int __machine_arch_type;
EXPORT_SYMBOL(__machine_arch_type);

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
Index: linux-2.6.22-rc1-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c
===================================================================
--- linux-2.6.22-rc1-armeb.orig/arch/arm/mach-ixp4xx/nas100d-setup.c 2007-05-13 04:54:45.000000000 -0700
+++ linux-2.6.22-rc1-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c 2007-05-13 05:05:44.000000000 -0700
diff --git a/arch/arm/mach-ixp4xx/nas100d-setup.c b/arch/arm/mach-ixp4xx/nas100d-setup.c
index 78a1741..54d884f 100644
--- a/arch/arm/mach-ixp4xx/nas100d-setup.c
+++ b/arch/arm/mach-ixp4xx/nas100d-setup.c
@@ -16,6 +16,7 @@
#include <linux/serial.h>
#include <linux/serial_8250.h>
@ -10,7 +10,7 @@ Index: linux-2.6.22-rc1-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
@@ -68,16 +69,17 @@
@@ -68,16 +69,17 @@ static struct platform_device nas100d_leds = {
};
#endif
@ -33,7 +33,7 @@ Index: linux-2.6.22-rc1-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c
};
static struct resource nas100d_uart_resources[] = {
@@ -124,7 +126,7 @@
@@ -124,7 +126,7 @@ static struct platform_device nas100d_uart = {
};
static struct platform_device *nas100d_devices[] __initdata = {

View File

@ -1,25 +1,31 @@
Index: linux-2.6.22-rc3-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c
===================================================================
--- linux-2.6.22-rc3-armeb.orig/arch/arm/mach-ixp4xx/nas100d-setup.c 2007-05-27 05:03:46.000000000 -0700
+++ linux-2.6.22-rc3-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c 2007-05-27 12:52:12.000000000 -0700
@@ -125,12 +125,29 @@
diff --git a/arch/arm/mach-ixp4xx/nas100d-setup.c b/arch/arm/mach-ixp4xx/nas100d-setup.c
index 54d884f..5ef4c1f 100644
--- a/arch/arm/mach-ixp4xx/nas100d-setup.c
+++ b/arch/arm/mach-ixp4xx/nas100d-setup.c
@@ -125,12 +125,35 @@ static struct platform_device nas100d_uart = {
.resource = nas100d_uart_resources,
};
+/* Built-in 10/100 Ethernet MAC interfaces */
+static struct mac_plat_info nas100d_plat_mac[] = {
+ {
+ .phy = 0,
+ .rxq = 3,
+ }
+static struct resource res_mac0 = {
+ .start = IXP4XX_EthB_BASE_PHYS,
+ .end = IXP4XX_EthB_BASE_PHYS + 0x1ff,
+ .flags = IORESOURCE_MEM,
+};
+
+static struct platform_device nas100d_mac[] = {
+ {
+ .name = "ixp4xx_eth",
+ .id = IXP4XX_ETH_NPEB,
+ .dev.platform_data = nas100d_plat_mac,
+ }
+static struct mac_plat_info plat_mac0 = {
+ .npe_id = 1,
+ .phy_id = 0,
+ .eth_id = 0,
+ .rxq_id = 27,
+ .txq_id = 24,
+};
+
+static struct platform_device mac0 = {
+ .name = "ixp4xx_mac",
+ .id = 0,
+ .dev.platform_data = &plat_mac0,
+ .num_resources = 1,
+ .resource = &res_mac0,
+};
+
static struct platform_device *nas100d_devices[] __initdata = {
@ -28,7 +34,7 @@ Index: linux-2.6.22-rc3-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c
#ifdef CONFIG_LEDS_IXP4XX
&nas100d_leds,
#endif
+ &nas100d_mac[0],
+ &mac0
};
static void nas100d_power_off(void)

View File

@ -1,7 +1,7 @@
Index: linux-2.6.22-rc4-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c
===================================================================
--- linux-2.6.22-rc4-armeb.orig/arch/arm/mach-ixp4xx/nas100d-setup.c
+++ linux-2.6.22-rc4-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c
diff --git a/arch/arm/mach-ixp4xx/nas100d-setup.c b/arch/arm/mach-ixp4xx/nas100d-setup.c
index 5ef4c1f..870ec49 100644
--- a/arch/arm/mach-ixp4xx/nas100d-setup.c
+++ b/arch/arm/mach-ixp4xx/nas100d-setup.c
@@ -17,6 +17,7 @@
#include <linux/serial_8250.h>
#include <linux/leds.h>
@ -10,8 +10,8 @@ Index: linux-2.6.22-rc4-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
@@ -150,6 +151,30 @@ static struct platform_device *nas100d_d
&nas100d_mac[0],
@@ -156,6 +157,31 @@ static struct platform_device *nas100d_devices[] __initdata = {
&mac0
};
+static void nas100d_flash_add(struct mtd_info *mtd)
@ -23,14 +23,15 @@ Index: linux-2.6.22-rc4-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c
+ if (mtd->read(mtd, 0x0FD8, 6, &retlen, mac) == 0 && retlen == 6) {
+ printk(KERN_INFO "nas100d mac: %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",
+ mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
+ memcpy(nas100d_plat_mac[0].hwaddr, mac, 6);
+ memcpy(plat_mac0.hwaddr, mac, 6);
+ } else {
+ printk(KERN_ERR "nas100d mac: read failed\n");
+ }
+ }
+}
+
+static void nas100d_flash_remove(struct mtd_info *mtd) {
+static void nas100d_flash_remove(struct mtd_info *mtd)
+{
+}
+
+static struct mtd_notifier nas100d_flash_notifier = {
@ -41,7 +42,7 @@ Index: linux-2.6.22-rc4-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c
static void nas100d_power_off(void)
{
/* This causes the box to drop the power and go dead. */
@@ -182,6 +207,8 @@ static void __init nas100d_init(void)
@@ -188,6 +214,8 @@ static void __init nas100d_init(void)
(void)platform_device_register(&nas100d_uart);
platform_add_devices(nas100d_devices, ARRAY_SIZE(nas100d_devices));

View File

@ -1,7 +1,7 @@
Index: linux-2.6.22-rc1-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c
===================================================================
--- linux-2.6.22-rc1-armeb.orig/arch/arm/mach-ixp4xx/nslu2-setup.c 2007-05-13 04:54:45.000000000 -0700
+++ linux-2.6.22-rc1-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c 2007-05-13 05:01:20.000000000 -0700
diff --git a/arch/arm/mach-ixp4xx/nslu2-setup.c b/arch/arm/mach-ixp4xx/nslu2-setup.c
index 9bf8ccb..77277d2 100644
--- a/arch/arm/mach-ixp4xx/nslu2-setup.c
+++ b/arch/arm/mach-ixp4xx/nslu2-setup.c
@@ -18,6 +18,7 @@
#include <linux/serial.h>
#include <linux/serial_8250.h>
@ -10,7 +10,7 @@ Index: linux-2.6.22-rc1-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
@@ -41,7 +42,7 @@
@@ -41,7 +42,7 @@ static struct platform_device nslu2_flash = {
.resource = &nslu2_flash_resource,
};
@ -19,7 +19,7 @@ Index: linux-2.6.22-rc1-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c
.sda_pin = NSLU2_SDA_PIN,
.scl_pin = NSLU2_SCL_PIN,
};
@@ -82,11 +83,12 @@
@@ -82,11 +83,12 @@ static struct platform_device nslu2_leds = {
};
#endif
@ -36,7 +36,7 @@ Index: linux-2.6.22-rc1-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c
};
static struct platform_device nslu2_beeper = {
@@ -139,7 +141,7 @@
@@ -139,7 +141,7 @@ static struct platform_device nslu2_uart = {
};
static struct platform_device *nslu2_devices[] __initdata = {

View File

@ -1,35 +1,41 @@
Index: linux-2.6.22-rc1-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c
===================================================================
--- linux-2.6.22-rc1-armeb.orig/arch/arm/mach-ixp4xx/nslu2-setup.c 2007-05-16 08:10:47.000000000 -0700
+++ linux-2.6.22-rc1-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c 2007-05-16 08:15:14.000000000 -0700
@@ -140,6 +140,22 @@
diff --git a/arch/arm/mach-ixp4xx/nslu2-setup.c b/arch/arm/mach-ixp4xx/nslu2-setup.c
index 77277d2..d109e04 100644
--- a/arch/arm/mach-ixp4xx/nslu2-setup.c
+++ b/arch/arm/mach-ixp4xx/nslu2-setup.c
@@ -140,6 +140,28 @@ static struct platform_device nslu2_uart = {
.resource = nslu2_uart_resources,
};
+/* Built-in 10/100 Ethernet MAC interfaces */
+static struct mac_plat_info nslu2_plat_mac[] = {
+ {
+ .phy = 1,
+ .rxq = 3,
+ }
+static struct resource res_mac0 = {
+ .start = IXP4XX_EthB_BASE_PHYS,
+ .end = IXP4XX_EthB_BASE_PHYS + 0x1ff,
+ .flags = IORESOURCE_MEM,
+};
+
+static struct platform_device nslu2_mac[] = {
+ {
+ .name = "ixp4xx_eth",
+ .id = IXP4XX_ETH_NPEB,
+ .dev.platform_data = nslu2_plat_mac,
+ }
+static struct mac_plat_info plat_mac0 = {
+ .npe_id = 1,
+ .phy_id = 1,
+ .eth_id = 0,
+ .rxq_id = 27,
+ .txq_id = 24,
+};
+
+static struct platform_device mac0 = {
+ .name = "ixp4xx_mac",
+ .id = 0,
+ .dev.platform_data = &plat_mac0,
+ .num_resources = 1,
+ .resource = &res_mac0,
+};
+
static struct platform_device *nslu2_devices[] __initdata = {
&nslu2_i2c_gpio,
&nslu2_flash,
@@ -147,6 +163,7 @@
@@ -147,6 +169,7 @@ static struct platform_device *nslu2_devices[] __initdata = {
#ifdef CONFIG_LEDS_IXP4XX
&nslu2_leds,
#endif
+ &nslu2_mac[0],
+ &mac0
};
static void nslu2_power_off(void)

View File

@ -1,7 +1,7 @@
Index: linux-2.6.22-rc4-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c
===================================================================
--- linux-2.6.22-rc4-armeb.orig/arch/arm/mach-ixp4xx/nslu2-setup.c
+++ linux-2.6.22-rc4-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c
diff --git a/arch/arm/mach-ixp4xx/nslu2-setup.c b/arch/arm/mach-ixp4xx/nslu2-setup.c
index d109e04..7e3fa07 100644
--- a/arch/arm/mach-ixp4xx/nslu2-setup.c
+++ b/arch/arm/mach-ixp4xx/nslu2-setup.c
@@ -19,6 +19,7 @@
#include <linux/serial_8250.h>
#include <linux/leds.h>
@ -10,8 +10,8 @@ Index: linux-2.6.22-rc4-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
@@ -166,6 +167,30 @@ static struct platform_device *nslu2_dev
&nslu2_mac[0],
@@ -196,6 +197,32 @@ static struct sys_timer nslu2_timer = {
.init = nslu2_timer_init,
};
+static void nslu2_flash_add(struct mtd_info *mtd)
@ -20,17 +20,19 @@ Index: linux-2.6.22-rc4-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c
+ size_t retlen;
+ u_char mac[6];
+
+ /* The MAC is at a known offset... */
+ if (mtd->read(mtd, 0x3FFB0, 6, &retlen, mac) == 0 && retlen == 6) {
+ printk(KERN_INFO "nslu2 mac: %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",
+ printk(KERN_INFO "NSLU2 MAC: %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",
+ mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
+ memcpy(nslu2_plat_mac[0].hwaddr, mac, 6);
+ memcpy(&plat_mac0.hwaddr, mac, 6);
+ } else {
+ printk(KERN_ERR "nslu2 mac: read failed\n");
+ printk(KERN_ERR "NSLU2 MAC: read failed\n");
+ }
+ }
+}
+
+static void nslu2_flash_remove(struct mtd_info *mtd) {
+static void nslu2_flash_remove(struct mtd_info *mtd)
+{
+}
+
+static struct mtd_notifier nslu2_flash_notifier = {
@ -38,10 +40,10 @@ Index: linux-2.6.22-rc4-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c
+ .remove = nslu2_flash_remove,
+};
+
static void nslu2_power_off(void)
static void __init nslu2_init(void)
{
/* This causes the box to drop the power and go dead. */
@@ -208,6 +233,8 @@ static void __init nslu2_init(void)
ixp4xx_sys_init();
@@ -214,6 +241,8 @@ static void __init nslu2_init(void)
(void)platform_device_register(&nslu2_uart);
platform_add_devices(nslu2_devices, ARRAY_SIZE(nslu2_devices));

View File

@ -19,8 +19,8 @@
+ bugfix/mips/tulip_dc21143.patch
+ features/mips/qemu-vga.patch
+ features/mips/sb1-duart.patch
+ features/arm/ixp4xx-net-fuses.patch
+ features/arm/ixp4xx-net-drivers.patch
+ features/arm/ixp4xx-npe-driver-0.3.1.patch
+ features/arm/ixp4xx-net-driver-improve-mac-handling.patch
+ features/arm/nslu2-i2c-gpio-driver-support.patch
+ features/arm/nas100d-i2c-gpio-driver-support.patch
+ features/arm/nslu2-mac_plat_info.patch