diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml index 8c1abf51..2cf9a62d 100644 --- a/.github/workflows/manual.yml +++ b/.github/workflows/manual.yml @@ -14,7 +14,7 @@ on: - GENERIC_ARM - A64 - GAMESHELL - - ODROID + - ODROIDXU4 - PANDORA - PHYTIUM - PYRA diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 599229e6..32f6a509 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,7 +27,7 @@ jobs: strategy: fail-fast: false matrix: - platform: [I386, OTHER_ARM, PANDORA, PYRA, GAMESHELL, RPI4, RPI4ARM64, ODROID, RK3399, RK3288, A64, SD845, SD888, ADLINK, PHYTIUM, ANDROID] + platform: [I386, OTHER_ARM, PANDORA, PYRA, GAMESHELL, RPI4, RPI4ARM64, ODROIDXU4, RK3399, RK3288, A64, SD845, SD888, ADLINK, PHYTIUM, ANDROID] type: [Release, Trace] os: [ubuntu-latest] diff --git a/CMakeLists.txt b/CMakeLists.txt index c8628069..fafd7c35 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,14 +11,14 @@ option(GOA_CLONE "Set to ON if targeting GO Advance clones, like RG351p/v, Gamef option(RK3288 "Set to ON if targeting an Rockchip RK3288 based device" ${RK3288}) option(RK3399 "Set to ON if targeting an Rockchip RK3399 based device" ${RK3399}) option(RK3588 "Set to ON if targeting an Rockchip RK3588 / RK3588S based device" ${RK3588}) -option(ODROIDN2 "Set to ON if targeting an Odroid-N2 device" ${ODROIDN2}) +option(ODROIDN2 "Set to ON if targeting an ODROID-N2 device" ${ODROIDN2}) option(TEGRAX1 "Set to ON if targeting an Tegra X1 (ARM64) based device" ${TEGRAX1}) option(TEGRAX1ARM32 "Set to ON if targeting an Tegra X1 (ARM32) based device" ${TEGRAX1ARM32}) option(TEGRA_T194 "Set to ON if targeting an Tegra Xavier based device" ${TEGRA_T194}) option(TEGRA_T234 "Set to ON if targeting an Tegra Orin based device" ${TEGRA_T234}) option(PHYTIUM "Set to ON if targeting an Phytium (D2000 or FT2000/4) based device" ${PHYTIUM}) option(GAMESHELL "Set to ON if targeting a GameShell device" ${GAMESHELL}) -option(ODROID "Set to ON if targeting an ODroid device" ${ODROID}) +option(ODROIDXU4 "Set to ON if targeting an ODROID-XU4 device" ${ODROIDXU4}) option(POWER9 "Set to ON if targeting a POWER9 processor" ${POWER9}) option(SD845 "Set to ON if targeting a Snapragon 845 based device" ${SD845}) option(SD888 "Set to ON if targeting a Snapragon 888 based device" ${SD888}) @@ -37,7 +37,7 @@ option(NOGIT "Set to ON if not building from a git clone repo (like when buildin option(NO_LIB_INSTALL "Set ON to not install a few x86 libs that are used by many program" ${NO_LIB_INSTALL}) option(NO_CONF_INSTALL "Set ON to not install config files" ${NO_CONF_INSTALL}) -if(PANDORA OR PYRA OR RPI2 OR RPI3 OR RPI4 OR GAMESHELL OR ODROID OR GOA_CLONE OR RK3288 OR RK3399 OR ODROIDN2 OR TEGRAX1 OR TEGRAX1ARM32 OR TEGRA_T194 OR TEGRA_T234 OR RPI3ARM64 OR RPI4ARM64 OR PHYTIUM OR SD845 OR SD888 OR ADLINK OR A64 OR LX2160A OR ARM64 OR RK3588) +if(PANDORA OR PYRA OR RPI2 OR RPI3 OR RPI4 OR GAMESHELL OR ODROIDXU4 OR GOA_CLONE OR RK3288 OR RK3399 OR ODROIDN2 OR TEGRAX1 OR TEGRAX1ARM32 OR TEGRA_T194 OR TEGRA_T234 OR RPI3ARM64 OR RPI4ARM64 OR PHYTIUM OR SD845 OR SD888 OR ADLINK OR A64 OR LX2160A OR ARM64 OR RK3588) set(LD80BITS OFF CACHE BOOL "") set(NOALIGN OFF CACHE BOOL "") set(ARM_DYNAREC ON CACHE BOOL "") @@ -137,10 +137,10 @@ elseif(RPI4ARM64) add_definitions(-DRPI4ARM64) add_definitions(-marm -march=armv8-a+crc -mtune=cortex-a72 -mfpu=neon-fp-armv8 -mfloat-abi=hard) set(CMAKE_ASM_FLAGS "-marm -march=armv8-a+crc -mtune=cortex-a72 -mfpu=neon-fp-armv8 -mfloat-abi=hard") -elseif(ODROID) - add_definitions(-DODROID) - add_definitions(-mcpu=cortex-a9 -mfpu=neon-vfpv4 -mfloat-abi=hard -marm) - set(CMAKE_ASM_FLAGS "-marm -mcpu=cortex-a9 -mfpu=neon-vfpv4 -mfloat-abi=hard") +elseif(ODROIDXU4) + add_definitions(-DODROIDXU4) + add_definitions(-marm -mcpu=cortex-a15.cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard) + set(CMAKE_ASM_FLAGS "-marm -mcpu=cortex-a15.cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard") elseif(RK3288) add_definitions(-DRK3288) add_definitions(-mcpu=cortex-a17 -mfpu=neon -mfloat-abi=hard -marm) diff --git a/docs/COMPILE.md b/docs/COMPILE.md index 963c42da..39fbfe13 100755 --- a/docs/COMPILE.md +++ b/docs/COMPILE.md @@ -60,9 +60,9 @@ sudo make install sudo systemctl restart systemd-binfmt ``` -#### for ODROID +#### for ODROID-XU3/XU4/MC1/HC1/HC2 -`mkdir build; cd build; cmake .. -DODROID=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo; make -j3` +`mkdir build; cd build; cmake .. -DODROIDXU4=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo; make -j3` #### for RK3399 @@ -80,11 +80,11 @@ As most RK3588 devices run an AARCH64 OS, you'll need an `armhf` multiarch envir Also, on armbian, you may need to install `libc6-dev-armhf-cross` or you may have an issue with `crt1.o` and a few other files not included with box86. -#### for ODROID N2/N2+ +#### for ODROID-N2/N2+ `mkdir build; cd build; cmake .. -DODROIDN2=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo; make -j3` -As most ODROID N2/N2+ devices run an AARCH64 OS, you'll need an `armhf` multiarch environment, and an armhf gcc: On debian, install it with `sudo apt install gcc-arm-linux-gnueabihf`. +As most ODROID-N2/N2+ devices run an AARCH64 OS, you'll need an `armhf` multiarch environment, and an armhf gcc: On debian, install it with `sudo apt install gcc-arm-linux-gnueabihf`. Also, on armbian, you may need to install `libc6-dev-armhf-cross` or you may have an issue with `crt1.o` and a few other files not included with box86. @@ -172,7 +172,7 @@ Dynarec is only available on the ARM architecture (for the meantime anyways). Ac You will most likely need `-marm` in compilation flags (Many compilers default to the Thumb instruction set and Dynarec does not support this). -###### *Note: If you get error building that "target CPU does not support ARM mode", then try to pick a hardware profile (like ODROID for armv7 or PI4 for armv8).* +###### *Note: If you get error building that "target CPU does not support ARM mode", then try to pick a hardware profile (like ODROIDXU4 for armv7 or PI4 for armv8).* ##### 64bit OS with Dynarec