summaryrefslogtreecommitdiff
path: root/system/mkinitfs/0002-initramfs-init-add-disk-and-network-detection-on-s39.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/mkinitfs/0002-initramfs-init-add-disk-and-network-detection-on-s39.patch')
-rw-r--r--system/mkinitfs/0002-initramfs-init-add-disk-and-network-detection-on-s39.patch97
1 files changed, 97 insertions, 0 deletions
diff --git a/system/mkinitfs/0002-initramfs-init-add-disk-and-network-detection-on-s39.patch b/system/mkinitfs/0002-initramfs-init-add-disk-and-network-detection-on-s39.patch
new file mode 100644
index 000000000..aef8293a1
--- /dev/null
+++ b/system/mkinitfs/0002-initramfs-init-add-disk-and-network-detection-on-s39.patch
@@ -0,0 +1,97 @@
+From 7f77e0b383330265be27f551b2e384a6a8648afa Mon Sep 17 00:00:00 2001
+From: "Tuan M. Hoang" <tmhoang@flatglobe.org>
+Date: Mon, 14 May 2018 10:14:29 -0500
+Subject: [PATCH 2/3] initramfs-init: add disk and network detection on s390x
+
+- Allow including dasd and qeth modules when building initramfs
+- Add detection for dasd and qeth devices from cmdline in init
+---
+ Makefile | 7 ++++++-
+ features.d/dasd_mod.modules | 1 +
+ features.d/qeth.modules | 1 +
+ initramfs-init.in | 21 ++++++++++++++++++++-
+ 4 files changed, 28 insertions(+), 2 deletions(-)
+ create mode 100644 features.d/dasd_mod.modules
+ create mode 100644 features.d/qeth.modules
+
+diff --git a/Makefile b/Makefile
+index fc01d1a..40dc284 100644
+--- a/Makefile
++++ b/Makefile
+@@ -48,7 +48,9 @@ CONF_FILES := mkinitfs.conf \
+ features.d/xfs.files \
+ features.d/xfs.modules \
+ features.d/zfs.files \
+- features.d/zfs.modules
++ features.d/zfs.modules \
++ features.d/qeth.modules \
++ features.d/dasd_mod.modules
+
+ SCRIPTS := mkinitfs bootchartd initramfs-init
+ IN_FILES := $(addsuffix .in,$(SCRIPTS))
+@@ -71,6 +73,9 @@ SED_REPLACE := -e 's:@VERSION@:$(FULL_VERSION):g' \
+ -e 's:@datadir@:$(datadir):g'
+
+ DEFAULT_FEATURES ?= ata base cdrom ext2 ext4 keymap kms mmc raid scsi usb virtio
++ifeq ($(shell uname -m), s390x)
++DEFAULT_FEATURES += qeth dasd_mod
++endif
+
+
+ all: $(SBIN_FILES) $(SCRIPTS) $(CONF_FILES)
+diff --git a/features.d/dasd_mod.modules b/features.d/dasd_mod.modules
+new file mode 100644
+index 0000000..ce843c5
+--- /dev/null
++++ b/features.d/dasd_mod.modules
+@@ -0,0 +1 @@
++kernel/drivers/s390/block/dasd*
+diff --git a/features.d/qeth.modules b/features.d/qeth.modules
+new file mode 100644
+index 0000000..bb5c320
+--- /dev/null
++++ b/features.d/qeth.modules
+@@ -0,0 +1 @@
++kernel/drivers/s390/net/qeth*
+diff --git a/initramfs-init.in b/initramfs-init.in
+index bf2d9bd..933c8c1 100755
+--- a/initramfs-init.in
++++ b/initramfs-init.in
+@@ -269,7 +269,7 @@ set -- $(cat /proc/cmdline)
+ myopts="alpine_dev autodetect autoraid chart cryptroot cryptdm cryptheader cryptoffset
+ cryptdiscards debug_init dma init_args keep_apk_new modules ovl_dev pkgs quiet
+ root_size root usbdelay ip alpine_repo apkovl alpine_start splash blacklist
+- overlaytmpfs rootfstype rootflags nbd resume"
++ overlaytmpfs rootfstype rootflags nbd resume s390x_net dasd"
+
+ for opt; do
+ case "$opt" in
+@@ -345,6 +345,25 @@ mount -t devpts -o gid=5,mode=0620,noexec,nosuid devpts /dev/pts
+ [ -d /dev/shm ] || mkdir /dev/shm
+ mount -t tmpfs -o nodev,nosuid,noexec shm /dev/shm
+
++if [ -n "$dasd" ]; then
++ for mod in dasd_mod dasd_eckd_mod dasd_fba_mod; do
++ modprobe $mod
++ done
++ for _dasd in $(echo "$dasd" | tr ',' ' ' ); do
++ echo 1 > /sys/bus/ccw/devices/"${_dasd%%:*}"/online
++ done
++fi
++
++if [ "${s390x_net%%,*}" = "qeth_l2" ]; then
++ for mod in qeth qeth_l2 qeth_l3; do
++ modprobe $mod
++ done
++ _channel="${s390x_net#*,}"
++ echo "$_channel" > /sys/bus/ccwgroup/drivers/qeth/group
++ echo 1 > /sys/bus/ccwgroup/drivers/qeth/"${_channel%%,*}"/layer2
++ echo 1 > /sys/bus/ccwgroup/drivers/qeth/"${_channel%%,*}"/online
++fi
++
+ # load available drivers to get access to modloop media
+ ebegin "Loading boot drivers"
+
+--
+2.17.0
+