Skip to content

TestchipIP's bootrom.S documentation and code mismatch - _hang never execute due to linker placement. #2305

@DucAnhGl

Description

@DucAnhGl

Background Work

Chipyard Version and Hash

Release: 1.5.0
Hash: a6a6a6

OS Setup

Ex: Output of uname -a + lsb_release -a + printenv + conda list

Other Setup

Ex: Prior steps taken / Documentation Followed / etc...

Current Behavior

The bootrom.S code has two sections called _hang and _start. The current linker.ld file places _hang at 0x10000, and _start at 0x10040. The bootROMparams sets 0x10040 as the reset vector. Therefore the code starts at _start, skipping the _hang sections (which sets up interrupt to go into a wfi loop to wait for FESVR to place code into RAM). _hang never gets executed.
Interestingly, without the wfi loop waiting for the FESVR to load the code into RAM, the design still functions well.

Expected Behavior

The latest documentation still writes that execution will start at 0x10000 after reset, the core will start at _hang and then go into a wfi loop to wait for the FESVR.

Other Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions