X-Git-Url: https://git.saurik.com/apple/boot.git/blobdiff_plain/75b89a82fae8b6d553467b92cb5431b2b5b4df7e..bba600dda0ea8a76d875db7308f372bfc43f8506:/i386/libsa/memory.h diff --git a/i386/libsa/memory.h b/i386/libsa/memory.h index 7eed3ea..bb473dc 100644 --- a/i386/libsa/memory.h +++ b/i386/libsa/memory.h @@ -1,12 +1,12 @@ /* - * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. + * Copyright (c) 1999-2003 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * - * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights + * Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights * Reserved. This file contains Original Code and/or Modifications of * Original Code as defined in and that are subject to the Apple Public - * Source License Version 1.1 (the "License"). You may not use this file + * Source License Version 2.0 (the "License"). You may not use this file * except in compliance with the License. Please obtain a copy of the * License at http://www.apple.com/publicsource and read it before using * this file. @@ -28,14 +28,20 @@ /* Memory addresses used by booter and friends */ #define BASE_SEG 0x2000 -#define STACK_SEG 0x3000 +#define STACK_SEG 0x5000 #define STACK_OFS 0xFFF0 // stack pointer +#define BOOT1U_SEG 0x1000 +#define BOOT1U_OFS 0x0200 + #define BOOT2_SEG BASE_SEG #define BOOT2_OFS 0x0200 // 512 byte disk sector offset -#define BIOS_ADDR 0x0C00 // BIOS disk I/O buffer -#define BIOS_LEN 0x2400 // 9K +#define BIOS_ADDR 0x8000 // BIOS disk I/O buffer +#define BIOS_LEN 0x8000 // 32K - divisible by 512 and 2048 + +#define BOOT0_ADDR 0x7E00 // boot0 gets loaded here + /* These are all "virtual" addresses... * which are physical addresses plus MEMBASE. @@ -44,23 +50,28 @@ #define MEMBASE 0x0 -#define BOOTSTRUCT_ADDR 0x011000 // it's slightly smaller -#define BOOTSTRUCT_LEN 0x00F000 +#define BOOTSTRUCT_ADDR 0x00011000 // it's slightly smaller +#define BOOTSTRUCT_LEN 0x0000F000 #define BASE_ADDR ADDR32(BASE_SEG, 0) +#define BASE1U_ADDR ADDR32(BOOT1U_SEG, 0) +#define BOOT1U_ADDR ADDR32(BOOT1U_SEG, BOOT1U_OFS) #define BOOT2_ADDR ADDR32(BOOT2_SEG, BOOT2_OFS) -#define VIDEO_ADDR 0x0A0000 // unusable space -#define VIDEO_LEN 0x060000 +#define HIB_ADDR 0x00040000 // special hibernation area +#define HIB_LEN 0x00060000 + +#define VIDEO_ADDR 0x000A0000 // unusable space +#define VIDEO_LEN 0x00060000 -#define KERNEL_ADDR 0x100000 // 15M kernel + drivers -#define KERNEL_LEN 0xF00000 +#define KERNEL_ADDR 0x00100000 // 64M kernel + drivers +#define KERNEL_LEN 0x04000000 -#define ZALLOC_ADDR 0x1000000 // 4M zalloc area -#define ZALLOC_LEN 0x400000 +#define ZALLOC_ADDR 0x04100000 // 39M zalloc area +#define ZALLOC_LEN 0x02700000 -#define LOAD_ADDR 0x01400000 // File download buffer -#define LOAD_LEN 0x800000 // Max file size +#define LOAD_ADDR 0x06800000 // 24M File load buffer +#define LOAD_LEN 0x01800000 #define TFTP_ADDR LOAD_ADDR // tftp download buffer #define TFTP_LEN LOAD_LEN @@ -78,6 +89,7 @@ * Extract segment/offset from a linear address. */ #define OFFSET16(addr) ((addr) - BASE_ADDR) +#define OFFSET1U16(addr) ((addr) - BASE1U_ADDR) #define OFFSET(addr) ((addr) & 0xFFFF) #define SEGMENT(addr) (((addr) & 0xF0000) >> 4)