Message ID | 20240416091904.935283-16-jamin_lin@aspeedtech.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Add AST2700 support | expand |
On 4/16/24 11:19, Jamin Lin wrote: > Add a test case to test Aspeed OpenBMC SDK v09.01 on AST2700 board. > > It loads u-boot-nodtb.bin, u-boot.dtb, tfa and optee-os > images to dram first which base address is 0x400000000. > Then, boot and launch 4 cpu cores. > > ``` > qemu-system-aarch64 -machine ast2700-evb > -device loader,force-raw=on,addr=0x400000000,file=workdir/u-boot-nodtb.bin \ > -device loader,force-raw=on,addr=uboot_dtb_load_addr,file=u-boot.dtb\ > -device loader,force-raw=on,addr=0x430000000,file=workdir/bl31.bin\ > -device loader,force-raw=on,addr=0x430080000,file=workdir/optee/tee-raw.bin\ > -device loader,cpu-num=0,addr=0x430000000 \ > -device loader,cpu-num=1,addr=0x430000000 \ > -device loader,cpu-num=2,addr=0x430000000 \ > -device loader,cpu-num=3,addr=0x430000000 \ > -smp 4 \ > -drive file=workdir/image-bmc,format=raw,if=mtd > ``` > > A test image is downloaded from the ASPEED Forked OpenBMC GitHub release repository : > https://github.com/AspeedTech-BMC/openbmc/releases/ > > Signed-off-by: Troy Lee <troy_lee@aspeedtech.com> > Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> Thanks, C. > --- > tests/avocado/machine_aspeed.py | 62 +++++++++++++++++++++++++++++++++ > 1 file changed, 62 insertions(+) > > diff --git a/tests/avocado/machine_aspeed.py b/tests/avocado/machine_aspeed.py > index cec0181424..3a20644fb2 100644 > --- a/tests/avocado/machine_aspeed.py > +++ b/tests/avocado/machine_aspeed.py > @@ -311,6 +311,17 @@ def do_test_arm_aspeed_sdk_start(self, image): > self, 'boot', '## Loading kernel from FIT Image') > self.wait_for_console_pattern('Starting kernel ...') > > + def do_test_aarch64_aspeed_sdk_start(self, image): > + self.vm.set_console() > + self.vm.add_args('-drive', 'file=' + image + ',if=mtd,format=raw') > + > + self.vm.launch() > + > + self.wait_for_console_pattern('U-Boot 2023.10') > + self.wait_for_console_pattern('## Loading kernel from FIT Image') > + self.wait_for_console_pattern('Starting kernel ...') > + self.wait_for_console_pattern("systemd[1]: Hostname set to") > + > @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab') > > def test_arm_ast2500_evb_sdk(self): > @@ -375,3 +386,54 @@ def test_arm_ast2600_evb_sdk(self): > 'i2c i2c-5: new_device: Instantiated device ds1307 at 0x32'); > year = time.strftime("%Y") > self.ssh_command_output_contains('/sbin/hwclock -f /dev/rtc1', year); > + > + def test_aarch64_ast2700_evb_sdk_v09_01(self): > + """ > + :avocado: tags=arch:aarch64 > + :avocado: tags=machine:ast2700-evb > + """ > + > + image_url = ('https://github.com/AspeedTech-BMC/openbmc/releases/' > + 'download/v09.01/ast2700-default-obmc.tar.gz') > + image_hash = 'b1cc0fd73c7650d34c9c8459a243f52a91e9e27144b8608b2645ab19461d1e07' > + image_path = self.fetch_asset(image_url, asset_hash=image_hash, > + algorithm='sha256') > + archive.extract(image_path, self.workdir) > + > + num_cpu = 4 > + image_dir = self.workdir + '/ast2700-default/' > + uboot_size = os.path.getsize(image_dir + 'u-boot-nodtb.bin') > + uboot_dtb_load_addr = hex(0x400000000 + uboot_size) > + > + load_images_list = [ > + { > + 'addr': '0x400000000', > + 'file': image_dir + 'u-boot-nodtb.bin' > + }, > + { > + 'addr': str(uboot_dtb_load_addr), > + 'file': image_dir + 'u-boot.dtb' > + }, > + { > + 'addr': '0x430000000', > + 'file': image_dir + 'bl31.bin' > + }, > + { > + 'addr': '0x430080000', > + 'file': image_dir + 'optee/tee-raw.bin' > + } > + ] > + > + for load_image in load_images_list: > + addr = load_image['addr'] > + file = load_image['file'] > + self.vm.add_args('-device', > + f'loader,force-raw=on,addr={addr},file={file}') > + > + for i in range(num_cpu): > + self.vm.add_args('-device', > + f'loader,addr=0x430000000,cpu-num={i}') > + > + self.vm.add_args('-smp', str(num_cpu)) > + self.do_test_aarch64_aspeed_sdk_start(image_dir + 'image-bmc') > +
diff --git a/tests/avocado/machine_aspeed.py b/tests/avocado/machine_aspeed.py index cec0181424..3a20644fb2 100644 --- a/tests/avocado/machine_aspeed.py +++ b/tests/avocado/machine_aspeed.py @@ -311,6 +311,17 @@ def do_test_arm_aspeed_sdk_start(self, image): self, 'boot', '## Loading kernel from FIT Image') self.wait_for_console_pattern('Starting kernel ...') + def do_test_aarch64_aspeed_sdk_start(self, image): + self.vm.set_console() + self.vm.add_args('-drive', 'file=' + image + ',if=mtd,format=raw') + + self.vm.launch() + + self.wait_for_console_pattern('U-Boot 2023.10') + self.wait_for_console_pattern('## Loading kernel from FIT Image') + self.wait_for_console_pattern('Starting kernel ...') + self.wait_for_console_pattern("systemd[1]: Hostname set to") + @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab') def test_arm_ast2500_evb_sdk(self): @@ -375,3 +386,54 @@ def test_arm_ast2600_evb_sdk(self): 'i2c i2c-5: new_device: Instantiated device ds1307 at 0x32'); year = time.strftime("%Y") self.ssh_command_output_contains('/sbin/hwclock -f /dev/rtc1', year); + + def test_aarch64_ast2700_evb_sdk_v09_01(self): + """ + :avocado: tags=arch:aarch64 + :avocado: tags=machine:ast2700-evb + """ + + image_url = ('https://github.com/AspeedTech-BMC/openbmc/releases/' + 'download/v09.01/ast2700-default-obmc.tar.gz') + image_hash = 'b1cc0fd73c7650d34c9c8459a243f52a91e9e27144b8608b2645ab19461d1e07' + image_path = self.fetch_asset(image_url, asset_hash=image_hash, + algorithm='sha256') + archive.extract(image_path, self.workdir) + + num_cpu = 4 + image_dir = self.workdir + '/ast2700-default/' + uboot_size = os.path.getsize(image_dir + 'u-boot-nodtb.bin') + uboot_dtb_load_addr = hex(0x400000000 + uboot_size) + + load_images_list = [ + { + 'addr': '0x400000000', + 'file': image_dir + 'u-boot-nodtb.bin' + }, + { + 'addr': str(uboot_dtb_load_addr), + 'file': image_dir + 'u-boot.dtb' + }, + { + 'addr': '0x430000000', + 'file': image_dir + 'bl31.bin' + }, + { + 'addr': '0x430080000', + 'file': image_dir + 'optee/tee-raw.bin' + } + ] + + for load_image in load_images_list: + addr = load_image['addr'] + file = load_image['file'] + self.vm.add_args('-device', + f'loader,force-raw=on,addr={addr},file={file}') + + for i in range(num_cpu): + self.vm.add_args('-device', + f'loader,addr=0x430000000,cpu-num={i}') + + self.vm.add_args('-smp', str(num_cpu)) + self.do_test_aarch64_aspeed_sdk_start(image_dir + 'image-bmc') +