polarfire-soc / polarfire-soc-bare-metal-examples

Bare metal example software projects for PolarFire SoC
26 stars 14 forks source link

(mpfs-pmp-demo) "SECTION_START_ADDRESS" setting in mpfs-ddr-u54-3.ld file from "0x80000000" to "0x80200000" #10

Open okawaj9 opened 2 years ago

okawaj9 commented 2 years ago

1. Phenomenon: mpfs-pmp-demo UART3 does not output messages to serial console (eg. PuTTY).

2. Resolution: polarfire-soc-bare-metal-examples/applications/mpfs-pmp-demo/mpfs-pmp-app-u54-3/src/application/hart3/u54_3.c line 27

Current>> mss_uart_instance_t g_uart= &g_mssuart3hi; Resolution>> mss_uart_instance_t g_uart= &g_mssuart3lo;

Best Regards.

okawaj9 commented 2 years ago

In addition, should we change "SECTION_START_ADDRESS" setting in mpfs-ddr-u54-3.ld file from "0x80000000" to "0x80200000" ? (mpfs-pmp-app-u54-3/src/boards/icicle-kit-es/platform_config/linker/mpfs-ddr-u54-3.ld)

nitindeshpande commented 2 years ago

@okawaj9

mpfs-pmp-demo UART3 does not output messages to serial console (eg. PuTTY) and the resolution - The resolution works for printing the message, but what should actually be done is to enable the PMPs using configurator as described here. This will assign UART3_HI and UART4_HI to the second context and you will be able to test the PMP functionality.

In addition, should we change "SECTION_START_ADDRESS" setting... You are right about the linker script change. We will correct that.

okawaj9 commented 2 years ago

This will assign UART3_HI and UART4_HI to the second context and you will be able to test the PMP functionality.

Thanks. Confirmed with HSS 2021.04 (and pmp-app 2021.08) . It should keep "mss_uart_instance_t *g_uart= &g_mssuart3hi;" to output messages on UART3 with this PMP-DEMO.

On the other hand, HSS 2022.02 (and other versions) failed to boot when PMP enabled in order to do the pmp-demo. While struggling, I mistakenly filed as "&g_mssuart3lo;" is required. Sorry about it.

Now, I'm still struggling and debugging the PMP-DEMO with some default settings (for example, seeing CONFIG_SERVICE_BOOT_DDR_TARGET_ADDR=0xA0000000, CONFIG_SERVICE_BOOT_MMC_USE_GPT=y). But it's outside of this thread. Then once something find, will file other issue. Thanks.

nitindeshpande commented 2 years ago

Thanks @okawaj9, for reporting the new issue, we will address that.

Will keep this issue open until the linker script improvement is available.