diff --git a/general/package/legacy/ambarella-osdrv-s3l/Config.in b/general/package/legacy/ambarella-osdrv-s3l/Config.in index c974e3b34..2180e65b3 100644 --- a/general/package/legacy/ambarella-osdrv-s3l/Config.in +++ b/general/package/legacy/ambarella-osdrv-s3l/Config.in @@ -1,6 +1,6 @@ config BR2_PACKAGE_AMBARELLA_OSDRV_S3L bool "ambarella-osdrv-s3l" help - ambarella-osdrv-s3l - Ambarella kernel modules and libs + ambarella-osdrv-s3l - Ambarella kernel modules, libs and DSP microcode https://openipc.org diff --git a/general/package/legacy/ambarella-osdrv-s3l/ambarella-osdrv-s3l.mk b/general/package/legacy/ambarella-osdrv-s3l/ambarella-osdrv-s3l.mk index 0c896dc3a..9b3b2e17c 100644 --- a/general/package/legacy/ambarella-osdrv-s3l/ambarella-osdrv-s3l.mk +++ b/general/package/legacy/ambarella-osdrv-s3l/ambarella-osdrv-s3l.mk @@ -6,9 +6,11 @@ AMBARELLA_OSDRV_S3L_SITE_METHOD = local AMBARELLA_OSDRV_S3L_SITE = $(AMBARELLA_OSDRV_S3L_PKGDIR)/src -AMBARELLA_OSDRV_S3L_LICENSE = MIT +AMBARELLA_OSDRV_S3L_LICENSE = MIT (load_ucode), PROPRIETARY (modules, microcode) -# load_ucode puts the DSP microcode in place; the microcode itself is not shipped. +# load_ucode puts the DSP microcode in place. files/firmware is the generic set +# from Ambarella's S3L SDK release 2.5.0_20181109 (2018/10/28, 284712.282649), +# not from a camera's stock firmware, which the tree does not accept (#2767). define AMBARELLA_OSDRV_S3L_BUILD_CMDS $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) load_ucode endef @@ -20,6 +22,9 @@ define AMBARELLA_OSDRV_S3L_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -d $(TARGET_DIR)/lib/modules/3.10.104/ambarella $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/3.10.104/ambarella $(AMBARELLA_OSDRV_S3L_PKGDIR)/files/kmod/*.ko + $(INSTALL) -m 755 -d $(TARGET_DIR)/lib/firmware + $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/firmware $(AMBARELLA_OSDRV_S3L_PKGDIR)/files/firmware/*.bin + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(AMBARELLA_OSDRV_S3L_PKGDIR)/files/script/load* $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(@D)/load_ucode diff --git a/general/package/legacy/ambarella-osdrv-s3l/files/firmware/default_binary.bin b/general/package/legacy/ambarella-osdrv-s3l/files/firmware/default_binary.bin new file mode 100644 index 000000000..cfd5db087 Binary files /dev/null and b/general/package/legacy/ambarella-osdrv-s3l/files/firmware/default_binary.bin differ diff --git a/general/package/legacy/ambarella-osdrv-s3l/files/firmware/orccode.bin b/general/package/legacy/ambarella-osdrv-s3l/files/firmware/orccode.bin new file mode 100644 index 000000000..638219488 Binary files /dev/null and b/general/package/legacy/ambarella-osdrv-s3l/files/firmware/orccode.bin differ diff --git a/general/package/legacy/ambarella-osdrv-s3l/files/firmware/orcme.bin b/general/package/legacy/ambarella-osdrv-s3l/files/firmware/orcme.bin new file mode 100644 index 000000000..e81da945a Binary files /dev/null and b/general/package/legacy/ambarella-osdrv-s3l/files/firmware/orcme.bin differ diff --git a/general/package/legacy/ambarella-osdrv-s3l/files/script/load_ambarella b/general/package/legacy/ambarella-osdrv-s3l/files/script/load_ambarella index 11969574e..9e5799fad 100755 --- a/general/package/legacy/ambarella-osdrv-s3l/files/script/load_ambarella +++ b/general/package/legacy/ambarella-osdrv-s3l/files/script/load_ambarella @@ -17,10 +17,10 @@ # them and the nodes have to be made here. The major comes from /proc/devices; # the minors are fixed. # -# The microcode (orccode.bin, orcme.bin, default_binary.bin) is Ambarella's and -# is not part of this package; load_ucode, which puts it in place, is built from +# The microcode (orccode.bin, orcme.bin, default_binary.bin) is Ambarella's, from +# the package's files/firmware; load_ucode, which puts it in place, is built from # the package's src/. Without the microcode the drivers load and the DSP does -# not start, so no video. Drop it in /lib/firmware and this script loads it. +# not start, so no video. An image that prunes it from /lib/firmware still boots. vendor=$(ipcinfo -v) ucode_dir=/lib/firmware