Git Product home page Git Product logo

Comments (5)

DrItanium avatar DrItanium commented on June 17, 2024 1

The initial boot record is a common structure on all i960 processors, it is how the cpu boots and is used by the processor extensively during runtime. Using the IBR as the disassembly starting point could even greatly reduce the amount of noise the user has to deal with. This will not apply if the executable is not a "bare-metal" executable but one for an operating system like VxWorks.

There is only one problem, the IBR location is different depending on the target i960 Processor.

Mx -> 0x0000'0000
Kx -> 0x0000'0000
Sx -> 0x0000'0000
Cx -> 0x????'????
Hx -> 0xFEFF'FF30
Jx -> 0xFEFF'FF30
Vx -> 0x????'????
Rx -> 0x????'????

I have some of the manuals for these processors in https://github.com/DrItanium/sim960/tree/main/doc

from ghidra_i960.

mumbel avatar mumbel commented on June 17, 2024

ELF/PE are important because those are how relocations and memory mappings are setup. Does this bare metal and/or IBR do anything like that? Does something in the binary actually need to be changed based on those values or just a struct with some pointers? Im not really sure what you're asking for, just to automatically make/assign this struct at that address?

from ghidra_i960.

DrItanium avatar DrItanium commented on June 17, 2024

Eep! Sorry about the confusion first off!

Answers:

  1. The IBR does not do any relocations. It is just there to provide a sanity check on boot and tell the CPU where to go and where things are.
  2. It is just a struct with a combination of constants and pointers.
  3. Yes, just automatically make/assign the struct at that address. Nothing more.

from ghidra_i960.

mumbel avatar mumbel commented on June 17, 2024

if thats all, i think it should be easy, just a question of piping in java since its just sleigh currently. I'll take a look

from ghidra_i960.

biggestsonicfan avatar biggestsonicfan commented on June 17, 2024

Well what I was thinking was adding a system which combs out these values initially in the auto-analysis and adds those comments in black explaining what those values are, if that makes sense. I suppose after this area of data is disassembled, using it's addresses would probably be a good starting point for the disassembler in it's analysis to begin branching and analyzing.

from ghidra_i960.

Related Issues (9)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.