[Galaxy Note GT-N7000 General] hg42:
i9000: probably reviving without PIT necessary

ok, I found this myself:

NAND disk */dev/block/stl1 - stl6 omitted
device name mount point size in MB remarks
/dev/block/stl7 n/a 7.5 known as KERNEL, for holding zImage
/dev/block/stl8 n/a 7.5 known as RECOVERY, for storing a copy of zImage
/dev/block/stl9 /system 286.5 known as FACTORYFS
/dev/block/stl10 /dbdata 134 known as DBDATA
/dev/block/stl11 /cache 35 known as CACHE
/dev/block/stl12 n/a 7.5 known as MODEM, for storing modem.bin
MMC disk
device name mount point size in MB remarks
/dev/block/mmcblk0p1 /mnt/sdcard (/sdcard) ~6200 (8G) / ~14200 (16G) none
/dev/block/mmcblk0p2 /data ~2000 none

which refers to s1_odin_20100512.pit

Now I understand what's irritating me.

The i9000 has two memory devices: a small /dev/block/stl and a big /dev/block/mmcblk0, whereas the N7000 and the other devices of this thread all have only one internal memory device /dev/block/mmcblk0.

Ok...now revisiting your question about fixing access to mmcblk0:

I assume mmcblk0 is an internal sd.

If so, the PIT looks to me like only partitioning the other internal memory (stl), can you confirm this?

But how is mmcblk0 partitioned? I assume it's done via factory reset, right?

This is where you got your brick, right?

Odin can probably only flash the partitions on the stl device, right?

Assuming all this, if your brick is on mmcblk0, you cannot work around it with a PIT, because it doesn't touch your mmcblk0 but only stl.

Then your only option would be to use parted on it.

First I assume you have no brick in /data (otherwise a different scheme is needed):

Start

adb shell

and enter

parted /dev/block/mmcblk0

(choose ignore, if you get questions about not all blocks used etc.)

print (to look if you are on the correct device and get the needed values for calculation)

note the values for Start and End for the first partition as OLDSTART and OLDEND.

rm 1 (remove /sdcard partition [btw. you said /emmc?])

mkpartfs primary fat32 START END (create partition at different place)

The aim is to leave the bricked blocks unused.

I assume they are somewhere at the beginning of the partition, say all bricked blocks are in the first X MB.

For this case simply use

START = X

END = OLDEND

I would start with X = 8000MB (about half of the memory).

You can leave this adb window open and open another one for checking.

Now check the partition with

dd if=/dev/block/mmcblk0p1 of=/dev/null

This needs some (longer) time depending on the speed of the memory. Give it at least 60 min for the first try, then you'll know how long it needs for a GB, so you can optimize this time.

If this command freezes, you still have a brick in this new partition, then reboot and start a new session with a bigger X (say +1000MB).

If the command succeeds and tells you how many bytes were read, then you can decrease the X (say -1000MB).

Btw.: fastest way would be to start with a chunk size (here I chose X=8000MB which is also the first chunk size) and in each cycle increase or decrease X by half of the chunk size and then also reduce the chunk size by half for the next cycle (this is called binary searching).

Hope that helps. Otherwise tell here, what's happening.