linux-riscv: initial release for base kernel (riscv)
This commit is contained in:
parent
1c863aa28a
commit
e03b0d4c20
357 changed files with 22268 additions and 2 deletions
|
|
@ -29,7 +29,7 @@ do-binary-udebs: debian/control
|
|||
outdir="$${DPKG_BUILDPACKAGE_OUTPUT_DIR:-..}" && \
|
||||
imagelist=$$(cat $(CURDIR)/$(DEBIAN)/d-i/kernel-versions | grep ^${arch} | gawk '{print $$3}') && \
|
||||
for flavour in $$imagelist; do \
|
||||
i=$(DEB_VERSION_UPSTREAM)-$(abinum)-$$flavour; \
|
||||
i=$(or $(DEB_VERSION_UPSTREAM),$(release))-$(abinum)-$$flavour; \
|
||||
found=0; \
|
||||
for deb in \
|
||||
"$$outdir"/linux-image-$$i\_*_${arch}.deb \
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ do-binary-udebs: debian/control
|
|||
outdir="$${DPKG_BUILDPACKAGE_OUTPUT_DIR:-..}" && \
|
||||
imagelist=$$(cat $(CURDIR)/$(DEBIAN)/d-i/kernel-versions | grep ^${arch} | gawk '{print $$3}') && \
|
||||
for flavour in $$imagelist; do \
|
||||
i=$(DEB_VERSION_UPSTREAM)-$(abinum)-$$flavour; \
|
||||
i=$(or $(DEB_VERSION_UPSTREAM),$(release))-$(abinum)-$$flavour; \
|
||||
found=0; \
|
||||
for deb in \
|
||||
"$$outdir"/linux-image-$$i\_*_${arch}.deb \
|
||||
|
|
|
|||
1994
helpers/DATA/linux-riscv/000-silent-accept-firmware.patch
Normal file
1994
helpers/DATA/linux-riscv/000-silent-accept-firmware.patch
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,58 @@
|
|||
reverts https://lore.kernel.org/all/iwlwifi.20211210110539.1f742f0eb58a.I1315f22f6aa632d94ae2069f85e1bca5e734dce0@changeid/
|
||||
|
||||
--- b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
+++ a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
@@ -130,9 +130,6 @@
|
||||
|
||||
for (i = 0; i < IWL_UCODE_TYPE_MAX; i++)
|
||||
iwl_free_fw_img(drv, drv->fw.img + i);
|
||||
-
|
||||
- /* clear the data for the aborted load case */
|
||||
- memset(&drv->fw, 0, sizeof(drv->fw));
|
||||
}
|
||||
|
||||
static int iwl_alloc_fw_desc(struct iwl_drv *drv, struct fw_desc *desc,
|
||||
@@ -1429,7 +1426,6 @@
|
||||
int i;
|
||||
bool load_module = false;
|
||||
bool usniffer_images = false;
|
||||
- bool failure = true;
|
||||
|
||||
fw->ucode_capa.max_probe_length = IWL_DEFAULT_MAX_PROBE_LENGTH;
|
||||
fw->ucode_capa.standard_phy_calibration_size =
|
||||
# this is change is related to patch "001" need review.
|
||||
#@@ -1699,7 +1695,6 @@
|
||||
# op->name, err);
|
||||
# #endif
|
||||
# }
|
||||
#- failure = false;
|
||||
# goto free;
|
||||
#
|
||||
# try_again:
|
||||
|
||||
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
index 5067662f..a1e5d5ca 100644
|
||||
--- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
@@ -1736,7 +1736,6 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
|
||||
*/
|
||||
if (load_module)
|
||||
request_module("%s", op->name);
|
||||
- failure = false;
|
||||
goto free;
|
||||
|
||||
try_again:
|
||||
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
index 81d06847..9d13e812 100644
|
||||
--- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
@@ -1715,9 +1710,6 @@
|
||||
complete(&drv->request_firmware_complete);
|
||||
device_release_driver(drv->trans->dev);
|
||||
free:
|
||||
- if (failure)
|
||||
- iwl_dealloc_ucode(drv);
|
||||
-
|
||||
if (pieces) {
|
||||
for (i = 0; i < ARRAY_SIZE(pieces->img); i++)
|
||||
kfree(pieces->img[i].sec);
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
reverts https://lore.kernel.org/all/iwlwifi.20211210110539.1f742f0eb58a.I1315f22f6aa632d94ae2069f85e1bca5e734dce0@changeid/
|
||||
|
||||
diff -ru source.orig/drivers/net/wireless/intel/iwlwifi/iwl-drv.c source/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
--- source.orig/drivers/net/wireless/intel/iwlwifi/iwl-drv.c 2022-05-13 16:10:11.883295769 -0400
|
||||
+++ source/drivers/net/wireless/intel/iwlwifi/iwl-drv.c 2022-05-13 20:13:06.568151229 -0400
|
||||
@@ -1605,7 +1605,6 @@
|
||||
complete(&drv->request_firmware_complete);
|
||||
device_release_driver(drv->trans->dev);
|
||||
/* drv has just been freed by the release */
|
||||
- failure = false;
|
||||
free:
|
||||
if (pieces) {
|
||||
for (i = 0; i < ARRAY_SIZE(pieces->img); i++)
|
||||
|
|
@ -0,0 +1,229 @@
|
|||
Based on https://libreplanet.org/wiki/Group:Hardware/research/gpu/radeon
|
||||
|
||||
diff -ru a/drivers/gpu/drm/radeon/btc_dpm.c b/drivers/gpu/drm/radeon/btc_dpm.c
|
||||
--- a/drivers/gpu/drm/radeon/btc_dpm.c 2021-10-31 16:53:10.000000000 -0400
|
||||
+++ b/drivers/gpu/drm/radeon/btc_dpm.c 2023-02-13 15:50:41.218608376 -0500
|
||||
@@ -2437,7 +2437,6 @@
|
||||
ret = rv770_upload_firmware(rdev);
|
||||
if (ret) {
|
||||
DRM_ERROR("rv770_upload_firmware failed\n");
|
||||
- return ret;
|
||||
}
|
||||
ret = cypress_get_table_locations(rdev);
|
||||
if (ret) {
|
||||
diff -ru a/drivers/gpu/drm/radeon/ci_dpm.c b/drivers/gpu/drm/radeon/ci_dpm.c
|
||||
--- a/drivers/gpu/drm/radeon/ci_dpm.c 2021-10-31 16:53:10.000000000 -0400
|
||||
+++ b/drivers/gpu/drm/radeon/ci_dpm.c 2023-02-13 15:53:38.591724496 -0500
|
||||
@@ -5157,7 +5157,6 @@
|
||||
ret = ci_upload_firmware(rdev);
|
||||
if (ret) {
|
||||
DRM_ERROR("ci_upload_firmware failed\n");
|
||||
- return ret;
|
||||
}
|
||||
ret = ci_process_firmware_header(rdev);
|
||||
if (ret) {
|
||||
diff -ru a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c
|
||||
--- a/drivers/gpu/drm/radeon/cik.c 2023-02-13 15:21:35.174999782 -0500
|
||||
+++ b/drivers/gpu/drm/radeon/cik.c 2023-02-13 15:47:37.149601121 -0500
|
||||
@@ -8285,7 +8285,6 @@
|
||||
r = ci_mc_load_microcode(rdev);
|
||||
if (r) {
|
||||
DRM_ERROR("Failed to load MC firmware!\n");
|
||||
- return r;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8591,7 +8590,6 @@
|
||||
r = cik_init_microcode(rdev);
|
||||
if (r) {
|
||||
DRM_ERROR("Failed to load firmware!\n");
|
||||
- return r;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -8601,7 +8599,6 @@
|
||||
r = cik_init_microcode(rdev);
|
||||
if (r) {
|
||||
DRM_ERROR("Failed to load firmware!\n");
|
||||
- return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8664,8 +8664,7 @@ int cik_init(struct radeon_device *rdev)
|
||||
* is loaded are not suffient for advanced operations.
|
||||
*/
|
||||
if (!rdev->mc_fw && !(rdev->flags & RADEON_IS_IGP)) {
|
||||
- DRM_ERROR("radeon: MC ucode required for NI+.\n");
|
||||
- return -EINVAL;
|
||||
+ DRM_ERROR("radeon: MC ucode required for NI+ (but not enforced).\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
diff -ru a/drivers/gpu/drm/radeon/cypress_dpm.c b/drivers/gpu/drm/radeon/cypress_dpm.c
|
||||
--- a/drivers/gpu/drm/radeon/cypress_dpm.c 2021-10-31 16:53:10.000000000 -0400
|
||||
+++ b/drivers/gpu/drm/radeon/cypress_dpm.c 2023-02-13 15:50:25.130869935 -0500
|
||||
@@ -1862,7 +1862,6 @@
|
||||
ret = rv770_upload_firmware(rdev);
|
||||
if (ret) {
|
||||
DRM_ERROR("rv770_upload_firmware failed\n");
|
||||
- return ret;
|
||||
}
|
||||
|
||||
ret = cypress_get_table_locations(rdev);
|
||||
diff -ru a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
|
||||
--- a/drivers/gpu/drm/radeon/evergreen.c 2021-10-31 16:53:10.000000000 -0400
|
||||
+++ b/drivers/gpu/drm/radeon/evergreen.c 2023-02-13 15:47:50.457384749 -0500
|
||||
@@ -5018,7 +5018,6 @@
|
||||
r = ni_mc_load_microcode(rdev);
|
||||
if (r) {
|
||||
DRM_ERROR("Failed to load MC firmware!\n");
|
||||
- return r;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5235,7 +5234,6 @@
|
||||
r = ni_init_microcode(rdev);
|
||||
if (r) {
|
||||
DRM_ERROR("Failed to load firmware!\n");
|
||||
- return r;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -5243,7 +5241,6 @@
|
||||
r = r600_init_microcode(rdev);
|
||||
if (r) {
|
||||
DRM_ERROR("Failed to load firmware!\n");
|
||||
- return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5289,7 +5286,6 @@
|
||||
if (ASIC_IS_DCE5(rdev)) {
|
||||
if (!rdev->mc_fw && !(rdev->flags & RADEON_IS_IGP)) {
|
||||
DRM_ERROR("radeon: MC ucode required for NI+.\n");
|
||||
- return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
diff -ru a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
|
||||
--- a/drivers/gpu/drm/radeon/ni.c 2021-10-31 16:53:10.000000000 -0400
|
||||
+++ b/drivers/gpu/drm/radeon/ni.c 2023-02-13 15:46:45.402442454 -0500
|
||||
@@ -2163,7 +2163,6 @@
|
||||
r = ni_mc_load_microcode(rdev);
|
||||
if (r) {
|
||||
DRM_ERROR("Failed to load MC firmware!\n");
|
||||
- return r;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2390,7 +2389,6 @@
|
||||
r = ni_init_microcode(rdev);
|
||||
if (r) {
|
||||
DRM_ERROR("Failed to load firmware!\n");
|
||||
- return r;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -2398,7 +2396,6 @@
|
||||
r = ni_init_microcode(rdev);
|
||||
if (r) {
|
||||
DRM_ERROR("Failed to load firmware!\n");
|
||||
- return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2453,7 +2450,6 @@
|
||||
*/
|
||||
if (!rdev->mc_fw && !(rdev->flags & RADEON_IS_IGP)) {
|
||||
DRM_ERROR("radeon: MC ucode required for NI+.\n");
|
||||
- return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
diff -ru a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
|
||||
--- a/drivers/gpu/drm/radeon/r100.c 2023-02-13 15:21:35.174999782 -0500
|
||||
+++ b/drivers/gpu/drm/radeon/r100.c 2023-02-13 15:49:15.548001277 -0500
|
||||
@@ -1134,7 +1134,6 @@
|
||||
r = r100_cp_init_microcode(rdev);
|
||||
if (r) {
|
||||
DRM_ERROR("Failed to load firmware!\n");
|
||||
- return r;
|
||||
}
|
||||
}
|
||||
|
||||
diff -ru a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
|
||||
--- a/drivers/gpu/drm/radeon/r600.c 2023-02-13 15:21:35.174999782 -0500
|
||||
+++ b/drivers/gpu/drm/radeon/r600.c 2023-02-13 15:46:07.291062125 -0500
|
||||
@@ -3299,7 +3299,6 @@
|
||||
r = r600_init_microcode(rdev);
|
||||
if (r) {
|
||||
DRM_ERROR("Failed to load firmware!\n");
|
||||
- return r;
|
||||
}
|
||||
}
|
||||
|
||||
diff -ru a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c
|
||||
--- a/drivers/gpu/drm/radeon/rv770.c 2021-10-31 16:53:10.000000000 -0400
|
||||
+++ b/drivers/gpu/drm/radeon/rv770.c 2023-02-13 15:26:54.385808292 -0500
|
||||
@@ -1966,7 +1966,6 @@
|
||||
r = r600_init_microcode(rdev);
|
||||
if (r) {
|
||||
DRM_ERROR("Failed to load firmware!\n");
|
||||
- return r;
|
||||
}
|
||||
}
|
||||
|
||||
diff -ru a/drivers/gpu/drm/radeon/rv770_dpm.c b/drivers/gpu/drm/radeon/rv770_dpm.c
|
||||
--- a/drivers/gpu/drm/radeon/rv770_dpm.c 2021-10-31 16:53:10.000000000 -0400
|
||||
+++ b/drivers/gpu/drm/radeon/rv770_dpm.c 2023-02-13 15:50:13.591057564 -0500
|
||||
@@ -1948,12 +1948,10 @@
|
||||
ret = rv770_upload_firmware(rdev);
|
||||
if (ret) {
|
||||
DRM_ERROR("rv770_upload_firmware failed\n");
|
||||
- return ret;
|
||||
}
|
||||
ret = rv770_init_smc_table(rdev, boot_ps);
|
||||
if (ret) {
|
||||
DRM_ERROR("rv770_init_smc_table failed\n");
|
||||
- return ret;
|
||||
}
|
||||
|
||||
rv770_program_response_times(rdev);
|
||||
diff -ru a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
|
||||
--- a/drivers/gpu/drm/radeon/si.c 2023-02-13 15:21:35.178999717 -0500
|
||||
+++ b/drivers/gpu/drm/radeon/si.c 2023-02-13 15:47:00.042204445 -0500
|
||||
@@ -6619,7 +6619,6 @@
|
||||
r = si_mc_load_microcode(rdev);
|
||||
if (r) {
|
||||
DRM_ERROR("Failed to load MC firmware!\n");
|
||||
- return r;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6867,7 +6866,6 @@
|
||||
r = si_init_microcode(rdev);
|
||||
if (r) {
|
||||
DRM_ERROR("Failed to load firmware!\n");
|
||||
- return r;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6926,7 +6924,6 @@
|
||||
*/
|
||||
if (!rdev->mc_fw) {
|
||||
DRM_ERROR("radeon: MC ucode required for NI+.\n");
|
||||
- return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
diff -ru a/drivers/gpu/drm/radeon/si_dpm.c b/drivers/gpu/drm/radeon/si_dpm.c
|
||||
--- a/drivers/gpu/drm/radeon/si_dpm.c 2021-10-31 16:53:10.000000000 -0400
|
||||
+++ b/drivers/gpu/drm/radeon/si_dpm.c 2023-02-13 15:53:00.844338238 -0500
|
||||
@@ -6366,7 +6366,6 @@
|
||||
ret = si_upload_firmware(rdev);
|
||||
if (ret) {
|
||||
DRM_ERROR("si_upload_firmware failed\n");
|
||||
- return ret;
|
||||
}
|
||||
ret = si_process_firmware_header(rdev);
|
||||
if (ret) {
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
Removal of references to external repositories we can't manage what kind of firmware is pointed to.
|
||||
The only firmware we can confirm to work with is the one contained on the packge source code.
|
||||
|
||||
Update: Linux-libre has debblobed the external URL, we remove the whole thing.
|
||||
diff --git a/drivers/net/wireless/atmel/at76c50x-usb.c b/drivers/net/wireless/atmel/at76c50x-usb.c
|
||||
index 447b51cf..898b83af 100644
|
||||
--- a/drivers/net/wireless/atmel/at76c50x-usb.c
|
||||
+++ b/drivers/net/wireless/atmel/at76c50x-usb.c
|
||||
@@ -1619,8 +1619,6 @@ static struct fwentry *at76_load_firmware(struct usb_device *udev,
|
||||
if (ret < 0) {
|
||||
dev_err(&udev->dev, "firmware %s not found!\n",
|
||||
fwe->fwname);
|
||||
- dev_err(&udev->dev,
|
||||
- "you may need to download the firmware from http://developer.berlios.de/projects/at76c503a/\n");
|
||||
goto exit;
|
||||
}
|
||||
|
||||
7
helpers/DATA/linux-riscv/check.sh
Normal file
7
helpers/DATA/linux-riscv/check.sh
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
files=`find -type f`
|
||||
while read -r line
|
||||
do
|
||||
./deblob-check $line
|
||||
done <<< "$files"
|
||||
4535
helpers/DATA/linux-riscv/deblob-6.17
Normal file
4535
helpers/DATA/linux-riscv/deblob-6.17
Normal file
File diff suppressed because it is too large
Load diff
4185
helpers/DATA/linux-riscv/deblob-6.8
Normal file
4185
helpers/DATA/linux-riscv/deblob-6.8
Normal file
File diff suppressed because it is too large
Load diff
9047
helpers/DATA/linux-riscv/deblob-check
Normal file
9047
helpers/DATA/linux-riscv/deblob-check
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,21 @@
|
|||
reverts https://lore.kernel.org/all/iwlwifi.20211210110539.1f742f0eb58a.I1315f22f6aa632d94ae2069f85e1bca5e734dce0@changeid/
|
||||
|
||||
--- b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
+++ a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
@@ -1597,8 +1597,15 @@
|
||||
* else from proceeding if the module fails to load
|
||||
* or hangs loading.
|
||||
*/
|
||||
+ if (load_module) {
|
||||
- if (load_module)
|
||||
request_module("%s", op->name);
|
||||
+#ifdef CONFIG_IWLWIFI_OPMODE_MODULAR
|
||||
+ if (err)
|
||||
+ IWL_ERR(drv,
|
||||
+ "failed to load module %s (error %d), is dynamic loading enabled?\n",
|
||||
+ op->name, err);
|
||||
+#endif
|
||||
+ }
|
||||
failure = false;
|
||||
goto free;
|
||||
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
Debian doesn't use zstd compression for kernel modules by default, and
|
||||
kernel-wedge does not currently support this compression. It is recommended
|
||||
to continue using XZ compression to maintain compatibility with udeb
|
||||
packages in Trisquel, at least while this changes.
|
||||
|
||||
diff --git a/debian/rules.d/0-common-vars.mk b/debian/rules.d/0-common-vars.mk
|
||||
index d832106b..4afdd290 100644
|
||||
--- a/debian/rules.d/0-common-vars.mk
|
||||
+++ b/debian/rules.d/0-common-vars.mk
|
||||
@@ -154,6 +154,10 @@ do_zstd_ko=true
|
||||
ifeq ($(series),jammy)
|
||||
do_zstd_ko=
|
||||
endif
|
||||
+# Trisquel use udebs, so it disable zstd by default.
|
||||
+ifeq (yes,$(shell dpkg-vendor --is Trisquel && echo yes))
|
||||
+do_zstd_ko=
|
||||
+endif
|
||||
|
||||
# Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008)
|
||||
#
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
diff --git a/debian/scripts/control-create b/debian/scripts/control-create_
|
||||
index f2af8b9b..cd54c86d 100644
|
||||
--- a/debian/scripts/control-create
|
||||
+++ b/debian/scripts/control-create_
|
||||
@@ -11,15 +11,9 @@ any_signed=$2
|
||||
|
||||
flavour=$(basename $vars | sed 's/.*\.//')
|
||||
stub="${DEBIAN}/control.d/flavour-control.stub debian/control.d/flavour-buildinfo.stub"
|
||||
-if [ "$any_signed" = 'true' ]; then
|
||||
- sign_me_pkg="-unsigned"
|
||||
- sign_me_txt=" unsigned"
|
||||
- sign_peer_pkg=""
|
||||
-else
|
||||
sign_me_pkg=""
|
||||
sign_me_txt=""
|
||||
- sign_peer_pkg="-unsigned"
|
||||
-fi
|
||||
+ sign_peer_pkg=""
|
||||
|
||||
cat $stub | grep -v '^#' | sed \
|
||||
-e "s#FLAVOUR#$flavour#g" \
|
||||
129
helpers/DATA/linux-riscv/udeb/5-udebs.mk
Normal file
129
helpers/DATA/linux-riscv/udeb/5-udebs.mk
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
# Avoid running udeb if the current architecture is not defined in kernel-versions
|
||||
ifneq ($(arch),)
|
||||
ifeq ($(shell grep -c '^$(arch)[[:space:]]' $(DEBIAN)/d-i/kernel-versions 2>/dev/null),0)
|
||||
disable_d_i := true
|
||||
endif
|
||||
endif
|
||||
|
||||
# Do udebs if not disabled in the arch-specific makefile
|
||||
binary-udebs: binary-debs
|
||||
@echo Debug: $@
|
||||
ifeq ($(disable_d_i),)
|
||||
@$(MAKE) --no-print-directory -f debian/rules DEBIAN=$(DEBIAN) \
|
||||
do-binary-udebs
|
||||
endif
|
||||
|
||||
# Hook into Ubuntu's architecture build process without modifying their files
|
||||
binary-arch: binary-udebs
|
||||
|
||||
# Prefer DEB_SOURCE when available; fallback to src_pkg_name; otherwise "linux"
|
||||
do-binary-udebs: linux_udeb_name=$(if $(DEB_SOURCE),$(DEB_SOURCE),$(if $(src_pkg_name),$(src_pkg_name),linux))
|
||||
do-binary-udebs: debian/control
|
||||
@echo Debug: $@
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
|
||||
# unpack the kernels into a temporary directory
|
||||
mkdir -p debian/d-i-${arch}
|
||||
|
||||
outdir="$${DPKG_BUILDPACKAGE_OUTPUT_DIR:-..}" && \
|
||||
imagelist=$$(cat $(CURDIR)/$(DEBIAN)/d-i/kernel-versions | grep ^${arch} | gawk '{print $$3}') && \
|
||||
for flavour in $$imagelist; do \
|
||||
i=$(or $(DEB_VERSION_UPSTREAM),$(release))-$(abinum)-$$flavour; \
|
||||
found=0; \
|
||||
for deb in \
|
||||
"$$outdir"/linux-image-$$i\_*_${arch}.deb \
|
||||
"$$outdir"/linux-image-unsigned-$$i\_*_${arch}.deb \
|
||||
"$$outdir"/linux-modules-$$i\_*_${arch}.deb \
|
||||
"$$outdir"/linux-modules-extra-$$i\_*_${arch}.deb; \
|
||||
do \
|
||||
if [ -f "$$deb" ]; then \
|
||||
found=1; \
|
||||
dpkg -x "$$deb" debian/d-i-${arch}; \
|
||||
fi; \
|
||||
done; \
|
||||
if [ "$$found" = 0 ]; then \
|
||||
echo "E: missing .deb for $$i in $$outdir (DPKG_BUILDPACKAGE_OUTPUT_DIR)." >&2; \
|
||||
ls -1 "$$outdir"/linux-image-$$i\_*_${arch}.deb \
|
||||
"$$outdir"/linux-image-unsigned-$$i\_*_${arch}.deb \
|
||||
"$$outdir"/linux-modules-$$i\_*_${arch}.deb \
|
||||
"$$outdir"/linux-modules-extra-$$i\_*_${arch}.deb 2>/dev/null >&2 || true; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
rm -rf debian/d-i-${arch}/DEBIAN; \
|
||||
if [ ! -e debian/d-i-${arch}/lib/modules ] && [ -d debian/d-i-${arch}/usr/lib/modules ]; then \
|
||||
mkdir -p debian/d-i-${arch}/lib; \
|
||||
ln -s ../usr/lib/modules debian/d-i-${arch}/lib/modules; \
|
||||
fi; \
|
||||
if [ ! -d debian/d-i-${arch}/lib/modules/$$i ]; then \
|
||||
echo "E: missing debian/d-i-${arch}/lib/modules/$$i" >&2; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
/sbin/depmod -b debian/d-i-${arch} -- $$i; \
|
||||
if [ "$(filter true,$(do_dtbs))" ]; then \
|
||||
if [ -d debian/d-i-${arch}/lib/firmware/$$i/device-tree ]; then \
|
||||
echo ">> Trisquel: Extracting dtbs for $$i..."; \
|
||||
mkdir -p $(CURDIR)/$(DEBIAN)/d-i/firmware/${arch}; \
|
||||
( cd debian/d-i-${arch}/lib/firmware/$$i/ && find device-tree -print 2>/dev/null || true ) | \
|
||||
while read dtb_file; do \
|
||||
echo "$$dtb_file ?" >> $(CURDIR)/$(DEBIAN)/d-i/firmware/${arch}/kernel-image; \
|
||||
done; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
# kernel-wedge will error if no modules unless this is touched
|
||||
touch $(DEBIAN)/d-i/no-modules
|
||||
|
||||
touch $(CURDIR)/$(DEBIAN)/d-i/ignore-dups
|
||||
export KW_DEFCONFIG_DIR=$(CURDIR)/$(DEBIAN)/d-i && \
|
||||
export KW_CONFIG_DIR=$(CURDIR)/$(DEBIAN)/d-i && \
|
||||
export SOURCEDIR=$(CURDIR)/debian/d-i-${arch} && \
|
||||
kernel-wedge install-files $(DEB_VERSION_UPSTREAM)-$(abinum) && \
|
||||
for pkg in $$(dh_listpackages -a 2>/dev/null); do mkdir -p debian/$$pkg; done && \
|
||||
kernel-wedge check || true # TODO: # Prevent build failure due to upstream Debian/Ubuntu d-i modules desyncs
|
||||
|
||||
# Build just the udebs
|
||||
dilist=$$(dh_listpackages -a | grep "\-di$$") && \
|
||||
[ -z "$$dilist" ] || \
|
||||
for i in $$dilist; do \
|
||||
dh_fixperms -p$$i; \
|
||||
$(lockme) dh_gencontrol -p$$i; \
|
||||
dh_builddeb -p$$i; \
|
||||
done
|
||||
|
||||
# Generate the meta-udeb dependancy lists.
|
||||
mkdir -p $(builddir)
|
||||
touch $(builddir)/udeb-meta-packages.list
|
||||
@gawk ' \
|
||||
/^Package:/ { \
|
||||
package=$$2; flavour=""; match_arch=0 } \
|
||||
(/Package-Type: udeb/ && package !~ /^$(linux_udeb_name)-udebs-/) { \
|
||||
match(package, "$(DEB_VERSION_UPSTREAM)-$(abinum)-(.*)-di", bits); \
|
||||
flavour = bits[1]; \
|
||||
} \
|
||||
/^Architecture:/ { \
|
||||
match_arch=0; \
|
||||
for (i=2; i<=NF; i++) if ($$i=="$(arch)") match_arch=1; \
|
||||
} \
|
||||
(flavour != "" && match_arch) { \
|
||||
udebs[flavour] = udebs[flavour] package ", "; \
|
||||
flavour=""; match_arch=0; \
|
||||
} \
|
||||
END { \
|
||||
for (flavour in udebs) { \
|
||||
package="$(linux_udeb_name)-udebs-" flavour; \
|
||||
file="debian/" package ".substvars"; \
|
||||
print("udeb:Depends=" udebs[flavour]) > file; \
|
||||
metas="$(builddir)/udeb-meta-packages.list"; \
|
||||
print(package) >>metas \
|
||||
} \
|
||||
} \
|
||||
' <$(CURDIR)/debian/control
|
||||
@while read i; do \
|
||||
mkdir -p debian/$$i; \
|
||||
if [ -n "$$i" ]; then \
|
||||
$(lockme) dh_gencontrol -p$$i; \
|
||||
dh_builddeb -p$$i; \
|
||||
fi; \
|
||||
done <$(builddir)/udeb-meta-packages.list
|
||||
18
helpers/DATA/linux-riscv/udeb/d-i/kernel-versions
Normal file
18
helpers/DATA/linux-riscv/udeb/d-i/kernel-versions
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# arch version flavour installedname suffix bdep
|
||||
amd64 - generic - - -
|
||||
|
||||
i386 - generic - - -
|
||||
|
||||
armhf - generic - - -
|
||||
#armhf - generic-lpae - - -
|
||||
|
||||
arm64 - generic - - -
|
||||
|
||||
ppc64el - generic - - -
|
||||
|
||||
riscv64 - generic - - -
|
||||
|
||||
s390x - generic - - -
|
||||
|
||||
# Ports
|
||||
# arch version flavour installedname suffix bdep
|
||||
1
helpers/DATA/linux-riscv/udeb/d-i/modules/affs-modules
Normal file
1
helpers/DATA/linux-riscv/udeb/d-i/modules/affs-modules
Normal file
|
|
@ -0,0 +1 @@
|
|||
affs
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#include <ata-modules>
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <btrfs-modules>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#include <cdrom-core-modules>
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <crypto-dm-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <crypto-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <drm-core-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <ext4-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <f2fs-modules>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#include <fat-modules>
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
#include <fb-modules>
|
||||
|
||||
vesafb ?
|
||||
vga16fb
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <firewire-core-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <input-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <isofs-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <jfs-modules>
|
||||
18
helpers/DATA/linux-riscv/udeb/d-i/modules/amd64/kernel-image
Normal file
18
helpers/DATA/linux-riscv/udeb/d-i/modules/amd64/kernel-image
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
#include <kernel-image>
|
||||
|
||||
# ACPI drivers
|
||||
fan
|
||||
thermal
|
||||
|
||||
# Optimised CRC32
|
||||
crc32_pclmul ?
|
||||
|
||||
# pmem drivers for UEFI HTTP boot
|
||||
nd_pmem
|
||||
nfit
|
||||
|
||||
# Intel pinctrl drivers
|
||||
drivers/pinctrl/intel/**
|
||||
|
||||
# SPI devices
|
||||
drivers/spi/**
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#include <loop-modules>
|
||||
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#include <md-modules>
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <mmc-core-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <mmc-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <mtd-core-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <multipath-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <nbd-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <nic-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <nic-pcmcia-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <nic-shared-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <nic-usb-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <nic-wireless-modules>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#include <pata-modules>
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <pcmcia-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <pcmcia-storage-modules>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#include <ppp-modules>
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <rfkill-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <sata-modules>
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
#include <scsi-core-modules>
|
||||
|
||||
# Needed by hv_storvsc in hyperv-modules as well as scsi-modules
|
||||
scsi_transport_fc
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
#include <scsi-modules>
|
||||
# To support nvme
|
||||
vmd
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <scsi-nic-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <serial-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <sound-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <speakup-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <squashfs-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <udf-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <uinput-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <usb-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <usb-serial-modules>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#include <usb-storage-modules>
|
||||
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#include <xfs-modules>
|
||||
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#include <ata-modules>
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <btrfs-modules>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#include <cdrom-core-modules>
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <crypto-dm-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <crypto-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <ext4-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <f2fs-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <fat-modules>
|
||||
59
helpers/DATA/linux-riscv/udeb/d-i/modules/arm64/fb-modules
Normal file
59
helpers/DATA/linux-riscv/udeb/d-i/modules/arm64/fb-modules
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
#include <fb-modules>
|
||||
|
||||
ast
|
||||
tegra-drm
|
||||
rockchipdrm
|
||||
hibmc-drm ?
|
||||
|
||||
# For panel/backlight on some chromeos devices
|
||||
panel-simple
|
||||
panel-edp
|
||||
panel-samsung-atna33xc20
|
||||
panel-himax-hx83102
|
||||
panel-ilitek-ili9882t
|
||||
pwm_bl
|
||||
pwm-cros-ec
|
||||
|
||||
# For panel/backlight on Pinebook
|
||||
analogix-anx6345
|
||||
pwm-sun4i
|
||||
sun4i-drm
|
||||
sun8i-mixer
|
||||
|
||||
# For panel/backlight on Pinebook Pro
|
||||
pwm-rockchip
|
||||
|
||||
# For HDMI on some sunxi platforms (e.g. Orange Pi 1+)
|
||||
sun8i-drm-hdmi
|
||||
|
||||
# For HDMI on some rockchip platforms (e.g. rock64-rk3328)
|
||||
nvmem-rockchip-efuse ?
|
||||
phy-rockchip-inno-hdmi
|
||||
|
||||
# For panel/backlight on MNT Reform 2
|
||||
pwm-imx27
|
||||
nwl-dsi
|
||||
ti-sn65dsi86
|
||||
imx-dcss
|
||||
mxsfb
|
||||
mux-mmio
|
||||
imx8mq-interconnect
|
||||
|
||||
# Qualcomm devices
|
||||
gpu-sched
|
||||
|
||||
# Mediatek devices
|
||||
mediatek-drm
|
||||
mediatek-drm-hdmi ?
|
||||
mtk_dp
|
||||
mtk_iommu
|
||||
mtk-smi
|
||||
phy-mtk-dp
|
||||
phy-mtk-hdmi-drv
|
||||
phy-mtk-mipi-dsi-drv
|
||||
pwm-mtk-disp
|
||||
|
||||
# DRM bridges
|
||||
anx7625
|
||||
parade-ps8640
|
||||
ite-it6505
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
#include <input-modules>
|
||||
|
||||
leds_qcom_lpg ?
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <isofs-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <jfs-modules>
|
||||
109
helpers/DATA/linux-riscv/udeb/d-i/modules/arm64/kernel-image
Normal file
109
helpers/DATA/linux-riscv/udeb/d-i/modules/arm64/kernel-image
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
#include <kernel-image>
|
||||
|
||||
# Multifunction devices
|
||||
drivers/mfd/**
|
||||
|
||||
# Regulators
|
||||
drivers/regulator/**
|
||||
|
||||
# Some regulators on RK3588 require GPIO
|
||||
gpio-rockchip
|
||||
|
||||
# NIC,sata, and USB on Armada 8K
|
||||
phy-mvebu-cp110-comphy ?
|
||||
|
||||
# SoC modules
|
||||
drivers/soc/**
|
||||
|
||||
# Watchdogs: boot loader may start a watchdog that we need to pet,
|
||||
# and/or it may be the only way to trigger reboot
|
||||
drivers/watchdog/**
|
||||
|
||||
# SPI devices
|
||||
drivers/spi/**
|
||||
|
||||
# Force mtd as spi/spi-mtk-snfi depends on ecc-mtk,nandcore -> mtd
|
||||
mtd ?
|
||||
|
||||
# For cros_ec mfd device
|
||||
cros_ec_spi ?
|
||||
|
||||
# PCIe PHYs
|
||||
phy-rockchip-pcie ?
|
||||
|
||||
# PCIe x4 on RK3588 (usually NVME)
|
||||
phy-rockchip-snps-pcie3
|
||||
|
||||
# USB/SATA/PCIe on Rockchip RK3588
|
||||
phy-rockchip-naneng-combphy
|
||||
|
||||
# For spi-rockchip
|
||||
pl330 ?
|
||||
|
||||
# Regulator-SoC synchronization
|
||||
rockchip-io-domain ?
|
||||
|
||||
# Pin controllers
|
||||
drivers/pinctrl/**
|
||||
|
||||
# EFUSE/OTP drivers
|
||||
nvmem-imx-ocotp ?
|
||||
nvmem_mtk-efuse
|
||||
|
||||
# DRM modules as soc/qcom/phy-qcom-qmp-combo -> aux-hpd-bridge -> drm
|
||||
drm
|
||||
drm_kms_helper
|
||||
|
||||
# Qualcomm devices
|
||||
qcom-apcs-ipc-mailbox
|
||||
qcom-ipcc
|
||||
nvmem_qcom-spmi-sdam
|
||||
nvmem_qfprom
|
||||
bam_dma
|
||||
phy_qcom_edp ?
|
||||
phy-qcom-qmp-combo
|
||||
phy-qcom-qmp-pcie
|
||||
qcom_glink
|
||||
qcom_glink_smem
|
||||
qcom_glink_rpm
|
||||
qcom_smd
|
||||
qcom_hwspinlock
|
||||
icc-osm-l3
|
||||
rpmpd
|
||||
qrtr ?
|
||||
qrtr-smd ?
|
||||
|
||||
qnoc-sc7180
|
||||
qnoc-sc8280xp
|
||||
qnoc-sc8180x
|
||||
qnoc-x1e80100 ?
|
||||
|
||||
# Mediatek devices
|
||||
mtk-cmdq-mailbox
|
||||
phy-mtk-tphy
|
||||
pwm-mediatek
|
||||
|
||||
# TypeC connector stuff used by phy-qcom-qmp-combo and pmic_glink_altmode modules
|
||||
typec ?
|
||||
|
||||
# I²C drivers
|
||||
i2c-tegra
|
||||
i2c-rk3x
|
||||
i2c-mv64xxx
|
||||
i2c-imx
|
||||
i2c-qcom-geni
|
||||
i2c-qup
|
||||
i2c-omap
|
||||
i2c-mt65xx
|
||||
|
||||
# TI AM64 / AM65 ICSSG PRU subsystem
|
||||
drivers/irqchip/irq-pruss-intc
|
||||
drivers/remoteproc/pru_rproc
|
||||
|
||||
# RTC
|
||||
drivers/rtc/**
|
||||
|
||||
# pmem drivers for UEFI HTTP boot (or u-boot)
|
||||
of_pmem
|
||||
nd_pmem
|
||||
nfit
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <loop-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <md-modules>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
#include <mmc-modules>
|
||||
|
||||
phy-rockchip-emmc
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <multipath-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <nbd-modules>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#include <nic-modules>
|
||||
mdio-bcm-unimac
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <nic-shared-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <nic-usb-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <nic-wireless-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <ppp-modules>
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
#include <sata-modules>
|
||||
phy-qcom-apq8064-sata
|
||||
phy-qcom-ipq806x-sata
|
||||
phy-xgene
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <scsi-core-modules>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
#include <scsi-modules>
|
||||
|
||||
# Universal Flash Storage
|
||||
ufs-qcom
|
||||
drivers/phy/phy-*-ufs*
|
||||
drivers/phy/*/phy-*-ufs*
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <scsi-nic-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <sound-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <speakup-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <squashfs-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <udf-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <uinput-modules>
|
||||
23
helpers/DATA/linux-riscv/udeb/d-i/modules/arm64/usb-modules
Normal file
23
helpers/DATA/linux-riscv/udeb/d-i/modules/arm64/usb-modules
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
#include <usb-modules>
|
||||
dwc2
|
||||
dwc3
|
||||
usb3503
|
||||
phy-rockchip-typec
|
||||
extcon-usbc-cros-ec
|
||||
|
||||
# For USB-C on Pinebook Pro
|
||||
fusb302
|
||||
tcpm
|
||||
|
||||
# For USB on Renesas RZ/G2L-SMARC
|
||||
reset-rzg2l-usbphy-ctrl
|
||||
|
||||
# USB on Qualcomm devices
|
||||
phy-qcom-snps-femto-v2
|
||||
gpio-sbu-mux
|
||||
phy-qcom-qusb2
|
||||
phy-qcom-eusb2-repeater
|
||||
phy-qcom-snps-eusb2 ?
|
||||
|
||||
# Mediatek devices
|
||||
mtu3
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <usb-serial-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <usb-storage-modules>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#include <xfs-modules>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
# trisquel's udeb rebuild
|
||||
libata ?
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue