New PS2 FAT file-system driver wannabe
Posted: Mon Sep 06, 2004 4:07 am
http://606u.dir.bg/ps2/fat/ps2_fat-20040905.tgz is the current release of my FAT driver with writing support for PS2. It is not working as a file-system driver yet (that means, that you cannot use I/O calls, like open, read, write and close, yet), so it is too early to go party.
Task is separated on two major parts: a module handling USB mass storage in general and a FAT file-system driver (which is yet to be completed). Whether to separate partitioning support from file-system is yet undecided.
UMS module (read USB mass storage) handles communication with mass storage devices, includes LUN support and is not limited to a single device. It publishes a subscription point, where every module interested could subscribe for plug-in/plug-out events. There is also an interface to handle per-sector I/O (no `O' yet).
FAT file-system module will implement real file-system support and will implement standard I/O calls, but so far it would only ``dir'' the root directory of the connected USB device.
How to use: compile IOP modules and load them on the IOP (`make load' would do that via ps2client; I was unable to start it with naplink). When modules are running, upon plugging a USB mass storage device you'll get the contents of the root directories, for each FAT partition and for each LUN of the device, on the debug console.
Things whose are still on the whiteboard:
- must the driver automatically mount the plugged in device or that should be done after a manual call?
- if the driver would handle mounts automatically, how should the partitions be accessed? `fatfs1:', `fatfs2:',... or `C:', `D:',...?
- how to notify EE `clients' of plug-in/out events?
Feel invited to give it a try and to post your remarks and ideas.
Regards, b.
PS: Driver has been tested with a Lexar JumpDrive 128MB USB 2.0, USB 1.1 PQI 7in1 flash card reader with 16MB of build-in memory, with a compact-flash and multi-media cards plugged-in, and an external USB 2.0 HDD box with 20GB Quantum whatever.
Task is separated on two major parts: a module handling USB mass storage in general and a FAT file-system driver (which is yet to be completed). Whether to separate partitioning support from file-system is yet undecided.
UMS module (read USB mass storage) handles communication with mass storage devices, includes LUN support and is not limited to a single device. It publishes a subscription point, where every module interested could subscribe for plug-in/plug-out events. There is also an interface to handle per-sector I/O (no `O' yet).
FAT file-system module will implement real file-system support and will implement standard I/O calls, but so far it would only ``dir'' the root directory of the connected USB device.
How to use: compile IOP modules and load them on the IOP (`make load' would do that via ps2client; I was unable to start it with naplink). When modules are running, upon plugging a USB mass storage device you'll get the contents of the root directories, for each FAT partition and for each LUN of the device, on the debug console.
Things whose are still on the whiteboard:
- must the driver automatically mount the plugged in device or that should be done after a manual call?
- if the driver would handle mounts automatically, how should the partitions be accessed? `fatfs1:', `fatfs2:',... or `C:', `D:',...?
- how to notify EE `clients' of plug-in/out events?
Feel invited to give it a try and to post your remarks and ideas.
Regards, b.
PS: Driver has been tested with a Lexar JumpDrive 128MB USB 2.0, USB 1.1 PQI 7in1 flash card reader with 16MB of build-in memory, with a compact-flash and multi-media cards plugged-in, and an external USB 2.0 HDD box with 20GB Quantum whatever.