From 83ebf23a0dd4eb0c6fb87c41e08524f707eb8f90 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Fri, 9 Apr 2021 09:41:23 -0700 Subject: [PATCH] Add prebuilt_rfsa module type Add a prebuilt_rfsa module type that can install firmware files to vendor/lib/rfsa. Bug: 181289338 Test: TestPrebuiltRFSADirPath Change-Id: I9dcf6a2188e60f361673bf876a52e985ab709d2e --- etc/prebuilt_etc.go | 14 ++++++++++++++ etc/prebuilt_etc_test.go | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/etc/prebuilt_etc.go b/etc/prebuilt_etc.go index 6291325f4..6d0ee6f69 100644 --- a/etc/prebuilt_etc.go +++ b/etc/prebuilt_etc.go @@ -52,6 +52,7 @@ func RegisterPrebuiltEtcBuildComponents(ctx android.RegistrationContext) { ctx.RegisterModuleType("prebuilt_font", PrebuiltFontFactory) ctx.RegisterModuleType("prebuilt_firmware", PrebuiltFirmwareFactory) ctx.RegisterModuleType("prebuilt_dsp", PrebuiltDSPFactory) + ctx.RegisterModuleType("prebuilt_rfsa", PrebuiltRFSAFactory) } var PrepareForTestWithPrebuiltEtc = android.FixtureRegisterWithContext(RegisterPrebuiltEtcBuildComponents) @@ -405,3 +406,16 @@ func PrebuiltDSPFactory() android.Module { android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibFirst) return module } + +// prebuilt_rfsa installs a firmware file that will be available through Qualcomm's RFSA +// to the /lib/rfsa directory. +func PrebuiltRFSAFactory() android.Module { + module := &PrebuiltEtc{} + // Ideally these would go in /vendor/dsp, but the /vendor/lib/rfsa paths are hardcoded in too + // many places outside of the application processor. They could be moved to /vendor/dsp once + // that is cleaned up. + InitPrebuiltEtcModule(module, "lib/rfsa") + // This module is device-only + android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibFirst) + return module +} diff --git a/etc/prebuilt_etc_test.go b/etc/prebuilt_etc_test.go index 9c3db3bfb..c302f7a09 100644 --- a/etc/prebuilt_etc_test.go +++ b/etc/prebuilt_etc_test.go @@ -288,3 +288,37 @@ func TestPrebuiltDSPDirPath(t *testing.T) { }) } } + +func TestPrebuiltRFSADirPath(t *testing.T) { + targetPath := "out/soong/target/product/test_device" + tests := []struct { + description string + config string + expectedPath string + }{{ + description: "prebuilt: system rfsa", + config: ` + prebuilt_rfsa { + name: "foo.conf", + src: "foo.conf", + }`, + expectedPath: filepath.Join(targetPath, "system/lib/rfsa"), + }, { + description: "prebuilt: vendor rfsa", + config: ` + prebuilt_rfsa { + name: "foo.conf", + src: "foo.conf", + soc_specific: true, + sub_dir: "sub_dir", + }`, + expectedPath: filepath.Join(targetPath, "vendor/lib/rfsa/sub_dir"), + }} + for _, tt := range tests { + t.Run(tt.description, func(t *testing.T) { + result := prepareForPrebuiltEtcTest.RunTestWithBp(t, tt.config) + p := result.Module("foo.conf", "android_arm64_armv8-a").(*PrebuiltEtc) + android.AssertPathRelativeToTopEquals(t, "install dir", tt.expectedPath, p.installDirPath) + }) + } +}