[SETUPLDR]: Do not build on ARM. On a side note, I offer a bountry for "if ARCH != ARM" support in .rbuild files, instead of only allowing ==.
svn path=/trunk/; revision=45525
- It redraws the screen in two different ways (zero memory and character-by-character fill) over 15 times for a single boot. You notice these things on a little ARM chip!
- It keeps coping data from/to an "off-screen buffer" way too much, instead of only when the video needs to be synced.
- It makes assumptions about all Video Buffers supporting Character-Mode VGA.
- It can be configured to draw cyan/yellow ponies, instead of a normal NT boot menu.
The ARM build now uses a "directui.c" implementation which fixes all these issues and is efficient and to the point. It presents a normal Windows boot selection menu on ARM.
[FREELDR]: Do not build any of the video routines, or the UI routines, on ARM.
svn path=/trunk/; revision=45524
- Many fixes, more implemented routines, support for ARMv7.
- Some Linux code, marked as GPL, from ARM Ltd in cache.s. All OS use this code.
svn path=/trunk/; revision=45518
[NTOS]: Implement MmInitGlobalKernelPageDirectory as the first ARM page function in the new file.
That's it for the kernel.
svn path=/trunk/; revision=45515
[NTOS]: Implement a DbgPrintEarly function that directly uses KDCOM to print to the serial console, instead of going through the Debug Service Interrupt.
svn path=/trunk/; revision=45513
[ARMDDK]: Use the same addresses for KPCR and KUSER_SHARED_DATA on ARM as on x86. On ARM however, since there are no "segments", the KPCR is also mapped in user-mode, read-only, to have a static structure that can point to the current TEB.
svn path=/trunk/; revision=45511
[NTOS]: Now FreeLDR just calls the KiSystemStartup routine correctly, without any "magic", so fix the code to use a1 instead of a2 (argument 1/2).
svn path=/trunk/; revision=45507
I skipped xcopy, winhlp32 and wordpad because they are wine synched and expand, because its not translated anymore.
Fix some BOMs i did not see at wine synching.
svn path=/trunk/; revision=45501
- Reset number of mappings and available data when a reset request arrives
- Handle case where a get position request appears before an audio buffer arrives which results in divide by zero exception
svn path=/trunk/; revision=45487
[ARMLLB]: Fix incorrect frame buffer size calculation.
[FREELDR]: Finish paging setup. Now we're able to boot to the kernel entrypoint at 0x808D3000, but I'm not happy with the memory descriptors.
svn path=/trunk/; revision=45480
- Get rid of all .pagedata stuff from boot.s. Now define simpler static page tables. Will probably get rid of later.
- Fix memory map to include framebuffer, had forgotten about it. Moved framebuffer to the nearest hole found. It happens to be 0xA0000, nice coincidence (matches x86!).
- Switch to nicer 8x16 font instead of 8x13. Now FreeLDR UI looks 99% identical to real PC.
- Start writing new ARMv6 Paging Code. Enable extended page tables and access bit, redefine structures, only for OS Loader for now.
- Identity map low-memory 1MB and MMIO 2MB space at 0x10000000 for Versatile. Need to make this board-specific later.
- Need to investigate sharing code with WinLDR.
- MMU enabled and Printf/LCD output works!.
svn path=/trunk/; revision=45440
- Many hack removed.
- Better efficency use of memory layout.
- Region at 0x800000 now available for FreeLDR use to load kernel files.
- Implement simple ArmDiskNormalizeSystemPath so boot is allowed to happen.
- Use better stack address as defined in memory map.
- Now FreeLDR loads all files correctly from disk and is ready to jump to kernel. ARMv5 paging code must be rewritten before that can happen.
svn path=/trunk/; revision=45424