diff --git a/rootfs.manifest b/rootfs.manifest index bd1f003..a0121c1 100644 --- a/rootfs.manifest +++ b/rootfs.manifest @@ -852,7 +852,6 @@ file /include/sys/proc.h file /include/sys/ptrace.h file /include/sys/pty.h file /include/sys/rd_flash.h -file /include/sys/rdisk.h file /include/sys/rd_mrams.h file /include/sys/rd_sdramp.h file /include/sys/rd_sramc.h diff --git a/src/cmd/fdisk/fdisk.c b/src/cmd/fdisk/fdisk.c index 37c63bd..ac08ad7 100644 --- a/src/cmd/fdisk/fdisk.c +++ b/src/cmd/fdisk/fdisk.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include @@ -24,7 +24,7 @@ int strtonum(char *s) return 0; if(s[0]==0) return 0; - + if(s[0]=='0' && s[1]=='x') { return strtol(s+2,NULL,16); @@ -73,7 +73,7 @@ int write_mbr(int fd) sync(fd); printf("Calling ioctl to reread the partition table\n"); sleep(1); - ioctl(fd,RDREINIT); + ioctl(fd, DIOCREINIT); close(fd); return 0; } @@ -294,9 +294,9 @@ int main(int argc, char *argv[]) { printf("Partition table not valid.\n"); wipe = 1; - } + } - ioctl(fd,RDGETMEDIASIZE,&blocks); + ioctl(fd, DIOCGETMEDIASIZE, &blocks); printf("%s: %d blocks of 1KB\n",device,blocks); diff --git a/src/cmd/fdisk/fdisk.h b/src/cmd/fdisk/fdisk.h index 96b0fce..2eacbcc 100644 --- a/src/cmd/fdisk/fdisk.h +++ b/src/cmd/fdisk/fdisk.h @@ -8,5 +8,37 @@ #define A_ACTIVE 4 #define A_TYPE 5 +struct chs { + unsigned char head; + struct { + unsigned cylhigh : 2; + unsigned sector : 6; + } __attribute__((packed)); + unsigned char cyllow; +}__attribute__((packed)); + +struct partition { +#define P_ACTIVE 0x80 + unsigned char status; + struct chs start; + unsigned char type; + struct chs end; + unsigned long lbastart; + unsigned long lbalength; +}; + +struct mbr { + unsigned char bootstrap1[218]; + unsigned short pad0000; + unsigned char biosdrive; + unsigned char secs; + unsigned char mins; + unsigned char hours; + unsigned char bootstrap2[216]; + unsigned int sig; + unsigned short pad0001; + struct partition partitions[4]; + unsigned short bootsig; +}__attribute__((packed)); #endif diff --git a/src/cmd/mkfs/mkfs.c b/src/cmd/mkfs/mkfs.c index 9a39356..eadf875 100644 --- a/src/cmd/mkfs/mkfs.c +++ b/src/cmd/mkfs/mkfs.c @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #define UMASK 0755 @@ -88,10 +88,9 @@ int get_disk_size(char *fn) printf("Getting disk size for %s\n",fn); // Is it a /dev entry? - if(strncmp(fn,"/dev/",5)==0) - { + if (strncmp(fn,"/dev/",5) == 0) { fd = open(fn,O_RDONLY); - ioctl(fd,RDGETMEDIASIZE,&size); + ioctl(fd, DIOCGETMEDIASIZE, &size); close(fd); } else { lstat(fn,&sb); diff --git a/sys/include/conf.h b/sys/include/conf.h index dd957aa..5acbb51 100644 --- a/sys/include/conf.h +++ b/sys/include/conf.h @@ -28,11 +28,10 @@ struct bdevsw int (*d_open) (dev_t, int, int); int (*d_close) (dev_t, int, int); void (*d_strategy) (struct buf*); - void (*d_root) (caddr_t); /* root attach routine */ daddr_t (*d_psize) (dev_t); /* query partition size */ int (*d_ioctl) (dev_t, u_int, caddr_t, int); - int d_flags; /* tape flag */ const struct devspec *devs; + int d_flags; /* tape flag */ }; #define MEM_MAJOR 1 diff --git a/sys/include/disk.h b/sys/include/disk.h index e10e2b9..56b81dc 100644 --- a/sys/include/disk.h +++ b/sys/include/disk.h @@ -1,108 +1,56 @@ /* - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. + * Ioctl definitions for skeleton driver. * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. + * Copyright (C) 2015 Serge Vakulenko * - * All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Lawrence Berkeley Laboratory. + * Permission to use, copy, modify, and distribute this software + * and its documentation for any purpose and without fee is hereby + * granted, provided that the above copyright notice appear in all + * copies and that both that the copyright notice and this + * permission notice and warranty disclaimer appear in supporting + * documentation, and that the name of the author not be used in + * advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. + * The author disclaim all warranties with regard to this + * software, including all implied warranties of merchantability + * and fitness. In no event shall the author be liable for any + * special, indirect or consequential damages or any damages + * whatsoever resulting from loss of use, data or profits, whether + * in an action of contract, negligence or other tortious action, + * arising out of or in connection with the use or performance of + * this software. */ #ifndef _SYS_DISK_H_ #define _SYS_DISK_H_ -#include /* - * Disk device structures. - * - * Note that this is only a preliminary outline. The final disk structures - * may be somewhat different. - * - * Note: the 2.11BSD version is very different. The 4.4 version served - * as the inspiration. I needed something similar but for slightly - * different purposes. + * IBM PC compatible partition table. */ +#define MAXPARTITIONS 4 -/* - * Disk device structures. Rather than replicate driver specific variations - * of the following in each driver it was made common here. - * - * Some of the flags are specific to various drivers. For example ALIVE and - * ONLINE apply to MSCP devices more than to SMD devices while the SEEK flag - * applies to the SMD (xp) driver but not to the MSCP driver. The rest - * of the flags as well as the open partition bitmaps are usable by any disk - * driver. One 'dkdevice' structure is needed for each disk drive supported - * by a driver. - * - * The entire disklabel is not resident in the kernel address space. Only - * the partition table is directly accessible by the kernel. The MSCP driver - * does not care (or know) about the geometry of the disk. Not holding - * the entire label in the kernel saved quite a bit of D space. Other drivers - * which need geometry information from the label will have to map in the - * label and copy out the geometry data they require. This is unlikely to - * cause much overhead since labels are read and written infrequently - when - * mounting a drive, assigning a label, running newfs, etc. - */ - -struct dkdevice { - int dk_bopenmask; /* block devices open */ - int dk_copenmask; /* character devices open */ - int dk_openmask; /* composite (bopen|copen) */ - int dk_flags; /* label state - see below */ - size_t dk_label; /* sector containing label */ - struct partition dk_parts[MAXPARTITIONS]; /* inkernel portion */ +struct diskpart { /* the partition table */ + u_char dp_status; /* active (bootable) flag */ +#define DP_ACTIVE 0x80 + u_char dp_start_chs[3]; /* ignored */ + u_char dp_type; /* type of partition */ + u_char dp_end_chs[3]; /* ignored */ + u_int dp_offset; /* starting sector */ + u_int dp_size; /* number of sectors in partition */ }; -#define DKF_OPENING 0x0001 /* drive is being opened */ -#define DKF_CLOSING 0x0002 /* drive is being closed */ -#define DKF_WANTED 0x0004 /* drive is being waited for */ -#define DKF_ALIVE 0x0008 /* drive is alive */ -#define DKF_ONLINE 0x0010 /* drive is online */ -#define DKF_WLABEL 0x0020 /* label area is being written */ -#define DKF_SEEK 0x0040 /* drive is seeking */ -#define DKF_SWAIT 0x0080 /* waiting for seek to complete */ +/* + * Partition types. + */ +#define PTYPE_UNUSED 0 /* unused */ +#define PTYPE_BSDFFS 0xb7 /* 4.2BSD fast file system */ +#define PTYPE_SWAP 0xb8 /* swap */ -/* encoding of disk minor numbers, should be elsewhere... but better - * here than in ufs_disksubr.c - * - * Note: the controller number in bits 6 and 7 of the minor device are NOT - * removed. It is the responsibility of the driver to extract or mask - * these bits. -*/ - -#define dkunit(dev) (minor(dev) >> 3) -#define dkpart(dev) (minor(dev) & 07) -#define dkminor(unit, part) (((unit) << 3) | (part)) +/* + * Disk-specific ioctls. + */ +#define DIOCGETMEDIASIZE _IOR('d', 1, int) /* get size in kbytes */ +#define DIOCREINIT _IO ('d', 2) /* re-initialize device */ +#define DIOCGETPART _IOR('d', 3, struct diskpart) /* get partition */ #endif /* _SYS_DISK_H_ */ diff --git a/sys/include/rdisk.h b/sys/include/rdisk.h deleted file mode 100644 index 7e18d10..0000000 --- a/sys/include/rdisk.h +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef _RDISK_H -#define _RDISK_H - -#include "conf.h" - -#define RDISK_FS 0xB7 -#define RDISK_SWAP 0xB8 - -#define RD_DEFAULT 0x00000000UL -#define RD_READONLY 0x00000001UL -#define RD_PREPART 0x00000002UL - -#define S_SILENT 0x8000 - -#define RAMDISK_PARTSPEC(n, t, s, l) \ - m->partitions[n].type = t; \ - m->partitions[n].lbastart = s; \ - m->partitions[n].lbalength = l; - -struct diskentry { - void (*pre_init)(int unit); - int (*init)(int unit,int flag); - int (*deinit)(int unit); - int (*open)(int unit, int mode, int flags); - int (*size)(int unit); - int (*read)(int unit, unsigned int offset, char *data, unsigned int bcount); - int (*write)(int unit, unsigned int offset, char *data, unsigned int bcount); - unsigned char unit; - unsigned int settings; -}; - -struct diskflags { - unsigned char opens; - unsigned int start[4]; - unsigned int len[4]; - unsigned int blocks; -} __attribute__((packed)); - -struct chs { - unsigned char head; - struct { - unsigned cylhigh : 2; - unsigned sector : 6; - } __attribute__((packed)); - unsigned char cyllow; -}__attribute__((packed)); - -struct partition { -#define P_ACTIVE 0x80 - unsigned char status; - struct chs start; - unsigned char type; - struct chs end; - unsigned long lbastart; - unsigned long lbalength; -}; - -struct mbr { - unsigned char bootstrap1[218]; - unsigned short pad0000; - unsigned char biosdrive; - unsigned char secs; - unsigned char mins; - unsigned char hours; - unsigned char bootstrap2[216]; - unsigned int sig; - unsigned short pad0001; - struct partition partitions[4]; - unsigned short bootsig; -}__attribute__((packed)); - -#ifdef KERNEL -extern int rdopen(dev_t dev, int flag, int mode); -extern int rdclose(dev_t dev, int flag, int mode); -extern daddr_t rdsize(dev_t dev); -extern void rdstrategy(register struct buf *bp); -extern int partition_size(dev_t dev); -extern int rdioctl (dev_t dev, register u_int cmd, caddr_t addr, int flag); -extern void rdisk_init(); -extern void rdisk_list_partitions(unsigned char type); -extern int rdisk_num_disks(); - -extern dev_t get_boot_device(); -extern dev_t get_swap_device(); -extern unsigned char partition_type(dev_t dev); -extern struct buf *prepartition_device(char *devname); - -extern const struct devspec rd0devs[]; -extern const struct devspec rd1devs[]; -extern const struct devspec rd2devs[]; -extern const struct devspec rd3devs[]; -#endif - -#define RDGETMEDIASIZE _IOR('r', 1, int) -#define RDREINIT _IO('r', 2) - -#endif diff --git a/sys/kernel/init_main.c b/sys/kernel/init_main.c index c159963..508813f 100644 --- a/sys/kernel/init_main.c +++ b/sys/kernel/init_main.c @@ -22,7 +22,6 @@ #include #include #include -#include u_int swapstart, nswap; /* start and size of swap space */ size_t physmem; /* total amount of physical memory */ @@ -104,8 +103,6 @@ main() register struct proc *p; register int i; register struct fs *fs = NULL; - char inbuf[4]; - char inch; int s __attribute__((unused)); startup(); @@ -149,97 +146,18 @@ main() nchinit(); clkstart(); + pipedev = rootdev; + /* Attach services. */ struct conf_service *svc; for (svc = conf_service_init; svc->svc_attach != NULL; svc++) (*svc->svc_attach)(); - s = spl0(); - rdisk_init(); - - if (rootdev == NODEV) - rootdev = get_boot_device(); - if (swapdev == NODEV) - swapdev = get_swap_device(); - pipedev = rootdev; - /* Mount a root filesystem. */ - for (;;) { - if(rootdev!=-1) - { - fs = mountfs (rootdev, (boothowto & RB_RDONLY) ? MNT_RDONLY : 0, - (struct inode*) 0); - } - if (fs) - break; - printf ("No root filesystem available!\n"); -// rdisk_list_partitions(RDISK_FS); -retry: - printf ("Please enter device to boot from (press ? to list): "); - inch=0; - inbuf[0] = inbuf[1] = inbuf[2] = inbuf[3] = 0; - while((inch=cngetc()) != '\r') - { - switch(inch) - { - case '?': - printf("?\n"); - rdisk_list_partitions(RDISK_FS); - printf ("Please enter device to boot from (press ? to list): "); - break; - default: - printf("%c",inch); - inbuf[0] = inbuf[1]; - inbuf[1] = inbuf[2]; - inbuf[2] = inbuf[3]; - inbuf[3] = inch; - break; - } - } - - inch = 0; - if(inbuf[0]=='r' && inbuf[1]=='d') - { - if(inbuf[2]>='0' && inbuf[2] < '0'+rdisk_num_disks()) - { - if(inbuf[3]>='a' && inbuf[3]<='d') - { - rootdev=makedev(inbuf[2]-'0',inbuf[3]-'a'+1); - inch = 1; - } - } - } else if(inbuf[1]=='r' && inbuf[2]=='d') { - if(inbuf[3]>='0' && inbuf[3] < '0'+rdisk_num_disks()) - { - rootdev=makedev(inbuf[3]-'0',0); - inch = 1; - } - } else if(inbuf[3] == 0) { - inch = 1; - } - if(inch==0) - { - printf("\nUnknown device.\n\n"); - goto retry; - } - printf ("\n\n"); - } - printf ("phys mem = %u kbytes\n", physmem / 1024); - printf ("user mem = %u kbytes\n", MAXMEM / 1024); - if(minor(rootdev)==0) - { - printf ("root dev = rd%d (%d,%d)\n", - major(rootdev), - major(rootdev), minor(rootdev) - ); - } else { - printf ("root dev = rd%d%c (%d,%d)\n", - major(rootdev), 'a'+minor(rootdev)-1, - major(rootdev), minor(rootdev) - ); - } - - printf ("root size = %u kbytes\n", fs->fs_fsize * DEV_BSIZE / 1024); + s = spl0(); + fs = mountfs (rootdev, (boothowto & RB_RDONLY) ? MNT_RDONLY : 0, 0); + if (! fs) + panic ("No root filesystem found!"); mount[0].m_inodp = (struct inode*) 1; /* XXX */ mount_updname (fs, "/", "root", 1, 4); time.tv_sec = fs->fs_time; @@ -247,76 +165,19 @@ retry: /* Find a swap file. */ swapstart = 1; - while(swapdev == -1) - { - printf("Please enter swap device (press ? to list): "); - inbuf[0] = inbuf[1] = inbuf[2] = inbuf[3] = 0; - while((inch = cngetc())!='\r') - { - switch(inch) - { - case '?': - printf("?\n"); - rdisk_list_partitions(RDISK_SWAP); - printf("Please enter swap device (press ? to list): "); - break; - default: - printf("%c",inch); - inbuf[0] = inbuf[1]; - inbuf[1] = inbuf[2]; - inbuf[2] = inbuf[3]; - inbuf[3] = inch; - break; - } - } - inch = 0; - if(inbuf[0]=='r' && inbuf[1]=='d') - { - if(inbuf[2]>='0' && inbuf[2] < '0'+rdisk_num_disks()) - { - if(inbuf[3]>='a' && inbuf[3]<='d') - { - swapdev=makedev(inbuf[2]-'0',inbuf[3]-'a'+1); - inch = 1; - } - } - } else if(inbuf[1]=='r' && inbuf[2]=='d') { - if(inbuf[3]>='0' && inbuf[3] < '0'+rdisk_num_disks()) - { - swapdev=makedev(inbuf[3]-'0',0); - inch = 1; - } - } - - if(minor(swapdev)!=0) - { - if(partition_type(swapdev)!=RDISK_SWAP) - { - printf("\nNot a swap partition!\n\n"); - swapdev=-1; - } - } - } - nswap = rdsize(swapdev); - - if(minor(swapdev)==0) - { - printf ("swap dev = rd%d (%d,%d)\n", - major(swapdev), - major(swapdev), minor(swapdev) - ); - } else { - printf ("swap dev = rd%d%c (%d,%d)\n", - major(swapdev), 'a'+minor(swapdev)-1, - major(swapdev), minor(swapdev) - ); - } (*bdevsw[major(swapdev)].d_open)(swapdev, FREAD|FWRITE, S_IFBLK); - printf ("swap size = %u kbytes\n", nswap * DEV_BSIZE / 1024); + nswap = (*bdevsw[major(swapdev)].d_psize)(swapdev); if (nswap <= 0) panic ("zero swap size"); /* don't want to panic, but what ? */ mfree (swapmap, nswap, swapstart); + printf ("phys mem = %u kbytes\n", physmem / 1024); + printf ("user mem = %u kbytes\n", MAXMEM / 1024); + printf ("root dev = (%d,%d)\n", major(rootdev), minor(rootdev)); + printf ("swap dev = (%d,%d)\n", major(swapdev), minor(swapdev)); + printf ("root size = %u kbytes\n", fs->fs_fsize * DEV_BSIZE / 1024); + printf ("swap size = %u kbytes\n", nswap * DEV_BSIZE / 1024); + /* Kick off timeout driven events by calling first time. */ schedcpu (0); diff --git a/sys/kernel/rdisk.c b/sys/kernel/rdisk.c deleted file mode 100644 index dcede24..0000000 --- a/sys/kernel/rdisk.c +++ /dev/null @@ -1,658 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define Q2(X) #X -#define QUOTE(X) Q2((X)) - -extern struct buf *getnewbuf(); - -/* - * Variable naming conventions - * - * root - this is the number of the device entry in the disks[] array - * part - the minor number of a device entry, which represents the partition - * number, or 0 for the whole disk - * unit - the physical device number of a specific device type. Equates - * to the .unit entry in the diskentry structure for a device. - */ - -extern int card_read(int unit, unsigned int offset, char *data, unsigned int bcount); -extern int card_write(int unit, unsigned int offset, char *data, unsigned int bcount); -extern int sdinit(int unit, int flag); -extern int sddeinit(int unit); -extern void sd_preinit(int unit); -extern int sdopen(int unit, int flags, int mode); -extern int sdsize(int unit); - -#ifdef SRAMC_ENABLED -#include -#endif -#ifdef SDRAMP_ENABLED -#include -#endif -#ifdef FLASH_ENABLED -#include -#endif -#ifdef MRAMS_ENABLED -#include -#endif -#ifdef SPIRAMS_ENABLED -#include -#endif - -int no_deinit(int u) { return 0; } -void no_preinit(int u) { return; } -int no_init(int u, int v) { return 0; } -int no_open(int u, int a, int b) { return 0; } -int no_size(int u) { return 0; } -int no_read(int u, unsigned int o, char *dat, unsigned int bs) { return 0; } -int no_write(int u, unsigned int o, char *dat, unsigned int bs) { return 0; } - -const struct devspec rd0devs[] = { { 0, "rd0" }, { 1, "rd0a" }, { 2, "rd0b" }, { 3, "rd0c" }, { 4, "rd0d" }, { 0, 0 } }; -const struct devspec rd1devs[] = { { 0, "rd1" }, { 1, "rd1a" }, { 2, "rd1b" }, { 3, "rd1c" }, { 4, "rd1d" }, { 0, 0 } }; -const struct devspec rd2devs[] = { { 0, "rd2" }, { 1, "rd2a" }, { 2, "rd2b" }, { 3, "rd2c" }, { 4, "rd2d" }, { 0, 0 } }; -const struct devspec rd3devs[] = { { 0, "rd3" }, { 1, "rd3a" }, { 2, "rd3b" }, { 3, "rd3c" }, { 4, "rd3d" }, { 0, 0 } }; - -// This is the list of physical storage devices on the system. -// Uncomment the ones you want below. Maximum 4 at the moment. -// They number, in the order of this list, rd0, rd1, rd2 and rd3. - -const struct diskentry disks[] = { - - {sd_preinit, sdinit, sddeinit, sdopen, sdsize, card_read, card_write, 0, RD_DEFAULT}, - -#ifdef SD1_PORT - {sd_preinit, sdinit, sddeinit, sdopen, sdsize, card_read, card_write, 1, RD_DEFAULT}, -#endif - -#ifdef SRAMC_ENABLED - {sramc_init, no_init, no_deinit, sramc_open, sramc_size, sramc_read, sramc_write, 0, RD_PREPART}, -#endif - -#ifdef SDRAMP_ENABLED - {sdramp_preinit, no_init, no_deinit, sdramp_open, sdramp_size, sdramp_read, sdramp_write, 0, RD_PREPART}, -#endif - -#ifdef FLASH_ENABLED - {flash_init, no_init, no_deinit, flash_open, flash_size, flash_read, flash_write, 0, RD_READONLY}, -#endif - -#ifdef MRAMS_ENABLED - {mrams_preinit, no_init, no_deinit, no_open, mrams_size, mrams_read, mrams_write, 0, RD_DEFAULT}, -#endif - -#ifdef SPIRAMS_ENABLED - {spirams_preinit, no_init, no_deinit, no_open, spirams_size, spirams_read, spirams_write, 0, RD_DEFAULT}, -#endif - -}; - -#define NRDSK sizeof(disks)/sizeof(struct diskentry) -#define MAXDEV NRDSK-1 - -#ifdef UCB_METER -int rddk = -1; -#endif - -struct diskflags dflags[NRDSK]; - -static inline struct buf *read_mbr(int root) -{ - if (root > MAXDEV) - return NULL; - - int rv; - int unit = disks[root].unit; - - struct buf *bp = getnewbuf(); - - DEBUG8("rd%d: read mbr from device %d\n",root,unit); - rv = disks[root].read(unit,0,bp->b_addr,512); - if (rv == 0) { - DEBUG8("rd%d: mbr read FAIL\n",root); - brelse(buf); - return NULL; - } - DEBUG8("rd%d: mbr read OK\n",root); - - return bp; -} - - -static inline int init_device(int root,int flag) -{ - int i, e, unit; - struct buf *bp; - struct mbr *mbr; - - if (root > MAXDEV) - return ENODEV; - unit = disks[root].unit; - - e = disks[root].init(unit, flag); - if (e != 0) - return e; - - DEBUG8("rd%d: about to read mbr\n",root); - bp = read_mbr(root); - if (! bp) - return ENXIO; - DEBUG8("rd%d: mbr read\n", root); - mbr = (struct mbr *)bp->b_addr; - - DEBUG5("rd%d: partition types: %02X %02X %02X %02X\n",root, - mbr->partitions[0].type, - mbr->partitions[1].type, - mbr->partitions[2].type, - mbr->partitions[3].type - ); - DEBUG8("rd%d: partition 1 start: %p length: %p\n",root, - mbr->partitions[0].lbastart, mbr->partitions[0].lbalength - ); - DEBUG8("rd%d: partition 2 start: %p length: %p\n",root, - mbr->partitions[1].lbastart, mbr->partitions[1].lbalength - ); - DEBUG8("rd%d: partition 3 start: %p length: %p\n",root, - mbr->partitions[2].lbastart, mbr->partitions[2].lbalength - ); - DEBUG8("rd%d: partition 4 start: %p length: %p\n",root, - mbr->partitions[3].lbastart, mbr->partitions[3].lbalength - ); - - for (i=0; i<4; i++) { - struct partition part = mbr->partitions[i]; - dflags[root].start[i] = part.lbastart >> 1; - dflags[root].len[i] = part.lbalength >> 1; - } - dflags[root].blocks = disks[root].size(unit); - brelse(bp); - return 0; -} - -static inline int deinit_device(int root) -{ - if (root > MAXDEV) - return ENODEV; - return disks[root].deinit(disks[root].unit); -} - -static inline int open_device(int root, int flag) -{ - int e; - if (root > MAXDEV) - return ENODEV; - - DEBUG3("rd%d: opening\n",root); - if (dflags[root].opens==0) { - DEBUG3("rd%d: init device\n",root); - e = init_device(root, flag); - if (e != 0) - return e; - } - dflags[root].opens++; - - DEBUG3("rd%d: opened: %d\n",root,dflags[root].opens); - return 0; -} - -static inline int close_device(int root) -{ - if (root > MAXDEV) - return ENODEV; - if (dflags[root].opens == 0) - return ENXIO; - dflags[root].opens--; - if (dflags[root].opens == 0) { - deinit_device(root); - } - DEBUG3("rd%d: closed: %d\n",root,dflags[root].opens); - return 0; -} - -int rdopen(dev_t dev, int mode, int flag) -{ - int root = major(dev); - if (root > MAXDEV) - return ENODEV; - - int unit = disks[root].unit; - int e = open_device(root, flag); - if (e != 0) - return e; - - e = disks[root].open(unit, mode, flag); - if (e != 0) - return e; - return 0; -} - -int rdclose(dev_t dev, int mode, int flag) -{ - int root = major(dev); - if (root > MAXDEV) - return ENODEV; - close_device(root); - return 0; -} - -daddr_t rdsize(dev_t dev) -{ - int root = major(dev); - if (root > MAXDEV) - return ENODEV; - - int part = minor(dev); - int unit = disks[root].unit; - unsigned int blocks; - - if (part == 0) { - return disks[root].size(unit); - } - - if (rdopen(dev,0,S_SILENT) != 0) - return 0; - blocks = dflags[root].len[part-1]; - rdclose(dev, 0, 0); - DEBUG3("rd%d%c: get partition size: %d\n",root,part+'a'-1,blocks); - return blocks; -} - -void rdstrategy(register struct buf *bp) -{ - int root = major(bp->b_dev); - static int mutex = 0; - if (root > MAXDEV) - return; - - mutex++; - if (mutex > 1) { - led_control(LED_SWAP, 1); - } else { - led_control(LED_DISK, 0); - } - - int part = minor(bp->b_dev); - int unit = disks[root].unit; - - int offset=0; - int s; - - if (part > 0) - offset = dflags[root].start[part-1]; - - offset += (bp->b_blkno); - - if (bp->b_dev == swapdev) { - led_control(LED_SWAP, 1); - } else { - led_control(LED_DISK, 1); - } - - s = splbio(); - -#ifdef UCB_METER - if (rddk >= 0) { - dk_busy |= 1 << (rddk + root); - dk_xfer[rddk + root]++; - dk_bytes[rddk + root] += bp->b_bcount; - } -#endif - - - if (bp->b_flags & B_READ) { - disks[root].read(unit, offset, bp->b_addr, bp->b_bcount); - } else { - if (! (disks[root].settings & RD_READONLY)) - disks[root].write(unit, offset, bp->b_addr, bp->b_bcount); - } - - biodone(bp); - if (bp->b_dev == swapdev) { - led_control(LED_SWAP, 0); - } else { - led_control(LED_DISK, 0); - } - splx(s); - mutex--; -} - -void update_mbr(int unit) -{ - //TODO -} - -int rdioctl (dev_t dev, register u_int cmd, caddr_t addr, int flag) -{ - int *val; - - val = (int *)addr; - - if (cmd == RDGETMEDIASIZE) { - *val = rdsize(dev); - } - if (cmd == RDREINIT) { - bflush(major(dev)); - init_device(major(dev), S_SILENT); - - } - return 0; -} - -void rdisk_init() -{ - int i; - - //printf("Prepartition Schema: %s\n",prepartition_schema); - -#ifdef UCB_METER - dk_alloc(&rddk, NRDSK, "rd"); -#endif - - for (i=0; ib_addr; - for (j=1; j<5; j++) { - if (mbr->partitions[j-1].type == type) { - printf(" rd%d%c: %d KB\n",i,'a'+j-1,rdsize(makedev(i,j))); - } - } - brelse(bp); - } -} - -int rdisk_num_disks() -{ - return NRDSK; -} - -dev_t get_boot_device() -{ -// If a root device has been specified, then we can short cut all this and just -// use that device. -#ifdef ROOT - return ROOT; -#else - dev_t bd = -1; - int i, j, e; - struct buf *bp; - struct mbr *mbr; - - for (i=0; ib_addr; - - for (j=0; j<4; j++) { - if (mbr->partitions[j].type == RDISK_FS) { - if (mbr->partitions[j].status & P_ACTIVE) { - brelse(bp); - rdclose(makedev(i, 0), 0, 0); - return makedev(i, j+1); - } - } - } - brelse(bp); - } - rdclose(makedev(i, 0), 0, 0); - } - } - return bd; -#endif -} - -dev_t get_swap_device() -{ -// If a swap device has been specified, then we can short cut all this and just -// use that device. -#ifdef SWAP - return SWAP; -#else - - dev_t bd = -1; - int i, j, e; - unsigned int max_size = 0; - struct buf *bp; - struct mbr *mbr; - - // First we look for the first active swap device - - for (i=0; ib_addr; - - for (j=0; j<4; j++) { - if (mbr->partitions[j].type == RDISK_SWAP) { - // If this partition is the biggest so far - // then store it. We'll use this if - // there is no active partition. - if (mbr->partitions[j].lbalength > max_size) { - max_size = mbr->partitions[j].lbalength; - bd = makedev(i, j+1); - } - - // If it is active, then use it. - if (mbr->partitions[j].status & P_ACTIVE) { - brelse(bp); - rdclose(makedev(i, 0), 0, 0); - return makedev(i, j+1); - } - } - } - brelse(bp); - } - rdclose(makedev(i, 0), 0, 0); - } - } - - // There is no active partition, so we'll use the biggest one we found. - return bd; -#endif -} - -unsigned char partition_type(dev_t dev) -{ - struct buf *bp; - struct mbr *mbr; - unsigned char pt; - - if (minor(dev)<1 || minor(dev)>4) - return 0; - - if (rdopen(dev,0,S_SILENT) == 0) { - bp = read_mbr(major(dev)); - rdclose(dev, 0, 0); - if (! bp) { - brelse(bp); - return 0; - } - mbr = (struct mbr *)bp->b_addr; - pt = mbr->partitions[minor(dev)-1].type; - brelse(bp); - return pt; - } - return 0; -} - -int atoi(char *s) -{ - int i = 0; - char *q; - - for (q=s; *q; q++) { - if (*q < '0' || *q > '9') { - return i; - } - i = i * 10; - i += *q - '0'; - } - return i; -} - -int strcmp(char *s1, char *s2) -{ - char *p1,*p2; - p1 = s1; - p2 = s2; - - while (*p1 && *p2) { - if (*p1 < *p2) - return -1; - if (*p1 > *p2) - return 1; - p1++; - p2++; - } - if (*p1 < *p2) - return -1; - if (*p1 > *p2) - return 1; - return 0; -} - -/* - * Prepartition format: - * mrams0:fs@1024,swap@2048,fs@1022 sdramp0:... - */ -struct buf *prepartition_device(char *devname) -{ - -#ifndef PARTITION - char *prepartition_schema = ""; -#else - char *prepartition_schema = (char *)QUOTE(PARTITION); -#endif - char *p,*q; - struct buf *bp; - struct mbr *mbr; - int pnum = 0; - int start = 2; - char dev[9]; - char size[9]; - char type[5]; - int pos = 0; - - p = prepartition_schema+1; - q = p; - - printf("PP Schema: %s\n",prepartition_schema); - - bp = getnewbuf(); - if (! bp) { - return NULL; - } - - mbr = (struct mbr *)bp->b_addr; - - while (*p) { - while (*q && *q != ' ') - q++; - if (*q == ' ') { - *q = 0; - q++; - } - - pos = 0; - while (*p && *p != ':') { - dev[pos++] = *p; - dev[pos] = 0; - p++; - } - - if (*p == ':') { - p++; - } else { - printf("Device Format Error (%c)\n",*p); - brelse(bp); - return NULL; - } - - while (*p && *p != ' ') { - pos = 0; - while (*p && *p != '@') { - type[pos++] = *p; - type[pos] = 0; - p++; - } - - if (*p == '@') { - p++; - } else { - printf("Type Format Error\n"); - brelse(bp); - return NULL; - } - - pos = 0; - while (*p && *p != ',' && *p != ' ' && *p != ')') { - size[pos++] = *p; - size[pos] = 0; - p++; - } - - printf("Found partition on %s of type %s and size %s\n", - dev,type,size); - - if (strcmp(dev, devname) == 0) { - if (strcmp("sw", type) == 0) - mbr->partitions[pnum].type = RDISK_SWAP; - - if (strcmp("sa", type) == 0) { - mbr->partitions[pnum].type = RDISK_SWAP; - mbr->partitions[pnum].status = 0x80; - } - if (strcmp("fs", type) == 0) - mbr->partitions[pnum].type = RDISK_FS; - - mbr->partitions[pnum].lbastart = start; - mbr->partitions[pnum].lbalength = atoi(size)<<1; - start += mbr->partitions[pnum].lbalength; - pnum++; - } - p++; - } - } - - if (pnum > 0) { - mbr->bootsig = 0xAA55; - mbr->biosdrive = 0x80; - mbr->sig = 'R'<<24 | 'T'<<16 | 'E'<<8 | 'R'; - return bp; - } - - brelse(bp); - return NULL; -} diff --git a/sys/pic32/32mxsdram/Makefile b/sys/pic32/32mxsdram/Makefile index 5ed8f0e..c1f3395 100644 --- a/sys/pic32/32mxsdram/Makefile +++ b/sys/pic32/32mxsdram/Makefile @@ -59,15 +59,14 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o adc.o pwm.o rd_sd.o rd_sdramp.o sdram.o spi.o \ - spi_bus.o uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o adc.o pwm.o \ + sd.o rd_sdramp.o sdram.o spi.o spi_bus.o uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -79,20 +78,20 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ $S/kernel/vm_swp.c $S/pic32/clock.c $S/pic32/cons.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ - $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/pwm.c $S/pic32/rd_sd.c \ + $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/pwm.c $S/pic32/sd.c \ $S/pic32/rd_sdramp.c $S/pic32/spi.c $S/pic32/spi_bus.c \ $S/pic32/uart.c swapunix.c @@ -224,9 +223,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -335,7 +331,7 @@ adc.o: $S/pic32/adc.c pwm.o: $S/pic32/pwm.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} rd_sdramp.o: $S/pic32/rd_sdramp.c diff --git a/sys/pic32/baremetal/Makefile b/sys/pic32/baremetal/Makefile index 949c33b..c5c3fb0 100644 --- a/sys/pic32/baremetal/Makefile +++ b/sys/pic32/baremetal/Makefile @@ -50,14 +50,14 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o rd_sd.o spi.o spi_bus.o uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o sd.o spi.o \ + spi_bus.o uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -69,20 +69,20 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ $S/kernel/vm_swp.c $S/pic32/clock.c $S/pic32/cons.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ - $S/pic32/sysctl.c $S/pic32/rd_sd.c $S/pic32/spi.c \ + $S/pic32/sysctl.c $S/pic32/sd.c $S/pic32/spi.c \ $S/pic32/spi_bus.c $S/pic32/uart.c swapunix.c # load lines for config "xxx" will be emitted as: @@ -213,9 +213,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -318,7 +315,7 @@ swap.o: $S/pic32/swap.c sysctl.o: $S/pic32/sysctl.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} spi.o: $S/pic32/spi.c diff --git a/sys/pic32/devsw.c b/sys/pic32/devsw.c index 65cbd83..bee323e 100644 --- a/sys/pic32/devsw.c +++ b/sys/pic32/devsw.c @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include @@ -24,6 +23,9 @@ extern int strcmp(char *s1, char *s2); +#ifdef SD_ENABLED +# include +#endif #ifdef UARTUSB_ENABLED # include #endif @@ -53,27 +55,27 @@ extern int strcmp(char *s1, char *s2); * Null routine; placed in insignificant entries * in the bdevsw and cdevsw tables. */ -static int nulldev () +int nulldev() { - return (0); + return 0; } -static int noopen (dev, flag, mode) +int noopen(dev, flag, mode) dev_t dev; int flag, mode; { return ENXIO; } -static int norw (dev, uio, flag) +int norw(dev, uio, flag) dev_t dev; struct uio *uio; int flag; { - return (0); + return 0; } -static int noioctl (dev, cmd, data, flag) +int noioctl(dev, cmd, data, flag) dev_t dev; u_int cmd; caddr_t data; @@ -85,12 +87,16 @@ static int noioctl (dev, cmd, data, flag) /* * root attach routine */ -static void noroot (csr) - caddr_t csr; +daddr_t nosize(dev) + dev_t dev; { - /* Empty. */ + return 0; } +#define NOBDEV \ + noopen, noopen, nostrategy, \ + nosize, noioctl, 0 + /* * The RetroDisks require the same master number as the disk entry in the * rdisk.c file. A bit of a bind, but it means that the RetroDisk @@ -98,24 +104,25 @@ static void noroot (csr) */ const struct bdevsw bdevsw[] = { { /* 0 - rd0 */ - rdopen, rdclose, rdstrategy, - noroot, rdsize, rdioctl, 0, rd0devs +#ifdef SD_ENABLED + sdopen, sdclose, sdstrategy, + sdsize, sdioctl, sddevs +#else + NOBDEV +#endif }, { /* 1 - rd1 */ - rdopen, rdclose, rdstrategy, - noroot, rdsize, rdioctl, 0, rd1devs + NOBDEV }, { /* 2 - rd2 */ - rdopen, rdclose, rdstrategy, - noroot, rdsize, rdioctl, 0, rd2devs + NOBDEV }, { /* 3 - rd3 */ - rdopen, rdclose, rdstrategy, - noroot, rdsize, rdioctl, 0, rd3devs + NOBDEV }, { /* 4 - swap */ swopen, swclose, swstrategy, - noroot, swsize, swcioctl, 0, swapbdevs + swsize, swcioctl, swapbdevs }, { 0 }, @@ -311,8 +318,8 @@ iskmemdev(dev) register dev_t dev; { if (major(dev) == 1 && (minor(dev) == 0 || minor(dev) == 1)) - return (1); - return (0); + return 1; + return 0; } /* @@ -334,9 +341,9 @@ isdisk(dev, type) case 2: /* rd2 */ case 3: /* rd3 */ case 4: /* sw */ - return (1); + return 1; default: - return (0); + return 0; } /* NOTREACHED */ } @@ -348,9 +355,10 @@ isdisk(dev, type) int chrtoblk(dev_t dev) { - return (NODEV); + return NODEV; } +#if 0 char *cdevname(dev_t dev) { int maj = major(dev); @@ -367,3 +375,4 @@ char *cdevname(dev_t dev) } return 0; } +#endif diff --git a/sys/pic32/duinomite-emega/Makefile b/sys/pic32/duinomite-emega/Makefile index 40ae35a..3bafeed 100644 --- a/sys/pic32/duinomite-emega/Makefile +++ b/sys/pic32/duinomite-emega/Makefile @@ -59,15 +59,15 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o adc.o gpio.o pwm.o rd_sd.o spi.o spi_bus.o \ - usb_device.o usb_function_cdc.o usb_uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o adc.o \ + gpio.o pwm.o sd.o spi.o spi_bus.o usb_device.o \ + usb_function_cdc.o usb_uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -79,13 +79,13 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ @@ -93,7 +93,7 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/gpio.c $S/pic32/pwm.c \ - $S/pic32/rd_sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ + $S/pic32/sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ $S/pic32/usb_device.c $S/pic32/usb_function_cdc.c \ $S/pic32/usb_uart.c swapunix.c @@ -225,9 +225,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -339,7 +336,7 @@ gpio.o: $S/pic32/gpio.c pwm.o: $S/pic32/pwm.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} spi.o: $S/pic32/spi.c diff --git a/sys/pic32/duinomite/Makefile b/sys/pic32/duinomite/Makefile index a3bcda6..1cf1687 100644 --- a/sys/pic32/duinomite/Makefile +++ b/sys/pic32/duinomite/Makefile @@ -58,15 +58,15 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o adc.o gpio.o pwm.o rd_sd.o spi.o spi_bus.o \ - usb_device.o usb_function_cdc.o usb_uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o adc.o \ + gpio.o pwm.o sd.o spi.o spi_bus.o usb_device.o \ + usb_function_cdc.o usb_uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -78,13 +78,13 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ @@ -92,7 +92,7 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/gpio.c $S/pic32/pwm.c \ - $S/pic32/rd_sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ + $S/pic32/sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ $S/pic32/usb_device.c $S/pic32/usb_function_cdc.c \ $S/pic32/usb_uart.c swapunix.c @@ -224,9 +224,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -338,7 +335,7 @@ gpio.o: $S/pic32/gpio.c pwm.o: $S/pic32/pwm.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} spi.o: $S/pic32/spi.c diff --git a/sys/pic32/explorer16/Makefile b/sys/pic32/explorer16/Makefile index 9fbf3c0..fcf0444 100644 --- a/sys/pic32/explorer16/Makefile +++ b/sys/pic32/explorer16/Makefile @@ -60,15 +60,14 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o adc.o gpio.o pwm.o rd_sd.o spi.o spi_bus.o \ - uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o adc.o \ + gpio.o pwm.o sd.o spi.o spi_bus.o uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -80,13 +79,13 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ @@ -94,8 +93,8 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/gpio.c $S/pic32/pwm.c \ - $S/pic32/rd_sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ - $S/pic32/uart.c swapunix.c + $S/pic32/sd.c $S/pic32/spi.c $S/pic32/spi_bus.c $S/pic32/uart.c \ + swapunix.c # load lines for config "xxx" will be emitted as: # xxx: ${SYSTEM_DEP} swapxxx.o @@ -225,9 +224,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -339,7 +335,7 @@ gpio.o: $S/pic32/gpio.c pwm.o: $S/pic32/pwm.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} spi.o: $S/pic32/spi.c diff --git a/sys/pic32/files.kconf b/sys/pic32/files.kconf index 1553fdf..9cd7db0 100644 --- a/sys/pic32/files.kconf +++ b/sys/pic32/files.kconf @@ -24,7 +24,7 @@ kernel/kern_subr.c standard kernel/kern_synch.c standard kernel/kern_sysctl.c standard kernel/kern_time.c standard -kernel/rdisk.c standard +#kernel/rdisk.c standard kernel/subr_log.c optional log kernel/subr_prf.c standard kernel/subr_rmap.c standard @@ -77,7 +77,7 @@ pic32/picga.c optional picga pic32/power_control.c optional power pic32/pwm.c optional pwm pic32/rd_mrams.c optional mrams -pic32/rd_sd.c optional sd +pic32/sd.c optional sd pic32/rd_sdramp.c optional sdramp pic32/rd_spirams.c optional spirams pic32/rd_sramc.c optional sramc diff --git a/sys/pic32/fubarino/Makefile b/sys/pic32/fubarino/Makefile index eb28b98..1c87d5a 100644 --- a/sys/pic32/fubarino/Makefile +++ b/sys/pic32/fubarino/Makefile @@ -58,15 +58,15 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o adc.o gpio.o pwm.o rd_sd.o spi.o spi_bus.o \ - uart.o usb_device.o usb_function_cdc.o usb_uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o adc.o \ + gpio.o pwm.o sd.o spi.o spi_bus.o uart.o usb_device.o \ + usb_function_cdc.o usb_uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -78,13 +78,13 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ @@ -92,9 +92,9 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/gpio.c $S/pic32/pwm.c \ - $S/pic32/rd_sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ - $S/pic32/uart.c $S/pic32/usb_device.c \ - $S/pic32/usb_function_cdc.c $S/pic32/usb_uart.c swapunix.c + $S/pic32/sd.c $S/pic32/spi.c $S/pic32/spi_bus.c $S/pic32/uart.c \ + $S/pic32/usb_device.c $S/pic32/usb_function_cdc.c \ + $S/pic32/usb_uart.c swapunix.c # load lines for config "xxx" will be emitted as: # xxx: ${SYSTEM_DEP} swapxxx.o @@ -224,9 +224,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -338,7 +335,7 @@ gpio.o: $S/pic32/gpio.c pwm.o: $S/pic32/pwm.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} spi.o: $S/pic32/spi.c diff --git a/sys/pic32/max32/Makefile b/sys/pic32/max32/Makefile index 7ea2e0f..4bc6152 100644 --- a/sys/pic32/max32/Makefile +++ b/sys/pic32/max32/Makefile @@ -59,15 +59,14 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o adc.o gpio.o pwm.o rd_sd.o spi.o spi_bus.o \ - uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o adc.o \ + gpio.o pwm.o sd.o spi.o spi_bus.o uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -79,13 +78,13 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ @@ -93,8 +92,8 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/gpio.c $S/pic32/pwm.c \ - $S/pic32/rd_sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ - $S/pic32/uart.c swapunix.c + $S/pic32/sd.c $S/pic32/spi.c $S/pic32/spi_bus.c $S/pic32/uart.c \ + swapunix.c # load lines for config "xxx" will be emitted as: # xxx: ${SYSTEM_DEP} swapxxx.o @@ -224,9 +223,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -338,7 +334,7 @@ gpio.o: $S/pic32/gpio.c pwm.o: $S/pic32/pwm.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} spi.o: $S/pic32/spi.c diff --git a/sys/pic32/maximite-color/Makefile b/sys/pic32/maximite-color/Makefile index 910ca44..ee1d756 100644 --- a/sys/pic32/maximite-color/Makefile +++ b/sys/pic32/maximite-color/Makefile @@ -58,15 +58,15 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o adc.o gpio.o pwm.o rd_sd.o spi.o spi_bus.o \ - usb_device.o usb_function_cdc.o usb_uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o adc.o \ + gpio.o pwm.o sd.o spi.o spi_bus.o usb_device.o \ + usb_function_cdc.o usb_uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -78,13 +78,13 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ @@ -92,7 +92,7 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/gpio.c $S/pic32/pwm.c \ - $S/pic32/rd_sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ + $S/pic32/sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ $S/pic32/usb_device.c $S/pic32/usb_function_cdc.c \ $S/pic32/usb_uart.c swapunix.c @@ -224,9 +224,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -338,7 +335,7 @@ gpio.o: $S/pic32/gpio.c pwm.o: $S/pic32/pwm.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} spi.o: $S/pic32/spi.c diff --git a/sys/pic32/maximite/Makefile b/sys/pic32/maximite/Makefile index 85d96d3..bf41556 100644 --- a/sys/pic32/maximite/Makefile +++ b/sys/pic32/maximite/Makefile @@ -58,15 +58,15 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o adc.o gpio.o pwm.o rd_sd.o spi.o spi_bus.o \ - usb_device.o usb_function_cdc.o usb_uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o adc.o \ + gpio.o pwm.o sd.o spi.o spi_bus.o usb_device.o \ + usb_function_cdc.o usb_uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -78,13 +78,13 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ @@ -92,7 +92,7 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/gpio.c $S/pic32/pwm.c \ - $S/pic32/rd_sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ + $S/pic32/sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ $S/pic32/usb_device.c $S/pic32/usb_function_cdc.c \ $S/pic32/usb_uart.c swapunix.c @@ -224,9 +224,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -338,7 +335,7 @@ gpio.o: $S/pic32/gpio.c pwm.o: $S/pic32/pwm.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} spi.o: $S/pic32/spi.c diff --git a/sys/pic32/mmb-mx7/Makefile b/sys/pic32/mmb-mx7/Makefile index 5f25983..d3a22c3 100644 --- a/sys/pic32/mmb-mx7/Makefile +++ b/sys/pic32/mmb-mx7/Makefile @@ -62,15 +62,15 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o adc.o gpio.o pwm.o rd_sd.o spi.o spi_bus.o \ - uart.o usb_device.o usb_function_cdc.o usb_uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o adc.o \ + gpio.o pwm.o sd.o spi.o spi_bus.o uart.o usb_device.o \ + usb_function_cdc.o usb_uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -82,13 +82,13 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ @@ -96,9 +96,9 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/gpio.c $S/pic32/pwm.c \ - $S/pic32/rd_sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ - $S/pic32/uart.c $S/pic32/usb_device.c \ - $S/pic32/usb_function_cdc.c $S/pic32/usb_uart.c swapunix.c + $S/pic32/sd.c $S/pic32/spi.c $S/pic32/spi_bus.c $S/pic32/uart.c \ + $S/pic32/usb_device.c $S/pic32/usb_function_cdc.c \ + $S/pic32/usb_uart.c swapunix.c # load lines for config "xxx" will be emitted as: # xxx: ${SYSTEM_DEP} swapxxx.o @@ -228,9 +228,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -342,7 +339,7 @@ gpio.o: $S/pic32/gpio.c pwm.o: $S/pic32/pwm.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} spi.o: $S/pic32/spi.c diff --git a/sys/pic32/picadillo/Makefile b/sys/pic32/picadillo/Makefile index c00f5cf..b2372dc 100644 --- a/sys/pic32/picadillo/Makefile +++ b/sys/pic32/picadillo/Makefile @@ -50,15 +50,14 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o adc.o hx8357.o pwm.o rd_sd.o spi.o spi_bus.o \ - uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o adc.o \ + hx8357.o pwm.o sd.o spi.o spi_bus.o uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -70,13 +69,13 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ @@ -84,8 +83,8 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/hx8357.c \ - $S/pic32/pwm.c $S/pic32/rd_sd.c $S/pic32/spi.c \ - $S/pic32/spi_bus.c $S/pic32/uart.c swapunix.c + $S/pic32/pwm.c $S/pic32/sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ + $S/pic32/uart.c swapunix.c # load lines for config "xxx" will be emitted as: # xxx: ${SYSTEM_DEP} swapxxx.o @@ -215,9 +214,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -329,7 +325,7 @@ hx8357.o: $S/pic32/hx8357.c pwm.o: $S/pic32/pwm.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} spi.o: $S/pic32/spi.c diff --git a/sys/pic32/pinguino-micro/Makefile b/sys/pic32/pinguino-micro/Makefile index 454b7d6..f1cd767 100644 --- a/sys/pic32/pinguino-micro/Makefile +++ b/sys/pic32/pinguino-micro/Makefile @@ -56,15 +56,15 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o adc.o gpio.o pwm.o rd_sd.o spi.o spi_bus.o \ - usb_device.o usb_function_cdc.o usb_uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o adc.o \ + gpio.o pwm.o sd.o spi.o spi_bus.o usb_device.o \ + usb_function_cdc.o usb_uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -76,13 +76,13 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ @@ -90,7 +90,7 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/gpio.c $S/pic32/pwm.c \ - $S/pic32/rd_sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ + $S/pic32/sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ $S/pic32/usb_device.c $S/pic32/usb_function_cdc.c \ $S/pic32/usb_uart.c swapunix.c @@ -222,9 +222,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -336,7 +333,7 @@ gpio.o: $S/pic32/gpio.c pwm.o: $S/pic32/pwm.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} spi.o: $S/pic32/spi.c diff --git a/sys/pic32/rd_sd.c b/sys/pic32/sd.c similarity index 53% rename from sys/pic32/rd_sd.c rename to sys/pic32/sd.c index 9161d7b..b7affb4 100644 --- a/sys/pic32/rd_sd.c +++ b/sys/pic32/sd.c @@ -34,10 +34,11 @@ #include #include #include -#include +#include #include #include #include +#include /* * Two SD/MMC disks on SPI. @@ -50,10 +51,10 @@ #define SECTSIZE 512 #define SPI_ENHANCED /* use SPI fifo */ #ifndef SD0_MHZ -#define SD0_MHZ 13 /* speed 13.33 MHz */ +#define SD0_MHZ 13 /* speed 13.33 MHz */ #endif #ifndef SD1_MHZ -#define SD1_MHZ 13 /* speed 13.33 MHz */ +#define SD1_MHZ 13 /* speed 13.33 MHz */ #endif #define TIMO_WAIT_WDONE 400000 @@ -66,9 +67,38 @@ #define TIMO_SEND_CSD 6000 #define TIMO_WAIT_WSTOP 5000 -int sd_type[NSD]; /* Card type */ -struct spiio sd_io[NSD]; /* Data for SPI driver */ -int sd_dkn = -1; /* Statistics slot number */ +#define sdunit(dev) ((minor(dev) & 8) >> 3) +#define sdpart(dev) ((minor(dev) & 7)) +#define RAWPART 0 /* 'x' partition */ + +#define NPARTITIONS 4 +#define MBR_MAGIC 0xaa55 + +/* + * Driver's data per disk drive. + */ +struct disk { + /* + * Partition table. + */ + struct diskpart part[NPARTITIONS+1]; + + /* + * Card type. + */ + int card_type; +#define TYPE_UNKNOWN 0 +#define TYPE_SD_LEGACY 1 +#define TYPE_SD_II 2 +#define TYPE_SDHC 3 + + struct spiio spiio; /* interface to SPI port */ + int label_writable; /* is sector 0 writable? */ + int dkindex; /* disk index for statistics */ + u_int openpart; /* all partitions open on this drive */ +}; + +struct disk sddrives[NSD]; /* Table of units */ int sd_timo_cmd; /* Max timeouts, for sysctl */ int sd_timo_send_op; @@ -105,8 +135,17 @@ int sd_timo_wait_widle; #define STOP_TRAN_TOKEN 0xFD /* stop token for write multiple */ #define WRITE_MULTIPLE_TOKEN 0xFC /* start data for write multiple */ -// Add extra clocks after a deselect -void sd_deselect(struct spiio *io) +const struct devspec sddevs[] = { + { 0, "sd0" }, + { 1, "sd0a" }, { 2, "sd0b" }, { 3, "sd0c" }, { 4, "sd0d" }, + { 0, 0 } +}; + +/* + * Release the card's /CS signal. + * Add extra clocks after a deselect. + */ +static void card_release(struct spiio *io) { spi_deselect(io); spi_transfer(io, 0xFF); @@ -115,11 +154,10 @@ void sd_deselect(struct spiio *io) /* * Wait while busy, up to 300 msec. */ - -static void spi_wait_ready (int unit, int limit, int *maxcount) +static void card_wait_ready(int unit, int limit, int *maxcount) { int i; - struct spiio *io = &sd_io[unit]; + struct spiio *io = &sddrives[unit].spiio; spi_transfer(io, 0xFF); for (i=0; icard_type = TYPE_UNKNOWN; do { /* Unselect the card. */ - sd_deselect(io); + card_release(io); /* Send 80 clock cycles for start up. */ for (i=0; i<10; i++) @@ -224,9 +262,9 @@ int card_init(int unit) timeout--; reply = card_cmd(unit, CMD_GO_IDLE, 0); - } while ((reply != 0x01) && (timeout != 0)); + } while (reply != 1 && timeout != 0); - sd_deselect(io); + card_release(io); if (reply != 1) { /* It must return Idle. */ @@ -239,37 +277,37 @@ int card_init(int unit) if (reply & 4) { /* Illegal command: card type 1. */ - sd_deselect(io); - sd_type[unit] = 1; + card_release(io); + du->card_type = TYPE_SD_LEGACY; } else { response[0] = spi_transfer(io, 0xFF); response[1] = spi_transfer(io, 0xFF); response[2] = spi_transfer(io, 0xFF); response[3] = spi_transfer(io, 0xFF); - sd_deselect(io); + card_release(io); if (response[3] != 0xAA) { - printf ("sd%d: cannot detect card type, response=%02x-%02x-%02x-%02x\n", + printf("sd%d: cannot detect card type, response=%02x-%02x-%02x-%02x\n", unit, response[0], response[1], response[2], response[3]); return 0; } - sd_type[unit] = 2; + du->card_type = TYPE_SD_II; } /* Send repeatedly SEND_OP until Idle terminates. */ for (i=0; ; i++) { spi_select(io); - card_cmd(unit,CMD_APP, 0); - reply = card_cmd(unit,CMD_SEND_OP_SDC, - (sd_type[unit] == 2) ? 0x40000000 : 0); + card_cmd(unit, CMD_APP, 0); + reply = card_cmd(unit, CMD_SEND_OP_SDC, + (du->card_type == TYPE_SD_II) ? 0x40000000 : 0); spi_select(io); if (reply == 0) break; if (i >= TIMO_SEND_OP) { /* Init timed out. */ - printf ("card_init: SEND_OP timed out, reply = %d\n", reply); + printf("card_init: SEND_OP timed out, reply = %d\n", reply); return 0; } } @@ -277,24 +315,24 @@ int card_init(int unit) sd_timo_send_op = i; /* If SD2 read OCR register to check for SDHC card. */ - if (sd_type[unit] == 2) + if (du->card_type == TYPE_SD_II) { spi_select(io); reply = card_cmd(unit, CMD_READ_OCR, 0); if (reply != 0) { - sd_deselect(io); - printf ("sd%d: READ_OCR failed, reply=%02x\n", unit, reply); + card_release(io); + printf("sd%d: READ_OCR failed, reply=%02x\n", unit, reply); return 0; } response[0] = spi_transfer(io, 0xFF); response[1] = spi_transfer(io, 0xFF); response[2] = spi_transfer(io, 0xFF); response[3] = spi_transfer(io, 0xFF); - sd_deselect(io); + card_release(io); if ((response[0] & 0xC0) == 0xC0) { - sd_type[unit] = 3; + du->card_type = TYPE_SDHC; } } @@ -304,36 +342,34 @@ int card_init(int unit) } /* - * Get number of sectors on the disk. + * Get disk size in kbytes. * Return nonzero if successful. */ -int sdsize(int unit) +static int card_size(int unit) { unsigned char csd [16]; unsigned csize, n; int reply, i; int nsectors; - struct spiio *io = &sd_io[unit]; + struct spiio *io = &sddrives[unit].spiio; spi_select(io); - reply = card_cmd(unit,CMD_SEND_CSD, 0); - if (reply != 0) - { + reply = card_cmd(unit, CMD_SEND_CSD, 0); + if (reply != 0) { /* Command rejected. */ - sd_deselect(io); + card_release(io); return 0; } + /* Wait for a response. */ - for (i=0; ; i++) - { + for (i=0; ; i++) { reply = spi_transfer(io, 0xFF); if (reply == DATA_START_BLOCK) break; - if (i >= TIMO_SEND_CSD) - { + if (i >= TIMO_SEND_CSD) { /* Command timed out. */ - sd_deselect(io); - printf ("sd%d: card_size: SEND_CSD timed out, reply = %d\n", + card_release(io); + printf("sd%d: card_size: SEND_CSD timed out, reply = %d\n", unit, reply); return 0; } @@ -342,8 +378,7 @@ int sdsize(int unit) sd_timo_send_csd = i; /* Read data. */ - for (i=0; i> 6) - { - case 1: /* SDC ver 2.00 */ - csize = csd[9] + (csd[8] << 8) + 1; - nsectors = csize << 10; - break; - case 0: /* SDC ver 1.XX or MMC. */ - n = (csd[5] & 15) + ((csd[10] & 128) >> 7) + ((csd[9] & 3) << 1) + 2; - csize = (csd[8] >> 6) + (csd[7] << 2) + ((csd[6] & 3) << 10) + 1; - nsectors = csize << (n - 9); - break; - default: /* Unknown version. */ - return 0; + switch (csd[0] >> 6) { + case 1: /* SDC ver 2.00 */ + csize = csd[9] + (csd[8] << 8) + 1; + nsectors = csize << 10; + break; + case 0: /* SDC ver 1.XX or MMC. */ + n = (csd[5] & 15) + ((csd[10] & 128) >> 7) + ((csd[9] & 3) << 1) + 2; + csize = (csd[8] >> 6) + (csd[7] << 2) + ((csd[6] & 3) << 10) + 1; + nsectors = csize << (n - 9); + break; + default: /* Unknown version. */ + return 0; } - return nsectors>>1; + return nsectors >> 1; } /* * Read a block of data. * Return nonzero if successful. */ -int card_read(int unit, unsigned int offset, char *data, unsigned int bcount) +static int card_read(int unit, unsigned int offset, char *data, unsigned int bcount) { int reply, i; - struct spiio *io = &sd_io[unit]; + struct spiio *io = &sddrives[unit].spiio; + struct disk *du = &sddrives[unit]; /* Send read-multiple command. */ spi_select(io); - if (sd_type[unit] != 3) + if (du->card_type != TYPE_SDHC) offset <<= 9; reply = card_cmd(unit, CMD_READ_MULTIPLE, offset<<1); if (reply != 0) { /* Command rejected. */ - printf ("sd%d: card_read: bad READ_MULTIPLE reply = %d, offset = %08x\n", + printf("sd%d: card_read: bad READ_MULTIPLE reply = %d, offset = %08x\n", unit, reply, offset<<1); - sd_deselect(io); + card_release(io); return 0; } @@ -407,9 +442,9 @@ again: if (i >= TIMO_READ) { /* Command timed out. */ - printf ("sd%d: card_read: READ_MULTIPLE timed out, reply = %d\n", + printf("sd%d: card_read: READ_MULTIPLE timed out, reply = %d\n", unit, reply); - sd_deselect(io); + card_release(io); return 0; } } @@ -419,7 +454,7 @@ again: /* Read data. */ if (bcount >= SECTSIZE) { - spi_bulk_read_32_be(io, SECTSIZE,data); + spi_bulk_read_32_be(io, SECTSIZE, data); data += SECTSIZE; } else { spi_bulk_read(io, bcount, (unsigned char *)data); @@ -440,7 +475,7 @@ again: /* Stop a read-multiple sequence. */ card_cmd(unit, CMD_STOP, 0); - sd_deselect(io); + card_release(io); return 1; } @@ -448,11 +483,11 @@ again: * Write a block of data. * Return nonzero if successful. */ -int -card_write (int unit, unsigned offset, char *data, unsigned bcount) +static int card_write(int unit, unsigned offset, char *data, unsigned bcount) { unsigned reply, i; - struct spiio *io = &sd_io[unit]; + struct spiio *io = &sddrives[unit].spiio; + struct disk *du = &sddrives[unit]; /* Send pre-erase count. */ spi_select(io); @@ -461,27 +496,28 @@ card_write (int unit, unsigned offset, char *data, unsigned bcount) if (reply != 0) { /* Command rejected. */ - sd_deselect(io); + card_release(io); printf("sd%d: card_write: bad SET_WBECNT reply = %02x, count = %u\n", unit, reply, (bcount + SECTSIZE - 1) / SECTSIZE); return 0; } /* Send write-multiple command. */ - if (sd_type[unit] != 3) offset <<= 9; + if (du->card_type != TYPE_SDHC) + offset <<= 9; reply = card_cmd(unit, CMD_WRITE_MULTIPLE, offset<<1); if (reply != 0) { /* Command rejected. */ - sd_deselect(io); + card_release(io); printf("sd%d: card_write: bad WRITE_MULTIPLE reply = %02x\n", unit, reply); return 0; } - sd_deselect(io); + card_release(io); again: /* Select, wait while busy. */ spi_select(io); - spi_wait_ready(unit, TIMO_WAIT_WDATA, &sd_timo_wait_wdata); + card_wait_ready(unit, TIMO_WAIT_WDATA, &sd_timo_wait_wdata); /* Send data. */ spi_transfer(io, WRITE_MULTIPLE_TOKEN); @@ -504,16 +540,16 @@ again: if ((reply & 0x1f) != 0x05) { /* Data rejected. */ - sd_deselect(io); - printf("sd%d: card_write: data rejected, reply = %02x\n", unit,reply); + card_release(io); + printf("sd%d: card_write: data rejected, reply = %02x\n", unit, reply); return 0; } /* Wait for write completion. */ int x = spl0(); - spi_wait_ready(unit, TIMO_WAIT_WDONE, &sd_timo_wait_wdone); + card_wait_ready(unit, TIMO_WAIT_WDONE, &sd_timo_wait_wdone); splx(x); - sd_deselect(io); + card_release(io); if (bcount > SECTSIZE) { @@ -524,31 +560,28 @@ again: /* Stop a write-multiple sequence. */ spi_select(io); - spi_wait_ready(unit, TIMO_WAIT_WSTOP, &sd_timo_wait_wstop); + card_wait_ready(unit, TIMO_WAIT_WSTOP, &sd_timo_wait_wstop); spi_transfer(io, STOP_TRAN_TOKEN); - spi_wait_ready(unit, TIMO_WAIT_WIDLE, &sd_timo_wait_widle); - sd_deselect(io); + card_wait_ready(unit, TIMO_WAIT_WIDLE, &sd_timo_wait_widle); + card_release(io); return 1; } -void sd_preinit (int unit) -{ -} - /* * Detect a card. */ -int sdinit (int unit, int flag) +static int sd_setup(int unit) { - struct spiio *io = &sd_io[unit]; - unsigned nsectors; + struct spiio *io = &sddrives[unit].spiio; + struct disk *du = &sddrives[unit]; + u_short buf[256]; #ifdef SD0_ENA_PORT /* On Duinomite Mega board, pin B13 set low * enables a +3.3V power to SD card. */ if (unit == 0) { LAT_CLR(SD0_ENA_PORT) = 1 << SD0_ENA_PIN; - udelay (1000); + udelay(1000); } #endif @@ -557,40 +590,70 @@ int sdinit (int unit, int flag) * enables a +3.3V power to SD card. */ if (unit == 1) { LAT_CLR(SD1_ENA_PORT) = 1 << SD1_ENA_PIN; - udelay (1000); + udelay(1000); } #endif - if (!card_init(unit)) - { - printf ("sd%d: no SD/MMC card detected\n", unit); - return ENODEV; + if (! card_init(unit)) { + printf("sd%d: no SD/MMC card detected\n", unit); + return 0; } - if ((nsectors=sdsize(unit))==0) - { - printf ("sd%d: cannot get card size\n", unit); - return ENODEV; + /* Get the size of raw partition. */ + bzero(du->part, sizeof(du->part)); + du->part[RAWPART].dp_offset = 0; + du->part[RAWPART].dp_size = card_size(unit); + if (du->part[RAWPART].dp_size == 0) { + printf("sd%d: cannot get card size\n", unit); + return 0; } - if (! (flag & S_SILENT)) - { - printf ("sd%d: type %s, size %u kbytes, speed %u Mbit/sec\n", unit, - sd_type[unit]==3 ? "SDHC" : - sd_type[unit]==2 ? "II" : "I", - nsectors, - spi_get_brg(io) / 1000); + printf("sd%d: type %s, size %u kbytes, speed %u Mbit/sec\n", unit, + (du->card_type == TYPE_SDHC) ? "SDHC" : + (du->card_type == TYPE_SD_II) ? "II" : "I", + du->part[RAWPART].dp_size / 2, + spi_get_brg(io) / 1000); + + /* Read partition table. */ + int s = splbio(); + if (! card_read(unit, 0, (char*)buf, sizeof(buf))) { + splx(s); + printf("sd%d: cannot read partition table\n", unit); + return 0; } - DEBUG("sd%d: init done\n",unit); - return 0; + splx(s); + if (buf[255] == MBR_MAGIC) { + bcopy(&buf[223], &du->part[1], 64); +#if 1 + int i; + for (i=1; i<=NPARTITIONS; i++) { + if (du->part[i].dp_type != 0) + printf("sd%d%c: partition type %02x, sector %u, size %u kbytes\n", + unit, i+'a'-1, du->part[i].dp_type, + du->part[i].dp_offset, + du->part[i].dp_size / 2); + } +#endif + } + return 1; } -int sddeinit(int unit) +/* + * Disable power to the SD card. + */ +static void sd_release(int unit) { + struct disk *du = &sddrives[unit]; + + /* Forget the partition table. */ + du->part[RAWPART].dp_size = 0; + #ifdef SD0_ENA_PORT /* On Duinomite Mega board, pin B13 set low * enables a +3.3V power to SD card. */ if (unit == 0) { + /* Enable SD0 phy - pin is assumed to be active low */ + TRIS_CLR(SD0_ENA_PORT) = 1 << SD0_ENA_PIN; LAT_SET(SD0_ENA_PORT) = 1 << SD0_ENA_PIN; - udelay (1000); + udelay(1000); } #endif @@ -598,30 +661,223 @@ int sddeinit(int unit) /* On Duinomite Mega board, pin B13 set low * enables a +3.3V power to SD card. */ if (unit == 1) { + /* Enable SD1 phy - pin is assumed to be active low */ + TRIS_CLR(SD1_ENA_PORT) = 1 << SD1_ENA_PIN; LAT_SET(SD1_ENA_PORT) = 1 << SD1_ENA_PIN; - udelay (1000); + udelay(1000); } #endif +} + +int sdopen(dev_t dev, int flags, int mode) +{ + int unit = sdunit(dev); + int part = sdpart(dev); + struct disk *du = &sddrives[unit]; + unsigned mask, i; + + if (unit >= NSD || part > NPARTITIONS) + return ENXIO; + + /* + * Setup the SD card interface. + */ + if (du->part[RAWPART].dp_size == 0) { + if (! sd_setup(unit)) { + return ENODEV; + } + } + mask = 1 << part; + + /* + * Warn if a partion is opened + * that overlaps another partition which is open + * unless one is the "raw" partition (whole disk). + */ + if (part != RAWPART && (du->openpart & mask) == 0) { + unsigned start = du->part[part].dp_offset; + unsigned end = start + du->part[part].dp_size; + + /* Check for overlapped partitions. */ + for (i=0; i<=NPARTITIONS; i++) { + struct diskpart *pp = &du->part[i]; + + if (i == part || i == RAWPART) + continue; + + if (pp->dp_offset + pp->dp_size <= start || + pp->dp_offset >= end) + continue; + + if (du->openpart & (1 << i)) + printf("sd%d%c: overlaps open partition (sd%d%c)\n", + unit, part + 'a' - 1, + unit, pp - du->part + 'a' - 1); + } + } + du->openpart |= mask; +//printf("--- %s: OK\n", __func__); return 0; } -int sdopen(int unit, int flags, int mode) +int sdclose(dev_t dev, int mode, int flag) { - DEBUG("sd%d: open\n",unit); + int unit = sdunit(dev); + int part = sdpart(dev); + struct disk *du = &sddrives[unit]; + + if (unit >= NSD || part > NPARTITIONS) + return ENODEV; + + du->openpart &= ~(1 << part); + if (du->openpart == 0) { + /* All partitions closed. + * Release the SD card. */ + sd_release(unit); + } return 0; } +/* + * Get disk size in kbytes. + * Return nonzero if successful. + */ +daddr_t sdsize(dev_t dev) +{ + int unit = sdunit(dev); + int part = sdpart(dev); + struct disk *du = &sddrives[unit]; + + if (unit >= NSD || part > NPARTITIONS || du->openpart == 0) + return 0; + + return du->part[part].dp_size; +} + +void sdstrategy(struct buf *bp) +{ + int unit = sdunit(bp->b_dev); + struct disk *du = &sddrives[unit]; + int offset = bp->b_blkno; + int s; + + /* + * Determine the size of the transfer, and make sure it is + * within the boundaries of the partition. + */ + struct diskpart *p = &du->part[sdpart(bp->b_dev)]; + long nblk = btod(bp->b_bcount); + + offset += p->dp_offset >> 1; +//printf("--- %s: sdpart=%u, offset=%u, psize=%u, nblk=%u\n", __func__, sdpart(bp->b_dev), offset, p->dp_size, nblk); + if (offset == 0 && + ! (bp->b_flags & B_READ) && ! du->label_writable) + { + /* Write to partition table not allowed. */ + bp->b_error = EROFS; +bad: bp->b_flags |= B_ERROR; + biodone(bp); +//printf("--- %s: error\n", __func__); + return; + } + if (bp->b_blkno + nblk > p->dp_size) { + /* if exactly at end of disk, return an EOF */ + if (bp->b_blkno == p->dp_size) { + bp->b_resid = bp->b_bcount; + biodone(bp); +//printf("--- %s: done EOF\n", __func__); + return; + } + /* or truncate if part of it fits */ + nblk = p->dp_size - bp->b_blkno; + if (nblk <= 0) { + bp->b_error = EINVAL; + goto bad; + } + bp->b_bcount = nblk << DEV_BSHIFT; + } + + if (bp->b_dev == swapdev) { + led_control(LED_SWAP, 1); + } else { + led_control(LED_DISK, 1); + } + + s = splbio(); +#ifdef UCB_METER + if (du->dkindex >= 0) { + dk_busy |= 1 << du->dkindex; + dk_xfer[du->dkindex]++; + dk_bytes[du->dkindex] += bp->b_bcount; + } +#endif + + if (bp->b_flags & B_READ) { + card_read(unit, offset, bp->b_addr, bp->b_bcount); + } else { + card_write(unit, offset, bp->b_addr, bp->b_bcount); + } + + biodone(bp); + if (bp->b_dev == swapdev) { + led_control(LED_SWAP, 0); + } else { + led_control(LED_DISK, 0); + } +#ifdef UCB_METER + if (du->dkindex >= 0) + dk_busy &= ~(1 << du->dkindex); +#endif + splx(s); +//printf("--- %s: OK\n", __func__); +} + +int sdioctl(dev_t dev, u_int cmd, caddr_t addr, int flag) +{ + int unit = sdunit(dev); + int part = sdpart(dev); + struct diskpart *dp; + int i, error = 0; + + switch (cmd) { + + case DIOCGETMEDIASIZE: + /* Get disk size in kbytes. */ + dp = &sddrives[unit].part[part]; + *(int*) addr = dp->dp_size; + break; + + case DIOCREINIT: + for (i=0; i<=NPARTITIONS; i++) + bflush(makedev(major(dev), i)); + sd_setup(unit); + break; + + case DIOCGETPART: + /* Get partition table entry. */ + dp = &sddrives[unit].part[part]; +//printf("--- %s: DIOCGETPART unit = %d, part = %d, type = %u, size = %u\n", __func__, unit, part, dp->dp_type, dp->dp_size); + *(struct diskpart*) addr = *dp; + break; + + default: + error = EINVAL; + break; + } + return error; +} + /* * Test to see if device is present. * Return true if found and initialized ok. */ static int -sdprobe(config) +sd_probe(config) struct conf_device *config; { int unit = config->dev_unit; int cs = config->dev_pins[0]; - struct spiio *io = &sd_io[unit]; + struct spiio *io = &sddrives[unit].spiio; if (unit < 0 || unit >= NSD) return 0; @@ -637,29 +893,25 @@ sdprobe(config) return 0; } -#ifdef SD0_ENA_PORT - if (unit == 0) { - /* Enable SD0 phy - pin is assumed to be active low */ - TRIS_CLR(SD0_ENA_PORT) = 1 << SD0_ENA_PIN; - LAT_CLR(SD0_ENA_PORT) = 1 << SD0_ENA_PIN; - udelay (1000); - } -#endif - -#ifdef SD1_ENA_PORT - if (unit == 1) { - /* Enable SD1 phy - pin is assumed to be active low */ - TRIS_CLR(SD1_ENA_PORT) = 1 << SD1_ENA_PIN; - LAT_CLR(SD1_ENA_PORT) = 1 << SD1_ENA_PIN; - udelay (1000); - } -#endif + /* Disable power to the SD card. */ + sd_release(unit); spi_brg(io, SD0_MHZ * 1000); spi_set(io, PIC32_SPICON_CKE); + +#ifdef UCB_METER + dk_alloc(&sddrives[unit].dkindex, 1, sddevs[unit].devname); +#endif return 1; } struct driver sddriver = { - "sd", sdprobe, + "sd", sd_probe, }; + +#if 0 +//TODO: + +sdclose, + +#endif diff --git a/sys/pic32/sd.h b/sys/pic32/sd.h new file mode 100644 index 0000000..33174e3 --- /dev/null +++ b/sys/pic32/sd.h @@ -0,0 +1,14 @@ +#ifndef _SD_H +#define _SD_H + +#ifdef KERNEL +extern int sdopen(dev_t dev, int flag, int mode); +extern int sdclose(dev_t dev, int flag, int mode); +extern daddr_t sdsize(dev_t dev); +extern void sdstrategy(register struct buf *bp); +extern int sdioctl (dev_t dev, register u_int cmd, caddr_t addr, int flag); + +extern const struct devspec sddevs[]; +#endif + +#endif diff --git a/sys/pic32/sdxl/Makefile b/sys/pic32/sdxl/Makefile index 6a32c53..9752905 100644 --- a/sys/pic32/sdxl/Makefile +++ b/sys/pic32/sdxl/Makefile @@ -58,15 +58,15 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o adc.o gpio.o pwm.o rd_sd.o spi.o spi_bus.o \ - uart.o usb_device.o usb_function_cdc.o usb_uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o adc.o \ + gpio.o pwm.o sd.o spi.o spi_bus.o uart.o usb_device.o \ + usb_function_cdc.o usb_uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -78,13 +78,13 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ @@ -92,9 +92,9 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/gpio.c $S/pic32/pwm.c \ - $S/pic32/rd_sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ - $S/pic32/uart.c $S/pic32/usb_device.c \ - $S/pic32/usb_function_cdc.c $S/pic32/usb_uart.c swapunix.c + $S/pic32/sd.c $S/pic32/spi.c $S/pic32/spi_bus.c $S/pic32/uart.c \ + $S/pic32/usb_device.c $S/pic32/usb_function_cdc.c \ + $S/pic32/usb_uart.c swapunix.c # load lines for config "xxx" will be emitted as: # xxx: ${SYSTEM_DEP} swapxxx.o @@ -224,9 +224,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -338,7 +335,7 @@ gpio.o: $S/pic32/gpio.c pwm.o: $S/pic32/pwm.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} spi.o: $S/pic32/spi.c diff --git a/sys/pic32/starter-kit/Makefile b/sys/pic32/starter-kit/Makefile index 36780fb..71aa999 100644 --- a/sys/pic32/starter-kit/Makefile +++ b/sys/pic32/starter-kit/Makefile @@ -58,15 +58,15 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o adc.o gpio.o pwm.o rd_sd.o spi.o spi_bus.o \ - usb_device.o usb_function_cdc.o usb_uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o adc.o \ + gpio.o pwm.o sd.o spi.o spi_bus.o usb_device.o \ + usb_function_cdc.o usb_uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -78,13 +78,13 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ @@ -92,7 +92,7 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/gpio.c $S/pic32/pwm.c \ - $S/pic32/rd_sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ + $S/pic32/sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ $S/pic32/usb_device.c $S/pic32/usb_function_cdc.c \ $S/pic32/usb_uart.c swapunix.c @@ -224,9 +224,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -338,7 +335,7 @@ gpio.o: $S/pic32/gpio.c pwm.o: $S/pic32/pwm.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} spi.o: $S/pic32/spi.c diff --git a/sys/pic32/swap.c b/sys/pic32/swap.c index 36b01ac..2271868 100644 --- a/sys/pic32/swap.c +++ b/sys/pic32/swap.c @@ -12,7 +12,7 @@ #include #include #include -#include +#include #ifndef NTMP #define NTMP 3 @@ -210,7 +210,7 @@ int swcioctl (dev_t dev, register u_int cmd, caddr_t addr, int flag) } break; - case RDGETMEDIASIZE: + case DIOCGETMEDIASIZE: *uival = swsize(dev); break; } diff --git a/sys/pic32/ubw32/Makefile b/sys/pic32/ubw32/Makefile index 185fa22..069619f 100644 --- a/sys/pic32/ubw32/Makefile +++ b/sys/pic32/ubw32/Makefile @@ -61,15 +61,15 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o adc.o gpio.o pwm.o rd_sd.o spi.o spi_bus.o \ - usb_device.o usb_function_cdc.o usb_uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o adc.o \ + gpio.o pwm.o sd.o spi.o spi_bus.o usb_device.o \ + usb_function_cdc.o usb_uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -81,13 +81,13 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ @@ -95,7 +95,7 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/gpio.c $S/pic32/pwm.c \ - $S/pic32/rd_sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ + $S/pic32/sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ $S/pic32/usb_device.c $S/pic32/usb_function_cdc.c \ $S/pic32/usb_uart.c swapunix.c @@ -227,9 +227,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -341,7 +338,7 @@ gpio.o: $S/pic32/gpio.c pwm.o: $S/pic32/pwm.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} spi.o: $S/pic32/spi.c diff --git a/sys/pic32/wf32/Makefile b/sys/pic32/wf32/Makefile index afe97ef..3c64347 100644 --- a/sys/pic32/wf32/Makefile +++ b/sys/pic32/wf32/Makefile @@ -59,15 +59,14 @@ OBJS = exec_aout.o exec_conf.o exec_elf.o exec_script.o exec_subr.o \ init_main.o init_sysent.o kern_clock.o kern_descrip.o \ kern_exec.o kern_exit.o kern_fork.o kern_mman.o kern_proc.o \ kern_prot.o kern_prot2.o kern_resource.o kern_sig.o kern_sig2.o \ - kern_subr.o kern_synch.o kern_sysctl.o kern_time.o rdisk.o \ - subr_prf.o subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o \ - sys_process.o syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o \ - ufs_bio.o ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o \ - ufs_mount.o ufs_namei.o ufs_subr.o ufs_syscalls.o \ - ufs_syscalls2.o vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o \ - clock.o cons.o devsw.o exception.o machdep.o mem.o signal.o \ - swap.o sysctl.o adc.o gpio.o pwm.o rd_sd.o spi.o spi_bus.o \ - uart.o + kern_subr.o kern_synch.o kern_sysctl.o kern_time.o subr_prf.o \ + subr_rmap.o sys_generic.o sys_inode.o sys_pipe.o sys_process.o \ + syscalls.o tty.o tty_subr.o tty_tty.o ufs_alloc.o ufs_bio.o \ + ufs_bmap.o ufs_dsort.o ufs_fio.o ufs_inode.o ufs_mount.o \ + ufs_namei.o ufs_subr.o ufs_syscalls.o ufs_syscalls2.o \ + vfs_vnops.o vm_sched.o vm_swap.o vm_swp.o clock.o cons.o devsw.o \ + exception.o machdep.o mem.o signal.o swap.o sysctl.o adc.o \ + gpio.o pwm.o sd.o spi.o spi_bus.o uart.o CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/exec_script.c $S/kernel/exec_subr.c \ @@ -79,13 +78,13 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/kernel/kern_prot2.c $S/kernel/kern_resource.c \ $S/kernel/kern_sig.c $S/kernel/kern_sig2.c $S/kernel/kern_subr.c \ $S/kernel/kern_synch.c $S/kernel/kern_sysctl.c \ - $S/kernel/kern_time.c $S/kernel/rdisk.c $S/kernel/subr_prf.c \ - $S/kernel/subr_rmap.c $S/kernel/sys_generic.c \ - $S/kernel/sys_inode.c $S/kernel/sys_pipe.c \ - $S/kernel/sys_process.c $S/kernel/syscalls.c $S/kernel/tty.c \ - $S/kernel/tty_subr.c $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c \ - $S/kernel/ufs_bio.c $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c \ - $S/kernel/ufs_fio.c $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ + $S/kernel/kern_time.c $S/kernel/subr_prf.c $S/kernel/subr_rmap.c \ + $S/kernel/sys_generic.c $S/kernel/sys_inode.c \ + $S/kernel/sys_pipe.c $S/kernel/sys_process.c \ + $S/kernel/syscalls.c $S/kernel/tty.c $S/kernel/tty_subr.c \ + $S/kernel/tty_tty.c $S/kernel/ufs_alloc.c $S/kernel/ufs_bio.c \ + $S/kernel/ufs_bmap.c $S/kernel/ufs_dsort.c $S/kernel/ufs_fio.c \ + $S/kernel/ufs_inode.c $S/kernel/ufs_mount.c \ $S/kernel/ufs_namei.c $S/kernel/ufs_subr.c \ $S/kernel/ufs_syscalls.c $S/kernel/ufs_syscalls2.c \ $S/kernel/vfs_vnops.c $S/kernel/vm_sched.c $S/kernel/vm_swap.c \ @@ -93,8 +92,8 @@ CFILES = $S/kernel/exec_aout.c $S/kernel/exec_conf.c $S/kernel/exec_elf.c \ $S/pic32/devsw.c $S/pic32/exception.c $S/pic32/machdep.c \ $S/pic32/mem.c $S/pic32/signal.c $S/pic32/swap.c \ $S/pic32/sysctl.c $S/pic32/adc.c $S/pic32/gpio.c $S/pic32/pwm.c \ - $S/pic32/rd_sd.c $S/pic32/spi.c $S/pic32/spi_bus.c \ - $S/pic32/uart.c swapunix.c + $S/pic32/sd.c $S/pic32/spi.c $S/pic32/spi_bus.c $S/pic32/uart.c \ + swapunix.c # load lines for config "xxx" will be emitted as: # xxx: ${SYSTEM_DEP} swapxxx.o @@ -224,9 +223,6 @@ kern_sysctl.o: $S/kernel/kern_sysctl.c kern_time.o: $S/kernel/kern_time.c ${COMPILE_C} -rdisk.o: $S/kernel/rdisk.c - ${COMPILE_C} - subr_prf.o: $S/kernel/subr_prf.c ${COMPILE_C} @@ -338,7 +334,7 @@ gpio.o: $S/pic32/gpio.c pwm.o: $S/pic32/pwm.c ${COMPILE_C} -rd_sd.o: $S/pic32/rd_sd.c +sd.o: $S/pic32/sd.c ${COMPILE_C} spi.o: $S/pic32/spi.c