Comments (5)
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.
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.
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.
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.
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)
- Soviet Computer Electronika MC1502 HOT 10
- panic at boot HOT 8
- tools/build.sh failed Undefined symbols for architecture arm64: "_host_hooks" HOT 4
- elf.c:34:18: error: use of undeclared identifier 'LIBELF_ARCH' HOT 5
- 8018X system: bell-8254.c:24:14: error: ‘SPEAKER_PORT’ undeclared HOT 3
- Cannot compile v0.7.0, undefined reference to "hd_drive_map" HOT 6
- Incompatibility with 3inONEder HOT 3
- fd_type number mismatch for FD1232 HOT 7
- ELKs rebuilds with no configuration changes HOT 1
- Congratulations and wish list for elks functionality HOT 1
- Net start does not start httpd HOT 1
- ftp not working HOT 4
- Question on return code on create in socket.c HOT 2
- Building/porting ELKS in ROM HOT 19
- Not an issue, but i am willing to donate the intel etherexpress 8/16 network card HOT 8
- [qemu] cannot get network up HOT 6
- PC-98 Build errors HOT 8
- serial 2 ps/2 mouse adapter mouse acts funny HOT 11
- Selecting NANO sockets breaks build HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from elks.