1*ce099b40Smartin /* $NetBSD: bootxx.h,v 1.3 2008/04/28 20:23:18 martin Exp $ */ 204faabf0Stsutsui 304faabf0Stsutsui /*- 404faabf0Stsutsui * Copyright (c) 2004 The NetBSD Foundation, Inc. 504faabf0Stsutsui * All rights reserved. 604faabf0Stsutsui * 704faabf0Stsutsui * This code is derived from software contributed to The NetBSD Foundation 804faabf0Stsutsui * by UCHIYAMA Yasushi. 904faabf0Stsutsui * 1004faabf0Stsutsui * Redistribution and use in source and binary forms, with or without 1104faabf0Stsutsui * modification, are permitted provided that the following conditions 1204faabf0Stsutsui * are met: 1304faabf0Stsutsui * 1. Redistributions of source code must retain the above copyright 1404faabf0Stsutsui * notice, this list of conditions and the following disclaimer. 1504faabf0Stsutsui * 2. Redistributions in binary form must reproduce the above copyright 1604faabf0Stsutsui * notice, this list of conditions and the following disclaimer in the 1704faabf0Stsutsui * documentation and/or other materials provided with the distribution. 1804faabf0Stsutsui * 1904faabf0Stsutsui * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 2004faabf0Stsutsui * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 2104faabf0Stsutsui * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 2204faabf0Stsutsui * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 2304faabf0Stsutsui * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2404faabf0Stsutsui * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2504faabf0Stsutsui * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2604faabf0Stsutsui * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2704faabf0Stsutsui * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2804faabf0Stsutsui * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2904faabf0Stsutsui * POSSIBILITY OF SUCH DAMAGE. 3004faabf0Stsutsui */ 3104faabf0Stsutsui 3204faabf0Stsutsui #ifdef _STANDALONE 3304faabf0Stsutsui #include <lib/libkern/libkern.h> 3404faabf0Stsutsui #endif 3504faabf0Stsutsui 3604faabf0Stsutsui enum { 3704faabf0Stsutsui BERR_NONE, 3804faabf0Stsutsui BERR_PDINFO, 3904faabf0Stsutsui BERR_RDVTOC, 4004faabf0Stsutsui BERR_VTOC, 4104faabf0Stsutsui BERR_NOBFS, 4204faabf0Stsutsui BERR_RDINODE, 4304faabf0Stsutsui BERR_NOROOT, 4404faabf0Stsutsui BERR_RDDIRENT, 4504faabf0Stsutsui BERR_NOFILE, 4604faabf0Stsutsui BERR_RDFILE, 4704faabf0Stsutsui BERR_FILEMAGIC, 4804faabf0Stsutsui BERR_AOUTHDR, 4904faabf0Stsutsui BERR_ELFHDR, 5004faabf0Stsutsui BERR_TARHDR, 5104faabf0Stsutsui BERR_TARMAGIC, 5204faabf0Stsutsui }; 5304faabf0Stsutsui int dk_read(int, int, void *); 5404faabf0Stsutsui int fileread(const char *, size_t *); 5504faabf0Stsutsui 5604faabf0Stsutsui #ifdef _STANDALONE 5704faabf0Stsutsui #define BASSERT(x) ((void)0) 5804faabf0Stsutsui #define DPRINTF(arg...) ((void)0) 5904faabf0Stsutsui #define SDBOOT_LOADADDR 0xa0190000 6004faabf0Stsutsui #define SDBOOT_PDINFOADDR 0xa0191000 6104faabf0Stsutsui #define SDBOOT_VTOCADDR 0xa0191400 6204faabf0Stsutsui #define SDBOOT_INODEADDR 0xa0191600 6304faabf0Stsutsui #define SDBOOT_DIRENTADDR 0xa0191800 6404faabf0Stsutsui #define SDBOOT_SCRATCHADDR 0xa0200000 6504faabf0Stsutsui #else 6604faabf0Stsutsui #include <stdio.h> 6704faabf0Stsutsui #include <string.h> 6804faabf0Stsutsui #include <assert.h> 6904faabf0Stsutsui #define BASSERT(x) assert(x) 7004faabf0Stsutsui #define DPRINTF(fmt, args...) printf(fmt, ##args) 7104faabf0Stsutsui uint8_t __buf0[512]; 7204faabf0Stsutsui uint8_t __buf1[512]; 7304faabf0Stsutsui uint8_t __buf2[512]; 7404faabf0Stsutsui uint8_t __buf3[512]; 7504faabf0Stsutsui uint8_t __buf4[4 * 1024 * 1024]; 7604faabf0Stsutsui #define SDBOOT_PDINFOADDR __buf0 7704faabf0Stsutsui #define SDBOOT_VTOCADDR __buf1 7804faabf0Stsutsui #define SDBOOT_INODEADDR __buf2 7904faabf0Stsutsui #define SDBOOT_DIRENTADDR __buf3 8004faabf0Stsutsui #define SDBOOT_SCRATCHADDR __buf4 8104faabf0Stsutsui void sector_init(const char *, int); 8204faabf0Stsutsui #endif 83