diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 7e8df491..e80afd5e 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -12,6 +12,7 @@ - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) +- [ ] Chore (refactoring, style fixes, git/CI config, submodule management, no code logic changes) diff --git a/.github/workflows/ci-release.yml b/.github/workflows/ci-release.yml new file mode 100644 index 00000000..c8fbb6be --- /dev/null +++ b/.github/workflows/ci-release.yml @@ -0,0 +1,20 @@ +# vim:sw=2:ts=2 +name: ci-release +# every commit/PR on release branch should pass FULL CI check + +on: + push: + branches: + - 'release/*' + pull_request: + branches: + - 'release/*' + +#TODO: this uses `latest` docker image instead of the release one +jobs: + call-ci: + uses: ./.github/workflows/ci-project.yml + with: + build_params: all tests + nightly: true + secrets: inherit diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index af5d919b..094c909c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,5 +13,5 @@ on: jobs: call-ci: - uses: phoenix-rtos/phoenix-rtos-project/.github/workflows/ci-project.yml@master + uses: ./.github/workflows/ci-project.yml secrets: inherit diff --git a/.gitignore b/.gitignore index 4fd844ed..ac315f16 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ -.gitignore _fs/* +!_fs/root-skel/ _build/* _boot/* .DS_Store diff --git a/.gitmodules b/.gitmodules index fb2e534d..63629280 100644 --- a/.gitmodules +++ b/.gitmodules @@ -40,9 +40,6 @@ [submodule "plo"] path = plo url = https://github.com/phoenix-rtos/plo.git -[submodule "riscv/riscv-pk"] - path = riscv/riscv-pk - url = https://github.com/riscv/riscv-pk.git [submodule "riscv/opensbi"] path = riscv/opensbi url = https://github.com/riscv/opensbi.git diff --git a/_projects/armv7a7-imx6ull-evk/build.project b/_projects/armv7a7-imx6ull-evk/build.project index 429a8381..b3d9e2b6 100644 --- a/_projects/armv7a7-imx6ull-evk/build.project +++ b/_projects/armv7a7-imx6ull-evk/build.project @@ -27,7 +27,7 @@ export PLO_NOR_BOOT=y # # PLO configuration # -export PLO_NOR=y +export PLO_DEVICES="flash-imx6ull uart-imx6ull usbc-cdc" # # Project specific build diff --git a/_projects/armv7m4-stm32l4x6-nucleo/board_config.h b/_projects/armv7m4-stm32l4x6-nucleo/board_config.h index 87043c37..68a3bd65 100644 --- a/_projects/armv7m4-stm32l4x6-nucleo/board_config.h +++ b/_projects/armv7m4-stm32l4x6-nucleo/board_config.h @@ -18,4 +18,7 @@ #define UART_CONSOLE 2 #define TTY2_DMA 1 +#define BUILTIN_POSIXSRV 1 + + #endif diff --git a/_projects/armv7m7-imxrt105x-evk/board_config.h b/_projects/armv7m7-imxrt105x-evk/board_config.h index 4b27b0a7..81106217 100644 --- a/_projects/armv7m7-imxrt105x-evk/board_config.h +++ b/_projects/armv7m7-imxrt105x-evk/board_config.h @@ -3,8 +3,8 @@ * * Board config for armv7m7-imxrt105x-evk * - * Copyright 2022 Phoenix Systems - * Author: Lukasz Kosinski + * Copyright 2022, 2024 Phoenix Systems + * Author: Lukasz Kosinski, Daniel Sawka * * This file is part of Phoenix-RTOS. * @@ -24,8 +24,128 @@ */ #define PSEUDODEV 1 - /* #define BUILTIN_POSIXSRV 1 */ +/* Peripherals */ + + +#define UART_CONSOLE 1 + +/* UART */ + +#define UART1 1 +#define UART1_BAUDRATE 115200 +#define UART1_BUFSIZE 512 +#define UART1_TX_PIN ad_b0_12 +#define UART1_RX_PIN ad_b0_13 +#define UART1_HW_FLOWCTRL 0 +#define UART1_RTS_PIN ad_b0_15 +#define UART1_CTS_PIN ad_b0_14 + +/* +#define UART2 0 +#define UART2_BAUDRATE 115200 +#define UART2_BUFSIZE 512 +#define UART2_TX_PIN ad_b1_02 +#define UART2_RX_PIN ad_b1_03 +#define UART2_HW_FLOWCTRL 0 +#define UART2_RTS_PIN ad_b1_01 +#define UART2_CTS_PIN ad_b1_00 + +#define UART3 0 +#define UART3_BAUDRATE 115200 +#define UART3_BUFSIZE 512 +#define UART3_TX_PIN emc_13 +#define UART3_RX_PIN emc_14 +#define UART3_HW_FLOWCTRL 0 +#define UART3_RTS_PIN emc_16 +#define UART3_CTS_PIN emc_15 + +#define UART4 0 +#define UART4_BAUDRATE 115200 +#define UART4_BUFSIZE 512 +#define UART4_TX_PIN emc_19 +#define UART4_RX_PIN emc_20 +#define UART4_HW_FLOWCTRL 0 +#define UART4_RTS_PIN emc_18 +#define UART4_CTS_PIN emc_17 + +#define UART5 0 +#define UART5_BAUDRATE 115200 +#define UART5_BUFSIZE 512 +#define UART5_TX_PIN emc_23 +#define UART5_RX_PIN emc_24 +#define UART5_HW_FLOWCTRL 0 +#define UART5_RTS_PIN emc_27 +#define UART5_CTS_PIN emc_28 + +#define UART6 0 +#define UART6_BAUDRATE 115200 +#define UART6_BUFSIZE 512 +#define UART6_TX_PIN emc_25 +#define UART6_RX_PIN emc_26 +#define UART6_HW_FLOWCTRL 0 +#define UART6_RTS_PIN emc_29 +#define UART6_CTS_PIN emc_30 + +#define UART7 0 +#define UART7_BAUDRATE 115200 +#define UART7_BUFSIZE 512 +#define UART7_TX_PIN emc_31 +#define UART7_RX_PIN emc_32 +#define UART7_HW_FLOWCTRL 0 +#define UART7_RTS_PIN sd_b1_07 +#define UART7_CTS_PIN sd_b1_06 + +#define UART8 0 +#define UART8_BAUDRATE 115200 +#define UART8_BUFSIZE 512 +#define UART8_TX_PIN emc_38 +#define UART8_RX_PIN emc_39 +#define UART8_HW_FLOWCTRL 0 +#define UART8_RTS_PIN sd_b0_03 +#define UART8_CTS_PIN sd_b0_02 +*/ + +/* SPI */ + +/* +#define SPI1 0 +#define SPI1_SCK sd_b0_00 +#define SPI1_SDO sd_b0_02 +#define SPI1_SDI sd_b0_03 +#define SPI1_PCS0 sd_b0_01 +#define SPI1_PCS1 emc_31 +#define SPI1_PCS2 emc_40 +#define SPI1_PCS3 emc_41 + +#define SPI2 0 +#define SPI2_SCK sd_b1_07 +#define SPI2_SDO sd_b1_08 +#define SPI2_SDI sd_b1_09 +#define SPI2_PCS0 sd_b1_06 +#define SPI2_PCS1 emc_14 +#define SPI2_PCS2 sd_b1_10 +#define SPI2_PCS3 sd_b1_11 + +#define SPI3 0 +#define SPI3_SCK ad_b0_00 +#define SPI3_SDO ad_b0_01 +#define SPI3_SDI ad_b0_02 +#define SPI3_PCS0 ad_b0_03 +#define SPI3_PCS1 ad_b0_04 +#define SPI3_PCS2 ad_b0_05 +#define SPI3_PCS3 ad_b0_06 + +#define SPI4 0 +#define SPI4_SCK b0_03 +#define SPI4_SDO b0_02 +#define SPI4_SDI b0_01 +#define SPI4_PCS0 b0_00 +#define SPI4_PCS1 b1_03 +#define SPI4_PCS2 b1_02 +#define SPI4_PCS3 b1_11 +*/ + #endif diff --git a/_projects/armv7m7-imxrt106x-evk/board_config.h b/_projects/armv7m7-imxrt106x-evk/board_config.h index d39538e4..d4e8a138 100644 --- a/_projects/armv7m7-imxrt106x-evk/board_config.h +++ b/_projects/armv7m7-imxrt106x-evk/board_config.h @@ -3,8 +3,8 @@ * * Board config for armv7m7-imxrt106x-evk * - * Copyright 2022 Phoenix Systems - * Author: Lukasz Kosinski + * Copyright 2022, 2024 Phoenix Systems + * Author: Lukasz Kosinski, Daniel Sawka * * This file is part of Phoenix-RTOS. * @@ -22,8 +22,128 @@ */ /* #define PSEUDODEV 1 */ - #define BUILTIN_POSIXSRV 1 +/* Peripherals */ + + +#define UART_CONSOLE 1 + +/* UART */ + +#define UART1 1 +#define UART1_BAUDRATE 115200 +#define UART1_BUFSIZE 512 +#define UART1_TX_PIN ad_b0_12 +#define UART1_RX_PIN ad_b0_13 +#define UART1_HW_FLOWCTRL 0 +#define UART1_RTS_PIN ad_b0_15 +#define UART1_CTS_PIN ad_b0_14 + +/* +#define UART2 0 +#define UART2_BAUDRATE 115200 +#define UART2_BUFSIZE 512 +#define UART2_TX_PIN ad_b1_02 +#define UART2_RX_PIN ad_b1_03 +#define UART2_HW_FLOWCTRL 0 +#define UART2_RTS_PIN ad_b1_01 +#define UART2_CTS_PIN ad_b1_00 + +#define UART3 0 +#define UART3_BAUDRATE 115200 +#define UART3_BUFSIZE 512 +#define UART3_TX_PIN emc_13 +#define UART3_RX_PIN emc_14 +#define UART3_HW_FLOWCTRL 0 +#define UART3_RTS_PIN emc_16 +#define UART3_CTS_PIN emc_15 + +#define UART4 0 +#define UART4_BAUDRATE 115200 +#define UART4_BUFSIZE 512 +#define UART4_TX_PIN emc_19 +#define UART4_RX_PIN emc_20 +#define UART4_HW_FLOWCTRL 0 +#define UART4_RTS_PIN emc_18 +#define UART4_CTS_PIN emc_17 + +#define UART5 0 +#define UART5_BAUDRATE 115200 +#define UART5_BUFSIZE 512 +#define UART5_TX_PIN emc_23 +#define UART5_RX_PIN emc_24 +#define UART5_HW_FLOWCTRL 0 +#define UART5_RTS_PIN emc_27 +#define UART5_CTS_PIN emc_28 + +#define UART6 0 +#define UART6_BAUDRATE 115200 +#define UART6_BUFSIZE 512 +#define UART6_TX_PIN emc_25 +#define UART6_RX_PIN emc_26 +#define UART6_HW_FLOWCTRL 0 +#define UART6_RTS_PIN emc_29 +#define UART6_CTS_PIN emc_30 + +#define UART7 0 +#define UART7_BAUDRATE 115200 +#define UART7_BUFSIZE 512 +#define UART7_TX_PIN emc_31 +#define UART7_RX_PIN emc_32 +#define UART7_HW_FLOWCTRL 0 +#define UART7_RTS_PIN sd_b1_07 +#define UART7_CTS_PIN sd_b1_06 + +#define UART8 0 +#define UART8_BAUDRATE 115200 +#define UART8_BUFSIZE 512 +#define UART8_TX_PIN emc_38 +#define UART8_RX_PIN emc_39 +#define UART8_HW_FLOWCTRL 0 +#define UART8_RTS_PIN sd_b0_03 +#define UART8_CTS_PIN sd_b0_02 +*/ + +/* SPI */ + +/* +#define SPI1 0 +#define SPI1_SCK sd_b0_00 +#define SPI1_SDO sd_b0_02 +#define SPI1_SDI sd_b0_03 +#define SPI1_PCS0 sd_b0_01 +#define SPI1_PCS1 emc_31 +#define SPI1_PCS2 emc_40 +#define SPI1_PCS3 emc_41 + +#define SPI2 0 +#define SPI2_SCK sd_b1_07 +#define SPI2_SDO sd_b1_08 +#define SPI2_SDI sd_b1_09 +#define SPI2_PCS0 sd_b1_06 +#define SPI2_PCS1 emc_14 +#define SPI2_PCS2 sd_b1_10 +#define SPI2_PCS3 sd_b1_11 + +#define SPI3 0 +#define SPI3_SCK ad_b0_00 +#define SPI3_SDO ad_b0_01 +#define SPI3_SDI ad_b0_02 +#define SPI3_PCS0 ad_b0_03 +#define SPI3_PCS1 ad_b0_04 +#define SPI3_PCS2 ad_b0_05 +#define SPI3_PCS3 ad_b0_06 + +#define SPI4 0 +#define SPI4_SCK b0_03 +#define SPI4_SDO b0_02 +#define SPI4_SDI b0_01 +#define SPI4_PCS0 b0_00 +#define SPI4_PCS1 b1_03 +#define SPI4_PCS2 b1_02 +#define SPI4_PCS3 b1_11 +*/ + #endif diff --git a/_projects/armv7m7-imxrt117x-evk/board_config.h b/_projects/armv7m7-imxrt117x-evk/board_config.h index abf3303d..c883b23a 100644 --- a/_projects/armv7m7-imxrt117x-evk/board_config.h +++ b/_projects/armv7m7-imxrt117x-evk/board_config.h @@ -3,8 +3,8 @@ * * Board config for armv7m7-imxrt117x-evk * - * Copyright 2022 Phoenix Systems - * Author: Lukasz Kosinski + * Copyright 2022, 2024 Phoenix Systems + * Author: Lukasz Kosinski, Daniel Sawka * * This file is part of Phoenix-RTOS. * @@ -15,9 +15,6 @@ #define _BOARD_CONFIG_H_ -#define UART1 1 -#define UART_CONSOLE 1 - /* * libpseudodev and libposixsrv shall be used exclusively, libpseudodev uses * less resources, but libposixsrv provides POSIX support and may be resource @@ -25,8 +22,182 @@ */ /* #define PSEUDODEV 1 */ - #define BUILTIN_POSIXSRV 1 +/* Peripherals */ + + +#define UART_CONSOLE 1 + +/* UART */ + +#define UART1 1 +#define UART1_BAUDRATE 115200 +#define UART1_BUFSIZE 512 +#define UART1_TX_PIN ad_24 +#define UART1_RX_PIN ad_25 +#define UART1_HW_FLOWCTRL 0 +#define UART1_RTS_PIN ad_27 +#define UART1_CTS_PIN ad_26 + +/* +#define UART2 0 +#define UART2_BAUDRATE 115200 +#define UART2_BUFSIZE 512 +#define UART2_TX_PIN disp_b2_10 +#define UART2_RX_PIN disp_b2_11 +#define UART2_HW_FLOWCTRL 0 +#define UART2_RTS_PIN disp_b2_13 +#define UART2_CTS_PIN disp_b2_12 + +#define UART3 0 +#define UART3_BAUDRATE 115200 +#define UART3_BUFSIZE 512 +#define UART3_TX_PIN ad_30 +#define UART3_RX_PIN ad_31 +#define UART3_HW_FLOWCTRL 0 +#define UART3_RTS_PIN sd_b2_08 +#define UART3_CTS_PIN sd_b2_07 + +#define UART4 0 +#define UART4_BAUDRATE 115200 +#define UART4_BUFSIZE 512 +#define UART4_TX_PIN disp_b1_06 +#define UART4_RX_PIN disp_b1_04 +#define UART4_HW_FLOWCTRL 0 +#define UART4_RTS_PIN disp_b1_07 +#define UART4_CTS_PIN disp_b1_05 + +#define UART5 0 +#define UART5_BAUDRATE 115200 +#define UART5_BUFSIZE 512 +#define UART5_TX_PIN ad_28 +#define UART5_RX_PIN ad_29 +#define UART5_HW_FLOWCTRL 0 +#define UART5_RTS_PIN sd_b2_10 +#define UART5_CTS_PIN sd_b2_09 + +#define UART6 0 +#define UART6_BAUDRATE 115200 +#define UART6_BUFSIZE 512 +#define UART6_TX_PIN emc_b1_40 +#define UART6_RX_PIN emc_b1_41 +#define UART6_HW_FLOWCTRL 0 +#define UART6_RTS_PIN emc_b2_01 +#define UART6_CTS_PIN emc_b2_00 + +#define UART7 0 +#define UART7_BAUDRATE 115200 +#define UART7_BUFSIZE 512 +#define UART7_TX_PIN disp_b2_06 +#define UART7_RX_PIN disp_b2_07 +#define UART7_HW_FLOWCTRL 0 +#define UART7_RTS_PIN ad_03 +#define UART7_CTS_PIN ad_02 + +#define UART8 0 +#define UART8_BAUDRATE 115200 +#define UART8_BUFSIZE 512 +#define UART8_TX_PIN disp_b2_08 +#define UART8_RX_PIN disp_b2_09 +#define UART8_HW_FLOWCTRL 0 +#define UART8_RTS_PIN ad_05 +#define UART8_CTS_PIN ad_04 + +#define UART9 0 +#define UART9_BAUDRATE 115200 +#define UART9_BUFSIZE 512 +#define UART9_TX_PIN sd_b2_00 +#define UART9_RX_PIN sd_b2_01 +#define UART9_HW_FLOWCTRL 0 +#define UART9_RTS_PIN sd_b2_03 +#define UART9_CTS_PIN sd_b2_02 + +#define UART10 0 +#define UART10_BAUDRATE 115200 +#define UART10_BUFSIZE 512 +#define UART10_TX_PIN ad_15 +#define UART10_RX_PIN ad_16 +#define UART10_HW_FLOWCTRL 0 +#define UART10_RTS_PIN ad_35 +#define UART10_CTS_PIN ad_34 + +#define UART11 0 +#define UART11_BAUDRATE 115200 +#define UART11_BUFSIZE 512 +#define UART11_TX_PIN lpsr_08 +#define UART11_RX_PIN lpsr_09 +#define UART11_HW_FLOWCTRL 0 +#define UART11_RTS_PIN lpsr_11 +#define UART11_CTS_PIN lpsr_10 + +#define UART12 0 +#define UART12_BAUDRATE 115200 +#define UART12_BUFSIZE 512 +#define UART12_TX_PIN lpsr_00 +#define UART12_RX_PIN lpsr_01 +#define UART12_HW_FLOWCTRL 0 +#define UART12_RTS_PIN lpsr_04 +#define UART12_CTS_PIN lpsr_05 +*/ + +/* SPI */ + +/* +#define SPI1 0 +#define SPI1_SCK ad_28 +#define SPI1_SDO ad_30 +#define SPI1_SDI ad_31 +#define SPI1_PCS0 ad_29 +#define SPI1_PCS1 ad_18 +#define SPI1_PCS2 ad_19 +#define SPI1_PCS3 ad_20 + +#define SPI2 0 +#define SPI2_SCK sd_b2_07 +#define SPI2_SDO sd_b2_09 +#define SPI2_SDI sd_b2_10 +#define SPI2_PCS0 sd_b2_08 +#define SPI2_PCS1 sd_b2_11 +#define SPI2_PCS2 ad_22 +#define SPI2_PCS3 ad_23 + +#define SPI3 0 +#define SPI3_SCK disp_b1_04 +#define SPI3_SDO disp_b1_06 +#define SPI3_SDI disp_b1_05 +#define SPI3_PCS0 disp_b1_07 +#define SPI3_PCS1 disp_b1_08 +#define SPI3_PCS2 disp_b1_09 +#define SPI3_PCS3 disp_b1_10 + +#define SPI4 0 +#define SPI4_SCK disp_b2_12 +#define SPI4_SDO disp_b2_14 +#define SPI4_SDI disp_b2_13 +#define SPI4_PCS0 disp_b2_15 +#define SPI4_PCS1 sd_b2_04 +#define SPI4_PCS2 sd_b2_05 +#define SPI4_PCS3 sd_b2_06 + +#define SPI5 0 +#define SPI5_SCK lpsr_02 +#define SPI5_SDO lpsr_04 +#define SPI5_SDI lpsr_05 +#define SPI5_PCS0 lpsr_03 +#define SPI5_PCS1 lpsr_06 +#define SPI5_PCS2 lpsr_07 +#define SPI5_PCS3 lpsr_08 + +#define SPI6 0 +#define SPI6_SCK lpsr_10 +#define SPI6_SDO lpsr_11 +#define SPI6_SDI lpsr_12 +#define SPI6_PCS0 lpsr_09 +#define SPI6_PCS1 lpsr_08 +#define SPI6_PCS2 lpsr_07 +#define SPI6_PCS3 lpsr_06 +*/ + #endif diff --git a/_projects/riscv64-generic-qemu/build.project b/_projects/riscv64-generic-qemu/build.project index aa3baf1e..c898c1be 100644 --- a/_projects/riscv64-generic-qemu/build.project +++ b/_projects/riscv64-generic-qemu/build.project @@ -8,6 +8,7 @@ [ "${BASH_SOURCE[0]}" -ef "$0" ] && echo "You should source this script, not execute it!" && exit 1 +export PLO_DEVICES="ram-storage uart-16550" b_image_project () { b_log "The images have been built for the ${TARGET} platform" diff --git a/_projects/riscv64-generic-spike/build.project b/_projects/riscv64-generic-spike/build.project index 386b9e2f..b9bae344 100644 --- a/_projects/riscv64-generic-spike/build.project +++ b/_projects/riscv64-generic-spike/build.project @@ -12,6 +12,7 @@ KERNEL_OFFS=$((0x1001000)) # Disk image kernel offset (in bytes) OFFS_USER_SCRIPT=$((0x1000000)) # Disk image user script offset (in bytes) +export PLO_DEVICES="ram-storage tty-spike" USER_SCRIPT=( "kernel ${BOOT_DEVICE}" diff --git a/_projects/sparcv8leon3-gr712rc-board/board_config.h b/_projects/sparcv8leon3-gr712rc-board/board_config.h index b32d8145..aecd2572 100644 --- a/_projects/sparcv8leon3-gr712rc-board/board_config.h +++ b/_projects/sparcv8leon3-gr712rc-board/board_config.h @@ -59,6 +59,13 @@ #define UART4_ACTIVE 0 #define UART5_ACTIVE 0 +#define UART0_DMA 0 +#define UART1_DMA 0 +#define UART2_DMA 0 +#define UART3_DMA 0 +#define UART4_DMA 0 +#define UART5_DMA 0 + #define UART_CONSOLE_PLO 0 #define UART_CONSOLE_KERNEL 0 #define UART_CONSOLE_USER 0 @@ -115,5 +122,9 @@ #define TLB_IRQ 14 +/* DMA */ + +#define DMA_MAX_CNT 0 + #endif diff --git a/_projects/sparcv8leon3-gr716-mimas/board_config.h b/_projects/sparcv8leon3-gr716-mimas/board_config.h index 6fc889a8..702fbb9e 100644 --- a/_projects/sparcv8leon3-gr716-mimas/board_config.h +++ b/_projects/sparcv8leon3-gr716-mimas/board_config.h @@ -27,8 +27,8 @@ #define UART4_BASE ((void *)-1) #define UART5_BASE ((void *)-1) -#define UART0_IRQ 3 -#define UART1_IRQ 5 +#define UART0_IRQ 10 +#define UART1_IRQ 12 #define UART2_IRQ -1 #define UART3_IRQ -1 #define UART4_IRQ -1 @@ -59,6 +59,13 @@ #define UART4_ACTIVE 0 #define UART5_ACTIVE 0 +#define UART0_DMA 1 +#define UART1_DMA 0 +#define UART2_DMA 0 +#define UART3_DMA 0 +#define UART4_DMA 0 +#define UART5_DMA 0 + #define UART_CONSOLE_PLO 1 #define UART_CONSOLE_KERNEL 1 #define UART_CONSOLE_USER 1 @@ -114,5 +121,9 @@ #define SPW4_ACTIVE 0 #define SPW5_ACTIVE 0 +/* DMA */ + +#define DMA_MAX_CNT 1 + #endif diff --git a/_projects/sparcv8leon3-gr716-mimas/build.project b/_projects/sparcv8leon3-gr716-mimas/build.project index 0157798a..093ed972 100644 --- a/_projects/sparcv8leon3-gr716-mimas/build.project +++ b/_projects/sparcv8leon3-gr716-mimas/build.project @@ -10,6 +10,8 @@ BOOT_DEVICE="uart0" +export PLO_DEVICES="gpio-gr716 uart-grlib" + PREINIT_SCRIPT=( "map ocram 0x31000000 0x3101FFFF rwx" "map extram 0x40000000 0x401FFFFF rwx" @@ -23,7 +25,7 @@ USER_SCRIPT=( "app ${BOOT_DEVICE} -x dummyfs extram extram" "app ${BOOT_DEVICE} -x grlib-multi extram extram" "app ${BOOT_DEVICE} -x psh extram extram" - "wait 2000" + "wait 500" "go!" ) diff --git a/_projects/sparcv8leon3-gr716-mini/board_config.h b/_projects/sparcv8leon3-gr716-mini/board_config.h index edbb956b..0b705853 100644 --- a/_projects/sparcv8leon3-gr716-mini/board_config.h +++ b/_projects/sparcv8leon3-gr716-mini/board_config.h @@ -59,6 +59,13 @@ #define UART4_ACTIVE 0 #define UART5_ACTIVE 0 +#define UART0_DMA 0 +#define UART1_DMA 0 +#define UART2_DMA 0 +#define UART3_DMA 0 +#define UART4_DMA 0 +#define UART5_DMA 0 + #define UART_CONSOLE_PLO 2 #define UART_CONSOLE_KERNEL 2 #define UART_CONSOLE_USER 2 @@ -114,5 +121,9 @@ #define SPW4_ACTIVE 0 #define SPW5_ACTIVE 0 +/* DMA */ + +#define DMA_MAX_CNT 0 + #endif diff --git a/_projects/sparcv8leon3-gr716-mini/build.project b/_projects/sparcv8leon3-gr716-mini/build.project index dc4d6dc3..394b756f 100644 --- a/_projects/sparcv8leon3-gr716-mini/build.project +++ b/_projects/sparcv8leon3-gr716-mini/build.project @@ -8,6 +8,7 @@ [ "${BASH_SOURCE[0]}" -ef "$0" ] && echo "You should source this script, not execute it!" && exit 1 +export PLO_DEVICES="gpio-gr716 uart-grlib flash-gr716" b_convert_project() { ./phoenix-rtos-build/scripts/gr716-convert.py "${PREFIX_PROG_STRIPPED}plo-${TARGET_FAMILY}-${TARGET_SUBFAMILY}.elf" -o "${PREFIX_PROG_STRIPPED}plo-${TARGET_FAMILY}-${TARGET_SUBFAMILY}.img" diff --git a/_targets/build.project.armv7m4-stm32l4x6 b/_targets/build.project.armv7m4-stm32l4x6 index f734ae47..c0bf5fa2 100644 --- a/_targets/build.project.armv7m4-stm32l4x6 +++ b/_targets/build.project.armv7m4-stm32l4x6 @@ -35,7 +35,6 @@ export PORTS_CURL=n # SIZE_PAGE=$((0x200)) PAGE_MASK=$((0xfffffe00)) -KERNEL_OFFS=$((0xd000)) # @@ -46,6 +45,13 @@ BOOT_DEVICE="flash0" NAME_USER_SCRIPT="user.plo" OFFS_USER_SCRIPT=$((0xc800)) MAGIC_USER_SCRIPT=$((0xdabaabad)) +KERNEL_OFFS=$((0xd000)) + + +# Physical kernel address +KERNEL_PHBASE=$((0x08000000)) # flash0 start address +KERNEL_PHOFFS=$KERNEL_OFFS +export KERNEL_PHADDR=$(printf "%08x" $(($KERNEL_PHBASE + KERNEL_PHOFFS))) # Pre-init script is launched before user script diff --git a/_targets/build.project.armv7m7-imxrt105x b/_targets/build.project.armv7m7-imxrt105x index d93506f5..77b9c74b 100644 --- a/_targets/build.project.armv7m7-imxrt105x +++ b/_targets/build.project.armv7m7-imxrt105x @@ -38,8 +38,6 @@ export PORTS_AZURE_SDK=n # SIZE_PAGE=$((0x200)) PAGE_MASK=$((0xfffffe00)) -KERNEL_OFFS=$((0x12000)) - # # Project specific build @@ -49,6 +47,13 @@ BOOT_DEVICE="flash0" NAME_USER_SCRIPT="user.plo" OFFS_USER_SCRIPT=$((0x11000)) MAGIC_USER_SCRIPT=$((0xdabaabad)) +KERNEL_OFFS=$((0x12000)) + + +# Physical kernel address +KERNEL_PHBASE=$((0x0)) # itcm start address +KERNEL_PHOFFS=$((0x0)) +export KERNEL_PHADDR=$(printf "%08x" $((KERNEL_PHBASE + KERNEL_PHOFFS))) # Pre-init script is launched before user script diff --git a/_targets/build.project.armv7m7-imxrt106x b/_targets/build.project.armv7m7-imxrt106x index 70b4effa..18a8109e 100644 --- a/_targets/build.project.armv7m7-imxrt106x +++ b/_targets/build.project.armv7m7-imxrt106x @@ -38,7 +38,6 @@ export PORTS_AZURE_SDK=n # SIZE_PAGE=$((0x200)) PAGE_MASK=$((0xfffffe00)) -KERNEL_OFFS=$((0x12000)) # @@ -49,6 +48,13 @@ BOOT_DEVICE="flash1" NAME_USER_SCRIPT="user.plo" OFFS_USER_SCRIPT=$((0x11000)) MAGIC_USER_SCRIPT=$((0xdabaabad)) +KERNEL_OFFS=$((0x12000)) + + +# Physical kernel address +KERNEL_PHBASE=$((0x0)) # itcm start address +KERNEL_PHOFFS=$((0x0)) +export KERNEL_PHADDR=$(printf "%08x" $((KERNEL_PHBASE + KERNEL_PHOFFS))) # Pre-init script is launched before user script diff --git a/_targets/build.project.armv7m7-imxrt117x b/_targets/build.project.armv7m7-imxrt117x index e983fd17..a7d55bf2 100644 --- a/_targets/build.project.armv7m7-imxrt117x +++ b/_targets/build.project.armv7m7-imxrt117x @@ -36,7 +36,6 @@ export PORTS_CURL=n # SIZE_PAGE=$((0x200)) PAGE_MASK=$((0xfffffe00)) -KERNEL_OFFS=$((0x12000)) # @@ -47,6 +46,14 @@ BOOT_DEVICE="flash0" NAME_USER_SCRIPT="user.plo" OFFS_USER_SCRIPT=$((0x11000)) MAGIC_USER_SCRIPT=$((0xdabaabad)) +KERNEL_OFFS=$((0x12000)) + + +# Physical kernel address +KERNEL_PHBASE=$((0x0)) # itcm start address +KERNEL_PHOFFS=$((0x0)) +export KERNEL_PHADDR=$(printf "%08x" $((KERNEL_PHBASE + KERNEL_PHOFFS))) + # Pre-init script is launched before user script PREINIT_SCRIPT=( diff --git a/_targets/build.project.sparcv8leon3-gr716 b/_targets/build.project.sparcv8leon3-gr716 index 88bba7bd..1e0a1c98 100644 --- a/_targets/build.project.sparcv8leon3-gr716 +++ b/_targets/build.project.sparcv8leon3-gr716 @@ -32,12 +32,19 @@ export PORTS_CURL=n # SIZE_PAGE=$((0x200)) PAGE_MASK=$((~(SIZE_PAGE - 1))) -KERNEL_OFFS=$((0xF000)) BOOT_DEVICE="flash0" # Default boot device NAME_USER_SCRIPT="user.plo" # User script name OFFS_USER_SCRIPT=$((0xE000)) MAGIC_USER_SCRIPT=$((0xdabaabad)) # User script magic value +KERNEL_OFFS=$((0xF000)) + + +# Physical kernel address +KERNEL_PHBASE=$((0x31000000)) # iram start address +KERNEL_PHOFFS=$((0x0)) +export KERNEL_PHADDR=$(printf "%08x" $((KERNEL_PHBASE + KERNEL_PHOFFS))) + PREINIT_SCRIPT=( "map dram 0x30000000 0x3000FFFF rw" diff --git a/_user/serverdemo/main.c b/_user/serverdemo/main.c index 50fb29c6..18ef6d4c 100644 --- a/_user/serverdemo/main.c +++ b/_user/serverdemo/main.c @@ -50,7 +50,7 @@ static ssize_t server_handleRead(oid_t *oid, void *data, size_t len, off_t offse { /* This is where we handle read request (i.e. user is reading from the server). */ printf("serverdemo: Read from oid %u:%u of %zu bytes @offset %lld\n", - (unsigned)oid->port, (unsigned)oid->id, len, offset); + (unsigned)oid->port, (unsigned)oid->id, len, (long long)offset); /* Put something into the requester buffer. */ memset(data, 'x', len); @@ -64,7 +64,7 @@ static ssize_t server_handleWrite(oid_t *oid, const void *data, size_t len, off_ { /* This is where we handle write request (i.e. user is writing to the server). */ printf("serverdemo: Write to oid %u:%u of %zu bytes @offset %lld\n", - (unsigned)oid->port, (unsigned)oid->id, len, offset); + (unsigned)oid->port, (unsigned)oid->id, len, (long long)offset); /* Print out received data. */ printf("Data:"); @@ -119,30 +119,28 @@ __attribute__((noreturn)) static void server_msgLoop(oid_t *oid) * sys/msg.h header. In this example we will handle * only selected types. */ case mtOpen: - msg.o.io.err = server_handleOpen(&msg.i.openclose.oid); + msg.o.err = server_handleOpen(&msg.oid); break; case mtClose: - msg.o.io.err = server_handleClose(&msg.i.openclose.oid); + msg.o.err = server_handleClose(&msg.oid); break; case mtRead: /* Buffer in msg.o.data is provided by the user and * was allocated in the server memory space by the kernel. */ - msg.o.io.err = server_handleRead(&msg.i.io.oid, - msg.o.data, msg.o.size, msg.i.io.offs); + msg.o.err = server_handleRead(&msg.oid, msg.o.data, msg.o.size, msg.i.io.offs); break; case mtWrite: /* Buffer in msg.i.data is provided by the user and * was allocated in the server memory space by the kernel. */ - msg.o.io.err = server_handleWrite(&msg.i.io.oid, - msg.i.data, msg.i.size, msg.i.io.offs); + msg.o.err = server_handleWrite(&msg.oid, msg.i.data, msg.i.size, msg.i.io.offs); break; default: /* All other types are not supported. */ - msg.o.io.err = -ENOSYS; + msg.o.err = -ENOSYS; break; } diff --git a/docker-build.sh b/docker-build.sh index d6f6c2c1..78641450 100755 --- a/docker-build.sh +++ b/docker-build.sh @@ -1,6 +1,9 @@ #!/bin/bash DOCKER_IMG_NAME=phoenixrtos/build +if [ -e .docker_build_img ]; then + DOCKER_IMG_NAME="$(cat .docker_build_img)" +fi PATH_TO_PROJECT="$(dirname "$(realpath "${BASH_SOURCE[0]}")")/" DOCKER_USER="$(id -u):$(id -g)" diff --git a/libphoenix b/libphoenix index fed73506..72389ef2 160000 --- a/libphoenix +++ b/libphoenix @@ -1 +1 @@ -Subproject commit fed73506c974e66e72be6843b970c50b64908313 +Subproject commit 72389ef24d3d735d598d27508b3627e35ae326cf diff --git a/phoenix-rtos-build b/phoenix-rtos-build index 14a4a737..2aa1919c 160000 --- a/phoenix-rtos-build +++ b/phoenix-rtos-build @@ -1 +1 @@ -Subproject commit 14a4a737e300fb82358cbd20d24fe4e2e4175aad +Subproject commit 2aa1919c60df3a150658c3a8c9c7951d2f99b791 diff --git a/phoenix-rtos-corelibs b/phoenix-rtos-corelibs index 25343d8d..a38e329d 160000 --- a/phoenix-rtos-corelibs +++ b/phoenix-rtos-corelibs @@ -1 +1 @@ -Subproject commit 25343d8dd70b8cbe16f495a7bd03d0f51659c96a +Subproject commit a38e329dccfa1ed8567b76c5df1e03a39d16d51b diff --git a/phoenix-rtos-devices b/phoenix-rtos-devices index 3b004ed2..3b4a2ab9 160000 --- a/phoenix-rtos-devices +++ b/phoenix-rtos-devices @@ -1 +1 @@ -Subproject commit 3b004ed242c3a5ab02ba7de8eb397619a1f37acc +Subproject commit 3b4a2ab91f16f739b9569ddc8d50349c7c57c21e diff --git a/phoenix-rtos-doc b/phoenix-rtos-doc index 0e501301..5c935770 160000 --- a/phoenix-rtos-doc +++ b/phoenix-rtos-doc @@ -1 +1 @@ -Subproject commit 0e501301092b2c39422813cab9f37280068f314f +Subproject commit 5c935770f6d64d57a112334d008c79cfaf84d732 diff --git a/phoenix-rtos-filesystems b/phoenix-rtos-filesystems index 5d267123..2857a0fe 160000 --- a/phoenix-rtos-filesystems +++ b/phoenix-rtos-filesystems @@ -1 +1 @@ -Subproject commit 5d267123dbbdcc6cf4be134885dc68753470c39d +Subproject commit 2857a0fed78b650ce08d9d054ef33f962c7d629b diff --git a/phoenix-rtos-kernel b/phoenix-rtos-kernel index 9cc5f718..f7a3bf02 160000 --- a/phoenix-rtos-kernel +++ b/phoenix-rtos-kernel @@ -1 +1 @@ -Subproject commit 9cc5f7186ea0e586c19474210185abeb5ed2df64 +Subproject commit f7a3bf029b5a23d6367a5f0c40c416d4ac833b13 diff --git a/phoenix-rtos-lwip b/phoenix-rtos-lwip index 79eed8f0..c52c5698 160000 --- a/phoenix-rtos-lwip +++ b/phoenix-rtos-lwip @@ -1 +1 @@ -Subproject commit 79eed8f09c400fd30825b63b75648846f8e91314 +Subproject commit c52c569803d9b77ae4fa7c92432f3182e9b6f5ef diff --git a/phoenix-rtos-ports b/phoenix-rtos-ports index 7a859f93..46f7c3d1 160000 --- a/phoenix-rtos-ports +++ b/phoenix-rtos-ports @@ -1 +1 @@ -Subproject commit 7a859f93abdb712e58a55595e4d395df45791f97 +Subproject commit 46f7c3d1449f0aa8d9b72457a53b2c87faa047d6 diff --git a/phoenix-rtos-posixsrv b/phoenix-rtos-posixsrv index c544cb95..a89ca38f 160000 --- a/phoenix-rtos-posixsrv +++ b/phoenix-rtos-posixsrv @@ -1 +1 @@ -Subproject commit c544cb95b7233ab10642148beb8f9aad6a57b8b5 +Subproject commit a89ca38f196051731680ab9c762692b843721a12 diff --git a/phoenix-rtos-tests b/phoenix-rtos-tests index d1ce0980..d6bcaf79 160000 --- a/phoenix-rtos-tests +++ b/phoenix-rtos-tests @@ -1 +1 @@ -Subproject commit d1ce09803a9bcd51a67fc1fd3fc09db52017df32 +Subproject commit d6bcaf7914f0b67befaf204683c097d823d855cb diff --git a/phoenix-rtos-usb b/phoenix-rtos-usb index 7358b3f4..1919ae8d 160000 --- a/phoenix-rtos-usb +++ b/phoenix-rtos-usb @@ -1 +1 @@ -Subproject commit 7358b3f44e0bbb66606381618f49437fd5f3cc75 +Subproject commit 1919ae8dbeb6331293fdb02cd214b624e1da34fa diff --git a/phoenix-rtos-utils b/phoenix-rtos-utils index b3486af7..ec2439d5 160000 --- a/phoenix-rtos-utils +++ b/phoenix-rtos-utils @@ -1 +1 @@ -Subproject commit b3486af7d0bd0ca625981f440d90f4b9a64ba943 +Subproject commit ec2439d55da497e6bf376b7c577a83439ad20d6c diff --git a/plo b/plo index a42c24f2..f7086240 160000 --- a/plo +++ b/plo @@ -1 +1 @@ -Subproject commit a42c24f28ad15df02686fe647b1361c7e60c6f80 +Subproject commit f7086240f038fd78b697057d27d0b06a49ffb537 diff --git a/scripts/armv7a9-zynq7000-qemu-test.sh b/scripts/armv7a9-zynq7000-qemu-test.sh new file mode 100755 index 00000000..e8f1f920 --- /dev/null +++ b/scripts/armv7a9-zynq7000-qemu-test.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# +# Shell script for running phoenix-rtos loader on Qemu fork from Xilinx (zynq-7000) +# +# Copyright 2021 Phoenix Systems +# Author: Hubert Buczynski, Damian Modzelewski +# + +IMG_PLO_ZYNQ7000="$(dirname "${BASH_SOURCE[0]}")/../_boot/armv7a9-zynq7000-qemu/plo.img" +IMG_FLASH_QEMU="$(dirname "${BASH_SOURCE[0]}")/../_boot/armv7a9-zynq7000-qemu/phoenix.disk" +DTB_ZYNQ7000="$(dirname "${BASH_SOURCE[0]}")/../scripts/zynq7000-zc702.dtb" + +for FILE in "$IMG_PLO_ZYNQ7000" "$IMG_FLASH_QEMU" "$DTB_ZYNQ7000"; do + if [ ! -f "$FILE" ]; then + echo "Missing required file: $FILE" + exit 1 + fi +done + +exec qemu-system-aarch64 \ + -M arm-generic-fdt-7series \ + -dtb "$DTB_ZYNQ7000" \ + -serial null \ + -serial stdio \ + -device loader,file="$IMG_PLO_ZYNQ7000" \ + -drive file="$IMG_FLASH_QEMU",if=mtd,format=raw,index=0 diff --git a/scripts/ia32-generic-qemu-test.sh b/scripts/ia32-generic-qemu-test.sh index 7375ebf2..2fa46ecb 100755 --- a/scripts/ia32-generic-qemu-test.sh +++ b/scripts/ia32-generic-qemu-test.sh @@ -11,4 +11,5 @@ exec qemu-system-i386 \ -drive "file=$(dirname "${BASH_SOURCE[0]}")/../_boot/ia32-generic-qemu/phoenix.disk,format=raw,media=disk,index=0" \ -nographic \ -monitor none \ - -netdev user,id=net0 -device rtl8139,netdev=net0 "$@" + -netdev user,id=net0 -device rtl8139,netdev=net0 "$@" \ + -d cpu_reset