Giter Site home page Giter Site logo

V25 support about elks HOT 5 OPEN

anchorz avatar anchorz commented on June 11, 2024
V25 support

from elks.

Comments (5)

ghaerr avatar ghaerr commented on June 11, 2024

I'd be happy to help discuss what needs to happen for a new CPU, but you'll have to do most of the actual programming, ROM flashing and testing, as I don't have access to an SBC to directly help. I would suggest you start by looking at and building the "default" 8018X port using 8018x.config, just copy that to .config and make. It runs in ROM with 128k RAM, and uses a minimal headless configuration, with the serial port being the console.

I think @cocus, who contributed the 8018X port did some outside-of-ELKS initialization (like UART init, but I could be wrong) in ROM before passing control to the ELKS startup code; you might be able to do the same.

from elks.

cocus avatar cocus commented on June 11, 2024

what's the V25? an embedded sibiling of the NEC V20?

So, for the 8018X (the embedded ones), I created a startup ROM code that enables the UART, GPIOs and such, then runs a function from the "elks ROM" and finally does an "int" to jump into elks. Have a look here https://github.com/cocus/8018x-elks-ldr.

from elks.

anchorz avatar anchorz commented on June 11, 2024

Thanks. It gives some insight on how to link and start elks. fun fact:
// Now call that INT19
int $0x19

int19h is the IO-Exception handler for V25. good, that it is not active after reset.

V25 is somewhat similar to V20 as a CPU. The peripherals are memory mappend, which can be mapped into a 256 bytes data structure within in the kernel data segment.

There are some interesting goodies. The V25 has an build in task switch. Instead of saving the registers, it does a bank switch on interrupt. Second, it provides an IO-Exception on IN/OUT command which can be used as a simple HW virtualization approach.

Con: But suprisingly the only CPU, I know of, that does not come with TX empty flag.

from elks.

anchorz avatar anchorz commented on June 11, 2024

Are you suggesting to use the option ROM approach arch/i86/boot/Image over linking the "system" to another address? That would mean the 64K memory segment F000 is unused or would it be more preferable to link system to another address other than E000 ? Is the segment start address E000 somewhat important to keep?

from elks.

cocus avatar cocus commented on June 11, 2024

I have my loader set up so it calls ELKS at E000, but it also contains the ROMFS a little bit afterwards, so starting at E000 until the very start of the loader, you can fill it up with ELKS + ROMFS. in my scenario, the ROMFS is almost full, so these won't get wasted. if you don't want to use the ROMFS, then I suspect the ELKS option rom should be moved to a position towards the end of the memory region.
I don't know how to change that E000 base, @ghaerr might get some insights here.

As an FYI, here's the "mappings" inside my flash image (that is mapped at 80000, i.e. 512kB):

ROM_ELKS_IMAGE_AT = 917504 # 0xe0000 (can use until 0x7ffff)
ROM_ELKS_ROMFS_AT = 524288 # 0x80000 (can use until 0xfefff)
ROM_LOADER_AT = 1044480 # 0xff000

from elks.

Related Issues (20)

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.