-
Notifications
You must be signed in to change notification settings - Fork 163
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
machine: add Microblaze support for Zephyr toolchain (32-bit, little-endian) #441
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How much testing has this seen? Did you actually try the machine-specific APIs on a target?
Only changes required are to not include this in CI (yet), and fix the copyrights to exclude me from the list.
When you've fixed the CI issues, I can let CI run, but it won't tell us much. Please let me know how much testing you've managed to do. |
1st iteration: None. |
Could you elaborate on what you mean by machine-specific APIs? |
Hrm. What's the deal with atomic ungetc? Does the target have atomic operations of some size? Is it like RISC-V and only support atomic 32- and 64- bit operations? (there are code paths for that, btw). Without atomic ungetc, stdio isn't re-entrant as it doesn't otherwise need (or provide) any locking.
That's awesome. If you manage that, and can do something like the arm semi-hosting (or even the x86 'e9' hack) you should be able to run the complete picolibc test suite without any code outside of picolibc. There's no requirement for merging to picolibc though; lots of hosts just don't have any semihosting support yet. |
Yes: all of the code in newlib/libc/machine/microblaze. None of that will get any testing using other targets, so some level of validation would be helpful, even if done just once by hand. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The spurious #endif in abort.c seems wrong to me?
We'll let CI run on this now; when that passes (which it should, unless we've missed something), I'll get it merged. |
b52120d
to
780c249
Compare
…endian) Signed-off-by: Alp Sayin <alpsayin@gmail.com>
|
Utilises the existing sources. Forked off of
zephyr
'spicolibc
mirror to be able to collect consistent results from its CI.Helps meson pick the
microblaze
cpu family frommicroblazeel
tool.do-microblazeel-configure
then pickscross-microblazeel-zephyr-elf.txt
zephyr
only supportslittle-endian
so far (last I checked), thus I never bothered to make Zephyrsdk-ng
produce a big-endian toolchain. Hence no picolibc support formicroblaze-zephyr-elf
(big-endian is default).No QEMU test set because QEMU invokation would need a
-hw-dtb
file such ashttps://github.com/zephyrproject-rtos/zephyr/blob/713b955801c44aadf2e66ed972b83da8ca03d837/boards/microblaze/qemu_microblaze/board-qemu-microblaze-demo.dtb
But @keith-packard and I agree that, that's the next step. Let's see with this PR first if it builds.
Future work?
microblaze-xilinx-elf
toolchain support?EDIT/Update: it seems there is no CI here.
EDIT/Update2: Of course there isn't. I'll open a draft PR in
sdk-ng
as usual.EDIT/Update3: Future work.