From 5b03cf96deb020913ffb5370097c2add953fcb74 Mon Sep 17 00:00:00 2001 From: chanbengz Date: Thu, 14 Aug 2025 17:37:10 +0800 Subject: [PATCH 1/2] Fix broken table format in APCIe Signed-off-by: chanbengz --- docs/hw/soc/apcie.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/hw/soc/apcie.md b/docs/hw/soc/apcie.md index a76a1188..eeac87a0 100644 --- a/docs/hw/soc/apcie.md +++ b/docs/hw/soc/apcie.md @@ -68,6 +68,7 @@ The following set of tunables operate on config space of the per-port PCIe bridg ### pcie-rc-tunables On the 2020 M1 mini, this set of register writes modifies some bits on standardized capability structures as well as some other registers. + | register | capability | effect | |----------|------------|--------| | 0x194 | L1 PM Substates | clear Port Common_Mode_Restore_Time | From a8c5870778ce932543e2e928da010c1aa3fc6d27 Mon Sep 17 00:00:00 2001 From: chanbengz Date: Thu, 14 Aug 2025 17:47:54 +0800 Subject: [PATCH 2/2] Fix typos Signed-off-by: chanbengz --- docs/alt/policy.md | 4 ++-- docs/fw/adt.md | 2 +- docs/fw/macho-boot-protocol.md | 2 +- docs/hw/soc/agx.md | 4 ++-- docs/hw/soc/asc.md | 2 +- docs/project/glossary.md | 2 +- docs/sw/m1n1-hypervisor.md | 2 +- docs/sw/tethered-boot-macos-host.md | 6 +++--- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/alt/policy.md b/docs/alt/policy.md index 1d992567..5dbb163a 100644 --- a/docs/alt/policy.md +++ b/docs/alt/policy.md @@ -72,7 +72,7 @@ unstable package stream) within 2 weeks of becoming available upstream. ## Installation procedure Asahi Linux uses Das U-Boot's UEFI environment to chainload standard UEFI bootloaders, such as GRUB and systemd-boot. The Asahi Installer is capable -of setting up a minial UEFI-only environment capable of booting UEFI +of setting up a minimal UEFI-only environment capable of booting UEFI executables on removable media. This provides users an installation experience that is almost identical to a standard amd64-based workstation. Building Apple Silicon support into your distro's existing AArch64 bootable @@ -170,7 +170,7 @@ installation tooling sufficiently foolproof on Apple Silicon devices, we _may_ r the need to support the image-based installation flow going forward. ## Disendorsement -Through dilligent QA and attention to detail, Asahi Linux has +Through diligent QA and attention to detail, Asahi Linux has become well-regarded as one of the best desktop Linux experiences available. This is a great source of pride for us, and we are determined to meet the high user expectations that come with such a reputation. We expect officially diff --git a/docs/fw/adt.md b/docs/fw/adt.md index d3ad436f..6cd03d2e 100644 --- a/docs/fw/adt.md +++ b/docs/fw/adt.md @@ -54,7 +54,7 @@ copy the im4p file from the below directory. See [Devices](../hw/devices/device- `/System/Volumes/Preboot/[UUID]/restore/Firmware/all_flash/DeviceTree.{model}.im4p` -If the dir doesn't exist try disabling csrutil in recovery mode, going to settings and enabling terminal to acces all files, or start from `Volumes/Macintosh HD/` because it may be symlinked. If it's still not accessible, try good ol `sudo find . -type f -name '*.im4p'`. +If the dir doesn't exist try disabling csrutil in recovery mode, going to settings and enabling terminal to access all files, or start from `Volumes/Macintosh HD/` because it may be symlinked. If it's still not accessible, try good ol `sudo find . -type f -name '*.im4p'`. then use img4tool to extract the im4p file into a .bin file e.g. ``` diff --git a/docs/fw/macho-boot-protocol.md b/docs/fw/macho-boot-protocol.md index b005eab8..f241de98 100644 --- a/docs/fw/macho-boot-protocol.md +++ b/docs/fw/macho-boot-protocol.md @@ -121,6 +121,6 @@ When running m1n1 initially, the relevant memory looks like this: +==========================+ <-- boot_args->top_of_kdata + boot_args->mem_size ``` -m1n1's heapblock area (used as a backend for malloc, and for loading payloads) starts at `boot_args.top_of_kdata` and has no bound at this time. When using proxyclient, ProxyUtils will set up a Python heap base 128MiB above whatever the current heapblock top is, which means m1n1 can use up to 128MiB of additional memory before it runs into Python-side structures. Note that fresh executions of the Python side will re-initialize their heap starting at whatever the current m1n1 end is, so e.g. m1n1-side memory leaks on each Python excecution are not an immediate problem until you run out of total RAM. +m1n1's heapblock area (used as a backend for malloc, and for loading payloads) starts at `boot_args.top_of_kdata` and has no bound at this time. When using proxyclient, ProxyUtils will set up a Python heap base 128MiB above whatever the current heapblock top is, which means m1n1 can use up to 128MiB of additional memory before it runs into Python-side structures. Note that fresh executions of the Python side will re-initialize their heap starting at whatever the current m1n1 end is, so e.g. m1n1-side memory leaks on each Python execution are not an immediate problem until you run out of total RAM. When chainloading another Mach-O payload, the next stage overwrites m1n1 in-place. The chainload.py Mach-O loading code skips the padding end of the m1n1 payload section (except 4 zero bytes as a marker), so SEP firmware and BootArgs follow directly in what would've otherwise been the m1n1 payload area, saving RAM. Relocating the SEP firmware is optional; if it is not enabled, it remains where it is, and top_of_kdata is kept untouched. Unless m1n1 grows by more than the size of its payload region, this should be safe. diff --git a/docs/hw/soc/agx.md b/docs/hw/soc/agx.md index bbffae29..be78ff00 100644 --- a/docs/hw/soc/agx.md +++ b/docs/hw/soc/agx.md @@ -109,7 +109,7 @@ Data structures: see [cmdqueue.py](https://github.com/AsahiLinux/m1n1/blob/main/ ### Micro Sequences -The ASC firmware contains a command sequencer that can run fairly complext "scripts" as part of work commands, but it is usually used in a fairly basic manner. These sequences are packed buffers of commands that are executed as part of a work item. The typical sequence is: +The ASC firmware contains a command sequencer that can run fairly complex "scripts" as part of work commands, but it is usually used in a fairly basic manner. These sequences are packed buffers of commands that are executed as part of a work item. The typical sequence is: * Start (3D/TA/CP) * Write Timestamp @@ -163,7 +163,7 @@ The TA work usually looks like this: #### Initialize Heap Manager -Needed the first time or when the heap size changes. Tells the GPU that the CPU re-initialized the management struture. +Needed the first time or when the heap size changes. Tells the GPU that the CPU re-initialized the management structure. There is an unknown context-related ID involved. This might be a heap manager ID? The (new) TA stamp value is also passed. diff --git a/docs/hw/soc/asc.md b/docs/hw/soc/asc.md index 9081358a..d1aae6e7 100644 --- a/docs/hw/soc/asc.md +++ b/docs/hw/soc/asc.md @@ -19,7 +19,7 @@ title: ASC 0 - CPU_IDLE 0x400 - 10 - set when the CPU is started (probaby by firmware) + 10 - set when the CPU is started (probably by firmware) 0x80c - IRQ_CONFIG 0 - IRQ_CONTROLLER_ENABLE diff --git a/docs/project/glossary.md b/docs/project/glossary.md index 1dd4ca81..27157bb4 100644 --- a/docs/project/glossary.md +++ b/docs/project/glossary.md @@ -66,7 +66,7 @@ If you want to collect a large set of terms specific to a sub-field (such as GPU * **iBSS**: iBoot Single Stage. Replacement for the first-stage iBoot (iBoot1/LLB), loaded in the DFU boot flow when the NOR is corrupted. * **IOKit**: I/O Kit is Apple's device driver framework for XNU (Apple's operating system kernel). * **IOMMU**: I/O Memory Management Unit, a more general term for Apple's DART. -* **IPI**: Inter-processor interupt. An interrupt used by one processor to interrupt another. +* **IPI**: Inter-processor interrupt. An interrupt used by one processor to interrupt another. * **iSC**: iBoot System Container. A disk partition (usually first on the internal SSD) containing the system wide boot data. (See [Stock Partition Layout](../platform/stock-partition-layout.md)) * **ISP**: Image Signal Processor. Webcam on M-series laptops. Denotes the entire camera unit, from sensors to strobe to the coprocessor. diff --git a/docs/sw/m1n1-hypervisor.md b/docs/sw/m1n1-hypervisor.md index aa4080da..570269d3 100644 --- a/docs/sw/m1n1-hypervisor.md +++ b/docs/sw/m1n1-hypervisor.md @@ -131,7 +131,7 @@ Here are some numbers from some experiment with macOS `11.5.2` and m1n1 version ## Updating your m1n1 hypervisor tree -The hypervisor/m1n1 ABI is *not* stable. If you have installed a fresh m1n1 build as above, you can use `run_guest.py` directy to save some time. However, as soon as you update your m1n1 git tree, you *must* build the updated m1n1 and run +The hypervisor/m1n1 ABI is *not* stable. If you have installed a fresh m1n1 build as above, you can use `run_guest.py` directly to save some time. However, as soon as you update your m1n1 git tree, you *must* build the updated m1n1 and run ``` python tools/chainload.py -r ../build/m1n1.bin ``` diff --git a/docs/sw/tethered-boot-macos-host.md b/docs/sw/tethered-boot-macos-host.md index b76b45d3..b0cc1e97 100644 --- a/docs/sw/tethered-boot-macos-host.md +++ b/docs/sw/tethered-boot-macos-host.md @@ -11,7 +11,7 @@ This guide will give more details about tethered boot prerequisites setup for a Host's requirements: * Any Apple computer running a decently recent MacOs version - * Enough disk space on the host for installing and commpiling software + * Enough disk space on the host for installing and compiling software * a free USB port on the host * a USB-A/USB-C or USB-C/USB-C cable * [prerequisites installed](#installing-prerequisite-software) @@ -126,7 +126,7 @@ pyserial-ports is /usr/local/bin/pyserial-ports ### Installing picocom -A serial port communication software is required to establish communication with m1n1 proxy. We recommend installing `picocom` for use as a serial terminal, which is vailable with homebrew: +A serial port communication software is required to establish communication with m1n1 proxy. We recommend installing `picocom` for use as a serial terminal, which is available with homebrew: ```shell brew install picocom @@ -149,7 +149,7 @@ brew install img4tool If you intend to boot a stock macOS kernel, you'll need these tools to extract the actual kernel file from the kernlecache of a macOS install on the target machine. In the absence of precompiled version for macOS you'll have to compile it. -For this step, setup a `asahi` folder in your home directory and clone everything there, additionaly install everything in an `~/asahi/deps` folder so as to not mess up with the rest of the system. +For this step, setup a `asahi` folder in your home directory and clone everything there, additionally install everything in an `~/asahi/deps` folder so as to not mess up with the rest of the system. First clone, build and install `libgeneral`