History log of /haiku/src/system/boot/platform/amiga_m68k/mmu.cpp
Revision Date Author Comments
# 6393778b 19-Sep-2023 David Karoly <karolyd577@gmail.com>

boot/amiga_m68k/mmu: implement missing functions

Change-Id: I1164ca30659684d8d273b58a7cc0ea33dde0a240
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6937
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# b3025a86 26-Oct-2013 François Revol <revol@free.fr>

bootloader: M68K: Fix mmu_free()

Same bug as in ARM code...


# 585830a5 26-Oct-2013 François Revol <revol@free.fr>

bootloader: M68K: s/KERNEL_BASE/KERNEL_LOAD_BASE/


# 32bd2ded 21-Feb-2013 François Revol <revol@free.fr>

bootloader: Fix an overlooked condition in mmu_allocate()

The size variable at this point is actually a page count.
The test should never be true anyway though. Maybe we should use a
pages variable for clarity?


# 6f6d78e8 25-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Cleaned up ELF64 address handling.

* platform_allocate_elf_region() is removed, it is implemented in platform-
independent code now (ELF*Class::AllocateRegion). For ELF64 it is now
assumed that 64-bit addresses are mapped in the loader's 32-bit address space
as (address - KERNEL_BASE_64BIT + KERNEL_BASE).
* mapped_delta field from preloaded_*_image removed, now handled compile-time
using the ELF*Class::Map method.
* Also link the kernel with -z max-page-size=0x1000, removes the need for
2MB alignment on the data segment (not going to map the kernel with large
pages for the time being).


# 88461898 24-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Handle 64-bit load addresses for ELF64 images in the bootloader.

The ELF loader now uses a new platform function, platform_allocate_elf_region,
which returns 2 addresses: the real load address and an address where the
region is mapped in the loader's address space. All of the ELF loading code
has been changed to access the load region through the mapped address rather
than the addresses contained in the ELF image. The ELF64 version of
platform_allocate_elf_region on x86 uses the existing MMU code, which maps
everything at 0x80000000, but returns the correct 64-bit address. The long
mode switch code will just set up the 64-bit address space with everything
remapped at the correct address.


# 17a33898 21-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Remove phys_addr_range, just use addr_range for both virtual and physical address ranges (as requested by Ingo).


# 192af9e0 20-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Changed addr_range to use uint64.

I've tested this change on x86, causing no issues. I've checked over the code
for all other platforms and made the necessary changes and to the best of my
knowledge they should also still work, but I haven't actually built and
tested them. Once I've completed the kernel_args changes the other platforms
will need testing.


# 7ddba3d2 10-Oct-2010 François Revol <revol@free.fr>

s/amicalls/rom_calls/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38944 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 918ac85f 10-Oct-2010 François Revol <revol@free.fr>

Comment out atari stuff.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38932 a95241bf-73f2-0310-859d-f6bbb57e9c96


# acb1d6c8 10-Oct-2010 François Revol <revol@free.fr>

s/tos/ami/g;s/ATARI/AMIGA/g


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38924 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2231a4e6 10-Oct-2010 François Revol <revol@free.fr>

Copy some more from Atari.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38923 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b3025a8642645f026efef25e5302e5183113aa59 26-Oct-2013 François Revol <revol@free.fr>

bootloader: M68K: Fix mmu_free()

Same bug as in ARM code...


# 585830a55ef4f6bbbd1559a47a8395b5597906fe 26-Oct-2013 François Revol <revol@free.fr>

bootloader: M68K: s/KERNEL_BASE/KERNEL_LOAD_BASE/


# 32bd2dedd92c994efb538bec7fbc31f5dd5b6122 21-Feb-2013 François Revol <revol@free.fr>

bootloader: Fix an overlooked condition in mmu_allocate()

The size variable at this point is actually a page count.
The test should never be true anyway though. Maybe we should use a
pages variable for clarity?


# 6f6d78e877c1a485d98de60395854a6d6de61c0d 25-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Cleaned up ELF64 address handling.

* platform_allocate_elf_region() is removed, it is implemented in platform-
independent code now (ELF*Class::AllocateRegion). For ELF64 it is now
assumed that 64-bit addresses are mapped in the loader's 32-bit address space
as (address - KERNEL_BASE_64BIT + KERNEL_BASE).
* mapped_delta field from preloaded_*_image removed, now handled compile-time
using the ELF*Class::Map method.
* Also link the kernel with -z max-page-size=0x1000, removes the need for
2MB alignment on the data segment (not going to map the kernel with large
pages for the time being).


# 8846189866301c85683151a54ec88e809333ca7a 24-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Handle 64-bit load addresses for ELF64 images in the bootloader.

The ELF loader now uses a new platform function, platform_allocate_elf_region,
which returns 2 addresses: the real load address and an address where the
region is mapped in the loader's address space. All of the ELF loading code
has been changed to access the load region through the mapped address rather
than the addresses contained in the ELF image. The ELF64 version of
platform_allocate_elf_region on x86 uses the existing MMU code, which maps
everything at 0x80000000, but returns the correct 64-bit address. The long
mode switch code will just set up the 64-bit address space with everything
remapped at the correct address.


# 17a3389882cee19532ddc99bc1f9aa1efd296749 21-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Remove phys_addr_range, just use addr_range for both virtual and physical address ranges (as requested by Ingo).


# 192af9e0afd2f3d0cbaf5c935480343a70c8ff53 20-Jun-2012 Alex Smith <alex@alex-smith.me.uk>

Changed addr_range to use uint64.

I've tested this change on x86, causing no issues. I've checked over the code
for all other platforms and made the necessary changes and to the best of my
knowledge they should also still work, but I haven't actually built and
tested them. Once I've completed the kernel_args changes the other platforms
will need testing.


# 7ddba3d2ad915b5ea3ebdc0ea6699d5d8530ea06 10-Oct-2010 François Revol <revol@free.fr>

s/amicalls/rom_calls/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38944 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 918ac85f32b23df3b018a2bb2c5ad53610f393b1 10-Oct-2010 François Revol <revol@free.fr>

Comment out atari stuff.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38932 a95241bf-73f2-0310-859d-f6bbb57e9c96


# acb1d6c8e0f7738ab05ffea577935ba8d31c838b 10-Oct-2010 François Revol <revol@free.fr>

s/tos/ami/g;s/ATARI/AMIGA/g


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38924 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2231a4e6a3d158b8cb861fe1f064982204712588 10-Oct-2010 François Revol <revol@free.fr>

Copy some more from Atari.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38923 a95241bf-73f2-0310-859d-f6bbb57e9c96