Skip to content

Commit c47a16f

Browse files
committed
configs: Include kernel build in powerpc64_petitboot_defconfig
Signed-off-by: Jeremy Kerr <[email protected]>
1 parent a13b79a commit c47a16f

6 files changed

+478
-1
lines changed

configs/powerpc64_petitboot_defconfig

+7-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ BR2_GENERATE_LOCALE="en_US.UTF-8"
33
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
44
BR2_TARGET_GENERIC_GETTY_PORT="hvc0"
55
BR2_ROOTFS_OVERLAY="overlay"
6+
BR2_LINUX_KERNEL=y
7+
BR2_LINUX_KERNEL_CUSTOM_GIT=y
8+
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerkvm.git"
9+
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="71ca6744e118d6850bf47f58e872900f5f47b9ee"
10+
BR2_LINUX_KERNEL_DEFCONFIG="skiroot"
11+
BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
612
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
713
BR2_PACKAGE_LINUX_FIRMWARE=y
814
BR2_PACKAGE_LINUX_FIRMWARE_BNX2X=y
@@ -14,5 +20,5 @@ BR2_PACKAGE_ETHTOOL=y
1420
BR2_PACKAGE_NETCAT=y
1521
BR2_PACKAGE_RSYNC=y
1622
BR2_PACKAGE_PETITBOOT=y
17-
BR2_TARGET_ROOTFS_CPIO=y
1823
BR2_TARGET_ROOTFS_CPIO_XZ=y
24+
BR2_TARGET_ROOTFS_INITRAMFS=y
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
From 336c982af17179164e3e85d6b956170bd0cd49c1 Mon Sep 17 00:00:00 2001
2+
From: Jeremy Kerr <[email protected]>
3+
Date: Fri, 7 Mar 2014 10:17:22 +0800
4+
Subject: [PATCH 1/5] net/bnx2x: Add shutdown handler
5+
6+
This change uses the existing .remove handler for device shutdown.
7+
8+
Signed-off-by: Jeremy Kerr <[email protected]>
9+
---
10+
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 1 +
11+
1 file changed, 1 insertion(+)
12+
13+
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
14+
index 37de1bd..b6c02f6 100644
15+
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
16+
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
17+
@@ -12906,6 +12906,7 @@ static struct pci_driver bnx2x_pci_driver = {
18+
.name = DRV_MODULE_NAME,
19+
.id_table = bnx2x_pci_tbl,
20+
.probe = bnx2x_init_one,
21+
+ .shutdown = bnx2x_remove_one,
22+
.remove = bnx2x_remove_one,
23+
.suspend = bnx2x_suspend,
24+
.resume = bnx2x_resume,
25+
--
26+
1.8.3.2
27+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
From 7fabf658e57d367390c939b7b4759f48c139dfd4 Mon Sep 17 00:00:00 2001
2+
From: Thadeu Lima de Souza Cascardo <[email protected]>
3+
Date: Mon, 10 Mar 2014 13:02:13 -0300
4+
Subject: [PATCH 2/5] xhci: do not halt the secondary HCD
5+
6+
We can't halt the secondary HCD, because it's also the primary HCD,
7+
which will cause problems if we have devices attached to the primary
8+
HCD, like a keyboard.
9+
10+
Signed-off-by: Jeremy Kerr <[email protected]>
11+
---
12+
drivers/usb/host/xhci.c | 7 ++++++-
13+
1 file changed, 6 insertions(+), 1 deletion(-)
14+
15+
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
16+
index 4a5251f..2e6831e 100644
17+
--- a/drivers/usb/host/xhci.c
18+
+++ b/drivers/usb/host/xhci.c
19+
@@ -691,7 +691,12 @@ static void xhci_only_stop_hcd(struct usb_hcd *hcd)
20+
struct xhci_hcd *xhci = hcd_to_xhci(hcd);
21+
22+
spin_lock_irq(&xhci->lock);
23+
- xhci_halt(xhci);
24+
+ /*
25+
+ * We can't halt the secondary HCD, because it's also the
26+
+ * primary HCD, which will cause problems if we have devices
27+
+ * attached to the primary HCD, like a keyboard.
28+
+ */
29+
+ /*xhci_halt(xhci);*/
30+
31+
/* The shared_hcd is going to be deallocated shortly (the USB core only
32+
* calls this function when allocation fails in usb_add_hcd(), or
33+
--
34+
1.8.3.2
35+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
From 3d9df976994df2a6419817adb123168caaa93a0b Mon Sep 17 00:00:00 2001
2+
From: Thadeu Lima De Souza Cascardo <[email protected]>
3+
Date: Tue, 25 Mar 2014 10:45:16 -0400
4+
Subject: [PATCH 3/5] xhci: Use xhci_pci_remove for xhci device shutdown
5+
6+
Signed-off-by: Jeremy Kerr <[email protected]>
7+
---
8+
drivers/usb/host/xhci-pci.c | 2 +-
9+
1 file changed, 1 insertion(+), 1 deletion(-)
10+
11+
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
12+
index 159e3c6d..37806b5 100644
13+
--- a/drivers/usb/host/xhci-pci.c
14+
+++ b/drivers/usb/host/xhci-pci.c
15+
@@ -344,7 +344,7 @@ static struct pci_driver xhci_pci_driver = {
16+
.remove = xhci_pci_remove,
17+
/* suspend and resume implemented later */
18+
19+
- .shutdown = usb_hcd_pci_shutdown,
20+
+ .shutdown = xhci_pci_remove,
21+
#ifdef CONFIG_PM
22+
.driver = {
23+
.pm = &usb_hcd_pci_pm_ops
24+
--
25+
1.8.3.2
26+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,223 @@
1+
From c84869dbb3e68651cf15b20df5d2703603066615 Mon Sep 17 00:00:00 2001
2+
From: Brian King <[email protected]>
3+
Date: Fri, 21 Mar 2014 15:11:41 +1100
4+
Subject: [PATCH 4/5] ipr: Add support for async scanning to speed up boot
5+
6+
Signed-off-by: Jeremy Kerr <[email protected]>
7+
---
8+
drivers/scsi/ipr.c | 88 ++++++++++++++++++++++++++----------------------------
9+
drivers/scsi/ipr.h | 4 +--
10+
2 files changed, 44 insertions(+), 48 deletions(-)
11+
12+
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
13+
index 79e5099..4ad4a7e 100644
14+
--- a/drivers/scsi/ipr.c
15+
+++ b/drivers/scsi/ipr.c
16+
@@ -1426,16 +1426,14 @@ static void ipr_handle_config_change(struct ipr_ioa_cfg *ioa_cfg,
17+
if (res->sdev) {
18+
res->del_from_ml = 1;
19+
res->res_handle = IPR_INVALID_RES_HANDLE;
20+
- if (ioa_cfg->allow_ml_add_del)
21+
- schedule_work(&ioa_cfg->work_q);
22+
+ schedule_work(&ioa_cfg->work_q);
23+
} else {
24+
ipr_clear_res_target(res);
25+
list_move_tail(&res->queue, &ioa_cfg->free_res_q);
26+
}
27+
} else if (!res->sdev || res->del_from_ml) {
28+
res->add_to_ml = 1;
29+
- if (ioa_cfg->allow_ml_add_del)
30+
- schedule_work(&ioa_cfg->work_q);
31+
+ schedule_work(&ioa_cfg->work_q);
32+
}
33+
34+
ipr_send_hcam(ioa_cfg, IPR_HCAM_CDB_OP_CODE_CONFIG_CHANGE, hostrcb);
35+
@@ -3263,8 +3261,7 @@ static void ipr_worker_thread(struct work_struct *work)
36+
restart:
37+
do {
38+
did_work = 0;
39+
- if (!ioa_cfg->hrrq[IPR_INIT_HRRQ].allow_cmds ||
40+
- !ioa_cfg->allow_ml_add_del) {
41+
+ if (!ioa_cfg->hrrq[IPR_INIT_HRRQ].allow_cmds) {
42+
spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags);
43+
return;
44+
}
45+
@@ -3301,6 +3298,7 @@ restart:
46+
}
47+
}
48+
49+
+ ioa_cfg->scan_done = 1;
50+
spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags);
51+
kobject_uevent(&ioa_cfg->host->shost_dev.kobj, KOBJ_CHANGE);
52+
LEAVE;
53+
@@ -5240,6 +5238,28 @@ static int ipr_cancel_op(struct scsi_cmnd *scsi_cmd)
54+
* @scsi_cmd: scsi command struct
55+
*
56+
* Return value:
57+
+ * 0 if scan in progress / 1 if scan is complete
58+
+ **/
59+
+static int ipr_scan_finished(struct Scsi_Host *shost, unsigned long elapsed_time)
60+
+{
61+
+ unsigned long lock_flags;
62+
+ struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *) shost->hostdata;
63+
+ int rc = 0;
64+
+
65+
+ spin_lock_irqsave(shost->host_lock, lock_flags);
66+
+ if (ioa_cfg->hrrq[IPR_INIT_HRRQ].ioa_is_dead || ioa_cfg->scan_done)
67+
+ rc = 1;
68+
+ if ((elapsed_time/HZ) > (ioa_cfg->transop_timeout * 2))
69+
+ rc = 1;
70+
+ spin_unlock_irqrestore(shost->host_lock, lock_flags);
71+
+ return rc;
72+
+}
73+
+
74+
+/**
75+
+ * ipr_eh_host_reset - Reset the host adapter
76+
+ * @scsi_cmd: scsi command struct
77+
+ *
78+
+ * Return value:
79+
* SUCCESS / FAILED
80+
**/
81+
static int ipr_eh_abort(struct scsi_cmnd *scsi_cmd)
82+
@@ -6335,6 +6355,7 @@ static struct scsi_host_template driver_template = {
83+
.slave_alloc = ipr_slave_alloc,
84+
.slave_configure = ipr_slave_configure,
85+
.slave_destroy = ipr_slave_destroy,
86+
+ .scan_finished = ipr_scan_finished,
87+
.target_alloc = ipr_target_alloc,
88+
.target_destroy = ipr_target_destroy,
89+
.change_queue_depth = ipr_change_queue_depth,
90+
@@ -6875,7 +6896,7 @@ static int ipr_ioa_reset_done(struct ipr_cmnd *ipr_cmd)
91+
ioa_cfg->doorbell |= IPR_RUNTIME_RESET;
92+
93+
list_for_each_entry(res, &ioa_cfg->used_res_q, queue) {
94+
- if (ioa_cfg->allow_ml_add_del && (res->add_to_ml || res->del_from_ml)) {
95+
+ if (res->add_to_ml || res->del_from_ml) {
96+
ipr_trace;
97+
break;
98+
}
99+
@@ -6904,6 +6925,7 @@ static int ipr_ioa_reset_done(struct ipr_cmnd *ipr_cmd)
100+
if (!ioa_cfg->hrrq[IPR_INIT_HRRQ].allow_cmds)
101+
scsi_block_requests(ioa_cfg->host);
102+
103+
+ schedule_work(&ioa_cfg->work_q);
104+
LEAVE;
105+
return IPR_RC_JOB_RETURN;
106+
}
107+
@@ -7644,6 +7666,19 @@ static int ipr_ioafp_page0_inquiry(struct ipr_cmnd *ipr_cmd)
108+
type[4] = '\0';
109+
ioa_cfg->type = simple_strtoul((char *)type, NULL, 16);
110+
111+
+ if (ipr_invalid_adapter(ioa_cfg)) {
112+
+ dev_err(&ioa_cfg->pdev->dev,
113+
+ "Adapter not supported in this hardware configuration.\n");
114+
+
115+
+ if (!ipr_testmode) {
116+
+ ioa_cfg->reset_retries += IPR_NUM_RESET_RELOAD_RETRIES;
117+
+ ipr_initiate_ioa_reset(ioa_cfg, IPR_SHUTDOWN_NONE);
118+
+ list_add_tail(&ipr_cmd->queue,
119+
+ &ioa_cfg->hrrq->hrrq_free_q);
120+
+ return IPR_RC_JOB_RETURN;
121+
+ }
122+
+ }
123+
+
124+
ipr_cmd->job_step = ipr_ioafp_page3_inquiry;
125+
126+
ipr_ioafp_inquiry(ipr_cmd, 1, 0,
127+
@@ -8831,20 +8866,6 @@ static int ipr_probe_ioa_part2(struct ipr_ioa_cfg *ioa_cfg)
128+
_ipr_initiate_ioa_reset(ioa_cfg, ipr_reset_enable_ioa,
129+
IPR_SHUTDOWN_NONE);
130+
spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags);
131+
- wait_event(ioa_cfg->reset_wait_q, !ioa_cfg->in_reset_reload);
132+
- spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags);
133+
-
134+
- if (ioa_cfg->hrrq[IPR_INIT_HRRQ].ioa_is_dead) {
135+
- rc = -EIO;
136+
- } else if (ipr_invalid_adapter(ioa_cfg)) {
137+
- if (!ipr_testmode)
138+
- rc = -EIO;
139+
-
140+
- dev_err(&ioa_cfg->pdev->dev,
141+
- "Adapter not supported in this hardware configuration.\n");
142+
- }
143+
-
144+
- spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags);
145+
146+
LEAVE;
147+
return rc;
148+
@@ -9296,7 +9317,7 @@ static void ipr_init_ioa_cfg(struct ipr_ioa_cfg *ioa_cfg,
149+
* ioa_cfg->max_devs_supported)));
150+
}
151+
152+
- host->max_channel = IPR_MAX_BUS_TO_SCAN;
153+
+ host->max_channel = IPR_VSET_BUS;
154+
host->unique_id = host->host_no;
155+
host->max_cmd_len = IPR_MAX_CDB_LEN;
156+
host->can_queue = ioa_cfg->max_cmds;
157+
@@ -9806,25 +9827,6 @@ out_scsi_host_put:
158+
}
159+
160+
/**
161+
- * ipr_scan_vsets - Scans for VSET devices
162+
- * @ioa_cfg: ioa config struct
163+
- *
164+
- * Description: Since the VSET resources do not follow SAM in that we can have
165+
- * sparse LUNs with no LUN 0, we have to scan for these ourselves.
166+
- *
167+
- * Return value:
168+
- * none
169+
- **/
170+
-static void ipr_scan_vsets(struct ipr_ioa_cfg *ioa_cfg)
171+
-{
172+
- int target, lun;
173+
-
174+
- for (target = 0; target < IPR_MAX_NUM_TARGETS_PER_BUS; target++)
175+
- for (lun = 0; lun < IPR_MAX_NUM_VSET_LUNS_PER_TARGET; lun++)
176+
- scsi_add_device(ioa_cfg->host, IPR_VSET_BUS, target, lun);
177+
-}
178+
-
179+
-/**
180+
* ipr_initiate_ioa_bringdown - Bring down an adapter
181+
* @ioa_cfg: ioa config struct
182+
* @shutdown_type: shutdown type
183+
@@ -9979,10 +9981,6 @@ static int ipr_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id)
184+
}
185+
186+
scsi_scan_host(ioa_cfg->host);
187+
- ipr_scan_vsets(ioa_cfg);
188+
- scsi_add_device(ioa_cfg->host, IPR_IOA_BUS, IPR_IOA_TARGET, IPR_IOA_LUN);
189+
- ioa_cfg->allow_ml_add_del = 1;
190+
- ioa_cfg->host->max_channel = IPR_VSET_BUS;
191+
ioa_cfg->iopoll_weight = ioa_cfg->chip_cfg->iopoll_weight;
192+
193+
if (blk_iopoll_enabled && ioa_cfg->iopoll_weight &&
194+
diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h
195+
index 0dc4275..79017fa 100644
196+
--- a/drivers/scsi/ipr.h
197+
+++ b/drivers/scsi/ipr.h
198+
@@ -156,13 +156,11 @@
199+
200+
#define IPR_MAX_NUM_TARGETS_PER_BUS 256
201+
#define IPR_MAX_NUM_LUNS_PER_TARGET 256
202+
-#define IPR_MAX_NUM_VSET_LUNS_PER_TARGET 8
203+
#define IPR_VSET_BUS 0xff
204+
#define IPR_IOA_BUS 0xff
205+
#define IPR_IOA_TARGET 0xff
206+
#define IPR_IOA_LUN 0xff
207+
#define IPR_MAX_NUM_BUSES 16
208+
-#define IPR_MAX_BUS_TO_SCAN IPR_MAX_NUM_BUSES
209+
210+
#define IPR_NUM_RESET_RELOAD_RETRIES 3
211+
212+
@@ -1452,7 +1450,7 @@ struct ipr_ioa_cfg {
213+
u8 in_ioa_bringdown:1;
214+
u8 ioa_unit_checked:1;
215+
u8 dump_taken:1;
216+
- u8 allow_ml_add_del:1;
217+
+ u8 scan_done:1;
218+
u8 needs_hard_reset:1;
219+
u8 dual_raid:1;
220+
u8 needs_warm_reset:1;
221+
--
222+
1.8.3.2
223+

0 commit comments

Comments
 (0)