diff options
| author | Neil Davis <neildavis@users.noreply.github.com> | 2023-01-09 16:02:14 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-09 16:02:14 +0000 |
| commit | d1f63fe260c28e3246ef23cd090eab51fcc8152e (patch) | |
| tree | 9ff8aee33bb180d21b2ea3b8920f77695fec6a60 | |
| parent | 53eee70c0384e24a6f31e398ac7a271ef7e27432 (diff) | |
| download | box64-d1f63fe260c28e3246ef23cd090eab51fcc8152e.tar.gz box64-d1f63fe260c28e3246ef23cd090eab51fcc8152e.zip | |
Add support for Rpi3 on 64-bit ARM (aarch64) (#494)
| -rwxr-xr-x | CMakeLists.txt | 12 | ||||
| -rwxr-xr-x | docs/COMPILE.md | 27 |
2 files changed, 35 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index f849ec14..cdba62a8 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,7 @@ cmake_policy(SET CMP0065 NEW) SET(CMAKE_C_FLAGS_DEBUG "-O0 -g") SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g") +option(RPI3ARM64 "Set to ON if targeting an RaspberryPI3 device with multiarch arm64 and armhf" ${RPI3ARM64}) option(RPI4ARM64 "Set to ON if targeting an RaspberryPI4 device with multiarch arm64 and armhf" ${RPI4ARM64}) option(RK3326 "Set to ON if targeting an Rockchip RK3326 based device" ${RK3326}) option(RK3399 "Set to ON if targeting an Rockchip RK3399 based device" ${RK3399}) @@ -40,12 +41,12 @@ if(PPC64LE) set(ARM_DYNAREC OFF CACHE BOOL "") set(PAGE16K OFF CACHE BOOL "") endif() -if(RK3399 OR ODROIDN2 OR RPI4ARM64 OR RK3326 OR TEGRAX1 OR PHYTIUM OR SD845 OR LX2160A OR M1) +if(RK3399 OR ODROIDN2 OR RPI3ARM64 OR RPI4ARM64 OR RK3326 OR TEGRAX1 OR PHYTIUM OR SD845 OR LX2160A OR M1) set(LD80BITS OFF CACHE BOOL "") set(NOALIGN OFF CACHE BOOL "") set(ARM_DYNAREC ON CACHE BOOL "") endif() -if(RK3399 OR ODROIDN2 OR RPI4ARM64 OR RK3326 OR TEGRAX1 OR PHYTIUM OR SD845 OR LX2160A) +if(RK3399 OR ODROIDN2 OR RPI3ARM64 OR RPI4ARM64 OR RK3326 OR TEGRAX1 OR PHYTIUM OR SD845 OR LX2160A) set(PAGE16K OFF CACHE BOOL "") endif() if(M1 OR LARCH64) @@ -92,7 +93,12 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") endif() -if(RPI4ARM64) +if(RPI3ARM64) + add_definitions(-DRPI) + add_definitions(-DRPI3ARM64) + add_definitions(-pipe -march=armv8-a+crc -mtune=cortex-a53) + set(CMAKE_ASM_FLAGS "-pipe -march=armv8-a+crc -mtune=cortex-a53") +elseif(RPI4ARM64) add_definitions(-DRPI) add_definitions(-DRPI4ARM64) add_definitions(-pipe -march=armv8-a+crc -mtune=cortex-a72) diff --git a/docs/COMPILE.md b/docs/COMPILE.md index d48bc1b6..c6c509f8 100755 --- a/docs/COMPILE.md +++ b/docs/COMPILE.md @@ -27,7 +27,32 @@ If it's the first install, you also need: sudo systemctl restart systemd-binfmt ``` -#### for PI4 +#### for Raspberry Pi 3 + +Warning, you need a 64bit OS: + +If building on the Pi, you will also need a large swap (2 GB+) +and reduce GPU memory to a minimum (e.g. 16 MB) using `raspi-config` +(and reboot) before starting the build: + +You can use e.g. '`make -j4`' to speed up the build, but on a Pi 3 with 1GB memory you will likely +run out of memory at some point and need to run the build again. +Still, this can be faster if your build is attended. + +``` +git clone https://github.com/ptitSeb/box64 +cd box64 +mkdir build; cd build; cmake .. -DRPI3ARM64=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo +make +# or e.g. make -j4 +sudo make install +``` +If it's the first install, you also need: +``` +sudo systemctl restart systemd-binfmt +``` + +#### for Raspberry Pi 4 Warning, you need a 64bit OS: |