diff --git a/repos/base-hw/board/imx53_qsb/image_link_address b/repos/base-hw/board/imx53_qsb/image_link_address new file mode 100644 index 0000000000..439d1c7e6c --- /dev/null +++ b/repos/base-hw/board/imx53_qsb/image_link_address @@ -0,0 +1 @@ +0x70010000 diff --git a/repos/base-hw/board/imx53_qsb_tz/image_link_address b/repos/base-hw/board/imx53_qsb_tz/image_link_address new file mode 100644 index 0000000000..439d1c7e6c --- /dev/null +++ b/repos/base-hw/board/imx53_qsb_tz/image_link_address @@ -0,0 +1 @@ +0x70010000 diff --git a/repos/base-hw/board/imx6q_sabrelite/image_link_address b/repos/base-hw/board/imx6q_sabrelite/image_link_address new file mode 100644 index 0000000000..ea4b0394c0 --- /dev/null +++ b/repos/base-hw/board/imx6q_sabrelite/image_link_address @@ -0,0 +1 @@ +0x10001000 diff --git a/repos/base-hw/board/imx7d_sabre/image_link_address b/repos/base-hw/board/imx7d_sabre/image_link_address new file mode 100644 index 0000000000..c6a2c50f36 --- /dev/null +++ b/repos/base-hw/board/imx7d_sabre/image_link_address @@ -0,0 +1 @@ +0x88000000 diff --git a/repos/base-hw/board/imx8q_evk/image_link_address b/repos/base-hw/board/imx8q_evk/image_link_address new file mode 100644 index 0000000000..11cc34e4d2 --- /dev/null +++ b/repos/base-hw/board/imx8q_evk/image_link_address @@ -0,0 +1 @@ +0x40010000 diff --git a/repos/base-hw/board/muen/image_link_address b/repos/base-hw/board/muen/image_link_address new file mode 100644 index 0000000000..0a75c0af2d --- /dev/null +++ b/repos/base-hw/board/muen/image_link_address @@ -0,0 +1 @@ +0x00200000 diff --git a/repos/base-hw/board/nit6_solox/image_link_address b/repos/base-hw/board/nit6_solox/image_link_address new file mode 100644 index 0000000000..c6a2c50f36 --- /dev/null +++ b/repos/base-hw/board/nit6_solox/image_link_address @@ -0,0 +1 @@ +0x88000000 diff --git a/repos/base-hw/board/pbxa9/image_link_address b/repos/base-hw/board/pbxa9/image_link_address new file mode 100644 index 0000000000..7569e900d7 --- /dev/null +++ b/repos/base-hw/board/pbxa9/image_link_address @@ -0,0 +1 @@ +0x70000000 diff --git a/repos/base-hw/board/pc/image_link_address b/repos/base-hw/board/pc/image_link_address new file mode 100644 index 0000000000..0a75c0af2d --- /dev/null +++ b/repos/base-hw/board/pc/image_link_address @@ -0,0 +1 @@ +0x00200000 diff --git a/repos/base-hw/board/riscv/image_link_address b/repos/base-hw/board/riscv/image_link_address new file mode 100644 index 0000000000..aa712dc9da --- /dev/null +++ b/repos/base-hw/board/riscv/image_link_address @@ -0,0 +1 @@ +0x81000000 diff --git a/repos/base-hw/board/rpi/image_link_address b/repos/base-hw/board/rpi/image_link_address new file mode 100644 index 0000000000..f774b4d681 --- /dev/null +++ b/repos/base-hw/board/rpi/image_link_address @@ -0,0 +1 @@ +0x00800000 diff --git a/repos/base-hw/board/rpi3/image_link_address b/repos/base-hw/board/rpi3/image_link_address new file mode 100644 index 0000000000..f774b4d681 --- /dev/null +++ b/repos/base-hw/board/rpi3/image_link_address @@ -0,0 +1 @@ +0x00800000 diff --git a/repos/base-hw/board/usb_armory/image_link_address b/repos/base-hw/board/usb_armory/image_link_address new file mode 100644 index 0000000000..4a05c6ac6c --- /dev/null +++ b/repos/base-hw/board/usb_armory/image_link_address @@ -0,0 +1 @@ +0x72000000 diff --git a/repos/base-hw/board/virt_qemu/image_link_address b/repos/base-hw/board/virt_qemu/image_link_address new file mode 100644 index 0000000000..f8742e5363 --- /dev/null +++ b/repos/base-hw/board/virt_qemu/image_link_address @@ -0,0 +1 @@ +0x40000000 diff --git a/repos/base-hw/board/wand_quad/image_link_address b/repos/base-hw/board/wand_quad/image_link_address new file mode 100644 index 0000000000..ea4b0394c0 --- /dev/null +++ b/repos/base-hw/board/wand_quad/image_link_address @@ -0,0 +1 @@ +0x10001000 diff --git a/repos/base-hw/board/zynq_qemu/image_link_address b/repos/base-hw/board/zynq_qemu/image_link_address new file mode 100644 index 0000000000..9ed4db8974 --- /dev/null +++ b/repos/base-hw/board/zynq_qemu/image_link_address @@ -0,0 +1 @@ +0x00100000 diff --git a/tool/run/boot_dir/hw b/tool/run/boot_dir/hw index d5a7578ccf..ba92c3b356 100644 --- a/tool/run/boot_dir/hw +++ b/tool/run/boot_dir/hw @@ -5,29 +5,29 @@ proc binary_name_timer { } { return "hw_timer_drv" } proc run_boot_string { } { return "\nkernel initialized" } -proc bootstrap_link_address { } { - if {[have_board "pbxa9"]} { return "0x70000000" } - if {[have_board "usb_armory"]} { return "0x72000000" } - if {[have_board "pc"]} { return "0x00200000" } - if {[have_board "muen"]} { return "0x00200000" } - if {[have_board "wand_quad"]} { return "0x10001000" } - if {[have_board "imx6q_sabrelite"]} { return "0x10001000" } - if {[have_board "imx53_qsb"]} { return "0x70010000" } - if {[have_board "imx53_qsb_tz"]} { return "0x70010000" } - if {[have_board "imx7d_sabre"]} { return "0x88000000" } - if {[have_board "imx8q_evk"]} { return "0x40010000" } - if {[have_board "zynq_qemu"]} { return "0x00100000" } - if {[have_board "riscv"]} { return "0x81000000" } - if {[have_board "rpi"]} { return "0x00800000" } - if {[have_board "rpi3"]} { return "0x00800000" } - if {[have_board "nit6_solox"]} { return "0x88000000" } - if {[have_board "virt_qemu"]} { return "0x40000000" } - puts "unknown platform no linker address known" - exit -1 +proc bootstrap_link_address { } { + + set link_address_file [file join "board" [board] "image_link_address"] + + set repo [repository_contains $link_address_file] + + if {$repo == ""} { + puts stderr "\nError: unknown image link address\n" + puts stderr " File $link_address_file not present in any repository.\n" + exit -1 + } + + set fh [open [file join $repo $link_address_file] "RDONLY"] + set link_address [lindex [gets $fh] 0] + close $fh + + return $link_address } + proc core_link_address { } { + if {[have_spec "64bit"]} { return "0xffffffc000000000" } if {[have_spec "32bit"]} { return "0x80000000" } return 0; @@ -212,25 +212,4 @@ proc run_boot_dir {binaries} { ## # Base source archive within depot # -proc base_src { } { - - if {[have_spec x86_64] && ![have_board muen]} { return base-hw-pc } - if {[have_spec x86_64] && [have_board muen]} { return base-hw-muen } - if {[have_board pbxa9]} { return base-hw-pbxa9 } - if {[have_board rpi]} { return base-hw-rpi } - if {[have_board rpi3]} { return base-hw-rpi3 } - if {[have_board imx6q_sabrelite]} { return base-hw-imx6q_sabrelite } - if {[have_board imx7d_sabre]} { return base-hw-imx7d_sabre } - if {[have_board imx8q_evk]} { return base-hw-imx8q_evk } - if {[have_board nit6_solox]} { return base-hw-nit6_solox } - if {[have_board imx53_qsb]} { return base-hw-imx53_qsb } - if {[have_board imx53_qsb_tz]} { return base-hw-imx53_qsb_tz } - if {[have_board zynq_qemu]} { return base-hw-zynq_qemu } - if {[have_board virt_qemu]} { return base-hw-virt_qemu } - - global specs - - puts stderr "Test requires base-hw kernel archive, which is missing for this build configuration" - puts stderr " SPECS=\"$specs\"" - exit 0 -} +proc base_src { } { return "base-hw-[board]" }