[Arm-netbook] RK3399

Christopher Havel laserhawk64 at gmail.com
Fri Jan 19 03:24:06 GMT 2018


Quick follow-up (this time from my netbook) -- the 8086 and 8088 have a 20b
address bus, so the address range is 0x00000 to 0xFFFFF. Execution starts
at location 0xFFFF0, according to the datasheet for the 8086 that I have on
file. That *almost* makes sense if you only have 64k of memory in your
system -- but a 20b address bus can support a full megabyte of memory --
and the 8086/8088 addresses memory and I/O separately, unlike eg the 6502
(a historical CPU, used in most Commodore and pre-Mac Apple computers -- in
derivative forms, sometimes) where IO is mapped to specific memory
addresses as a matter of course -- I'll let you decide which scheme is more
efficient; personally I like the 6502's memory-mapped I/O, but that is
indeed only one man's opinion...

BTW -- the reason that I said "almost" above, is because the 8086/8088
chips execute 'up' from the start of ROM -- from 0xFFFF0 through to 0xFFFFF
is the reserved area for the boot code, as opposed to (again) the 6502,
which executes 'down' from 0xFFFF to... basically wherever it's told that
ROM stops and I/O begins (it's RAM at the bottom, ROM at the top, and I/O
in between, for that processor family).

Conceivably, you could have a single jump instruction and address at the
top of 64k of memory with the 8086/8088 CPUs, and put the boot code for
your computer at the other end of that jump, but that's the only way to
make that work with that amount of memory...

...but this is all low-level crap that you don't need to worry about unless
you're actually building a computer from scratch (schematic diagram level)
with an x86 CPU at the heart of it... in other words, for our purposes I've
just spun another ball of fluff text. So I'll shut up. (Again.)


More information about the arm-netbook mailing list