Re: [PATCH 0/9] hw/arm/aspeed_ast10x0: Map more peripherals & few more fixes
On 12/29/22 16:23, Philippe Mathieu-Daudé wrote: Trying to fix some bugs triggered running Zephyr. Still 2 bugs: 1/ uart:~$ sensor get SYSCLK [00:00:23.592,000] os: * USAGE FAULT * [00:00:23.593,000] os: Illegal use of the EPSR [00:00:23.593,000] os: r0/a1: 0x00033448 r1/a2: 0x r2/a3: 0x00047f50 [00:00:23.593,000] os: r3/a4: 0x r12/ip: 0x r14/lr: 0x0fbd [00:00:23.593,000] os: xpsr: 0x6000 [00:00:23.593,000] os: Faulting instruction address (r15/pc): 0x [00:00:23.593,000] os: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0 [00:00:23.594,000] os: Current thread: 0x38248 (shell_uart) [00:00:23.601,000] os: Halting system 2/ uart:~$ mcuboot [00:01:04.990,000] os: * BUS FAULT * [00:01:04.990,000] os: Instruction bus error [00:01:04.991,000] os: r0/a1: 0x r1/a2: 0x0000 r2/a3: 0x00047ef0 [00:01:04.991,000] os: r3/a4: 0x0010 r12/ip: 0x6df7ecb5 r14/lr: 0x000188ed [00:01:04.991,000] os: xpsr: 0x6100 [00:01:04.991,000] os: Faulting instruction address (r15/pc): 0x6df7ecb4 [00:01:04.991,000] os: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0 [00:01:04.991,000] os: Current thread: 0x38248 (shell_uart) [00:01:04.994,000] os: Halting system IN: PMSA MPU lookup for reading at 0x0001d400 mmu_idx 65 -> Hit (prot rwx) 0x0001d5a2: 6869 ldr r1, [r5, #4] 0x0001d5a4: 4421 add r1, r4 0x0001d5a6: 6883 ldr r3, [r0, #8] 0x0001d5a8: 681c ldr r4, [r3] 0x0001d5aa: 463a mov r2, r7 0x0001d5ac: 4633 mov r3, r6 0x0001d5ae: 46a4 mov ip, r4 0x0001d5b0: e8bd 41f0 pop.w{r4, r5, r6, r7, r8, lr} 0x0001d5b4: 4760 bx ip PMSA MPU lookup for reading at 0x0008 mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for execute at 0x6df7ecb4 mmu_idx 65 -> Hit (prot rwx) Taking exception 3 [Prefetch Abort] on CPU 0 ...at fault address 0x6df7ecb4 ...with CFSR.IBUSERR PMSA MPU lookup for writing at 0x00047ec8 mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for writing at 0x00047ecc mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for writing at 0x00047ed0 mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for writing at 0x00047ed4 mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for writing at 0x00047ed8 mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for writing at 0x00047edc mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for writing at 0x00047ee0 mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for writing at 0x00047ee4 mmu_idx 65 -> Hit (prot rwx) ...taking pending nonsecure exception 5 ...loading from element 5 of non-secure vector table at 0x14 ...loaded new PC 0xa0cd HACE isn't really functional there. I probably screwed smth while wiring the peripheral. Not obvious without access to the datasheet. The HACE logic is quite complex and the model might be a bit fragile for some modes. I think accumulation still has some problems. Here are drivers for it : https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/crypto/aspeed https://github.com/openbmc/u-boot/blob/v2019.04-aspeed-openbmc/drivers/crypto/aspeed_hace_v1.c https://github.com/openbmc/u-boot/blob/v2019.04-aspeed-openbmc/drivers/crypto/aspeed_hace.c Thanks, C. Philippe Mathieu-Daudé (9): hw/watchdog/wdt_aspeed: Map the whole MMIO range hw/arm/aspeed: Use the IEC binary prefix definitions hw/arm/aspeed_ast10x0: Add various unimplemented peripherals hw/arm/aspeed_ast10x0: Map I3C peripheral hw/arm/aspeed_ast10x0: Map the secure SRAM hw/arm/aspeed_ast10x0: Map HACE peripheral hw/misc/aspeed_hace: Do not crash if address_space_map() failed hw/arm/aspeed_ast10x0: Add TODO comment to use Cortex-M4F tests/avocado: Test Aspeed Zephyr SDK v00.01.08 on AST1030 board hw/arm/aspeed_ast10x0.c | 84 ++-- hw/arm/aspeed_ast2600.c | 5 +- hw/arm/aspeed_soc.c | 6 +-- hw/misc/aspeed_hace.c| 21 +--- hw/watchdog/wdt_aspeed.c | 12 +++-- include/hw/arm/aspeed_soc.h | 14 ++ include/hw/watchdog/wdt_aspeed.h | 2 +- tests/avocado/machine_aspeed.py | 41 +++- 8 files changed, 163 insertions(+), 22 deletions(-)
Re: [PATCH 0/9] hw/arm/aspeed_ast10x0: Map more peripherals & few more fixes
On Thu, Dec 29, 2022 at 04:23:16PM +0100, Philippe Mathieu-Daudé wrote: > Trying to fix some bugs triggered running Zephyr. Yay! > > Still 2 bugs: > > 1/ > uart:~$ sensor get SYSCLK > [00:00:23.592,000] os: * USAGE FAULT * > [00:00:23.593,000] os: Illegal use of the EPSR > [00:00:23.593,000] os: r0/a1: 0x00033448 r1/a2: 0x r2/a3: > 0x00047f50 > [00:00:23.593,000] os: r3/a4: 0x r12/ip: 0x r14/lr: > 0x0fbd > [00:00:23.593,000] os: xpsr: 0x6000 > [00:00:23.593,000] os: Faulting instruction address (r15/pc): 0x > [00:00:23.593,000] os: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0 > [00:00:23.594,000] os: Current thread: 0x38248 (shell_uart) > [00:00:23.601,000] os: Halting system > > 2/ > uart:~$ mcuboot > [00:01:04.990,000] os: * BUS FAULT * > [00:01:04.990,000] os: Instruction bus error > [00:01:04.991,000] os: r0/a1: 0x r1/a2: 0x0000 r2/a3: > 0x00047ef0 > [00:01:04.991,000] os: r3/a4: 0x0010 r12/ip: 0x6df7ecb5 r14/lr: > 0x000188ed > [00:01:04.991,000] os: xpsr: 0x6100 > [00:01:04.991,000] os: Faulting instruction address (r15/pc): 0x6df7ecb4 > [00:01:04.991,000] os: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0 > [00:01:04.991,000] os: Current thread: 0x38248 (shell_uart) > [00:01:04.994,000] os: Halting system > > > IN: > PMSA MPU lookup for reading at 0x0001d400 mmu_idx 65 -> Hit (prot rwx) > 0x0001d5a2: 6869 ldr r1, [r5, #4] > 0x0001d5a4: 4421 add r1, r4 > 0x0001d5a6: 6883 ldr r3, [r0, #8] > 0x0001d5a8: 681c ldr r4, [r3] > 0x0001d5aa: 463a mov r2, r7 > 0x0001d5ac: 4633 mov r3, r6 > 0x0001d5ae: 46a4 mov ip, r4 > 0x0001d5b0: e8bd 41f0 pop.w{r4, r5, r6, r7, r8, lr} > 0x0001d5b4: 4760 bx ip > > PMSA MPU lookup for reading at 0x0008 mmu_idx 65 -> Hit (prot rwx) > PMSA MPU lookup for execute at 0x6df7ecb4 mmu_idx 65 -> Hit (prot rwx) > Taking exception 3 [Prefetch Abort] on CPU 0 > ...at fault address 0x6df7ecb4 > ...with CFSR.IBUSERR > PMSA MPU lookup for writing at 0x00047ec8 mmu_idx 65 -> Hit (prot rwx) > PMSA MPU lookup for writing at 0x00047ecc mmu_idx 65 -> Hit (prot rwx) > PMSA MPU lookup for writing at 0x00047ed0 mmu_idx 65 -> Hit (prot rwx) > PMSA MPU lookup for writing at 0x00047ed4 mmu_idx 65 -> Hit (prot rwx) > PMSA MPU lookup for writing at 0x00047ed8 mmu_idx 65 -> Hit (prot rwx) > PMSA MPU lookup for writing at 0x00047edc mmu_idx 65 -> Hit (prot rwx) > PMSA MPU lookup for writing at 0x00047ee0 mmu_idx 65 -> Hit (prot rwx) > PMSA MPU lookup for writing at 0x00047ee4 mmu_idx 65 -> Hit (prot rwx) > ...taking pending nonsecure exception 5 > ...loading from element 5 of non-secure vector table at 0x14 > ...loaded new PC 0xa0cd > > > HACE isn't really functional there. I probably screwed smth while wiring > the peripheral. Not obvious without access to the datasheet. Hm well I have the datasheet, but I don't see what the issue could be. The MMIO address for the HACE is correct (0x7E6D_), what else could be wrong? > > Philippe Mathieu-Daudé (9): > hw/watchdog/wdt_aspeed: Map the whole MMIO range > hw/arm/aspeed: Use the IEC binary prefix definitions > hw/arm/aspeed_ast10x0: Add various unimplemented peripherals > hw/arm/aspeed_ast10x0: Map I3C peripheral > hw/arm/aspeed_ast10x0: Map the secure SRAM > hw/arm/aspeed_ast10x0: Map HACE peripheral > hw/misc/aspeed_hace: Do not crash if address_space_map() failed > hw/arm/aspeed_ast10x0: Add TODO comment to use Cortex-M4F > tests/avocado: Test Aspeed Zephyr SDK v00.01.08 on AST1030 board > > hw/arm/aspeed_ast10x0.c | 84 ++-- > hw/arm/aspeed_ast2600.c | 5 +- > hw/arm/aspeed_soc.c | 6 +-- > hw/misc/aspeed_hace.c| 21 +--- > hw/watchdog/wdt_aspeed.c | 12 +++-- > include/hw/arm/aspeed_soc.h | 14 ++ > include/hw/watchdog/wdt_aspeed.h | 2 +- > tests/avocado/machine_aspeed.py | 41 +++- > 8 files changed, 163 insertions(+), 22 deletions(-) > > -- > 2.38.1 >
[PATCH 0/9] hw/arm/aspeed_ast10x0: Map more peripherals & few more fixes
Trying to fix some bugs triggered running Zephyr. Still 2 bugs: 1/ uart:~$ sensor get SYSCLK [00:00:23.592,000] os: * USAGE FAULT * [00:00:23.593,000] os: Illegal use of the EPSR [00:00:23.593,000] os: r0/a1: 0x00033448 r1/a2: 0x r2/a3: 0x00047f50 [00:00:23.593,000] os: r3/a4: 0x r12/ip: 0x r14/lr: 0x0fbd [00:00:23.593,000] os: xpsr: 0x6000 [00:00:23.593,000] os: Faulting instruction address (r15/pc): 0x [00:00:23.593,000] os: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0 [00:00:23.594,000] os: Current thread: 0x38248 (shell_uart) [00:00:23.601,000] os: Halting system 2/ uart:~$ mcuboot [00:01:04.990,000] os: * BUS FAULT * [00:01:04.990,000] os: Instruction bus error [00:01:04.991,000] os: r0/a1: 0x r1/a2: 0x0000 r2/a3: 0x00047ef0 [00:01:04.991,000] os: r3/a4: 0x0010 r12/ip: 0x6df7ecb5 r14/lr: 0x000188ed [00:01:04.991,000] os: xpsr: 0x6100 [00:01:04.991,000] os: Faulting instruction address (r15/pc): 0x6df7ecb4 [00:01:04.991,000] os: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0 [00:01:04.991,000] os: Current thread: 0x38248 (shell_uart) [00:01:04.994,000] os: Halting system IN: PMSA MPU lookup for reading at 0x0001d400 mmu_idx 65 -> Hit (prot rwx) 0x0001d5a2: 6869 ldr r1, [r5, #4] 0x0001d5a4: 4421 add r1, r4 0x0001d5a6: 6883 ldr r3, [r0, #8] 0x0001d5a8: 681c ldr r4, [r3] 0x0001d5aa: 463a mov r2, r7 0x0001d5ac: 4633 mov r3, r6 0x0001d5ae: 46a4 mov ip, r4 0x0001d5b0: e8bd 41f0 pop.w{r4, r5, r6, r7, r8, lr} 0x0001d5b4: 4760 bx ip PMSA MPU lookup for reading at 0x0008 mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for execute at 0x6df7ecb4 mmu_idx 65 -> Hit (prot rwx) Taking exception 3 [Prefetch Abort] on CPU 0 ...at fault address 0x6df7ecb4 ...with CFSR.IBUSERR PMSA MPU lookup for writing at 0x00047ec8 mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for writing at 0x00047ecc mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for writing at 0x00047ed0 mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for writing at 0x00047ed4 mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for writing at 0x00047ed8 mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for writing at 0x00047edc mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for writing at 0x00047ee0 mmu_idx 65 -> Hit (prot rwx) PMSA MPU lookup for writing at 0x00047ee4 mmu_idx 65 -> Hit (prot rwx) ...taking pending nonsecure exception 5 ...loading from element 5 of non-secure vector table at 0x14 ...loaded new PC 0xa0cd HACE isn't really functional there. I probably screwed smth while wiring the peripheral. Not obvious without access to the datasheet. Philippe Mathieu-Daudé (9): hw/watchdog/wdt_aspeed: Map the whole MMIO range hw/arm/aspeed: Use the IEC binary prefix definitions hw/arm/aspeed_ast10x0: Add various unimplemented peripherals hw/arm/aspeed_ast10x0: Map I3C peripheral hw/arm/aspeed_ast10x0: Map the secure SRAM hw/arm/aspeed_ast10x0: Map HACE peripheral hw/misc/aspeed_hace: Do not crash if address_space_map() failed hw/arm/aspeed_ast10x0: Add TODO comment to use Cortex-M4F tests/avocado: Test Aspeed Zephyr SDK v00.01.08 on AST1030 board hw/arm/aspeed_ast10x0.c | 84 ++-- hw/arm/aspeed_ast2600.c | 5 +- hw/arm/aspeed_soc.c | 6 +-- hw/misc/aspeed_hace.c| 21 +--- hw/watchdog/wdt_aspeed.c | 12 +++-- include/hw/arm/aspeed_soc.h | 14 ++ include/hw/watchdog/wdt_aspeed.h | 2 +- tests/avocado/machine_aspeed.py | 41 +++- 8 files changed, 163 insertions(+), 22 deletions(-) -- 2.38.1