UniCore32 Port for Linux
Maintained by Guan Xuetao <firstname.lastname@example.org>
UniCore ISA is defined and developed by Micro-Processor R&D Center
of Peking University, and over the years, the CPUs and SoCs using
UniCore ISA have been successfully applied in a variety of products in
The operating system upon UniCore ISA and PKUnity SoC is linux all the
time, from linux-2.4.17 in 2001 to linux-3.x.y at present.
Mailist for UniCore32 on Linux platform:
Repo for UniCore32 on Linux platform:
Manual for UniCore32:
x86-unicore32 cross toolchain:
Necessary drivers submit: mac
- splitting asm-generic/io.h into io.h and ioremap.h
- void init_IRQ(void); could be inserted into linux/irq.h and remove it from init/main.c
- boot/compressed/misc.c: could be moved into the global lib/ directory
signal (new abi, need verification)
- OLD codes implement both legacy and rt signals, where new architectures should generally only need the rt variant.
- using the "exception-trace" sysctl and the show_unhandled_signals variable
- using only memblock and not also bootmem, by unconditionally setting CONFIG_NO_BOOTMEM
- auto detect memory size if no bootloader parameters
- mach/map.h: The code using map_desc can probably be simplified significantly by making it less general and directly
manipulating the page tables
- create_mapping(): You only have three users of create_mapping() anyway, and they are all special cases
- the interrupt vectors are a single page, which you can directly put in the page table
- the unigfx might not need a fixmap, just use ioremap
- the linar mapping probably wants to use large pages if you have those
- asm/fpstate.h: You use the fp_state with an alignment of eight bytes, but the contents
are just four byte aligned, which does not seem to make much sense.
- BUG and BUG_ON (for UniCore64): It would be even better if you had a conditional trap instruction that
you could use to implement BUG_ON as a single assembly statement like mips or powerpc.
- never pass the memory size in the command line
- using flattened device tree in the way that microblaze, powerpc, and sparc are using.
Mailing list: email@example.com
- the frame buffer size should ideally be autodetected using hardware or the boot protocol
- decompress_kernel function: pass a pointer to a flattened device tree like powerpc and microblaze
- core.c: Please have a look at the flattened device tree format as a way to define the SoC components.
- clock.c: There are currently patches under discussion for the ARM architecture that unify the
various struct clk definitions.