Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

why mips fetch the instruction from 0xbfc00000 (phy:0x1fc000000) #1

Open
changeyourname opened this issue Jan 21, 2017 · 1 comment

Comments

@changeyourname
Copy link

why mips cpu fetch the instruction from 0xbfc00000 (phy:0x1fc000000) ranther than 0xa0000000 upon reset,there is some memory space from 0xa0000000 to 0xbfc00000 ,What is this space used to do ,Whether Can I place the hardware code at 0xa0000000

best wishes

@yuri-panchul
Copy link
Member

bfc00000 happened because of historical reasons. According to Mike Gupta, a member of early MIPS design teams:

Reset Vector being at non-zero value:
Reset is in ROM space. ROM space is generally associated with I/O space and generally fragmented. In 1985 (or so), we thought 4MB would be more than enough to boot form [and we decided to put it at the end of physical space: 0x1fc00000-0x1fffffff = 0x400000 = 4,194,304 bytes]. Also, it allows for the DRAMs (generally much bigger) to be naturally aligned at address 0. The newer processor do not require BFC00000 / 1FC00000 as this address is programmable.

Addresses between 0 and 1fc00000:
This is roughly 2 GB of space. No it does not have to be fully populated. Address 0 to maybe 1st 64 KB (kilo) had to be for exception vectors. Even that is now not necessary with the advent to Exception base register

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants